BeagleBone Black

Attenzione ! Questo articolo è stato scritto più di due anni fa. Ti prego quindi di considerare che le informazioni riportate potrebbero non essere aggiornate o non più valide.

Arrivata in pochi giorni la BeagleBone Black, acquistata via eBay sul negozio di RoboSavvy a poco meno di 50€ spedizione (dall’UK) inclusa.

La ben più famosa alternativa, il Raspberry Pi, dopo avermi allettato per un bel po’ a causa del prezzo assolutamente competitivo, alla fine l’ho scartata per le peculiarità troppo “media” e meno “server”: cercavo qualcosa adatto a sostituire egregiamente il mio SheevaPlug di cui ho già parlato in questo blog.

Unboxing

Unboxing

La prima impressione, davanti alla misera scatolina di cartone, è stata piuttosto deludente: capisco di risparmiare sul packaging per poter mantenere il prezzo basso ma…così si esagera !!!

Comunque, scatola a parte, sono rimasto sorpreso dalle dimensioni veramente ridotte della BeagleBone: le foto accanto ad una moneta da 1€ rendono bene l’idea di quanto è piccola la board.

All’interno un piccolissimo manuale di istruzioni minimale, che però non contiene l’informazione più importante: la polarità del jack di alimentazione ! Così, a rischio di bruciare subito la scheda, vi informo che la polarità è +5V al centro e GND l’esterno.

[alert style=”yellow”] L’alimentatore NON E’ INCLUSO: le caratteristiche sono 5V 2A e ne trovate a pochi euro anche su eBay.[/alert]

Nella scatola, oltre alla BeagleBone, trovate anche il cavetto USB per il collegamento al PC.

Ecco, per vostra comodità, qualche foto della board:

Passiamo ora alle caratteristiche tecniche di questo gioiellino della tecnologia da smanettoni:

CPU AM335x 1GHz ARM® Cortex-A8

AM335x

TI Sitara AM335x

con a corredo:

  • 512MB DDR3 RAM
  • 2GB 8-bit eMMC on-board flash storage
  • 3D graphics accelerator
  • NEON floating-point accelerator
  • 2x PRU 32-bit microcontrollers
  • USB client
  • USB host
  • Ethernet 10/100
  • slot per mini SD
  • mini HDMI
  • 92 pin headers
Ovviamente questo hardware permette di usare sia Android che Linux (per ARM), di cui è già preinstallata la distro Armstrong.
L’aspetto più interessante che mi ha spinto a scegliere la BeagleBone invece del RaspberryPI è la presenza di 92 linee I/O dove poter collegare sensori ed altri devices sfruttando i bus I2C e SPI.
Inoltre si trovano tante periferiche già pronte, chiamate “cape”, per espandere la nostra BeagleBone. Eccone qualcuna interessante:

Uno degli aspetti più frustranti è una grande disponibilità di accessori per il mercato americano. Tuttavia anche in Europa ci sono alcuni distributori che forniscono comunque diverso materiale:

Prima di farvi prendere dall’entusiasmo, ci tengo a precisare che non si tratta di qualcosa che vi arriva a casa, attaccate la corrente e funziona (qualunque cosa significhi per voi). O, meglio: funziona, ma prima dovete decidere cosa volete far fare alla vostra BeagleBoard: non è un sostituto del PC casalingo, non è un sostituto per un tablet, non è un sostituto per il vostro NAS o router.
Certo, potete farlo funzionare come router, come firewall, come Centralino VoIP con Asterisk, come server web …insomma, qualsiasi applicazione da server SOHO.
[alert style=”green”] Se vi piace l’idea di poterci far girare sopra un emulatore come il MAME o lo SNES; forse è meglio puntare sul RaspberryPI che offre, a differenza del BeagleBone, migliori prestazioni multimediali ed una GPIO dedicata (esistono fior di post/blog/libri sull’argomento). [/alert]

Power on

Here we go !

Here we go !

Dopo questa prima overview sul BeagleBone, prendiamo il cavo USB e colleghiamo al nostro PC: si accenderanno subito alcuni led blu sulla board, che iniziando a lampeggiare vi informano che “qualcosa lì sopra vive“.

Sopra la board trovate anche dei micropulsanti RESET e POWER,  il cui significato dovrebbe essere abbastanza chiaro…
[alert style=”yellow”] La BeagleBone si accende anche sfruttando la porta USB del vostro PC, senza bisogno di alimentatore esterno. Ricordate, ovviamente, che le porte USB non possono erogare più di 500mA…  [/alert]
Se avete un sistema operativo GNU/Linux (non discuto con chi ha Windows…non lo uso da anni e ne sono felice !), il vostro log di sistema (dmesg) mostrerà queste righe:
[12491.604085] usb 1-1: new high-speed USB device number 3 using ehci_hcd
[12491.813124] Initializing USB Mass Storage driver...
[12491.820930] scsi4 : usb-storage 1-1:1.4
[12491.821252] usbcore: registered new interface driver usb-storage
[12491.821262] USB Mass Storage support registered.
[12492.024814] usbcore: registered new interface driver cdc_ether
[12492.031633] rndis_host 1-1:1.0: eth1: register 'rndis_host' at usb-0000:00:1d.7-1, RNDIS device, c8:a0:30:a9:98:7c
[12492.033832] usbcore: registered new interface driver rndis_host
[12492.038583] cdc_acm 1-1:1.2: This device cannot do calls on its own. It is not a modem.
[12492.038824] cdc_acm 1-1:1.2: ttyACM0: USB ACM device
[12492.046222] usbcore: registered new interface driver cdc_acm
[12492.046232] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[12492.057374] usbcore: registered new interface driver rndis_wlan
[12492.826758] scsi 4:0:0:0: Direct-Access Linux File-CD Gadget 0308 PQ: 0 ANSI: 2
[12492.829173] sd 4:0:0:0: Attached scsi generic sg1 type 0
[12492.830983] sd 4:0:0:0: [sdb] 144522 512-byte logical blocks: (73.9 MB/70.5 MiB)
[12492.832558] sd 4:0:0:0: [sdb] Write Protect is off
[12492.832572] sd 4:0:0:0: [sdb] Mode Sense: 0f 00 00 00
[12492.834549] sd 4:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[12492.842850] sdb:
[12492.845593] sd 4:0:0:0: [sdb] Attached SCSI removable disk
Molto velocemente, significano che avete accesso diretto alla scheda di memoria incorporata da 70MByte (sdb, in questo caso) e che dovreste trovarvi con una interfaccia di rete aggiuntiva (nel mio caso è stata la eth1) con IP 192.168.7.1
Nella scheda di memoria trovate documenti, guide, sorgenti…
Con l’interfaccia di rete potete direttamente accedere al sistema operativo della BeagleBone attraverso SSH:
~$ ssh -l root 192.168.7.2 
Al prompt “Password:” digitate semplicemente INVIO:
root@192.168.7.2's password: 
root@beaglebone:~#

Benvenuti nel cuore della BeagleBone ! Un veloce uname -a, giusto per iniziare:

Linux beaglebone 3.8.13 #1 SMP Wed Sep 4 09:09:32 CEST 2013 armv7l GNU/Linux

e un df -h per capire il contesto:

Filesystem Size Used Avail Use% Mounted on
rootfs 1.7G 1.1G 586M 64% /
/dev/root 1.7G 1.1G 586M 64% /
devtmpfs 250M 0 250M 0% /dev
tmpfs 250M 4.0K 250M 1% /dev/shm
tmpfs 250M 236K 250M 1% /run
tmpfs 250M 0 250M 0% /sys/fs/cgroup
tmpfs 250M 4.0K 250M 1% /tmp
/dev/mmcblk0p1 70M 54M 16M 78% /media/BEAGLEBONE_

Pinout e I/O

Pinout

Pinout

Il punto di forza della BeagleBone è l’alto numero di linee di I/O accessibili attraverso i due connettori P8 e P9 posti su i due lati.

L’immagine a destra mostra il pinout dei connettori.

 

Su questo sito, http://beaglebone.cameon.net/home, trovate informazioni più approfondite con esempi di programmazione.

Giusto per chi è alle prime armi:

GPIO = General Purpose I/O, linea utilizzabile sia in ingresso che in uscita con segnale digitale.

[alert style=”red”] Queste linee sono TTL 3,3 V e NON a 5V: la tensione massima applicabile è di 3,3V [/alert]

AIN = Analog INput, linea per l’ingresso di segnali ANALOGICI che vanno direttamente all’ADC (Analog to Digital converter).

[alert style=”red”] A questi ingressi possiamo applicare una tensione MASSIMA di 1,8V [/alert]

PWM = Pulse Width Modulation, linee in USCITA per segnali in PWM (motori passo-passo, sirene, etc etc etc…).

Ovviamente ciascuna di queste linee dovrà essere adeguatamente programmata via software, secondo quanto indicato nei documenti.

Ultima nota, sono le revisioni hardware della scheda. In particolare, quella in mio possesso è la rev. A6: verificate sempre di acquistare l’ultima revisione disponibile !

 

Michele Pinassi

Blogger, appassionato di tecnologia, società e politica. Attualmente Responsabile del Sistema telefonico di Ateneo presso l'Università degli Studi di Siena ed esperto di sicurezza informatica nello staff del DPO. Utilizza quasi esclusivamente software libero.

Potrebbero interessarti anche...

3 Risposte

  1. 01/04/2014

    […] a realizzare qualcosa di più professionale: come sapete ho acquistato, qualche tempo fa, una BeagleBone Black e vorrei utilizzarla come controllore di volo. A tal proposito, sul web ho già trovato alcune […]

  2. 03/05/2014

    […] iniziare ho deciso di provare a collegare il modulo al mio BeagleBone Black, via bus I2C, e provare ad interrogare il sensore barometrico/termometro […]

  3. 02/10/2015

    […] sperimentare altre piattaforme come la programmazione dei PIC Microchip e qualche esperimento sulla BeagleBone Black), come prima cosa ho dovuto scaricare l’IDE di programmazione […]

Rispondi

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

%d blogger hanno fatto clic su Mi Piace per questo: