Page 55 - MATINF Nr. 9-10
P. 55
a
Deprinderea elementelor fundamentale robotic˘ s , i de programare ˆın Python folosind robotul Finch 2.0 55
Fiecare valoare are un tip de date diferit, existˆand patru tipuri de date comune ˆın Python:
int, float, bool s , i str. Se poate utiliza funct , ia type() pentru a g˘asi tipul de date al unei valori.
a
Pentru a salva o valoare pentru a o utiliza mai tˆarziu, ˆın Python se utilizeaz˘ o variabil˘a, care
este un nume care reprezint˘a o valoare. Pentru a crea o variabil˘a, se selecteaz˘a un nume s , i se
utilizeaz˘ semnul egal pentru a atribui o valoare variabilei. Dup˘ ce o variabil˘ a fost init , ializat˘a,
a
a
a
a
poate fi utilizat˘ mai tˆarziu ˆın program. De fiecare dat˘ cˆand programul vede numele variabilei,
a
acesta va ˆınlocui valoarea acelei variabile. Se pot utiliza operatori aritmetici ˆın Python.
distant , aCurent˘a = pasare.getDistance() leftLight = pasare.getLight(’L’)
print(distant , aCurent˘a) rightLight = pasare.getLight(’R’)
print(2* distant , aCurent˘a) diferent , a = leftLight - rightLight
print(4* distant , aCurent˘a) print(diferent , a)
media = (leftLight + rightLight)/2
print(media)
Alte tipuri de ies , iri: controlul luminilor din ciocul s , i coada lui Finch. Fiecare dintre luminile
a
a
din cioc s , i coad˘ are de fapt trei elemente mici de lumin˘ ˆın interiorul acestuia. Unul este ros , u,
unul este verde, iar unul este albastru.
a
a
a
a
Pentru a seta culoarea ciocului, se utilizeaz˘ metoda setBeak(). Aceast˘ metod˘ necesit˘ trei
a
a
parametri care seteaz˘ valorile a trei culori. Prin combinarea cantit˘t , ilor diferite din aceste trei
a
culori, se pot crea alte culori. Funct , ia setBeak() seteaz˘ culoarea ciocului s , i apoi trece imediat
la urm˘atoarea linie din program. Pentru a ˆıntrerupe fiecare culoare, se utilizeaz˘ funct , ia sleep().
a
a
Funct , ia sleep() are un singur parametru care este un num˘ar de secunde pentru ca programul s˘
se ˆıntrerup˘a; acesta poate fi un num˘ar ˆıntreg sau un num˘ar zecimal. Funct , ia sleep() trebuie
importat˘ din biblioteca time.
a
Coada lui Finch cont , ine patru lumini. Pentru a le controla, se utilizeaz˘a metoda setTail(),
a
a
care este similar˘ cu setBeak(), cu except , ia faptului c˘ are un parametru suplimentar. Parametrul
portului controleaz˘a lumina care este activat˘a. Acest parametru trebuie setat fie la un num˘ar
ˆıntreg de la 1 la 4, fie la valoarea s , irului ”toate”.
# setare luminile 1 s , i 4 la ros , u respectiv albastru timp de # arat˘ un curcubeu de culori pe ciocul s , i coada lui Finch
a
2 secunde pasare.setBeak(100,0,0)
pasare.setTail(1,100,0,0) pasare.setTail(1,100,0,100)
pasare.setTail(4,0,0,100) pasare.setTail(2,0,0,100)
sleep(2) pasare.setTail(3,0,100,100)
pasare.stopAll() pasare.setTail(4,0,100,0)
sleep(2)
pasare.stopAll()
Se pot scrie programe pentru a permite unui utilizator s˘a controleze Finch. Se poate
utiliza funct , ia input() pentru a adresa o ˆıntrebare utilizatorului s , i a as , tepta un r˘aspuns. Cˆand
a
utilizatorul atinge tasta Enter, funct , ia returneaz˘ r˘aspunsul lor. Valoarea returnat˘ de input()
a
a
este un s , ir, caz ˆın care se s , tie c˘ utilizatorul a introdus un num˘ar, astfel ˆıncˆat s˘ poat˘ fi folosit˘
a
a
a
funct , ia int() pentru a converti userResponse la un num˘ar variabil de tip int.
userResponse=input(”Valoare ros , u (0-100): ”) #preia input utiliza- userResponse=input(”Lungime ˆın centimetri: ”)
tor latura = int(userResponse)
ros , u=int(userResponse) # Convertire la int pasare.setTail(’all’,100,0,0)
userResponse=input(”Valoare verde(0-100): ”) #preia input utiliza- pasare.setMove(’F’,side,60)
tor pasare.setTurn(’R’,90,50)
verde=int(userResponse) # Convertire la int pasare.setTail(’all’,0,100,0)
userResponse=input(”Valoare albastru(0-100): ”) #input utilizator pasare.setMove(’F’,side,60)
albastru=int(userResponse) # Convertire la int pasare.setTurn(’R’,90,50)
pasare.setBeak(ros , u,verde,albastru) pasare.setTail(’all’,0,0,100)
pasare.setTail(”all”, ros , u,verde,albastru) pasare.setMove(’F’,side,60)
sleep(3) pasare.setTurn(’R’,90,50)
pasare.stopAll() pasare.setTail(’all’,100,0,100)
pasare.setMove(’F’,side,60)
pasare.setTurn(’R’,90,50)
pasare.stopAll()