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.
UnboxingLa 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:
CPU AM335x 1GHz ARM® Cortex-A8
TI Sitara AM335xcon 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
- Display LCD 7″
- Display 4.3” TFT LCD (anche con touchscreen)
- Battery power
- Breadboard per prototyping
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:
- Tigal (Austria, in €)
- Farnell (UK, in £)
Power on
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“.
[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
~$ ssh -l root 192.168.7.2
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
PinoutIl 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 !