Soluzioni semplici ma simpatiche per un'interfaccia utente dal mondo dei maker
Contributo di Editori europei di DigiKey
2017-07-19
Piccole schede computer come quelle della famiglia Arduino sono più di un semplice prezioso strumento educativo. L'ecosistema è stato adottato con entusiasmo da ingegneri professionisti per risolvere numerose sfide di rilevamento e controllo. Si può trattare di semplici sensori collegati ai motori o attuatori di comando in macchinari o robot semplici. La combinazione di una scheda microcontroller Arduino e shield di azionamento motore o I/O potrebbe soddisfare le esigenze di controllo del movimento di un progetto. La natura open-source di un ecosistema come Arduino significa che vengono pubblicati online molti progetti che possono rappresentare un trampolino di lancio per un'applicazione personalizzata. Sui siti dei produttori o sulla piattaforma indipendente GitHub esistono numerosi codici sorgente già scritti. In Figura 1 è riportato uno spezzone di codice per il controllo, da GitHub, di un robot basato su Arduino.

Figura 1: Le comunità degli sviluppatori offrono una piattaforma per trovare e condividere codice per progetti open-source.
Scelte dell'interfaccia utente
All'altro capo della connessione, serve un'interfaccia utente. Apparecchiature come un braccio robotizzato o una sonda motorizzata possono richiedere poco più di una serie di controlli per movimenti elementari come lo spostamento avanti/indietro, a sinistra/destra, o la rotazione in senso orario/antiorario.
App per smartphone?
Una soluzione consiste nell'usare uno smartphone come controller principale dell'interfaccia utente. Questo approccio è ampiamente adottato nei casi in cui i consumatori devono interagire con "cose" intelligenti come l'impianto di riscaldamento domestico o di illuminazione, dispositivi di sicurezza o droni. Lo smartphone ha molti punti di forza, fra cui il display a colori ad alta risoluzione per presentare strumenti attraenti, sofisticata capacità multi-touch e connettività versatile che comprende quella cellulare, Wi-Fi® e Bluetooth®. Sono ovunque e possono essere facilmente trasformati in un controller idoneo semplicemente caricando un'app studiata per accompagnare il nuovo prodotto.
Per alcuni progetti, tuttavia, lo sviluppo di un'app personalizzata potrebbe essere costoso sia economicamente che in termini di tempo ed esulare dalla serie di competenze chiave del team di sviluppo.
Su Google Play Store sono disponibili diverse app Android per controllare robot basati su Arduino tramite Bluetooth utilizzando uno smartphone. Queste app offrono agli sviluppatori una selezione di interfacce utente già pronte, scaricabili gratuitamente o con un costo minimo. Tuttavia, spesso le app sono concepite per giocattoli radiocomandati e il loro aspetto potrebbe non essere ideale per l'applicazione finale. D'altra parte, alcune (come il joystick Arduino BT) presentano una grafica semplice che può dare un'impressione professionale, oppure (come RemoteXY) offrire la libertà di configurare ogni singolo pomello, pulsante e cursore.
Sviluppo con moduli di ingresso utente hardware
È disponibile un'ampia gamma di moduli che aiutano a realizzare un pannello di controllo personalizzato e semplificano le sfide di progettazione meccanica e hardware. Ne fanno parte joystick e pulsanti in varie combinazioni. Questi sono ideali per controllare il movimento in varie direzioni e possono essere facilmente collegati a una scheda microcontroller in una molteplicità di modi. Vi sono anche diverse opzioni per aggiungere un modulo radio per inserire un controllo remoto wireless, offrendo una comodità paragonabile a quella di uno smartphone.
Il joystick COM-09032 Thumb di SparkFun converte i movimenti avanti/indietro e a sinistra/destra in tensioni analogiche e integra un pulsante che può essere usato come input di "Selezione" indipendentemente dall'orientamento del joystick. È accompagnato da una sua scheda di breakout per semplificare il collegamento all'host con l'utilizzo di soli cinque fili: alimentazione elettrica, terra, tensioni di uscita X e Y e stato del pulsante Seleziona. SparkFun ha fornito anche codice campione per leggere le tensioni di ingresso dal joystick e presentarle come valori digitali a un'uscita seriale (Figura 2).

Figura 2: Codice campione Arduino per leggere i valori da un joystick SparkFun.
Connessione ad altri ecosistemi hardware
I moduli joystick sono disponibili da diversi produttori e possono essere facilmente connessi a una scheda Arduino utilizzando software come quello campione riportato in Figura 2. In alternativa, il collegamento ad altri ecosistemi hardware può ampliare ancora di più le opzioni a disposizione degli sviluppatori. L'adattatore MAXREFDES72 di Maxim ne offre un esempio permettendo agli utenti Arduino di collegare moduli periferici dall'ecosistema PMod™ ai propri progetti. Questa comoda interfaccia con PMod dà agli sviluppatori l'accesso a un'ampia varietà di moduli, che comprende non solo il modulo joystick JSTK2 PMod™ di Digilent, ma anche il modulo interruttore a pulsante PmodBTN dell'azienda, che contiene quattro interruttori per le funzioni di controllo utente e diversi altri moduli fra cui un tastierino a 16 pulsanti.
Scheda di controllo tutto in uno
Un joystick con dei pulsanti rappresenta una combinazione sperimentata in grado di controllare un'ampia serie di possibili input dell'utente: basta chiedere a qualsiasi appassionato di videogiochi! Il layout e le funzioni di un tipico controller di gioco, che metta il joystick accanto ai pulsanti, sono intuitivi e molto adatti a comandi come il movimento, il posizionamento e l'azionamento di un meccanismo come una gru a cavalletto, un braccio robotizzato o una pinza.
DFR0008 di DFRobot fornisce un joystick e quattro pulsanti, con codifica a colori, come modulo completamente assemblato che offre ulteriori basette per moduli radio XBee. Permettendo agli sviluppatori di sfruttare l'ecosistema XBee, DFR008 semplifica l'aggiunta di connettività wireless scegliendo dall'ampia serie di moduli XBee disponibili sul mercato. Ne fanno parte la scheda radio XB24-API-001 IEEE 802.15.4 a 2,4 GHz di Digi, ma anche il modulo XB8-DMUS-002 sotto 1 GHz (868 MHz), idoneo per l'uso senza licenza in Europa.
Per gli sviluppatori interessati a fare esperimenti con la connettività wireless XBee in progetti Arduino, XBee/Arduino Educational Pack di Digi contiene schede microcontroller Arduino, una scelta di moduli XBee e pulsanti e un modulo joystick che sono ideali per realizzare vari tipi di interfacce utente. Gli utenti XBee possono contare anche su risorse di sviluppo che comprendono strumenti software e codice di esempio per agevolare lo sviluppo.
Mantenere aperta l'opzione GUI
Gli ecosistemi open-source danno agli sviluppatori anche la libertà di applicare le proprie abilità tecniche ad alto livello, se lo desiderano. Ad esempio potrebbero sviluppare proprie interfacce utente grafiche embedded con un modulo come il TFT a colori da 3,2" ULCD-32PTU-AR di 4D Systems, con touchscreen resistivo integrato. La confezione comprende un adattatore che si collega alla scheda Arduino tramite basette standard e un cavo che collega l'adattatore al display. Le basette Arduino rimangono libere per impilare altri shield Arduino come un modulo radio. Sono disponibili diversi set di strumenti concepiti per semplificare lo sviluppo dell'interfaccia grafica utente. Fra questi vi è un ambiente entry level per lo sviluppo di codice, uno strumento di progettazione grafica chiamato ViSi che assiste la generazione di codice inserendo oggetti clicca-e-posiziona, e l'ambiente avanzato ViSi-Genie. In ViSi-Genie, l'utente dispone semplicemente gli oggetti, imposta gli eventi che li attivano e il codice viene generato automaticamente.
Conclusione
Esistono molte strade per il successo di un progetto nel mondo dei maker. Sono disponibili numerosi esempi e kit che aiutano gli sviluppatori a superare sfide difficili e ad approntare software funzionante nell'hardware di destinazione.
È possibile configurare un dispositivo di immissione utente per gestire il controllo del movimento e l'azionamento, collegando un'app smartphone tramite Bluetooth, oppure lo si può configurare utilizzando hardware come singoli moduli o uno shield joystick/interruttore pienamente integrato. Gli sviluppatori possono anche avvalersi di dispositivi di input o moduli wireless da altri ecosistemi come PMod e XBee, che offrono altri percorsi verso il successo di un progetto. I moduli hanno un prezzo abbordabile e sono facili da integrare, facendo affidamento sul codice e sul know-how della comunità open-source.
Esonero della responsabilità: le opinioni, le convinzioni e i punti di vista espressi dai vari autori e/o dai partecipanti al forum su questo sito Web non riflettono necessariamente le opinioni, le convinzioni e i punti di vista di DigiKey o le sue politiche.




