SlideShare a Scribd company logo
1 of 10
Download to read offline
Hands on Embedded Linux with BeagleBone Black
Daniele Costarella - Mario Pucciarelli

PRIMI PASSI CON LA SCHEDA BEAGLEBONE BLACK
La scheda BeagleBone Black presente due file di pin che permettono di andare a
collegarsi alle periferiche del microcontrollore. E' possibile quindi lavorare con led,
pulsanti, tasti, ecc.
Nel dettaglio i collegamenti disponibili sono i seguenti:

ACCESSO SSH
Per interfacciarsi con la scheda si può utilizzare una connessione SSH, che viene avviata
da terminale con il comando seguente:
ssh root@beaglebone.local
NB: le credenziali di accesso alla board sono user = root – password = root

9 Novembre 2013 – Giffoni Valle Piana (SA)
Hands on Embedded Linux with BeagleBone Black
Daniele Costarella - Mario Pucciarelli

Nel caso in cui si utilizzi Windows anziché Linux è necessario seguire i passi indicati nel
seguito.
Innanzitutto è necessario installare gli opportuni driver che possono essere reperiti ai
seguenti link:
•

Windows 64 bit:
http://beagleboard.org/static/Drivers/Windows/BONE_D64.exe
https://github.com/jadonk/beaglebone-getting-started/tree/sysco-ch-signed-driv
ers/Drivers/Windows (Driver certificati)

•

Windows 32 bit:
http://beagleboard.org/static/Drivers/Windows/BONE_DRV.exe

Poi è necessario scaricare il programma terminale Putty al seguente indirizzo:
http://www.putty.org/
Avviato Putty, lo si configura creando una connessione SSH verso l'indirizzo 192.168.7.2
sulla porta 22 dopodiché si avvia la connessione semplicemente cliccando su Connect. Si
vedrà un messaggio di avviso da ignorare poi si avrà accesso alla board e sarà possibile
fare il login.
INSTALLAZIONE LIBRERIA PYTHON
Per poter usare le periferiche programmando la scheda in Python è necessario installarvi
delle librerie specifiche che possono essere trovate ad esempio sul sito Adafruit.
1. La prima cosa da fare è ottenere ovviamente un accesso SSH alla board (vedi
sopra)
2. Si imposta la data e l'ora per essere sicuri che sia corretta (per fare questa
operazione è necessario ovviamente avere la board collegata ad internet
altrimenti non potrà essere raggiunto il server dell'ora) :
/usr/bin/ntpdate ­b ­s ­u pool.ntp.org 

3. Si installa la libreria mediante il comando:
opkg update && opkg install python­pip python­setuptools python­smbus 
pip install Adafruit_BBIO 

4. Subito dopo aver installato la libreria si può verificare l'effettivo funzionamento
dando il comando:
9 Novembre 2013 – Giffoni Valle Piana (SA)
Hands on Embedded Linux with BeagleBone Black
Daniele Costarella - Mario Pucciarelli

python ­c "import Adafruit_BBIO.GPIO as GPIO; print GPIO" 

Ciò dovrebbe fare in modo che a video venga visualizzato il seguente messaggio:
<module 'Adafruit_BBIO.GPIO' from 
'/usr/local/lib/python2.7/dist­packages/Adafruit_BBIO/GPIO.so'> 

E' possibile anche verificare l'installazione eseguendo il comando "python" per
abilitare l'interprete e dando il comando di importazione della libreria:
import Adafruit_BBIO.GPIO as GPIO
print GPIO 

5. Il che dovrebbe far comparire ancora una volta il messaggio di sopra

LED BLINKING
Ovviamente per prima cosa si devono andare a realizzare gli opportuni collegamenti
come si può vedere nella seguente immagine:

9 Novembre 2013 – Giffoni Valle Piana (SA)
Hands on Embedded Linux with BeagleBone Black
Daniele Costarella - Mario Pucciarelli

A questo punto è possibile lavorare direttamente dalla console:
1. Lanciare la console
# python 
Python 2.7.3 (default, Apr  3 2013, 21:37:23) 
[GCC 4.7.3 20130205 (prerelease)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> 

2. Importare la libreria
>>> import Adafruit_BBIO.GPIO as GPIO 

3. Impostare il pin di uscita desiderato come output (di default sono tutti input)
>>> GPIO.setup("P9_41", GPIO.OUT) 

4. Accendere il led
>>> GPIO.output("P9_41", GPIO.HIGH) 

5. Spegnere il led
>>> GPIO.output("P9_41", GPIO.LOW)

A parte il comando diretto è possibile scrivere un semplice programma per l'interprete
Python, seguendo la procedura descritta:
1. Creare un nuovo file
2. # nano blink.py 

3. Scrivere nel file il seguente codice
import Adafruit_BBIO.GPIO as GPIO 
import time 
GPIO.setup("P9_41 ", GPIO.OUT) 
while True: 
    GPIO.output("P9_41 ", GPIO.HIGH) 
    time.sleep(0.5) 
    GPIO.output("P9_41 ", GPIO.LOW) 
    time.sleep(0.5) 

4. Salvare ed uscire CTRL-x e poi Y per dare conferma.
9 Novembre 2013 – Giffoni Valle Piana (SA)
Hands on Embedded Linux with BeagleBone Black
Daniele Costarella - Mario Pucciarelli

5. Avviare il programma
# python blink.py 

6. Per fermare l'esecuzione è sufficiente premere CRTL-c
Fatto questo può essere interessante continuare a lavorare sul programma magari
modificando la durata degli stati on e off, oppure inserendo altri led e creando degli
effetti luminosi.
MISURA DELLA TEMPERATURA
Realizzare i collegamenti secondo lo schema seguente:

Anche in questo caso è possibile lavorare sia direttamente da linea di comando sia
mediante uno script che raccolga tutte le istruzioni da eseguire
1. Avviare la console
9 Novembre 2013 – Giffoni Valle Piana (SA)
Hands on Embedded Linux with BeagleBone Black
Daniele Costarella - Mario Pucciarelli

# python 
Python 2.7.3 (default, Apr  3 2013, 21:37:23) 
[GCC 4.7.3 20130205 (prerelease)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> 

2. Importare la libreria per l'ADC
>>> import Adafruit_BBIO.ADC as ADC 

3. Inizializare il modulo
>>> ADC.setup() 

4. Dare il comando di lettura del pin
>>> ADC.read("P9_40") 
0.38999998569488525

Nel caso si voglia invece realizzare uno script:
1. Creare il file
nano temperature.py 

2. Inserire nello script le seguenti linee di codice
import Adafruit_BBIO.ADC as ADC 
import time 
sensor_pin = 'P9_40' 
ADC.setup() 
while True: 
    reading = ADC.read(sensor_pin) 
    millivolts = reading * 1800  # 1.8V reference = 1800 mV 
    temp_c = (millivolts ­ 500) / 10 
    temp_f = (temp_c * 9/5) + 32 
    print('mv=%d C=%d F=%d' % (millivolts, temp_c, temp_f)) 
    time.sleep(1) 

3. Salvare ed uscire con CTRL-x e dare Y per conferma.
4. Avviare il programma
python temperature.py 
9 Novembre 2013 – Giffoni Valle Piana (SA)
Hands on Embedded Linux with BeagleBone Black
Daniele Costarella - Mario Pucciarelli

5. Interrompere l'esecuzione con CTRL-c
Una volta realizzato ciò una cosa interessante da fare sarebbe modificare il programma
integrandolo con quello che fa accendere il led, realizzando uno script capace di
accendere un led nel momento in cui la temperatura misurata salga sopra una certa
soglia.
COLLEGAMENTO DI UN PULSANTE
Resettare la board in modo che tutti i pin siano reimpostati come pin di ingresso
(altrimenti usare un pin precedentemente impostato come output in direzione input
potrebbe danneggiarlo), poi effettuare i seguenti collegamenti:

A questo punto procederemo direttamente a realizzare lo script, fermo restando che sia
possibile ancora dare uno alla volta i comandi mediante la console.
1. Creare il file
nano switch.py
9 Novembre 2013 – Giffoni Valle Piana (SA)
Hands on Embedded Linux with BeagleBone Black
Daniele Costarella - Mario Pucciarelli

2. Inserire nello script le seguenti linee di codice
import Adafruit_BBIO.GPIO as GPIO
import time
GPIO.setup("P8_12", GPIO.IN)
old_switch_state = 0
while True:
    new_switch_state = GPIO.input("P8_12")
    if new_switch_state == 1 and old_switch_state == 0 :
        print('Do not press this button again!')
        time.sleep(0.1)
    old_switch_state = new_switch_state

3. Salvare ed uscire con CTRL-x e dare Y per conferma.
4. Avviare il programma
python switch.py

5. A questo punto ogni volta che si preme il pulsante, si vedrà una scritta a video
6. Interrompere l'esecuzione con CTRL-c
Ancora una volta ci si può inventare nuovi script capaci magari di accendere un led nel
momento in cui si va a premere il tasto.
EFFETTO FADE MEDIANTE PWM
E' possibile realizzare un simpatico effetto di fading di un led adoperando un PWM, ossia
dando al led un segnale che sia formato da intervalli in cui il livello è alto ed intervalli in
cui è basso; andando a variare la durata degli intervalli si può rendere il led più o meno
brillante (in realtà l'effetto si ottiene facendolo lampeggiare ON/OFF ma l'occhio umano
non riesce ad osservare fenomeni così rapidi quindi vedrà la luminosità diminuire).
Effettuare i seguenti collegamenti:

9 Novembre 2013 – Giffoni Valle Piana (SA)
Hands on Embedded Linux with BeagleBone Black
Daniele Costarella - Mario Pucciarelli

La procedura dettagliata è in questo caso:
1. Creare il file
nano led_fade.py

2. Inserire nello script le seguenti linee di codice
import Adafruit_BBIO.PWM as PWM
import time
led_pin = “P9_14”
PWM.start(led_pin, 0)
while True:
    for i in range(0, 100)
        PWM.set_duty_cycle(led_pin, i)
        time.sleep(0.05)
    for i in range(0, 100)
        PWM.set_duty_cycle(led_pin, i)
        time.sleep(0.05)

3. Salvare ed uscire con CTRL-x e dare Y per conferma
9 Novembre 2013 – Giffoni Valle Piana (SA)
Hands on Embedded Linux with BeagleBone Black
Daniele Costarella - Mario Pucciarelli

4. Avviare il programma
python led_fade.py

9 Novembre 2013 – Giffoni Valle Piana (SA)

More Related Content

What's hot

Raspberry Pi - Introduzione, caratteristiche, programmazione, casi d'uso
Raspberry Pi - Introduzione, caratteristiche, programmazione, casi d'usoRaspberry Pi - Introduzione, caratteristiche, programmazione, casi d'uso
Raspberry Pi - Introduzione, caratteristiche, programmazione, casi d'usogianlucaghettini
 
[LDNA2018] - JACK Audio Connection Kit: la tua Patchbay virtuale!
[LDNA2018] - JACK Audio Connection Kit: la tua Patchbay virtuale![LDNA2018] - JACK Audio Connection Kit: la tua Patchbay virtuale!
[LDNA2018] - JACK Audio Connection Kit: la tua Patchbay virtuale!Marcello Marino
 
Il dual boot scolastico perfetto (2012)
Il dual boot scolastico perfetto (2012)Il dual boot scolastico perfetto (2012)
Il dual boot scolastico perfetto (2012)Marcello Missiroli
 
LinuxDay 2005 - Multimedialità con Linux - slides
LinuxDay 2005 - Multimedialità con Linux - slidesLinuxDay 2005 - Multimedialità con Linux - slides
LinuxDay 2005 - Multimedialità con Linux - slidesMaurizio Antonelli
 
Matteo Baccan - Valerio Tognozzi - Novara LinuxDay 2015
Matteo Baccan - Valerio Tognozzi - Novara LinuxDay 2015Matteo Baccan - Valerio Tognozzi - Novara LinuxDay 2015
Matteo Baccan - Valerio Tognozzi - Novara LinuxDay 2015Matteo Baccan
 
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi ClusterCodemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi ClusterMatteo Baccan
 
Introduzione all’informatica 2011
Introduzione all’informatica 2011Introduzione all’informatica 2011
Introduzione all’informatica 2011donmimi
 
Matteo baccan raspberry pi - linox 2015 - corso parte 1
Matteo baccan   raspberry pi - linox 2015 - corso parte 1Matteo baccan   raspberry pi - linox 2015 - corso parte 1
Matteo baccan raspberry pi - linox 2015 - corso parte 1Matteo Baccan
 
Applicazione JavaFX – CORSA DI AUTO SU TRACCIATI REALI
Applicazione JavaFX – CORSA DI AUTO SU TRACCIATI REALIApplicazione JavaFX – CORSA DI AUTO SU TRACCIATI REALI
Applicazione JavaFX – CORSA DI AUTO SU TRACCIATI REALIbenfante
 
Introduzione al Free Software: storia e prospettive
Introduzione al Free Software: storia e prospettiveIntroduzione al Free Software: storia e prospettive
Introduzione al Free Software: storia e prospettivecarlobecchi
 
Creazione di una stazione meteo con prodotti opensource. Linux day 2014 - Lin...
Creazione di una stazione meteo con prodotti opensource. Linux day 2014 - Lin...Creazione di una stazione meteo con prodotti opensource. Linux day 2014 - Lin...
Creazione di una stazione meteo con prodotti opensource. Linux day 2014 - Lin...Matteo Baccan
 
Guida al computer - Lezione 46 - Il 1° Avvio - Il B.I.O.S. Parte 6
Guida al computer - Lezione 46 - Il 1° Avvio - Il B.I.O.S. Parte 6Guida al computer - Lezione 46 - Il 1° Avvio - Il B.I.O.S. Parte 6
Guida al computer - Lezione 46 - Il 1° Avvio - Il B.I.O.S. Parte 6caioturtle
 
Codemotion 2013: Succo di lampone: come ottimizzare JAVA e PHP su un’architet...
Codemotion 2013: Succo di lampone: come ottimizzare JAVA e PHP su un’architet...Codemotion 2013: Succo di lampone: come ottimizzare JAVA e PHP su un’architet...
Codemotion 2013: Succo di lampone: come ottimizzare JAVA e PHP su un’architet...Matteo Baccan
 

What's hot (17)

Raspberry Pi - Introduzione, caratteristiche, programmazione, casi d'uso
Raspberry Pi - Introduzione, caratteristiche, programmazione, casi d'usoRaspberry Pi - Introduzione, caratteristiche, programmazione, casi d'uso
Raspberry Pi - Introduzione, caratteristiche, programmazione, casi d'uso
 
[LDNA2018] - JACK Audio Connection Kit: la tua Patchbay virtuale!
[LDNA2018] - JACK Audio Connection Kit: la tua Patchbay virtuale![LDNA2018] - JACK Audio Connection Kit: la tua Patchbay virtuale!
[LDNA2018] - JACK Audio Connection Kit: la tua Patchbay virtuale!
 
Il dual boot scolastico perfetto (2012)
Il dual boot scolastico perfetto (2012)Il dual boot scolastico perfetto (2012)
Il dual boot scolastico perfetto (2012)
 
LinuxDay 2005 - Multimedialità con Linux - slides
LinuxDay 2005 - Multimedialità con Linux - slidesLinuxDay 2005 - Multimedialità con Linux - slides
LinuxDay 2005 - Multimedialità con Linux - slides
 
Matteo Baccan - Valerio Tognozzi - Novara LinuxDay 2015
Matteo Baccan - Valerio Tognozzi - Novara LinuxDay 2015Matteo Baccan - Valerio Tognozzi - Novara LinuxDay 2015
Matteo Baccan - Valerio Tognozzi - Novara LinuxDay 2015
 
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi ClusterCodemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
 
Introduzione all’informatica 2011
Introduzione all’informatica 2011Introduzione all’informatica 2011
Introduzione all’informatica 2011
 
Matteo baccan raspberry pi - linox 2015 - corso parte 1
Matteo baccan   raspberry pi - linox 2015 - corso parte 1Matteo baccan   raspberry pi - linox 2015 - corso parte 1
Matteo baccan raspberry pi - linox 2015 - corso parte 1
 
Applicazione JavaFX – CORSA DI AUTO SU TRACCIATI REALI
Applicazione JavaFX – CORSA DI AUTO SU TRACCIATI REALIApplicazione JavaFX – CORSA DI AUTO SU TRACCIATI REALI
Applicazione JavaFX – CORSA DI AUTO SU TRACCIATI REALI
 
Introduzione al Free Software: storia e prospettive
Introduzione al Free Software: storia e prospettiveIntroduzione al Free Software: storia e prospettive
Introduzione al Free Software: storia e prospettive
 
Linux console
Linux consoleLinux console
Linux console
 
Creazione di una stazione meteo con prodotti opensource. Linux day 2014 - Lin...
Creazione di una stazione meteo con prodotti opensource. Linux day 2014 - Lin...Creazione di una stazione meteo con prodotti opensource. Linux day 2014 - Lin...
Creazione di una stazione meteo con prodotti opensource. Linux day 2014 - Lin...
 
Guida al computer - Lezione 46 - Il 1° Avvio - Il B.I.O.S. Parte 6
Guida al computer - Lezione 46 - Il 1° Avvio - Il B.I.O.S. Parte 6Guida al computer - Lezione 46 - Il 1° Avvio - Il B.I.O.S. Parte 6
Guida al computer - Lezione 46 - Il 1° Avvio - Il B.I.O.S. Parte 6
 
Cell Programming 1
Cell Programming 1Cell Programming 1
Cell Programming 1
 
Codemotion 2013: Succo di lampone: come ottimizzare JAVA e PHP su un’architet...
Codemotion 2013: Succo di lampone: come ottimizzare JAVA e PHP su un’architet...Codemotion 2013: Succo di lampone: come ottimizzare JAVA e PHP su un’architet...
Codemotion 2013: Succo di lampone: come ottimizzare JAVA e PHP su un’architet...
 
Cuma rev001
Cuma rev001Cuma rev001
Cuma rev001
 
Usato
UsatoUsato
Usato
 

Similar to Primi passi con la scheda BeagleBone Black

Installazione ambientepython ubuntumate
Installazione ambientepython ubuntumateInstallazione ambientepython ubuntumate
Installazione ambientepython ubuntumateMarco Buttolo
 
Succo di lampone: come ottimizzare JAVA e PHP su un’architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un’architettura Raspberry Pi...Succo di lampone: come ottimizzare JAVA e PHP su un’architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un’architettura Raspberry Pi...Codemotion
 
Linux Embedded per l'automazione
Linux Embedded per l'automazioneLinux Embedded per l'automazione
Linux Embedded per l'automazioneDaniele Costarella
 
Guida al computer - Lezione 107 - Pannello di Controllo – Crittografia unità ...
Guida al computer - Lezione 107 - Pannello di Controllo – Crittografia unità ...Guida al computer - Lezione 107 - Pannello di Controllo – Crittografia unità ...
Guida al computer - Lezione 107 - Pannello di Controllo – Crittografia unità ...caioturtle
 
Seminario Raspberri Pi - Parte 2 - GULP
Seminario Raspberri Pi - Parte 2 - GULPSeminario Raspberri Pi - Parte 2 - GULP
Seminario Raspberri Pi - Parte 2 - GULPNicola Corti
 
Installare i server via rete con Cobbler
Installare i server via rete con CobblerInstallare i server via rete con Cobbler
Installare i server via rete con CobblerBabel
 
TYPO3 CMS 6.2 LTS - Le Novità
TYPO3 CMS 6.2 LTS - Le NovitàTYPO3 CMS 6.2 LTS - Le Novità
TYPO3 CMS 6.2 LTS - Le NovitàRoberto Torresani
 
Con Aruba, a lezione di Cloud #lezione 30 - parte 2: 'GitLab e Cloud Server ...
Con Aruba, a lezione di Cloud  #lezione 30 - parte 2: 'GitLab e Cloud Server ...Con Aruba, a lezione di Cloud  #lezione 30 - parte 2: 'GitLab e Cloud Server ...
Con Aruba, a lezione di Cloud #lezione 30 - parte 2: 'GitLab e Cloud Server ...Aruba S.p.A.
 
Primi passi con kubuntu
Primi passi con kubuntuPrimi passi con kubuntu
Primi passi con kubuntumarcolinux
 
Linux Capabilities - ita - v2.1.5 - compatta
Linux Capabilities - ita - v2.1.5 - compattaLinux Capabilities - ita - v2.1.5 - compatta
Linux Capabilities - ita - v2.1.5 - compattaAlessandro Selli
 
Guida al computer - Lezione 53 - Il Sistema Operativo Parte 3
Guida al computer - Lezione 53 - Il Sistema Operativo Parte 3Guida al computer - Lezione 53 - Il Sistema Operativo Parte 3
Guida al computer - Lezione 53 - Il Sistema Operativo Parte 3caioturtle
 
Guida al Computer - Lezione 106 - Pannello di Controllo – Crittografia Unità ...
Guida al Computer - Lezione 106 - Pannello di Controllo – Crittografia Unità ...Guida al Computer - Lezione 106 - Pannello di Controllo – Crittografia Unità ...
Guida al Computer - Lezione 106 - Pannello di Controllo – Crittografia Unità ...caioturtle
 
Cosino Enigma: the encrypted GNU/LINUX system has come true!
Cosino Enigma: the encrypted GNU/LINUX system has come true!Cosino Enigma: the encrypted GNU/LINUX system has come true!
Cosino Enigma: the encrypted GNU/LINUX system has come true!festival ICT 2016
 
STARTER KIT ORION….un vero e proprio laboratorio elettronico (by FASAR ELETT...
STARTER KIT ORION….un vero e proprio laboratorio  elettronico (by FASAR ELETT...STARTER KIT ORION….un vero e proprio laboratorio  elettronico (by FASAR ELETT...
STARTER KIT ORION….un vero e proprio laboratorio elettronico (by FASAR ELETT...Flavio Falcinelli
 
TYPO3 e la partenza intelligente. Familiarizzare con l'ambiente e lo strument...
TYPO3 e la partenza intelligente. Familiarizzare con l'ambiente e lo strument...TYPO3 e la partenza intelligente. Familiarizzare con l'ambiente e lo strument...
TYPO3 e la partenza intelligente. Familiarizzare con l'ambiente e lo strument...gammsystem
 
Installazione Qt/Qt Quick per target Android
Installazione Qt/Qt Quick  per target AndroidInstallazione Qt/Qt Quick  per target Android
Installazione Qt/Qt Quick per target AndroidPaolo Sereno
 

Similar to Primi passi con la scheda BeagleBone Black (20)

Installazione ambientepython ubuntumate
Installazione ambientepython ubuntumateInstallazione ambientepython ubuntumate
Installazione ambientepython ubuntumate
 
Succo di lampone: come ottimizzare JAVA e PHP su un’architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un’architettura Raspberry Pi...Succo di lampone: come ottimizzare JAVA e PHP su un’architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un’architettura Raspberry Pi...
 
Linux Embedded per l'automazione
Linux Embedded per l'automazioneLinux Embedded per l'automazione
Linux Embedded per l'automazione
 
Guida al computer - Lezione 107 - Pannello di Controllo – Crittografia unità ...
Guida al computer - Lezione 107 - Pannello di Controllo – Crittografia unità ...Guida al computer - Lezione 107 - Pannello di Controllo – Crittografia unità ...
Guida al computer - Lezione 107 - Pannello di Controllo – Crittografia unità ...
 
TuxIsAlive
TuxIsAliveTuxIsAlive
TuxIsAlive
 
Seminario Raspberri Pi - Parte 2 - GULP
Seminario Raspberri Pi - Parte 2 - GULPSeminario Raspberri Pi - Parte 2 - GULP
Seminario Raspberri Pi - Parte 2 - GULP
 
Installare i server via rete con Cobbler
Installare i server via rete con CobblerInstallare i server via rete con Cobbler
Installare i server via rete con Cobbler
 
TYPO3 CMS 6.2 LTS - Le Novità
TYPO3 CMS 6.2 LTS - Le NovitàTYPO3 CMS 6.2 LTS - Le Novità
TYPO3 CMS 6.2 LTS - Le Novità
 
Con Aruba, a lezione di Cloud #lezione 30 - parte 2: 'GitLab e Cloud Server ...
Con Aruba, a lezione di Cloud  #lezione 30 - parte 2: 'GitLab e Cloud Server ...Con Aruba, a lezione di Cloud  #lezione 30 - parte 2: 'GitLab e Cloud Server ...
Con Aruba, a lezione di Cloud #lezione 30 - parte 2: 'GitLab e Cloud Server ...
 
Primi passi con kubuntu
Primi passi con kubuntuPrimi passi con kubuntu
Primi passi con kubuntu
 
Linux Capabilities - ita - v2.1.5 - compatta
Linux Capabilities - ita - v2.1.5 - compattaLinux Capabilities - ita - v2.1.5 - compatta
Linux Capabilities - ita - v2.1.5 - compatta
 
Guida al computer - Lezione 53 - Il Sistema Operativo Parte 3
Guida al computer - Lezione 53 - Il Sistema Operativo Parte 3Guida al computer - Lezione 53 - Il Sistema Operativo Parte 3
Guida al computer - Lezione 53 - Il Sistema Operativo Parte 3
 
TYPO3 CMS 9.1 - Le novità
TYPO3 CMS 9.1 - Le novitàTYPO3 CMS 9.1 - Le novità
TYPO3 CMS 9.1 - Le novità
 
Guida al Computer - Lezione 106 - Pannello di Controllo – Crittografia Unità ...
Guida al Computer - Lezione 106 - Pannello di Controllo – Crittografia Unità ...Guida al Computer - Lezione 106 - Pannello di Controllo – Crittografia Unità ...
Guida al Computer - Lezione 106 - Pannello di Controllo – Crittografia Unità ...
 
Cosino Enigma: the encrypted GNU/LINUX system has come true!
Cosino Enigma: the encrypted GNU/LINUX system has come true!Cosino Enigma: the encrypted GNU/LINUX system has come true!
Cosino Enigma: the encrypted GNU/LINUX system has come true!
 
Sfrontori pillole-cobbler
Sfrontori pillole-cobblerSfrontori pillole-cobbler
Sfrontori pillole-cobbler
 
STARTER KIT ORION….un vero e proprio laboratorio elettronico (by FASAR ELETT...
STARTER KIT ORION….un vero e proprio laboratorio  elettronico (by FASAR ELETT...STARTER KIT ORION….un vero e proprio laboratorio  elettronico (by FASAR ELETT...
STARTER KIT ORION….un vero e proprio laboratorio elettronico (by FASAR ELETT...
 
TYPO3 e la partenza intelligente. Familiarizzare con l'ambiente e lo strument...
TYPO3 e la partenza intelligente. Familiarizzare con l'ambiente e lo strument...TYPO3 e la partenza intelligente. Familiarizzare con l'ambiente e lo strument...
TYPO3 e la partenza intelligente. Familiarizzare con l'ambiente e lo strument...
 
X2 Linux Riassunti
X2 Linux RiassuntiX2 Linux Riassunti
X2 Linux Riassunti
 
Installazione Qt/Qt Quick per target Android
Installazione Qt/Qt Quick  per target AndroidInstallazione Qt/Qt Quick  per target Android
Installazione Qt/Qt Quick per target Android
 

More from Open Makers Italy

Arduino e stampa 3d: le nuove frontiere della robotica homemade
Arduino e stampa 3d: le nuove frontiere della robotica homemadeArduino e stampa 3d: le nuove frontiere della robotica homemade
Arduino e stampa 3d: le nuove frontiere della robotica homemadeOpen Makers Italy
 
Arduino e stampa 3D - Le nuove frontiere della robotica homemade
Arduino e stampa 3D - Le nuove frontiere della robotica homemadeArduino e stampa 3D - Le nuove frontiere della robotica homemade
Arduino e stampa 3D - Le nuove frontiere della robotica homemadeOpen Makers Italy
 
Open Makers Italy - Company profile
Open Makers Italy - Company profileOpen Makers Italy - Company profile
Open Makers Italy - Company profileOpen Makers Italy
 
Cyclomatic: un datalogger per bicicletta con Arduino
Cyclomatic: un datalogger per bicicletta con ArduinoCyclomatic: un datalogger per bicicletta con Arduino
Cyclomatic: un datalogger per bicicletta con ArduinoOpen Makers Italy
 
Frankenstein printer: dalla discarica al CNC
Frankenstein printer: dalla discarica al CNCFrankenstein printer: dalla discarica al CNC
Frankenstein printer: dalla discarica al CNCOpen Makers Italy
 
Lua e MOAI SDK: sviluppiamo videogames!
Lua e MOAI SDK: sviluppiamo videogames!Lua e MOAI SDK: sviluppiamo videogames!
Lua e MOAI SDK: sviluppiamo videogames!Open Makers Italy
 
HySolarKit - Solar Hybridization of Conventional Vehicles
HySolarKit - Solar Hybridization of Conventional Vehicles HySolarKit - Solar Hybridization of Conventional Vehicles
HySolarKit - Solar Hybridization of Conventional Vehicles Open Makers Italy
 
Geecom: il nuovo CMS open source
Geecom: il nuovo CMS open sourceGeecom: il nuovo CMS open source
Geecom: il nuovo CMS open sourceOpen Makers Italy
 
Android-Arduino interaction via Bluetooth
Android-Arduino interaction via BluetoothAndroid-Arduino interaction via Bluetooth
Android-Arduino interaction via BluetoothOpen Makers Italy
 
Django & Google App Engine: a value composition
Django & Google App Engine: a value compositionDjango & Google App Engine: a value composition
Django & Google App Engine: a value compositionOpen Makers Italy
 
Hands on Embedded Linux with BeagleBone Black
Hands on Embedded Linux with BeagleBone BlackHands on Embedded Linux with BeagleBone Black
Hands on Embedded Linux with BeagleBone BlackOpen Makers Italy
 
Geecom, nascita di un progetto open source
Geecom, nascita di un progetto open sourceGeecom, nascita di un progetto open source
Geecom, nascita di un progetto open sourceOpen Makers Italy
 
Introduzione al sistema operativo mobile Android
Introduzione al sistema operativo mobile AndroidIntroduzione al sistema operativo mobile Android
Introduzione al sistema operativo mobile AndroidOpen Makers Italy
 
Making in action: facciamo il caffè con Android e Arduino
Making in action: facciamo il caffè con Android e ArduinoMaking in action: facciamo il caffè con Android e Arduino
Making in action: facciamo il caffè con Android e ArduinoOpen Makers Italy
 
OpenStreetMap: costruiamo una mappa libera
OpenStreetMap: costruiamo una mappa liberaOpenStreetMap: costruiamo una mappa libera
OpenStreetMap: costruiamo una mappa liberaOpen Makers Italy
 

More from Open Makers Italy (18)

GoogleIO Extended Campania
GoogleIO Extended CampaniaGoogleIO Extended Campania
GoogleIO Extended Campania
 
Arduino e stampa 3d: le nuove frontiere della robotica homemade
Arduino e stampa 3d: le nuove frontiere della robotica homemadeArduino e stampa 3d: le nuove frontiere della robotica homemade
Arduino e stampa 3d: le nuove frontiere della robotica homemade
 
Arduino e stampa 3D - Le nuove frontiere della robotica homemade
Arduino e stampa 3D - Le nuove frontiere della robotica homemadeArduino e stampa 3D - Le nuove frontiere della robotica homemade
Arduino e stampa 3D - Le nuove frontiere della robotica homemade
 
Open Makers Italy - Company profile
Open Makers Italy - Company profileOpen Makers Italy - Company profile
Open Makers Italy - Company profile
 
Cyclomatic: un datalogger per bicicletta con Arduino
Cyclomatic: un datalogger per bicicletta con ArduinoCyclomatic: un datalogger per bicicletta con Arduino
Cyclomatic: un datalogger per bicicletta con Arduino
 
Frankenstein printer: dalla discarica al CNC
Frankenstein printer: dalla discarica al CNCFrankenstein printer: dalla discarica al CNC
Frankenstein printer: dalla discarica al CNC
 
Lua e MOAI SDK: sviluppiamo videogames!
Lua e MOAI SDK: sviluppiamo videogames!Lua e MOAI SDK: sviluppiamo videogames!
Lua e MOAI SDK: sviluppiamo videogames!
 
HySolarKit - Solar Hybridization of Conventional Vehicles
HySolarKit - Solar Hybridization of Conventional Vehicles HySolarKit - Solar Hybridization of Conventional Vehicles
HySolarKit - Solar Hybridization of Conventional Vehicles
 
Geecom: il nuovo CMS open source
Geecom: il nuovo CMS open sourceGeecom: il nuovo CMS open source
Geecom: il nuovo CMS open source
 
Android-Arduino interaction via Bluetooth
Android-Arduino interaction via BluetoothAndroid-Arduino interaction via Bluetooth
Android-Arduino interaction via Bluetooth
 
Django & Google App Engine: a value composition
Django & Google App Engine: a value compositionDjango & Google App Engine: a value composition
Django & Google App Engine: a value composition
 
Hands on Embedded Linux with BeagleBone Black
Hands on Embedded Linux with BeagleBone BlackHands on Embedded Linux with BeagleBone Black
Hands on Embedded Linux with BeagleBone Black
 
Geecom, nascita di un progetto open source
Geecom, nascita di un progetto open sourceGeecom, nascita di un progetto open source
Geecom, nascita di un progetto open source
 
Introduzione al sistema operativo mobile Android
Introduzione al sistema operativo mobile AndroidIntroduzione al sistema operativo mobile Android
Introduzione al sistema operativo mobile Android
 
Making in action: facciamo il caffè con Android e Arduino
Making in action: facciamo il caffè con Android e ArduinoMaking in action: facciamo il caffè con Android e Arduino
Making in action: facciamo il caffè con Android e Arduino
 
Email 4 blackout
Email 4 blackoutEmail 4 blackout
Email 4 blackout
 
BACS platform
BACS platformBACS platform
BACS platform
 
OpenStreetMap: costruiamo una mappa libera
OpenStreetMap: costruiamo una mappa liberaOpenStreetMap: costruiamo una mappa libera
OpenStreetMap: costruiamo una mappa libera
 

Primi passi con la scheda BeagleBone Black

  • 1. Hands on Embedded Linux with BeagleBone Black Daniele Costarella - Mario Pucciarelli PRIMI PASSI CON LA SCHEDA BEAGLEBONE BLACK La scheda BeagleBone Black presente due file di pin che permettono di andare a collegarsi alle periferiche del microcontrollore. E' possibile quindi lavorare con led, pulsanti, tasti, ecc. Nel dettaglio i collegamenti disponibili sono i seguenti: ACCESSO SSH Per interfacciarsi con la scheda si può utilizzare una connessione SSH, che viene avviata da terminale con il comando seguente: ssh root@beaglebone.local NB: le credenziali di accesso alla board sono user = root – password = root 9 Novembre 2013 – Giffoni Valle Piana (SA)
  • 2. Hands on Embedded Linux with BeagleBone Black Daniele Costarella - Mario Pucciarelli Nel caso in cui si utilizzi Windows anziché Linux è necessario seguire i passi indicati nel seguito. Innanzitutto è necessario installare gli opportuni driver che possono essere reperiti ai seguenti link: • Windows 64 bit: http://beagleboard.org/static/Drivers/Windows/BONE_D64.exe https://github.com/jadonk/beaglebone-getting-started/tree/sysco-ch-signed-driv ers/Drivers/Windows (Driver certificati) • Windows 32 bit: http://beagleboard.org/static/Drivers/Windows/BONE_DRV.exe Poi è necessario scaricare il programma terminale Putty al seguente indirizzo: http://www.putty.org/ Avviato Putty, lo si configura creando una connessione SSH verso l'indirizzo 192.168.7.2 sulla porta 22 dopodiché si avvia la connessione semplicemente cliccando su Connect. Si vedrà un messaggio di avviso da ignorare poi si avrà accesso alla board e sarà possibile fare il login. INSTALLAZIONE LIBRERIA PYTHON Per poter usare le periferiche programmando la scheda in Python è necessario installarvi delle librerie specifiche che possono essere trovate ad esempio sul sito Adafruit. 1. La prima cosa da fare è ottenere ovviamente un accesso SSH alla board (vedi sopra) 2. Si imposta la data e l'ora per essere sicuri che sia corretta (per fare questa operazione è necessario ovviamente avere la board collegata ad internet altrimenti non potrà essere raggiunto il server dell'ora) : /usr/bin/ntpdate ­b ­s ­u pool.ntp.org  3. Si installa la libreria mediante il comando: opkg update && opkg install python­pip python­setuptools python­smbus  pip install Adafruit_BBIO  4. Subito dopo aver installato la libreria si può verificare l'effettivo funzionamento dando il comando: 9 Novembre 2013 – Giffoni Valle Piana (SA)
  • 3. Hands on Embedded Linux with BeagleBone Black Daniele Costarella - Mario Pucciarelli python ­c "import Adafruit_BBIO.GPIO as GPIO; print GPIO"  Ciò dovrebbe fare in modo che a video venga visualizzato il seguente messaggio: <module 'Adafruit_BBIO.GPIO' from  '/usr/local/lib/python2.7/dist­packages/Adafruit_BBIO/GPIO.so'>  E' possibile anche verificare l'installazione eseguendo il comando "python" per abilitare l'interprete e dando il comando di importazione della libreria: import Adafruit_BBIO.GPIO as GPIO print GPIO  5. Il che dovrebbe far comparire ancora una volta il messaggio di sopra LED BLINKING Ovviamente per prima cosa si devono andare a realizzare gli opportuni collegamenti come si può vedere nella seguente immagine: 9 Novembre 2013 – Giffoni Valle Piana (SA)
  • 4. Hands on Embedded Linux with BeagleBone Black Daniele Costarella - Mario Pucciarelli A questo punto è possibile lavorare direttamente dalla console: 1. Lanciare la console # python  Python 2.7.3 (default, Apr  3 2013, 21:37:23)  [GCC 4.7.3 20130205 (prerelease)] on linux2  Type "help", "copyright", "credits" or "license" for more information.  >>>  2. Importare la libreria >>> import Adafruit_BBIO.GPIO as GPIO  3. Impostare il pin di uscita desiderato come output (di default sono tutti input) >>> GPIO.setup("P9_41", GPIO.OUT)  4. Accendere il led >>> GPIO.output("P9_41", GPIO.HIGH)  5. Spegnere il led >>> GPIO.output("P9_41", GPIO.LOW) A parte il comando diretto è possibile scrivere un semplice programma per l'interprete Python, seguendo la procedura descritta: 1. Creare un nuovo file 2. # nano blink.py  3. Scrivere nel file il seguente codice import Adafruit_BBIO.GPIO as GPIO  import time  GPIO.setup("P9_41 ", GPIO.OUT)  while True:      GPIO.output("P9_41 ", GPIO.HIGH)      time.sleep(0.5)      GPIO.output("P9_41 ", GPIO.LOW)      time.sleep(0.5)  4. Salvare ed uscire CTRL-x e poi Y per dare conferma. 9 Novembre 2013 – Giffoni Valle Piana (SA)
  • 5. Hands on Embedded Linux with BeagleBone Black Daniele Costarella - Mario Pucciarelli 5. Avviare il programma # python blink.py  6. Per fermare l'esecuzione è sufficiente premere CRTL-c Fatto questo può essere interessante continuare a lavorare sul programma magari modificando la durata degli stati on e off, oppure inserendo altri led e creando degli effetti luminosi. MISURA DELLA TEMPERATURA Realizzare i collegamenti secondo lo schema seguente: Anche in questo caso è possibile lavorare sia direttamente da linea di comando sia mediante uno script che raccolga tutte le istruzioni da eseguire 1. Avviare la console 9 Novembre 2013 – Giffoni Valle Piana (SA)
  • 6. Hands on Embedded Linux with BeagleBone Black Daniele Costarella - Mario Pucciarelli # python  Python 2.7.3 (default, Apr  3 2013, 21:37:23)  [GCC 4.7.3 20130205 (prerelease)] on linux2  Type "help", "copyright", "credits" or "license" for more information.  >>>  2. Importare la libreria per l'ADC >>> import Adafruit_BBIO.ADC as ADC  3. Inizializare il modulo >>> ADC.setup()  4. Dare il comando di lettura del pin >>> ADC.read("P9_40")  0.38999998569488525 Nel caso si voglia invece realizzare uno script: 1. Creare il file nano temperature.py  2. Inserire nello script le seguenti linee di codice import Adafruit_BBIO.ADC as ADC  import time  sensor_pin = 'P9_40'  ADC.setup()  while True:      reading = ADC.read(sensor_pin)      millivolts = reading * 1800  # 1.8V reference = 1800 mV      temp_c = (millivolts ­ 500) / 10      temp_f = (temp_c * 9/5) + 32      print('mv=%d C=%d F=%d' % (millivolts, temp_c, temp_f))      time.sleep(1)  3. Salvare ed uscire con CTRL-x e dare Y per conferma. 4. Avviare il programma python temperature.py  9 Novembre 2013 – Giffoni Valle Piana (SA)
  • 7. Hands on Embedded Linux with BeagleBone Black Daniele Costarella - Mario Pucciarelli 5. Interrompere l'esecuzione con CTRL-c Una volta realizzato ciò una cosa interessante da fare sarebbe modificare il programma integrandolo con quello che fa accendere il led, realizzando uno script capace di accendere un led nel momento in cui la temperatura misurata salga sopra una certa soglia. COLLEGAMENTO DI UN PULSANTE Resettare la board in modo che tutti i pin siano reimpostati come pin di ingresso (altrimenti usare un pin precedentemente impostato come output in direzione input potrebbe danneggiarlo), poi effettuare i seguenti collegamenti: A questo punto procederemo direttamente a realizzare lo script, fermo restando che sia possibile ancora dare uno alla volta i comandi mediante la console. 1. Creare il file nano switch.py 9 Novembre 2013 – Giffoni Valle Piana (SA)
  • 8. Hands on Embedded Linux with BeagleBone Black Daniele Costarella - Mario Pucciarelli 2. Inserire nello script le seguenti linee di codice import Adafruit_BBIO.GPIO as GPIO import time GPIO.setup("P8_12", GPIO.IN) old_switch_state = 0 while True:     new_switch_state = GPIO.input("P8_12")     if new_switch_state == 1 and old_switch_state == 0 :         print('Do not press this button again!')         time.sleep(0.1)     old_switch_state = new_switch_state 3. Salvare ed uscire con CTRL-x e dare Y per conferma. 4. Avviare il programma python switch.py 5. A questo punto ogni volta che si preme il pulsante, si vedrà una scritta a video 6. Interrompere l'esecuzione con CTRL-c Ancora una volta ci si può inventare nuovi script capaci magari di accendere un led nel momento in cui si va a premere il tasto. EFFETTO FADE MEDIANTE PWM E' possibile realizzare un simpatico effetto di fading di un led adoperando un PWM, ossia dando al led un segnale che sia formato da intervalli in cui il livello è alto ed intervalli in cui è basso; andando a variare la durata degli intervalli si può rendere il led più o meno brillante (in realtà l'effetto si ottiene facendolo lampeggiare ON/OFF ma l'occhio umano non riesce ad osservare fenomeni così rapidi quindi vedrà la luminosità diminuire). Effettuare i seguenti collegamenti: 9 Novembre 2013 – Giffoni Valle Piana (SA)
  • 9. Hands on Embedded Linux with BeagleBone Black Daniele Costarella - Mario Pucciarelli La procedura dettagliata è in questo caso: 1. Creare il file nano led_fade.py 2. Inserire nello script le seguenti linee di codice import Adafruit_BBIO.PWM as PWM import time led_pin = “P9_14” PWM.start(led_pin, 0) while True:     for i in range(0, 100)         PWM.set_duty_cycle(led_pin, i)         time.sleep(0.05)     for i in range(0, 100)         PWM.set_duty_cycle(led_pin, i)         time.sleep(0.05) 3. Salvare ed uscire con CTRL-x e dare Y per conferma 9 Novembre 2013 – Giffoni Valle Piana (SA)
  • 10. Hands on Embedded Linux with BeagleBone Black Daniele Costarella - Mario Pucciarelli 4. Avviare il programma python led_fade.py 9 Novembre 2013 – Giffoni Valle Piana (SA)