1
0

Commits vergleichen

..

4 Commits

Autor SHA1 Nachricht Datum
tth
1fc36d8790 suite du projet 2021-06-29 09:57:27 +02:00
tth
1c32695589 to be continued... 2021-06-29 08:49:12 +02:00
tth
a2d33084f1 to be continued... 2021-06-29 08:38:53 +02:00
tth
55b7f5b85b laser de Gaby, le début 2021-06-29 08:12:55 +02:00
8 geänderte Dateien mit 122 neuen und 0 gelöschten Zeilen

3
.gitignore vendored
Datei anzeigen

@ -18,8 +18,11 @@ doc/*.ind
functions/*.[oa] functions/*.[oa]
tools/udp-dumper tools/udp-dumper
tools/wait-for-joystick
tools/*.o tools/*.o
Gaby/*.[oa]
specific/joy2laser specific/joy2laser
specific/asyncburp specific/asyncburp
specific/*.o specific/*.o

6
Gaby/Makefile Normale Datei
Datei anzeigen

@ -0,0 +1,6 @@
# ------------------------------------------------------
# Piloter le laser de Gaby
# ------------------------------------------------------

44
Gaby/README.md Normale Datei
Datei anzeigen

@ -0,0 +1,44 @@
# Le laser de Gaby
Une nouvelle aventure se prépare à Valensole, en voici l'histoire...
## Caractéristiques
Encore très flou, mais où donc est rangée cette doc ?
- position X/Y par deux valeurs analogiques
- niveau RGB par trois signaux PWM
https://en.wikipedia.org/wiki/International_Laser_Display_Association
## Logiciels
Deux composantes : le contrôleur "physique" du laser tournera dans
un Arduino Mega, et sera lui même piloté par un "récepteur" OSC dans
la machine hote. Ces deux parties vont communiquer par le classique
lien série/usb avec un protocole encore à définir.
### Coté hote/OSC
Dans un premier temps, je vais reprendre mon protocole utilisé pour
les joysticks, d'abord pour le positionnement X/Y, et ensuite pour
la gestion du RGB.
### Coté Arduino
Les choses sont moins claires, car j'ignore encore certaines choses comme
la qualité des sortie analogiques de l'Arduino. Il sera peut-être
nécessaire de conditionner les deux valeurs (intégration, gain, offset)
par un matériel approprié.
D'autre part, la fréquence de rafraichissement sera-elle suffisante ?
Et pour finir y aura-t-il assez de mémoire RAM pour stocker des dessins
de taille conséquente ?
## Conclusion
Il faut maintenant envoyer le Gobeti :)

13
Gaby/protocole.md Normale Datei
Datei anzeigen

@ -0,0 +1,13 @@
# Le protocole
Le lien série-sur-usb de l'arduino est parfois capricieux et souvent
plein de mystères...
Ayant de gros doutes sur sa capacité à transmettre des données binaires,
le choix d'un codage ASCII semble évident.
D'un autre coté, le débit du lien est assez faible, il faut compacter
le plus possible les données transférées. Un encodage type `base64`
est-il la bonne solution ?

6
Gaby/transmit.c Normale Datei
Datei anzeigen

@ -0,0 +1,6 @@
/*
* +---------------------------------------------+
* | transmission des commandes vers l'arduino |
* +---------------------------------------------+
*/

4
chuck/dessiner.ck Normale Datei
Datei anzeigen

@ -0,0 +1,4 @@
#
# dessiner par OSC avec le laser de Gaby
#

Datei anzeigen

@ -7,3 +7,5 @@
udp-dumper: udp-dumper.c Makefile udp-dumper: udp-dumper.c Makefile
gcc -Wall $< -o $@ gcc -Wall $< -o $@
wait-for-joystick: wait-for-joystick.c Makefile
gcc -Wall $< -o $@

44
tools/wait-for-joystick.c Normale Datei
Datei anzeigen

@ -0,0 +1,44 @@
/*
* wait for joystick event
* -----------------------
*
# https://git.tetalab.org/tTh/gadgets-OSC
*
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int verbosity = 0;
/* ----------------------------------------------------------------- */
/* ----------------------------------------------------------------- */
void help(int k)
{
puts("XXX");
exit(0);
}
/* ----------------------------------------------------------------- */
int main(int argc, char *argv[])
{
int foo, opt;
char *device = "/dev/input/js0";
/* parsing command line options */
while ((opt = getopt(argc, argv, "d:hv")) != -1) {
switch (opt) {
case 'd': device = optarg; break;
case 'h': help(0); break;
case 'v': verbosity++; break;
default: exit(1);
}
}
if (verbosity) {
fprintf(stderr, "%s on %s\n", argv[0], device);
}
return 0;
}
/* ----------------------------------------------------------------- */