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