Sommario:

Guino: Dashboard per il tuo Arduino: 4 passaggi (con immagini)
Guino: Dashboard per il tuo Arduino: 4 passaggi (con immagini)

Video: Guino: Dashboard per il tuo Arduino: 4 passaggi (con immagini)

Video: Guino: Dashboard per il tuo Arduino: 4 passaggi (con immagini)
Video: Quando provi a fare un complimento a una ragazza... 2024, Dicembre
Anonim
Guino: Dashboard per il tuo Arduino
Guino: Dashboard per il tuo Arduino
Guino: Dashboard per il tuo Arduino
Guino: Dashboard per il tuo Arduino
Guino: Dashboard per il tuo Arduino
Guino: Dashboard per il tuo Arduino
Guino: Dashboard per il tuo Arduino
Guino: Dashboard per il tuo Arduino

Questo progetto è una parte degli esperimenti fatti durante la permanenza di un artista presso Instructables. Puoi vedere gli altri progetti qui. Può essere un compito complicato eseguire il debug e visualizzare i dati in tempo reale sulla scheda Arduino. Di solito sei bloccato con l'uscita seriale standard, poiché la complessità del tuo codice Arduino cresce, questo rende impossibile comprendere cosa sta effettivamente succedendo all'interno della scheda. Per risolvere questo problema ho creato una piccola libreria che ti consentirà di creare la tua GUI personalizzata per i tuoi progetti Arduino. Guarda questo video per avere una dimostrazione di un hello world di base con un potmeter e un diodo: A partire da ora, il programma ha le seguenti possibilità e caratteristiche: Personalizza la tua interfaccia dalla scheda Arduino Definisci quali slider, grafici e pulsanti ti servono per la tua interfaccia Lo fai nel tuo schizzo Arduino, il che significa che il programma gui funge da schiavo dello schizzo. Tutte le informazioni sono memorizzate nella tua scheda. Visualizza e manipola i dati in tempo reale Sia che tu stia realizzando un controller di luce RGB o un braccio robotico, ottenere un feedback grafico è fondamentale per capire cosa sta succedendo all'interno della scheda. Ciò ti consente di capire se è il tuo hardware o il codice a causare il problema. Inoltre i cursori e i pulsanti consentono di modificare i singoli parametri in tempo reale. In questo modo è possibile vedere che effetto hanno le diverse soglie sull'interazione. Salvare i parametri nella memoria della scheda Una volta modificati i parametri è possibile salvarli nella EEProm della scheda. I parametri verranno caricati automaticamente la prossima volta che accendi la scheda, anche se il computer non è connesso. Usa la stessa app per tutti i tuoi progetti Arduino Ho creato tantissime piccole app per progetti diversi. Il mio problema è sempre ritrovarli a distanza di un anno. Poiché salviamo tutto in Arduino, ho solo bisogno di mantenere un'app intorno ad Arduino, configurerà automaticamente l'app per il progetto corrente. Prototipa l'interfaccia prima di accendere il saldatore Perché puoi progettare l'interfaccia grafica come ti piace (entro limiti ragionevoli limiti), è possibile prototipare l'interfaccia prima di aver creato un'interfaccia fisica. Ciò consente anche di dividere le attività tra più persone, ad es. una persona sta lavorando sull'hardware e un'altra persona sta lavorando sul codice. Una volta realizzata l'interfaccia fisica, Guino si integrerà perfettamente. Usalo come dashboard a schermo intero Puoi usarlo come dashboard a schermo intero premendo F e premendo T si alterna la visibilità del pannello delle impostazioni. Con la presente presenti solo la tua interfaccia personalizzata per il mondo che ti circonda. Controlla il colore di sfondo Il colore di sfondo può essere controllato da Arduino, questo ti consente di creare colori diversi per diversi schizzi. Può anche essere utilizzato per inviare avvisi quando qualcosa non va. Può essere verde quando tutto è ok e rosso quando qualcosa non va. Veloce e sottile Ho avuto grande cura nel rendere l'impronta su Arduino il più piccola possibile - Memorizza solo una quantità minima di dati nella memoria (concretamente un puntatore lista di 100 articoli). Questa impostazione può essere modificata in più bassa o più alta a seconda della quantità di elementi GUI che intendi avere nella tua interfaccia. Inoltre il sistema si basa sulla libreria EasyTransfer che trasferisce le informazioni in forma binaria. Ciascun pacchetto è costituito da un byte per il comando, un byte per l'elemento # e un numero intero per il valore. Idealmente, tutti i tuoi dati dovrebbero essere normalizzati a un intervallo di interi con segno a 16 bit. Ciò significa un utilizzo ottimale della porta seriale quando si lavora con numeri interi (tecnicamente usiamo un po' di spazio in più per un checksum). Buono per Instructables La GUI consente di creare Instructables che richiedono solo i componenti principali. Componenti extra come potmeter ecc. possono essere realizzati virtualmente tramite la gui. Limitazioni e piani futuri Al momento l'app è stata compilata per la piattaforma Mac OSX e Windows. È scritto in Openframeworks quindi dovrebbe essere in grado di funzionare anche su altre piattaforme. Poiché l'app utilizza la porta seriale, non sarai in grado di connettere altri programmi ad Arduino. Questo problema verrà risolto in una versione futura che includerà un Open Sound Control e un bridge Midi. Crediti: Programmazione e idea di: Mads Hobye Libreria Easytransfer di: Bill Porter Libreria GUI di: Reza Ali

Passaggio 1: iniziare

Iniziare
Iniziare
Iniziare
Iniziare
  • Scarica e decomprimi il pacchetto GUINO.
  • Scarica Arduino
  • Copia la cartella delle librerie nella cartella delle librerie di Arduino (come fare qui)
  • Riavvia Arduino.
  • Apri uno degli esempi all'interno di Arduino. (Menù: File -> Esempi -> Guino -> scegline uno)
  • Se usi il semplice esempio, crea un circuito come illustrato sopra.
  • Carica l'esempio.
  • Esegui l'app Guino.
  • Scegli la porta seriale (Di solito l'ultima)
  • Premere Connetti.

La fonte può essere trovata qui.

IMPORTANTE: quando lo si utilizza su piattaforma Windows è necessario utilizzare una porta com inferiore o uguale a 10. Se si utilizza una porta pari o superiore a 10, il sistema non funzionerà. Questo è un bug in openframeworks.

Passaggio 2: come modificare il codice

Come modificare il codice
Come modificare il codice

Affinché la libreria funzioni con il tuo schizzo, hai bisogno di un paio di metodi extra. Li ho descritti di seguito: gInit() qui è dove definisci il tuo layout Questo metodo definisce il layout aggiungendo componenti in sequenza. I componenti che possono essere modificati (slider, pulsanti, ecc.) hanno una variabile associata. Il & davanti alla variabile significa che non vogliamo passare il valore nella variabile, ma vogliamo passare un riferimento (puntatore) alla variabile. In questo modo il sistema Guino li aggiorna automaticamente quando si verificano cambiamenti nella GUI. void gInit() { gAddLabel("SLIDERS", 1); gAddSpacer(1); gAddSlider(3, 200, "LARGHEZZA", &larghezza); gAddSlider(3, 200, "HEIGHT", &height); gAddSlider(0, 255, "LUMINOSITÀ LED", &ledLight); // I cursori rotanti gAddLabel("ROTARY SLIDERS", 1); gAddSpacer(1); [………….] gAddColumn(); // Aggiungi più cose qui. gSetColor(r,g,b); // Imposta il colore dell'interfaccia gui. }GButtonPressed(int id) viene chiamato ogni volta che viene premuto un pulsante Generalmente le variabili possono essere aggiornate automaticamente, ma nel caso di un pulsante deve essere un evento di cui ti occupi. In questo esempio impostiamo la variabile di altezza a 100 quando qualcuno preme il pulsante. void gButtonPressed(int id) { if(buttonId == id) { altezza= 100; gUpdateValue(&altezza); } }gItemUpdated(int id) Viene chiamato ogni volta che un elemento è stato aggiornato Normalmente non è necessario utilizzarlo poiché il sistema aggiornerà automaticamente le variabili. Se vuoi reagire a un cambiamento puoi usarlo come tale. In questo caso stiamo aggiornando il colore di sfondo ogni volta che uno dei 3 cursori rotanti è stato modificato. void gItemUpdated(int id) { if(rotaryRID = id || rotaryGID == id || rotaryBID == id) { gSetColor(r, g, b); } }

Passaggio 3: alcuni suggerimenti rapidi

Ricordati di disconnetterti quando carichi un nuovo sketch Non puoi far funzionare Guino mentre carichi un nuovo sketch sulla scheda Arduino, perché usano la stessa connessione seriale. Ciò richiede di disconnettersi ogni volta che si carica un nuovo schizzo. Se tu (e vorrai) provare a caricare mentre hai il Guino connesso, la scheda può entrare in uno stato strano in cui è in qualche modo in esecuzione, ma non del tutto. A questo punto l'unica possibilità è resettare la scheda premendo il pulsante reset oppure scollegando e ricollegando il cavo usb. Bug noti Al momento il sistema è funzionante e stabile. I seguenti sono bug di cui dovresti essere a conoscenza:

  • setMin non funziona su un MovingGraph (sembra esserci un bug nella libreria della GUI che deve essere corretto). Quindi il minimo rimane a zero.
  • L'elenco seriale viene caricato all'avvio del programma. L'Arduino deve essere collegato prima di avviare il programma. L'aggiornamento dell'elenco dei serial durante l'esecuzione causa un evento negativo. Deve ancora essere risolto.
  • Giocherellare con l'elenco dei seriali - a volte fa crashare il programma (stesso evento gui dell'aggiornamento - devi trovare la fonte)
  • Lo sfondo dei pulsanti di commutazione diventa nero a seconda dell'inizializzazione. Devo impostare lo sfondo manualmente.
  • Su alcune piattaforme Windows la porta COM non viene visualizzata. Potrebbe essere un problema di driver ftdi.

Passaggio 4: casi d'uso

Casi d'uso
Casi d'uso

Se vuoi vedere alcuni casi d'uso con l'interfaccia Guino vai a questo Instructable.

Consigliato: