primi passi con la scheda beaglebone black

10
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 [email protected] NB: le credenziali di accesso alla board sono user = root – password = root 9 Novembre 2013 – Giffoni Valle Piana (SA)

Upload: open-makers-italy

Post on 13-May-2015

981 views

Category:

Technology


5 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Primi passi con la scheda BeagleBone Black

Hands on Embedded Linux with BeagleBone BlackDaniele Costarella - Mario Pucciarelli

PRIMI PASSI CON LA SCHEDA BEAGLEBONE BLACK

La scheda BeagleBone Black presente due file di pin che permettono di andare acollegarsi 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 avviatada terminale con il comando seguente:

ssh [email protected]

NB: le credenziali di accesso alla board sono user = root – password = root

9 Novembre 2013 – Giffoni Valle Piana (SA)

Page 2: Primi passi con la scheda BeagleBone Black

Hands on Embedded Linux with BeagleBone BlackDaniele Costarella - Mario Pucciarelli

Nel caso in cui si utilizzi Windows anziché Linux è necessario seguire i passi indicati nelseguito.

Innanzitutto è necessario installare gli opportuni driver che possono essere reperiti aiseguenti link:

• Windows 64 bit: http://beagleboard.org/static/Drivers/Windows/BONE_D64.exe

https://github.com/jadonk/beaglebone-getting-started/tree/sysco-ch-signed-drivers/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.2sulla porta 22 dopodiché si avvia la connessione semplicemente cliccando su Connect. Sivedrà un messaggio di avviso da ignorare poi si avrà accesso alla board e sarà possibilefare il login.

INSTALLAZIONE LIBRERIA PYTHON

Per poter usare le periferiche programmando la scheda in Python è necessario installarvidelle librerie specifiche che possono essere trovate ad esempio sul sito Adafruit.

1. La prima cosa da fare è ottenere ovviamente un accesso SSH alla board (vedisopra)

2. Si imposta la data e l'ora per essere sicuri che sia corretta (per fare questaoperazione è necessario ovviamente avere la board collegata ad internetaltrimenti 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 funzionamentodando il comando:

9 Novembre 2013 – Giffoni Valle Piana (SA)

Page 3: Primi passi con la scheda BeagleBone Black

Hands on Embedded Linux with BeagleBone BlackDaniele 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" perabilitare l'interprete e dando il comando di importazione della libreria:

import Adafruit_BBIO.GPIO as GPIOprint 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 collegamenticome si può vedere nella seguente immagine:

9 Novembre 2013 – Giffoni Valle Piana (SA)

Page 4: Primi passi con la scheda BeagleBone Black

Hands on Embedded Linux with BeagleBone BlackDaniele 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'interpretePython, 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)

Page 5: Primi passi con la scheda BeagleBone Black

Hands on Embedded Linux with BeagleBone BlackDaniele 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 magarimodificando la durata degli stati on e off, oppure inserendo altri led e creando deglieffetti luminosi.

MISURA DELLA TEMPERATURA

Realizzare i collegamenti secondo lo schema seguente:

Anche in questo caso è possibile lavorare sia direttamente da linea di comando siamediante uno script che raccolga tutte le istruzioni da eseguire

1. Avviare la console

9 Novembre 2013 – Giffoni Valle Piana (SA)

Page 6: Primi passi con la scheda BeagleBone Black

Hands on Embedded Linux with BeagleBone BlackDaniele 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)

Page 7: Primi passi con la scheda BeagleBone Black

Hands on Embedded Linux with BeagleBone BlackDaniele Costarella - Mario Pucciarelli

5. Interrompere l'esecuzione con CTRL-c

Una volta realizzato ciò una cosa interessante da fare sarebbe modificare il programmaintegrandolo con quello che fa accendere il led, realizzando uno script capace diaccendere un led nel momento in cui la temperatura misurata salga sopra una certasoglia.

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 inputpotrebbe danneggiarlo), poi effettuare i seguenti collegamenti:

A questo punto procederemo direttamente a realizzare lo script, fermo restando che siapossibile ancora dare uno alla volta i comandi mediante la console.

1. Creare il file

nano switch.py

9 Novembre 2013 – Giffoni Valle Piana (SA)

Page 8: Primi passi con la scheda BeagleBone Black

Hands on Embedded Linux with BeagleBone BlackDaniele Costarella - Mario Pucciarelli

2. Inserire nello script le seguenti linee di codice

import Adafruit_BBIO.GPIO as GPIOimport 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 nelmomento 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, ossiadando al led un segnale che sia formato da intervalli in cui il livello è alto ed intervalli incui è basso; andando a variare la durata degli intervalli si può rendere il led più o menobrillante (in realtà l'effetto si ottiene facendolo lampeggiare ON/OFF ma l'occhio umanonon riesce ad osservare fenomeni così rapidi quindi vedrà la luminosità diminuire).

Effettuare i seguenti collegamenti:

9 Novembre 2013 – Giffoni Valle Piana (SA)

Page 9: Primi passi con la scheda BeagleBone Black

Hands on Embedded Linux with BeagleBone BlackDaniele 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 PWMimport timeled_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)

Page 10: Primi passi con la scheda BeagleBone Black

Hands on Embedded Linux with BeagleBone BlackDaniele Costarella - Mario Pucciarelli

4. Avviare il programma

python led_fade.py

9 Novembre 2013 – Giffoni Valle Piana (SA)