This shows you the differences between two versions of the page.
sde:laboratoare:13_embedded [2020/05/12 15:01] ioana_maria.culic [Funcții utile] |
— (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 | ||
- | |||
- | |||
- | ====== Exerciţii de laborator ====== | ||
- | |||
- | ===== Exercițiul 1 - Citire fișiere ===== | ||
- | Creați un program care folosește modulul ''fs'' pentru a afișa conținutul a două fișiere text. Puteți alege oricare două fișiere text de pe sistem. | ||
- | |||
- | Rulați programul de mai multe ori și observați oridinea în care acestea sunt afișate. | ||
- | |||
- | ===== Exercițiul 2 - Citire director ===== | ||
- | |||
- | Creați un program care afișează conținutul directorului părinte. | ||
- | |||
- | ===== Exercițiul 3 - Creare fișiere ===== | ||
- | |||
- | Creați un program care crează două fișiere, după care afișează conținutul acestora și conținutul directorului curent, unde trebuie să se observe fișierele generate. | ||
- | |||
- | ===== Exercițiul 4 - pwd ===== | ||
- | |||
- | Creați un program care rulează comanda ''pwd'' și apoi comanda ''ls ..''. | ||
- | Rezolvați cerința în două feluri. | ||
- | |||
- | ===== Exercițiul 5 - Input ===== | ||
- | |||
- | Creați fișierul ''script.sh'' cu conținutul următor: | ||
- | <code bash> | ||
- | read text | ||
- | echo $text | ||
- | </code> | ||
- | |||
- | Creați un program care rulează scriptul de mai sus. Programul trebuie să îi transmită o linie de text scriptului. (Hint: subprocess.stdin). | ||
- | |||
- | ===== Exercițiul 6 - File input ===== | ||
- | Creați pe sistem un fișier care conține o linie de text. Modificați programul de mai sus astfel încât linia de text să fie cea citită din fișier. | ||
- | |||
- | ===== Exercițiul 7 - Read error ===== | ||
- | Creați un program care încearcă citirea unui fișier inexistent. Afișați eroarea primită și extrageți codul acesteia. | ||
- | |||
- | ===== Exercițiul 8 - Execution error ===== | ||
- | Anulați dreptul de execuție al scriptului creat la exercițiul 5, după care încercați rularea acestuia. Afișați eroarea primită și extrageți codul acesteia. |