Hands on Embedded Linux with BeagleBone Black
Daniele Costarella - Mario Pucciarelli

PRIMI PASSI CON LA SCHEDA BEAGLEBONE...
Hands on Embedded Linux with BeagleBone Black
Daniele Costarella - Mario Pucciarelli

Nel caso in cui si utilizzi Windows ...
Hands on Embedded Linux with BeagleBone Black
Daniele Costarella - Mario Pucciarelli

python ­c "import Adafruit_BBIO.GPIO...
Hands on Embedded Linux with BeagleBone Black
Daniele Costarella - Mario Pucciarelli

A questo punto è possibile lavorare ...
Hands on Embedded Linux with BeagleBone Black
Daniele Costarella - Mario Pucciarelli

5. Avviare il programma
# python bli...
Hands on Embedded Linux with BeagleBone Black
Daniele Costarella - Mario Pucciarelli

# python 
Python 2.7.3 (default, Apr...
Hands on Embedded Linux with BeagleBone Black
Daniele Costarella - Mario Pucciarelli

5. Interrompere l'esecuzione con CTR...
Hands on Embedded Linux with BeagleBone Black
Daniele Costarella - Mario Pucciarelli

2. Inserire nello script le seguenti...
Hands on Embedded Linux with BeagleBone Black
Daniele Costarella - Mario Pucciarelli

La procedura dettagliata è in questo...
Hands on Embedded Linux with BeagleBone Black
Daniele Costarella - Mario Pucciarelli

4. Avviare il programma
python led_f...
Upcoming SlideShare
Loading in …5
×

Primi passi con la scheda BeagleBone Black

1,972 views

Published on

Event: Giffoni Open Makers Day 2013
Authors: Daniele Costarella, Mario Pucciarelli

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,972
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
25
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Primi passi con la scheda BeagleBone Black

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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)

×