This shows you the differences between two versions of the page.
sde:laboratoare:13_embedded [2020/05/12 15:51] ioana_maria.culic |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== 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 [[https://micropython.org/unicorn/|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 [[http://docs.micropython.org/en/latest/library/pyb.html#module-pyb|pyb]], care expune funcții ce permit controlul plăcii simulate. | ||
- | |||
- | ====Funcții utile==== | ||
- | |||
- | Modulul ''pyb'' expune următoarele obiecte utile: | ||
- | <note info> | ||
- | Detalii despre fiecare obiect sunt disponibile pe [[http://docs.micropython.org/en/latest/pyboard/quickref.html|pagina scurtă de documentație]]. | ||
- | </note> | ||
- | |||
- | * [[http://docs.micropython.org/en/latest/pyboard/quickref.html#internal-leds|LED]] - permite controlul LED-urilor de pe placă | ||
- | * [[http://docs.micropython.org/en/latest/pyboard/quickref.html#internal-switch|Switch]] - permite citirea stării butonului de pe placă | ||
- | * [[http://docs.micropython.org/en/latest/pyboard/quickref.html#pins-and-gpio|Pin]] - permite interacțiunea cu pinii plăcii | ||
- | * [[http://docs.micropython.org/en/latest/pyboard/quickref.html#servo-control|Servo]] - permite controlul unui servomotor atașat plăcii | ||
- | * [[http://docs.micropython.org/en/latest/pyboard/quickref.html#adc-analog-to-digital-conversion|ADC]] - permite citirea de valori analogice | ||
- | * [[http://docs.micropython.org/en/latest/pyboard/quickref.html#dac-digital-to-analog-conversion|DAC]] - permite scrierea unei valori analogice pe un pin | ||
- | |||
- | ====Modulul time==== | ||
- | Modulul [[http://docs.micropython.org/en/latest/pyboard/quickref.html#delay-and-timing|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: | ||
- | * afișează continuu (o dată la 0.5 secunde) starea slider-ului conectat la placă | ||
- | * aprinde LED-ul 2 de pe placă dacă slider-ul este împins peste jumătate și îl stinge în caz contrar | ||
- | |||
- | ===== 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) | ||
- | |||