Pentru desfășurarea acestui capitol din cadrul laboratorului, se va folosi VirtualBox. Pentru a conecta plăcuța la mașina virtuală, trebuie instalat Extension Pack și integrat la extensii în VirtualBox.
Conectați micro:bit-ul la mașina virtuală selectand optiunea Devices→USB→Microbit. Dupa care deschdeți un terminal si daca nu aveți deja instalat programul screen
tastați comanda următoare:
$sudo apt-get install screen
Următorul pas este să găsiți port-ul la care este conectată plăcuța, folosind comanda:
$ls /dev/ttyACM*
Ar trebui să aveți un output similar cu acesta /dev/ttyACM0
.
Ultimul pas este conectarea la serial utilizând comanda:
$sudo screen /dev/ttyACM0 115200
115200
reprezintă viteza citită de către portul serial. Pentru a ieși din screen
tastați Ctrl-A, apoi Ctrl-D.
Funcții utile din modulul uart :
bauderate
- reprezintă viteza de comunicare cu serialul, acesta poate lua următoarele valori : 9600, 14400, 19200, 28800, 38400, 57600, 115200.
bits
- reprezintă numărul de biți care vor fi transmiși.
parity
- arată modul de verificare al parității; poate lua valorile: None, microbit.uart.ODD, microbit.uart.EVEN.
stop
- reprezintă numarul de biți de oprire, în cazul acestei plăcuțe valoarea este 1.
În exemplul următor vom trimite un mesaj de la micro:bit către calculator. Încărcați codul pe micro: bit, apoi în terminalul de linux, unde ați deschis programul screen veți vedea mesajul Hello from micro: bit
.
from microbit import * msg = "Hello from micro: bit" uart.write(msg)
Dacă nu aveți instalat python pe mașina virtuală, urmați pașii din documentație.
Primul pas este să scriem codul care va fi încărcat pe micro: bit. Programul următor va măsura si afișa temperatura la fiecare secundă.
from microbit import * while True: msg = str(temperature()) + "\n" uart.write(msg) sleep (100)
Scrieți intr-un fișier python numit serial_exemple.py
programul următor:
import serial, time #import the libraries; serial library is used for the connection to micro:bit port = "/dev/ttyACM0" #port value to connect the computer with micro: bit baud = 115200 s = serial.Serial(port) #initialize the serial s.baudrate = baud while True: data = s.readline() # read the lines of data being sent via the serial connection print(data) time.sleep(1)
Pentru a executa programul trebuie să instalți pyserial
folosind comanda de mai jos.
sudo pip3 install pyserial
Rulați fișierul python scris anterior cu comanda:
$sudo python3 serial_exemple.py
Folosind seviciile bluetooth, putem utiliza următoarele funcții:
Întâi de toate, se recomandă să încărcăm pe placuță fisierul .hex dintr-un program scris în MakeCode. Scrieți un program, care afișează o imagine pe display-ul micro:bit-ului, ca în exemplul următor:
basic.show_icon(IconNames.HAPPY)
Următorul pas este să instalăm aplicația micro:bit pe telefon Android iOS. Deschideți aplicația de pe telefonul mobil și selectați “Pair”, apoi apăsați pe “PAIR A NEW MICRO:BIT”. Permiteți aplicației să acceseze Bluetooth. Apăsați simultan pe butoanele A și B, apoi apăsați și eliberați butonul de RESET. Țineți apăsat pe butoanele A și B până când veți vedea pe display semnul ce reprezentativ pentru bluetooth. Pe ecranul micro:bit-ului va apărea un model pe care trebuie să-l reproduceți pe telefon.
Adăugați extensia pentru bluetooth în MakeCode din meniu apăsând “Extensions”, apoi alegeți extensia dorită. Pentru că plăcuța este conectată prin bluetooth la telefon, prin intermediul aplicației, se pot scrie programe, care pot rula pe micro: bit.
Din meniul aplicației apăsați pe “Create code”, apoi veți avea deschis editorul de cod. Scrieți un cod în Python, care la apăsarea logo-ului afișează pe display-ul micro:bit-ului un număr random de la 0 la 9.
Pentru început vom scrie un program simplu în care vom verifica dacă microcontrolerul este conectat sau nu la bluetooth, accesând extensia adăugată anterior. Vom utiliza on_bluetooth_connected și on_bluetooth_disconnected. Încărcați programul următor pe micro: bit porniți bluetooth-ul atât pe plăcuță, cât și pe telefon.
def on_bluetooth_connected(): basic.show_icon(IconNames.HAPPY) bluetooth.on_bluetooth_connected(on_bluetooth_connected) def on_bluetooth_disconnected(): basic.show_icon(IconNames.SAD) bluetooth.on_bluetooth_disconnected(on_bluetooth_disconnected)
Bitty Blue este o aplicație pentru iOS și Android care permite conectarea cu dispozitivul BBC micro:bit prin Bluetooth. Instalați pe telefon aplicația pentru Android sau iOS.
În exemplu următor vom utiliza busola. Încărcați codul următor pe plăcuță, apoi conectați-o prin bluetooth la aplicația Bitty Blue apăsând pe butonul Scan. După conectare alegeți din meniul aplicației Compass unde veți putea vedea în timp real coordonatele micro: bit-ului pe busolă.
def on_bluetooth_connected(): basic.show_icon(IconNames.HAPPY) bluetooth.on_bluetooth_connected(on_bluetooth_connected) def on_bluetooth_disconnected(): basic.show_icon(IconNames.SAD) bluetooth.on_bluetooth_disconnected(on_bluetooth_disconnected) input.calibrate_compass() bluetooth.start_magnetometer_service()