Un programmatore Arduino Bulk potenziato con Raspberry Pi - 💡 Fix My Ideas

Un programmatore Arduino Bulk potenziato con Raspberry Pi

Un programmatore Arduino Bulk potenziato con Raspberry Pi


Autore: Ethan Holmes, 2019

Mentre costruivo molti robot per realizzare un recente progetto di Kickstarter, ho avuto la necessità di programmare un migliaio di Arduino, il che richiederebbe un'eternità se dovessi programmarli tutti individualmente. Situazioni come questa sono l'occasione perfetta per lavorare su quei metaprogetti che possono essere altrettanto divertenti da costruire quanto il prodotto stesso. In questo caso avevo bisogno di qualcosa che avrebbe:

  • programmare un numero di Arduino in parallelo
  • funziona senza schermo
  • fammi sapere se ha programmato con successo o no
  • essere veloce e facile da usare

I pin Pogo sono un ottimo modo per creare una connessione elettrica temporanea rapida a un PCB, quindi ho deciso di usarli abbastanza rapidamente. Ho usato un piccolo interruttore a taglio laser per tenere in posizione l'Arduino. L'interfaccia utente doveva essere mantenuta abbastanza semplice, così ho optato per alcuni bellissimi pulsanti in stile arcade che si accendono anche con un LED all'interno. Penso che siano pensati per la promozione di "auto da corsa per ragazzi" ma funzionano bene anche con un programmatore Arduino. Poi ho fatto un taglio laser per far sì che tutti si inserissero in modo da poter inserire rapidamente l'Arduino e premere il pulsante. Durante la programmazione, il pulsante lampeggia e una volta completato rimane acceso se ha avuto successo e si spegne se non funziona.

Ho collegato un convertitore USB-seriale a ciascun set di pin pogo e poi ho inserito tutti questi in un hub USB. Per guidare l'interfaccia utente ho creato un semplice schizzo per Arduino, che consentiva il controllo esterno dei LED ed emetteva eventi quando venivano premuti i pulsanti. Questo anche collegato all'hub USB che poi si collegava al Raspberry Pi.

Ho scritto un semplice software in Node.js, che è ottimo per questo tipo di carico di lavoro parallelo basato sugli eventi. Tutto ciò è comunicare con l'interfaccia utente Arduino e quando viene premuto un pulsante verrà eseguito in un processo secondario sulla porta seriale corretta. Quindi dice all'IU Arduino di lampeggiare il LED corretto e quindi, a seconda del codice di ritorno da questo processo esterno, indicherà il successo o il fallimento.

Con tutto questo a posto, tutto quello che dovevo fare era dirlo per l'avvio in runtime, cosa che ho fatto inserendolo nel crontab. L'unica cosa complessa da risolvere era assicurarsi che le porte USB venissero visualizzate con lo stesso ID ogni volta. Fortunatamente in Linux questo è possibile aggiungendo uno script udev che genera un link simbolico a seconda di dove si trova il dispositivo sul bus USB. Ciò significa che dopo il riavvio i convertitori USB-seriale hanno mantenuto lo stesso nome.

Poiché operano tutti indipendentemente l'uno dall'altro, sono in grado di metterlo rapidamente in ordine, premere il pulsante e iniziare a mettere il prossimo in posizione. Quando ho raggiunto il quinto Arduino, il primo è finito. Poiché vengono eseguiti in parallelo, sono necessari solo pochi secondi per programmare ciascun Arduino, anziché i 30 circa che normalmente impiegherebbero per ciascuno di essi.

Se ti piacerebbe costruire qualcosa di simile per te, è tutto open source:

  • Lo schizzo UI Arduino e la libreria Node
  • La libreria del programmatore Node e i file di progettazione

Se vuoi modificarlo per programmare altri tipi di Arduino, il software dovrebbe essere ancora valido e puoi configurarlo per fare il numero di porte seriali.



Si Può Essere Interessati

Junkyard Battle Racers porta il potenziamento del videogame al Go-Kart Racing

Junkyard Battle Racers porta il potenziamento del videogame al Go-Kart Racing


La Gilda degli orologiai era la mia cabina preferita alla Maker Faire Austin

La Gilda degli orologiai era la mia cabina preferita alla Maker Faire Austin


Costruisci bot di salvataggio usando le parti dello scaffale

Costruisci bot di salvataggio usando le parti dello scaffale


Animali di peluche rotti Ottieni "Chirurgia" per insegnare ai bambini i donatori di organi

Animali di peluche rotti Ottieni "Chirurgia" per insegnare ai bambini i donatori di organi