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:

Detalii despre fiecare obiect sunt disponibile pe pagina scurtă de documentație.

  • 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:

  • 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)
sde/laboratoare/13_embedded.txt · Last modified: 2020/05/12 15:51 by ioana_maria.culic
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0