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]
|
||||
|
||||
tools/udp-dumper
|
||||
tools/wait-for-joystick
|
||||
tools/*.o
|
||||
|
||||
Gaby/*.[oa]
|
||||
|
||||
specific/joy2laser
|
||||
specific/asyncburp
|
||||
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
|
||||
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