Compare commits
4 Commits
5e3149e170
...
1fc36d8790
Author | SHA1 | Date | |
---|---|---|---|
|
1fc36d8790 | ||
|
1c32695589 | ||
|
a2d33084f1 | ||
|
55b7f5b85b |
3
.gitignore
vendored
3
.gitignore
vendored
@ -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
Normal file
6
Gaby/Makefile
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
|
||||||
|
|
||||||
|
# ------------------------------------------------------
|
||||||
|
# Piloter le laser de Gaby
|
||||||
|
# ------------------------------------------------------
|
||||||
|
|
44
Gaby/README.md
Normal file
44
Gaby/README.md
Normal file
@ -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
Normal file
13
Gaby/protocole.md
Normal file
@ -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
Normal file
6
Gaby/transmit.c
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
/*
|
||||||
|
* +---------------------------------------------+
|
||||||
|
* | transmission des commandes vers l'arduino |
|
||||||
|
* +---------------------------------------------+
|
||||||
|
*/
|
||||||
|
|
4
chuck/dessiner.ck
Normal file
4
chuck/dessiner.ck
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
|
||||||
|
#
|
||||||
|
# dessiner par OSC avec le laser de Gaby
|
||||||
|
#
|
@ -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
Normal file
44
tools/wait-for-joystick.c
Normal file
@ -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;
|
||||||
|
}
|
||||||
|
/* ----------------------------------------------------------------- */
|
Loading…
Reference in New Issue
Block a user