This is an old revision of the document!


Laboratorul 02 - Introducere în Python

Scop

  • familiarizarea cu conceptele de bază din programare
  • interacțiunea cu placa de dezvoltare folosind Python

Cuvinte cheie

  • for, if, while, vector

Concepte de programare

Variabile

Variabilele sunt moduri în care referențiem valori de anumite tipuri. Spre deosebire de limbaje de programare precum C sau C++, în python tipurile de date sunt identificate în momentul inițializării.

Câteva exemple de tipuri din python sunt:

variabile.py
x = 2                                                           #int    - număr întreg
x = 2.7                                                         #float  - număr cu zecimale
x = "c"                                                         #char   - caracter ASCII
x = True                                                        #bool   - valoare logică: True/False

Odată ce a fost asignat un tip de date, putem reasigna alt tip printr-o nouă inițializare (ca mai sus), însă anumite tipuri de date nu pot fi combinate, de exemplu: să adunăm un număr întreg la un șir de caractere.

Șiruri / Vectori

Șirurile/Vectorii sunt variabile mai inteligente de o anumită dimensiune ce pot stoca un șir de valori de fiecare tip de mai sus. Exemplu:

variabile.py
x = "Hello Python!!!"                                           #string - șir de caractere, declarat direct folosind ""
x = ['h', 'e', 'l', 'l', 'o']                                   #string - declarat ca vector de caractere ASCII
x = [2, 3.2, 21, 12]                                            #array  - vector de numere

Un lucru atipic la python față de multe limbaje de programare clasice, este faptul că acesta ne permite să avem valori din tipuri diferite de date în cadrul aceluiași vector (numere întregi, șiruri de caractere și valori logice).

If - Else

Propoziția if este o propoziție condițională folosită pentru a executa instrucțiuni în funcție de anumite condiții. Construcția if-else se traduce prin “dacă - altfel”:

if_else.py
a = 10
if a == 10:                         # Dacă a este egal cu 10
   a = a / 2                        # Fă operații dacă a este 10
else:                               # Altfel
   a = a * 2                        # Fă operații când a este diferit de 10

Blocul de cod care trebuie executat este identificat prin numărul de aliniate, deci aveți mare atenție la indentarea codului!

For

Structura for este o structură repetitivă în funcție de o condiție. Mod de utilizare:

for.py
fruits = ["măr", "cireșe", "pară", "banană"]
 
# for element în vector_de_elemente:
for f in fruits:
  print(x)
 
# Codul de mai sus va afișa: măr cireșe pară banană
 
# Alternative mai apropiate de C:
 
# for element în range(valoare maximă care nu va fi atinsă):
for x in range(6):
  print(x)
 
# Codul de mai sus va afișa: 0 1 2 3 4 5
 
# for element în range(valoare inițială, valoare maximă care nu va fi atinsă, valoare de increment)
# Ultima valoare poate lipsi din construcție, fiind implicită valoarea de 1
for x in range(2, 10, 2):
  print(x)
 
# Codul de mai sus va afișa: 2 4 6 8

Parcurgerea unui șir

Accesarea unei anumite valori dintr-un vector se face prin index-ul(poziția) valorii din vector.

vector.py
v = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
sum = 0
 
print(v[3])                    # afișează valoarea de pe poziția 4: 4 (indexarea se face începând de la 0)
 
for i in range(len(v)):
  sum = sum + v[i]
 
print(sum)                     # afișează 55
 
# O altă alternativă de calcul al sumei ar fi fost:
for element in v:
  sum = sum + element

Interacțiunea cu simulatorul în Python

Pentru a putea interacționa cu simulatorul, fiecare din funcțiile expuse în Python de către placă trebuie prefixate cu “basic” (care este obiectul în care se află funcțiile respective).

Un exemplu de astfel de funcție este scrierea unui șir de caractere pe ecran:

basic.show_string('Hello!')

Interacțiunea cu led-urile de pe placă

Funcțiile principale pe care le avem la dispoziție sunt:

  • Afișarea unui șir de caractere pe ecran:
basic.show_string('Hello!')
  • Afișarea unui număr pe ecranul de led-uri:
basic.show_number(0)
  • Afișarea unei imagini din led-uri:
basic.show_leds("""
    . # . # .
    # # # # #
    # # # # #
    . # # # .
    . . # . .
    """)
# Se va afișa o inimă din Led-uri
# # - semnifică led aprins
# . - semnifică led stins
  • Stingerea tuturor led-urilor de pe placă:
basic.clear_screen()
  • Întârzierea execuției programului cu un anumit număr de milisecunde:
basic.pause(1000)

Exerciții

Toate exercițiile vor fi realizate pe Tinkercad

  1. Folosind un VOLTMETRU masurați voltajul de pe pinul GPIO 3. Setați pinul pe LOW/HIGH și observați cum se modifică valorile.
  2. Folosind un ARDUINO, un LED și o REZISTENȚĂ de 220 ohmi, aprindeti LED-ul (NU folositi pinii GPIO), apoi masurați curentul și voltajul circuitului.
  3. Folosind un ARDUINO, un LED și o REZISTENȚĂ de 220 ohmi, faceți un LED să clipească (rezolvați exercițiul în 2 modalități).
  4. Folosind un ARDUINO, LED-uri și REZISTENȚE de 220 ohmi, simulați un semafor de mașini și un semafor de pietoni care să fie sincronizate. Semafoarele vor fi implementate folosind led-uri și parcurgerea acestora trebuie făcută cu șiruri/vectori (rezolvați exercițiul în 2 modalități).
  5. Conectați la un ARDUINO, un 7 SEGMENT DISPLAY și folosind funcții ajutătoare, afișați fiecare număr (0-9) pe display. Rezolați în 2 modalitați: folosind un 7 SEGMENT DISPLAY cu anod comun, respectiv cu catod comun.
  6. Folosind montajul anterior implementați un numarator ce afiseaza cifrele de la 0 la 9.

100

  1. Conectati 5 LED-uri si controlati-le astfel incat fiecare sa clipeasca pe rand: primul o data, al doilea de doua ori etc.
  2. Folositi un LED pentru a lumina un cuvant in cod morse.
  3. Folositi un buzzer cu acelasi scop.
info2/laboratoare/02.1615161746.txt.gz · Last modified: 2021/03/08 02:02 by alexandru.vochescu
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