[RISOLTO]Far comunicare l'arduino con il mio Mac

Salve a tutti! Ho un piccolo problemino nel far comunicare il mio Arduino UNO con il mio MacBook via porta USB. In soldoni ho costruito un piccolo dispositivo che mi controlla le luci della mia scrivania. Su porta seriale ho intenzione di inviare un byte all'Arduino il quale lo dovrebbe interpretare come la luminosità da far assumere alle luci (per dire... invio 0 e le luci si spengono, invio 255 e le luci si accendono al massimo, una cosa molto molto semplice insomma). Fin qui tutto bene, posso aprire il monitor seriale dell'IDE dell'arduino, inviargli un valore e il tutto funziona alla grande.

Ora, io questo byte lo vorrei inviare dal mio computer in modo da poter automatizzare il tutto con (AppleScript/Automator/QuelloCheE'). Per cui ho scaricato un piccolo programmino in C (dal blog todbot) che prende un numero come parametro e lo invia all'arduino via USB. Il programmino apre la porta seriale, imposta il baud rate, invia il byte e il tutto sembra filare liscio...

...eccetto una cosa: l'Arduino si rifiuta di interpretare il byte se non tengo il monitor seriale dell'IDE aperto! La ricezione sembrerebbe avvenire perché il LED RX sull'arduino lampeggia ma con il monitor chiuso l'arduino semplicemente non fa nulla.

Qui i sorgenti (arduino: http://dl.dropbox.com/u/14798985/DeskLights.ino, programmino in C: http://dl.dropbox.com/u/14798985/arduino_serial.c). Domanda: dove sbaglio?

non posso accedere a quei siti, però è strano, dovrebbe avvenire il contrario: un solo programma alla volta può accedere alla seriale!

Penso di aver risolto il problema. Ho scoperto che ogni volta che ci si connette alla seriale l'arduino si resetta. Ovviamente per essere operativo ha bisogno di un po' di tempo. Ora, il programmino in C di cui stavo parlando non tiene aperta una connessione come fa, ad esempio il Monitor, ma ne apre una nuova ad ogni suo richiamo. Era proprio quello il problema, il programmino inviava il byte mentre l'arduino si stava riavviando! :grin: per cui ho semplicemente scritto un altro programma che, invece, apre una connessione e la tiene aperta. Risolto :sweat_smile:

Certo, è lautoreset di Arduino per caricare i codici. Se cerchi autoreset troverai il modo per disattivarlo, spesso basta un condensatore

Grazie! Ho trovato in effetti un bel po' di materiale, ora mi leggo il tutto con calma :slight_smile: