BeagleBone Black porta la semplicità della connettività in stile Arduino a Linux Embedded
Contributo di Editori europei di DigiKey
2013-09-18
Nell'ultimo anno dal suo lancio, Raspberry Pi ha dato un contributo significativo all'industria elettronica. Originariamente proposto come un computer a basso costo destinato all'uso educativo, ha velocemente ampliato la sua attrattiva nel mercato dell'elettronica mainstream come piattaforma di prototipazione e valutazione per sviluppatori professionisti. Oltre ad essere utilizzato per insegnare informatica, Pi ha un grande seguito tra gli appassionati di elettronica e gli hobbisti, a livelli che non si vedevano da molto tempo. Sull'onda del clamore che ha generato, sarebbe facile pensare che nulla di simile era mai stato fatto in passato. Al contrario, le schede come Arduino sono disponibili da molto tempo e godono di un enorme seguito tra gli utilizzatori, con una forte community di risorse di programmazione basate sul web risorse che aiutano nello sviluppo. Naturalmente vi sono alcune differenze fondamentali tra le due schede. Arduino utilizza un microcontroller AVR a 8 bit di Atmel e fornisce un livello IO adeguato per collegarsi ad applicazioni del mondo reale, oltre a un ambiente di sviluppo integrato (IDE) estremamente semplice da utilizzare. Arduino è una base ideale da cui partire per imparare, non solo la programmazione di microcontroller embedded con linguaggi come C, ma anche i concetti di base dell'elettronica. Per contro, Raspberry Pi utilizza un SoC a 32 bit basato su ARM® e si concentra più sull'insegnamento delle nozioni base dei linguaggi informatici di alto livello e dei sistemi operativi come Linux nelle scuole e in altri istituti di istruzione superiore. Il supporto per Linux è disponibile in una vasta gamma di schede di sviluppo embedded e offre molti vantaggi rispetto alle schede a 8 bit meno potenti. Offre anche la possibilità di condividere il processore tra più programmi e attività in esecuzione. Un esempio basato su Linux è BeagleBoard-XM, una vera e propria scheda di sviluppo open-source con il supporto di Texas Instruments. Tuttavia, è l'ultima scheda di sviluppo Linux prodotta da Texas Instruments che sta suscitando notevole interesse. BeagleBone Black, lanciata nel mese di aprile 2013, è considerata un forte concorrente per Raspberry Pi. Non solo riunisce una piattaforma ideale da cui partire per imparare Linux, ma anche per imparare l'elettronica di base con l'interfacciamento e l'interazione con applicazioni del mondo reale. Il formato BeagleBone, inizialmente lanciato verso la fine del 2011, non solo riesce a radunare la maggior parte delle funzionalità di BeagleBoard-XM in un package più contenuto delle dimensioni di una carta di credito, ma ha anche istituito un ingombro standard di connettori su due file a 46 pin per una serie di moduli di espansione basati su scheda figlia denominati "Cape". In modo simile agli "Shield" utilizzati con Arduino, forniscono una varietà di schede plug-in per aggiungere livelli I/O ancor più avanzati.

BeagleBone Black offre un microprocessore TI Sitara™ AM3359 ARM Cortex™-A8 a 1 GHz (2000 DMIPS), rispetto a quello di 720 MHz di Raspberry Pi. La caratteristica più notevole sta nel fatto che Black offre 2 GB di memoria flash su scheda, in aggiunta a 512 MB di memoria DDR3 a 400 MHz. Un microconnettore HDMI tipo D, porte Ethernet e USB sono inclusi e la scheda è alimentata da un'alimentazione singola di 5 V c.c. La scheda può anche essere alimentata tramite USB dato che consuma solamente un massimo di 250 mA.
Dal punto di vista software, Black viene fornito pre-caricato con una serie di software ed è pronto per l'uso. Basta collegare l'alimentazione, HDMI, Ethernet e una tastiera/mouse USB per avviare la scheda con la distribuzione Angstrom Linux dopo che appare il desktop di Gnome. Durante il processo di avvio la serie di 4 LED utente (USR0 - 3) lampeggia in modo rassicurante per indicare l'attività. Con una scelta di tre browser forniti - Chrome, Firefox ed Epiphany - si può navigare in Internet in pochi secondi. Non c'è alcuna necessità di aggiungere una scheda SD flash e destreggiarsi con il download della distribuzione prima di eseguire la scheda per la prima volta, come invece è richiesto con Raspberry Pi. Se per la maggior parte degli sviluppatori e appassionati Angstrom Linux risulterà soddisfacente, Black può anche eseguire Ubuntu o Android grazie all'architettura ARM v7 usata nel dispositivo basato su Cortex-A8. Un altro aspetto dell'utilizzo di Linux su una scheda di sviluppo è la connettività aggiuntiva offerta con un'interfaccia Ethernet. Pertanto l'uso di FTP, SSH, Telnet e altri servizi di accesso remoto forniscono la flessibilità di connessioni oltre alla capacità di connettere Black al proprio server web.

Anche per quanto riguarda gli strumenti di sviluppo, Black è ben rifornito. Un interprete Python e un compilatore C/C++ sono precaricati insieme a una replica locale dell'IDE Cloud9 preconfigurato per eseguire Node.js. È anche inclusa la libreria Bonescript, basato su Node.js, che fornisce un certo numero di funzioni simil-Arduino per l'interfacciamento con l'hardware. I lettori che hanno familiarità con la funzione 'digitalWrite' di Arduino si sentiranno immediatamente a loro agio con questa e con analoghe funzioni incluse in Bonescript. La community beagleboard.org è inoltre un'utile risorsa con u archivio di progetti di esempio, forum e documentazione hardware/software.

È con questi strumenti, e la possibilità di utilizzare l'ampio GPIO, che Black risulta inconfutabilmente una piattaforma ideale per l'uso nell'insegnamento dell'informatica e delle nozioni base di elettronica. BeagleBone Black ha un totale di 92 pin accessibili tramite le due basette a doppia fila P8 e P9. In misura molto superiore al GPIO disponibile su Arduino o Raspberry Pi, queste basette formano anche le connessioni per i Cape di espansione. I pin possono avere molte funzioni diverse, dal controllo IO, lettura di sensori, azionamento di relè e pilotaggio di LED. Disponibili da una varietà di fornitori terzi, i Cape forniscono tutto l'occorrente da una semplice area di sperimentazione, uno schermo LCD, fino a un Cape completo per il controllo di veicoli subacquei. Il sito della community beagebonecapes.com, fornito da CircuitCo, produttore di BeagleBone Black, mantiene un elenco dei Cape compatibili collaudati e ritenuti pienamente compatibili. Teoricamente si possono impilare fino a un massimo di 4 Cape l'uno sull'altro, purché non vi siano conflitti nell'uso del GPIO. Va inoltre notato che il GPIO può essere configurato e multiplato in diversi modi. I diversi sistemi operativi possono operare il GPIO utilizzando una modalità diversa. La modalità multiplex predefinita in Angstrom Linux è Mode 7. Il nome del segnale Linux per uno specifico pin non è lo stesso del numero di pin segnato sulla scheda.
Il modo di gran lunga più semplice di sperimentare questo GPIO consiste nell'uso dell'IDE Cloud9. Cloud9 inizia automaticamente all'avvio ed è possibile accedervi utilizzando il proprio server web Black. Si apre il browser Epiphany per trovare l'IDE automaticamente all'avvio, ma qualsiasi browser può essere configurato sulla porta 3000 dell'indirizzo IP di BeagleBone Black. Sebbene sia simile all'uso dell'IDE Arduino, la differenza è che non c'è bisogno di caricare il codice sulla scheda, perché viene memorizzato automaticamente nel file system. Il proprio server web Black fornisce un pratico insieme di pagine che consente di accedere anche all'IDE Cloud9 e alcuni semplici esempi di codice Bonescript che possono essere eseguiti in modo interattivo con la scheda.

Come la maggior parte degli IDE tradizionali per applicazioni embedded, Cloud9 offre aree di lavoro per la modifica del codice, la convalida, il debug e il test. La scrittura del codice è un processo interattivo con controllo di sintassi e variabili dinamico. Il processo di debug è molto più sofisticato che per Arduino, con il pieno utilizzo di punti di interruzione, variabili watch ed esecuzione a passo singolo. Cloud9 fornisce una serie di esempi semplici scritti in node.js JavaScript che integrando la libreria Bonescript. Il codice di esempio "blinked.js" (Figura 5) commuta uno dei LED utente (USR3). Questo comportamento può essere esteso all'utilizzo dei pin GPIO collegando un LED e un resistore pull-up/limite di corrente al pin GPIO desiderato e cambiando l'assegnazione di ledPin al relativo GPIO, ad esempio, bone.P8_3. Come IDE entry-level, Cloud9 fornisce un modo rapido e semplice per scrivere brevi progetti in codice e quindi eseguirli per il debug. Nonostante l'accensione e lo spegnimento di un LED possa sembrare un'operazione semplice, è un importante primo passo per guadagnare confidenza e prendere dimestichezza con la scheda, in particolare per quegli sviluppatori di software alle prime armi con l'interfacciamento con il mondo reale.

L'uso di node.js JavaScript sembra essere il modo preferito per programmare BeagleBone Black. È sicuramente una semplice introduzione per coloro che non hanno familiarità con la programmazione o con i linguaggi di più alto livello o semplicemente come un modo per realizzare velocemente un prototipo. Tuttavia, per coloro con maggiore esperienza di programmazione e la necessità di un progetto più complesso, sono ben supportati anche Python e C. Così come Bonescript aggiunge comandi IO digitali e analogici in stile Arduino a node.js, è disponibile agli sviluppatori Python una libreria chiamata PyBBIO.
Il GPIO può essere indirizzato direttamente anche dall'interno del sistema operativo Linux, ad esempio direttamente sulla scheda o per collegamento remoto tramite SSH. In primo luogo, richiede l'identificazione corretta del nome del segnale Linux con uno specifico pin GPIO e, in secondo luogo, una buona conoscenza dell'uso della riga di comandi Linux. Ogni pin GPIO avrà una directory che acquista il nome del segnale Linux all'interno del padre /sys/class quando è in uso. È in questo modo che si possono individuare potenziali conflitti segnale/GPIO in uno o più Cape utilizzati. Il connettore P8 - pin 16 è identificato come GPIO46 (Figura 6). Nella schermata è possibile vedere che una directory gpio46 non esiste, per cui il segnale è disponibile per l'uso. Quando si comanda un LED collegato al pin, scrivendo un value file 1--to-Linux è possibile accenderlo o spegnerlo con un 0. Dopo l'uso, non dimenticare di annullare l'esportazione ('unexport') della directory per eliminare l'uso del pin. Questi comandi shell possono anche essere incorporati in istruzioni Python.

Che siate sviluppatori esperti alla ricerca di modi per accelerare un nuovo progetto utilizzando una piattaforma open-source ben documentata o appassionati di elettronica alla ricerca di nuovi modi per divertirsi, BeagleBone Black è una scelta eccellente come base per qualsiasi progetto.
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.




