This is an old revision of the document!
Laborator 13 - Aplicații embedded
Prezentare teoretică
În acest laborator vom folosi Python pentru a controla o placă de dezvoltare embedded. Laboratorul va fi rezolvat utilizând simulatorul MicroPython unicorn.
MicroPython
MicroPython este un mediu de rulare de aplicații Python dezvoltat pentru dispozitive cu capabilități restrânse.
În plus, vom folosi modulul pyb, care expune funcții ce permit controlul plăcii simulate.
Funcții utile
Modulul pyb
expune următoarele obiecte utile:
LED - permite controlul LED-urilor de pe placă
Switch - permite citirea stării butonului de pe placă
Pin - permite interacțiunea cu pinii plăcii
Servo - permite controlul unui servomotor atașat plăcii
ADC - permite citirea de valori analogice
DAC - permite scrierea unei valori analogice pe un pin
Modulul time
Modulul time permite folosirea de funcții ce pot “opri” execuția programului pentru o perioadă de timp.
Exerciţii de laborator
Exercițiul 1 - Demo
Pentru început, ne vom familiariza cu platforma folosită. Folosind butonul CHOOSE A DEMO…
rulați următoarele exemple:
HELLO WORLD!
SWITCH
LEDS
TIME
PIN LED
ADC
Exercițiul 2 - Mesaje
Creați un program care afișează de 5 ori mesajul Hello la interval de 2 secunde.
Exercițiul 3 - LED
Creați câte un program care să:
facă LED-ul 1 să pâlpâie o dată la o secundă
să aprindă și să stingă, la interval de o secundă fiecare LED, pe rând
aprindă pe rând, la interval de o secundă, LED-urile de la 1 la 4 și apoi să le stingă pe rând de la 4 la 1
Exercițiul 4 - Switch
Creați câte un program care:
afișează dacă butonul de pe placă este apăsat sau nu
aprinde un LED exterior plăcii când butonul este ținut apăsat și îl stinge când nu e ținut apăsat
la o apăsare (push-release) a butonului aprinde LED-ul 1, la următoarea apăsare îl stinge și tot așa
Exercițiul 5 - Servo
Creați un program care realizează o rotație completă a servo-ului în interval de 10 secunde.
Exercițiul 6 - ADC
Creați câte un program care:
Exercițiul 7 - Intensitate
Creați câte un program care:
aprinde LED-ul 3 de pe placă la jumătate din intensitatea maximă (Hint: intensity)
aprinde treptat LED-ul 3 de pe placă la intensitate maximă (fade in)
aprinde treptat LED-ul 3 de pe placă la intensitate maximă și apoi îl stinge treptat (fade in- fade out)
aprinde LED-ul 3 de pe placă la o intensitate invers proporțională față de slider (cu cât valoarea slider-ului e mai mare, cu atât LED-ul e mai puțin luminos)