intro beaglebone black - massimiliano d'ambrosio

42
BeagleBone Black espandibilita`e stabilità Massimiliano D’Ambrosio google.com/+MassimilianoDAmbrosio @iv3unm plus.hacklabudine.it (Community BBB Italia) plus.gdgudine.it v.o1 - 17 maggio 2014, Trieste minimakerfaire v.02 - 5 luglio 2014, Cecina

Upload: firenze-gtug

Post on 07-Nov-2014

356 views

Category:

Technology


1 download

DESCRIPTION

Intro BeagleBone Black - Massimiliano D'Ambrosio 05/07/2014 - Outlet dell'elettronica Cecina GDG Firenze

TRANSCRIPT

Page 1: Intro BeagleBone Black - Massimiliano D'Ambrosio

BeagleBone Blackespandibilita`e stabilità

Massimiliano D’Ambrosiogoogle.com/[email protected] (Community BBB Italia)plus.gdgudine.it

v.o1 - 17 maggio 2014, Trieste minimakerfaire

v.02 - 5 luglio 2014, Cecina

Page 2: Intro BeagleBone Black - Massimiliano D'Ambrosio

Mi chiamo Boris e sono la mascot

della fondazione

Beaglebone.org

beagleboard e beaglebone sono progetti

openhardwaresviluppati dalla

fondazione

Page 3: Intro BeagleBone Black - Massimiliano D'Ambrosio

Oggi alla mini maker faire di

trieste parliamo della

beaglebone black

Page 4: Intro BeagleBone Black - Massimiliano D'Ambrosio

Chi di voi usa la

beagleboneblack?

Page 5: Intro BeagleBone Black - Massimiliano D'Ambrosio

beagleboard.orgBoard

ott. 2011 nasce la beaglebone

“while”SoC TI Sitara

am3358/9 a 720MHz 256MB

apr. 2014 arriva la black

SoC TI Sitara am3358/9 a 1GHz 512MB emcc 2GB

altre board:BeagleBoard

Page 6: Intro BeagleBone Black - Massimiliano D'Ambrosio

● SOC○ Texas Intruments ARM Cortex A8 (ARMv7)

sitara AM3358BZCZ100 1GHz○ GPU PoverWR sgx 530 3d

● DRAM 512 mb ddr3l● Storage flash 2GB { new rev c 4GB } // micro sd● Video/audio out hdmi {connettore micro hdmi}

beaglebonefeaturesblack

Page 7: Intro BeagleBone Black - Massimiliano D'Ambrosio

● USB 2.0○ 1 porta mini USB client○ 1 porta usb host

● 1 ethernet 10/100● Alimentazione 210/460mA @ 5V - power

Management tps65217c pmic regulator + 4LDO {USB port, 5-V AC adaptor, Li-Ion battery}

● 3 pulsati ○ on/off○ reset○ boot {eMCC, SD}

beaglebonefeaturesblack

Page 8: Intro BeagleBone Black - Massimiliano D'Ambrosio

beagleboneOEMblack

*BeagleBone* *BeagleBone Black* *BlueSteel-Basic**Processor* AM3359ZCZ72, 720MHz AM3358BZCZ100, 1GHz AM3358BZCZ100, 1GHz*HDMI* No Yes No*DRAM* 256MB DDR2 400MHz 512MB DDR3L 800MHz 512MB DDR3L 800MHz*Flash* uSD 4GB eMMC, uSD uSD*Onboard JTAG* Yes, over USB Optional Optional*Serial* via USB via header via header*PWR Exp Header* Yes No No*Power* 300-500 mA@5V 210-460 mA@5V TBD

Note beaglebone.org beaglebone.org

http://elinux.org/CircuitCo:BlueSteel-BasicCircuitCo.com

Page 9: Intro BeagleBone Black - Massimiliano D'Ambrosio

beagleboneGPIOblack

Il General Purpose Input/Output (anche noto come GPIO) è un'interfaccia disponibile su alcuni dispositivi elettronici. Un dispositivo microprocessore, microcontroller o interfaccia può avere una o più connessioni GPIO su un'interfaccia con dispositivi e periferiche esterne. Queste possono agire come input, per leggere i segnali digitali dalle altre parti del circuito, o output, per controllare o segnalare agli altri dispositivi. GPIO sono spesso collocati in gruppi, tipicamente di 8 pin - una porta GPIO - che usualmente hanno GPIO individuali configurabili o come input o come output. Fonte wikipedia.

P8

P9

troviamo i connettori P8 e P9 da 46 pins. Sono le GPIO, VCC,GND,AIN...

Page 10: Intro BeagleBone Black - Massimiliano D'Ambrosio

beaglebonePRUblack

All’interno del SoC TI AM3359, e quindi la bbb, ci sono due microcontrollori a 32 bit (PRU o PRUSSv2) a 200MHz.Lavorano in modo indipendente ed in realtime dal ARM.

Praticamene grazie alle Programmable Realtime Unit SubSystem (PRUSS) sulla BBB avete 2 microntrollori con accesso diretto ad alcune GPIO che lavorano indipendentemete tra loro ed anche dal ARM.

Insomma TRE processori in una board.

Page 11: Intro BeagleBone Black - Massimiliano D'Ambrosio

beaglebonePRUblack

Provides 2 Independent Programmable Realtime Unit Cores

● 32-Bit Load/Store RISC architecture● 4K Byte instruction RAM per core● 512 Bytes data RAM per core● PRUSS can be disabled via software

to save power● Register 30 of each PRU is exported

from the subsystem in addition to the normal R31 output of the PRU cores.

● PRU intended operation is little endian similar to ARM and DSP processors.

Provides standard power management mechanism

● Clock gating provided● Entire subsystem under a single PSC

clock gating domain

Provides interrupt controller

Provides switched central resource

http://processors.wiki.ti.com/index.php/Programmable_Realtime_Unit_Subsystem

Page 12: Intro BeagleBone Black - Massimiliano D'Ambrosio

beaglebonePRUblack

Per esempio: a Trieste alla Elettra - Sincrotrone usano diverse beaglebone white con le due PRU nel progetto BEAGLEBONE FOR EMBEDDED CONTROL SYSTEM APPLICATIONS.

http://accelconf.web.cern.ch/AccelConf/ICALEPCS2013/papers/momib05.pdf

Informazioni sulle delle PRU:

● http://processors.wiki.ti.com/index.php/Programmable_Realtime_Unit_Subsystem

● http://elinux.org/ECE497_BeagleBone_PRU● http://www.element14.com/community/community/designcenter/single-board-

computers/next-gen_beaglebone//blog/2013/05/22/bbb--working-with-the-pru-icssprussv2

Page 13: Intro BeagleBone Black - Massimiliano D'Ambrosio

beagleboneCAPEblack

Se conoscete l’ecosistema Arduino sapere cosa sono le shields. Anche la BBB ha qualche cosa di simile chiamate cape che si inseriscono nei connettori delle gpio

Un elenco delle capes disponibili sono presenti su beaglebonecapes.com

fra poco vediamo direttamente sulla bbb sia le gPIO che le capes disponibili.

Page 14: Intro BeagleBone Black - Massimiliano D'Ambrosio

beagleboneDTblack

Solo un’accento sui Device Tree...

Device Tree (DT) e Device Tree Overlay descrivono hardware in un sistema. sONO le GPIO, interfacce, eccLinux supporta diverse architetture (ARM, x86,...) e sotto architetture (come i SoC ARM). L’uso del DT è diventato obbligatorio per permettere una migliore gestione del kernel.Dal kernel 3.8 anche BeagleBone Black usa i DT .

● Beaglebone and the 3.8 Kerneldocs.google.com/document/d/17P54kZkZO_-JtTjrFuVz-Cp_RMMg7GB_8W9JK9sLKfA/pub

● Adafruit Introduction to the BeagleBone Black Device Treelearn.adafruit.com/introduction-to-the-beaglebone-black-device-tree

● Device Tree www.devicetree.org

Page 15: Intro BeagleBone Black - Massimiliano D'Ambrosio

GNU/LINUX● Ufficiali

○ debian {dal 23/04/2014}○ Ångström GNU/linux

● altre distribuzioni {ubuntu, archlinux.... E GENERALMENTE TUTTE QUELLE con supporto per arm}

beagleboneOSblack

GNU/Linux

&

Android

Page 16: Intro BeagleBone Black - Massimiliano D'Ambrosio

beagleboneosblack

La BBB arriva con GNU/linux preinstallato! nella flash

● Ångström con hw rev A & B

● debian con rev c

Ångström è una distribuzionei ottimizzata per dispositivi embedded nata dalla fusione dei progetti OpenZaurus, OpenEmbedded e OpenSIMpad.

Info: angstrom-distribution.org

Page 17: Intro BeagleBone Black - Massimiliano D'Ambrosio

beagleboneblack

Per aggiornare i pacchetti della distribuzione installata:

● Ångström○ oapk update○ oapk upgrade

● Debian○ apt-get update○ apt-get upgrade

os

Page 18: Intro BeagleBone Black - Massimiliano D'Ambrosio

beagleboneblack

se vogliamo ripristinare o cambiare la distribuzione nella emcc:

● scaricare da beagleboard.org/latest-images ultima immagine GNU/linux per la bbb.

● decomprimere il file con○ xz -d BBB-eMMC-flasher-debian_version.img.xz

● inserire una microSD○ dd bs=1M id=BBB-eMMC-flasher-debian_version.img if=/dev/sdX

■ sostituire if=/dev/sdX con il valore corretto

os

Page 19: Intro BeagleBone Black - Massimiliano D'Ambrosio

beagleboneblack

● al termine inserire la microSD nella bbb● accendere la bbb● attendere dai 30/60min (dipende dalla velocita della

SD)● Quando i 4 led della BBB rimangano accessi● spegnere la bbb, togliere SD ed accendere.● ora avete aggiornata a nuova la bbb.

os

Page 20: Intro BeagleBone Black - Massimiliano D'Ambrosio

beagleboneblack

Personalizzare l’installazione da SD -> emcc

Durate update della flash è possibile lavorare sulla bbb apportando modifiche alla configurazione, installare pacchetti, nostri programmi…le modifiche che vengono “fatte” nella sd in quanto root.

Al termine basta un reboot... aspettare i 30/60 min… la bbb è pronta con le modifiche apportate.Ora è possibile inserire SD su un’altra board...

os

Page 21: Intro BeagleBone Black - Massimiliano D'Ambrosio

I servizi che troviamo come le distribuzioni appena viste:● webserver● nodejs● server ssh● LXDE● ...

Libreria● bonescript, libreria javascript per accedere

alle GPIO

beagleboneblack os

Page 22: Intro BeagleBone Black - Massimiliano D'Ambrosio

beagleboneblack

Altre distribuzioni GNU/Linux e Android:

● OfficiaL WIKIwww.elinux.org/Beagleboard:BeagleBoneBlack

● wiki communitywww.elinux.org/BeagleBone_Community

Risorse:

● sito: beaglebone.org● wiki: http://www.elinux.org/BeagleBoneBlack

G+ Community:● Officlal plus.google.

com/communities/104960311812236799231● BBB plus.google.com/communities/109063557165602177414● BBB IT plus.google.com/communities/115569723765781184028

os

Page 23: Intro BeagleBone Black - Massimiliano D'Ambrosio

● per accedere alla GPIO sono disponibile librerie.

● Si accede anche da riga di comando

beagleboneblack os

Oppure da console

echo "2" > /sys/class/gpio/exportecho "out" > /sys/class/gpio/gpio2/directionecho "1" > /sys/class/gpio/gpio2/valueecho "0" > /sys/class/gpio/gpio2/valueecho "2" > /sys/class/gpio/unexport

Page 24: Intro BeagleBone Black - Massimiliano D'Ambrosio

● 7 Analog Pins

● 65 Digital Pins at 3.3V

● 2x I2C

● 2x SPI

● 2x CAN Bus

beaglebonePythonblack

● 4 Timers

● 4x UART

● 8x PWM

● A/D Converter

Python library by Adafruit

Tutorial:learn.adafruit.com/setting-up-io-python-library-on-beaglebone-black

Install:

sudo pip install Adafruit_BBIO

Page 25: Intro BeagleBone Black - Massimiliano D'Ambrosio

Il contenuto della confezione

Page 26: Intro BeagleBone Black - Massimiliano D'Ambrosio

Tolta dalla scatola e senza nessun altro tipo di intervento di preparazione:

1. Colleghiamo la bbb tramite la miniUSB alla usb del nostro computer con un cavetto

2. attendiamo alcuni secondi per il boot della bbb a. viene trovato un nuovo storage (la BBB), che

contiene delle utilility e driver… se serve installare i driver

3. viene creata una piccola rete su usb, 192.168.7.xa. .1 è il nostro computerb. .2 è la bbb

beaglebonedemoblack

192.168.7.1192.168.7.2

Page 27: Intro BeagleBone Black - Massimiliano D'Ambrosio

...

● Apriamo firefox o chrome e come url inseriamo IP 192.168.7.2

● passiamo sulla beagleboneblack per scoprire cosa troviamo già pronto fuori dalla scatola.

beaglebonedemoblack

192.168.7.1192.168.7.2

Page 28: Intro BeagleBone Black - Massimiliano D'Ambrosio

Modo StandAlone

Colleghiamo la un cavo di rete alla BBB, eventuale tastiera, mouse e monitor ed alimentiamo a 5v

beaglebonedemoblack

Page 29: Intro BeagleBone Black - Massimiliano D'Ambrosio

Arduino user Space

● È possibile eseguire codice scritto per arduino sulla beaglebone black.

● una tabella definisce la corrispondenza tra i pins Arduino e le GPIo (P9) della beaglebone BLACK

● elinux.org/Userpace_Arduino

beagleboneArduinoblack

Arduino pin BBB GPIO

0 P9_11

1 P9_13

2 P9_15

3 P9_14

4 P9_12

... ...

Page 30: Intro BeagleBone Black - Massimiliano D'Ambrosio

Arduino user Space

● Con il rilascio della debian sulla bbb, la modalità Arduino user space e` possibile direttamente dal tramite web dal ide cloud9 senza installare nient’altro○ scrivo il codice in “stile” arduino dentro ide○ lo salvo con estensione .ino○ RUN...

● posso eseguire il file .ino anche da console

beagleboneArduinoblack

Page 31: Intro BeagleBone Black - Massimiliano D'Ambrosio

● Un Elenco dei progetti con la beaglebone e beagleboard sono presenti su

beagleboard.org/project

● È anche possibile/consigliato inserire i propri progetti (hardware e/o software) in questa pagina

beagleboneprojectblack

Page 32: Intro BeagleBone Black - Massimiliano D'Ambrosio

I principi dell’Open Source Hardware (OSHW) 1.0

L’hardware open source è l’hardware il cui progetto è reso pubblico in modo che chiunque possa studiare, modificare, distribuire, realizzare, e vendere il progetto o l’hardware basato su di esso. La fonte dell’hardware, il progetto da cui è stato realizzato, è disponibile nel formato migliore per apportarvi modifiche. Idealmente, l’hardware open source utilizza componenti e materiali disponibili, processi standard, infrastruttura aperta, contenuti senza restrizione e strumenti di progettazione open-source per massimizzare la capacità degli individui di produrre e utilizzare l’hardware. L’hardware open source dà alle persone la libertà di controllare la loro tecnologia, la condivisione della conoscenza ed incoraggia il commercio attraverso lo scambio aperto di progetti.

Definizione dell’Open Source Hardwarehttp://www.oshwa.org/definition/italian/

Page 33: Intro BeagleBone Black - Massimiliano D'Ambrosio

beagleboneoshwblack

1. La documentazione Il punto 1 della definizione viene rispettato dalla bbb

● Schema elettrico disponibile in formato CAD // scaricabile dal sito del produttore

● Layout del PCB (file gerber) // scaricabile dal sito del produttore

● elenco dei componenti/materiale disponibile in singoli pezzi - BOM (Bill of Materials) // normalmente disponibili direttamente da distributori/rivenditori di componenti elettronici.

Page 34: Intro BeagleBone Black - Massimiliano D'Ambrosio

3. Il Software necessarioSe il progetto di licenza richiede software, embedded o di altro tipo (firmware o altro), per funzionare adeguatamente e svolgere le sue funzioni essenziali, la licenza può richiedere che una delle seguenti condizioni vengano soddisfatte:

A. Le interfacce sono sufficientemente documentate tale che si possa scrivere il software open source che consente al dispositivo di funzionare correttamente e di svolgere le sue funzioni essenziali. Per esempio, questo può includere l’uso di diagrammi dettagliati della temporizzazione del segnale o pseudocodice per illustrare chiaramente l’interfaccia in funzione.

B. Il software necessario è rilasciato sotto una licenza open source approvata OSI

beagleboneoshwblack

IL soc TI della bbb implementa, su

licenza, una GPU Imaginations

PowerVR SGX530 3D e rispetta il punto 3.a

Page 35: Intro BeagleBone Black - Massimiliano D'Ambrosio

beagleboneoshwblack

qui trovate tutta la documentazione oshW:

beagleboard.org/hardware/design

Page 36: Intro BeagleBone Black - Massimiliano D'Ambrosio

Community BeagleBone

Italia(unofficial)

plus.hacklabudine.it

Page 37: Intro BeagleBone Black - Massimiliano D'Ambrosio

Domande?

Page 38: Intro BeagleBone Black - Massimiliano D'Ambrosio

beaglebone1 2 3black

+

dalla collaborazione tra il TEAM Arduino e

begalebone.org nasceARDUINOTRE

Page 39: Intro BeagleBone Black - Massimiliano D'Ambrosio

Fonte: post Texas Instrumentsottobre 2013

Page 40: Intro BeagleBone Black - Massimiliano D'Ambrosio

beaglebone1 2 3black

Arduino TRE Developer Edition

Page 41: Intro BeagleBone Black - Massimiliano D'Ambrosio

massimiliano@beaglebone:~$ cat contact.json { "Name":"Massimiliano D'Ambrosio", "G+":"google.com/+MassimilianoDAmbrosio", "Twitter":"@iv3unm", "HackLab Udine": { "Site":"www.hacklabudine.it", "G+":"plus.hacklabudine.it", "Twitter":"@hacklabudine", "memo":"unOfficial Community BeagleBone Italia" }, "Google Developer Group Udine": { "Site":"www.gdgudine.it", "G+":"plus.gdgudine.it", "Twitter":"@gdgudine" }}

massimiliano@beaglebone:~$ sudo shutdown now[sudo] password for massimiliano:

Broadcast message from root@beaglebone (pts/0) (Sat May 10 20:33:39 2014):The system is going down to maintenance mode NOW!

Page 42: Intro BeagleBone Black - Massimiliano D'Ambrosio