Sunteți pe pagina 1din 8

Constructia unui robot

• Pentru construirea unui robot aveti nevoie de cunostinte minime in


electronica, mecanica si programare. Nu trebuie sa va speriati, ca nu e chiar asa
de complicat. Va voi explica cate ceva, iar restul puteti sa mai gasiti pe
internet (probabil in limba engleza).
Un robot este compus din o parte mecanica (sasiu, roti, reductoare de turatie -
gear box, eventual un brat cu un cleste - arm + gripper), o parte electronica
(senzori, motoare, afisaj, difuzor, microfon, controller) si o parte de logica
(programul care decide felul in care robotul actioneaza motoarele in functie de
datele returnate de senzori).
Cand incepeti sa construiti un robot trebuie sa va ganditi la ce il veti folosi.
Daca este destinat participarii la diverse competitii pe teme robotice, cititi
regulametele sa vedeti daca nu sunt specificate dimensiuni, greutate, etc. de la
care nu trebuie sa va abateti. Cel mai bine este sa va ganditi la un sistem
modular, usor reconfigurabil, pe care sa il puteti folosi la un numar cat mai mare
de competitii. Acelasi lucru este valabil si in cazul in care construiti un robot
pentru uzul personal in casa.
Cea mai importanta componenta a robotului o constituie controllerul. Acesta poate
fi un micro-controller sau chiar un calculator. Dar si daca optati pentru un PC ca
fiind "creierul" robotului, cel mai bine este sa aveti si un micro-controller
(conectat la portul serial sau USB), care sa citeasca senzorii si sa dea comenzi
motoarelor. In felul acesta PC-ul se poate ocupa de calcule mai grele, cum ar fi
recunoasterea de imagine, pozitia pe harta, recunoastere de voce si altele. Cel
mai des intalnita este combinatia laptop-micro-controller, dar se poate lucra si
cu componente ale unui calculator desktop, pentru reducerea costului.
Micro-controllerul poate fi din familia Basic Stamp, Atmel AVR, OOPIC, PIC Micro,
Basic Atom, etc. Cea mai ieftina si usor accesibila este familia PIC Micro, pretul
unui controller fiind de la 3-4 dolari pana pe la 14-15. Se gaseste si in Romania
la magazinele de componente electronice care aduc piese din Germania. Partea
proasta este ca aveti nevoie de un asa numit "programmer", care este un montaj
electronic pe care se pune controllerul pentru a fi programat, un compiler, care
este un software care traduce instructiunile scrise de voi in diverse limbaje si
apoi le descarca in controller. Ca sa nu fie necesara la fiecare programare
scoaterea controllerului de pe placa electronica si punerea in programator, se
poate folosi un "boot loader" care permite programarea controlerului in circuit,
folosind portul serial sau un conector special al programatorului.
Deplasarea. Robotii se pot deplasa folosind roti, senile sau picioare. Mai rar se
intalnesc robotii care se deplaseaza in apa sau aer, folosind diverse mijloace de
propulsie, bazate in general pe motor si elice. Deplasarea pe roti se poate face
in doua feluri: stil masina - un motor propulseaza robotul si alt motor asigura
directia, si stil tanc - un motor propulseaza roata stanga a robotului si alt
motor roata dreapta a robotului. Aceasta deplasare se mai numeste si deplasare
diferentiala. Pentru echilibrare, robotul fie foloseste una sau doua roti cu
rotire independenta, fie foloseste cate doua roti motoare pe fiecare parte, care
lucreaza in stil senila de tanc.
Motoarele. Cel mai des intalnite sunt motoarele de curent continuu, conectate la
un reducator de turatie cu roti dintate (sau curele). Aceste motoare sunt usor de
gasit in diverse jucarii electrice si in aparatura video.
Un caz aparte reprezinta servo-motoarele, care au reductorul de turatie si
circuitul de comanda gata integrate. Aceste motoare au un unghi de deplasare de
circa 180 grade, dar se pot modifica destul de usor pentru rotire continua.
Avantajul lor este folosirea unui singur port al controllerului pentru a le
comanda, spre deosebire de motoarele de curent continuu care au nevoie de un
circuit de comanda si de 3 porturi ale controllerului.
Se mai intalnesc si motoare pas-cu-pas, care permit un control mai bun al
deplasarii dar necesita mai folosirea mai multor porturi ale controllerului.
Senzorii. Pentru a se putea deplasa fara sa se izbeasca de primul obiect intalnit
in cale, robotul foloseste diversi senzori. Acesti senzori pot fi de contact, de
lumina, de proximitate, de distanta, de temperatura, de presiune,de sunet, de
imagine.
Senzorii de contact sunt de obicei mecanici si sunt montati pe un fel de bare de
protectie, care la atingerea de un obiect inchid sau deschid un circuit semnaland
robotului coliziunea.
Senzorii de lumina sunt de obicei foto-rezistente de tipul CDS, care isi modifica
rezistenta in functie de lumina ambienta.
Senzorii de proximitate sunt de obicei o combinatie de emitator-receptor de lumina
infra-rosie, care se bazeaza pe emiterea unei unde infra-rosii care se reflecta pe
suprafata unui obiect si este apoi receptionata. Acesti senzori semnaleaza
controllerului prezenta unui obiect la o anumita distanta, robotul putand astfel
evita coliziunea.
Senzorii de distanta se bazeaza pe acelasi principiu ca cei de proximitate, dar
masoara ungiul de intoarcere a razei infra-rosii, determinand astfel distanta pana
la obiect. Alt fel de senzori de distanta sunt senzorii ultrasonici, care masoara
timpul in care se intoarce sunetul reflectat de un obiect.
Senzorii de temperatura masoara temperatura unui obiect, cei de sunet detecteaza
prezenta unui sunet sau volumul lui, cei de presiune masoara presiunea aerului sau
a unui lichid intr-un sistem pneumatic sau hidraulic.
Senzorii de imagine sunt de obicei camere video care sunt folosite pentru
recunoastere de obiecte.
Surse de componente pentru construirea unui robot:
Jucarii electrice, timere, casetofoane, orice aparatura care poate contine motoare
si eventual senzori. In special video-casetofoanele stricate sunt sursele cele mai
bune de componente in construirea unui robot. In aceste aparate se gasesc, in
afara de resistente si condensatori, unul sau doua motoare cu reductoare de
turatie, uneori chiar cu reductor de tip melc-roata melcata, care este perfect
pentru realizarea unui brat pentru robot, un senzor IR modulat pe frecventa de 38
sau 40 KHz, perfect pentru telecomanda, detectare de obiecte sau comunicare intre
roboti, una sau doua fotodiode IR si unul sau doua LED-uri IR, folosite la
detectarea de margine alb-negru sau proximitate.
.
Am atasat o schema electronica a unui robot care poate fi folosit la meciuri de
Sumo, urmarire de linie, labirint, deplasare la intamplare cu evitarea
obstacolelor intalnite in cale, etc.

Dupa cum se vede de pe schema, componenta principala o reprezinta controllerul


Nemesis, care este un PIC micro 16F88 cu un "boot loader" pre-programat. De ce am
ales acest controller? In primul rand pentru ca este usor de programat in limbaj
Basic, apoi pentru ca mediul de programare se descarca gratuit de pe internet
impreuna cu documentatia aferenta si se pot gasi o gramada de exemple de folosire
in forumul de pe site-ul firmei producatoare, Kronos Robotics
(www.kronosrobotics.com). Un alt criteriu reprezinta pretul de numai $12.95. Un
PIC 16F88 se poate cumpara intre 4 si 8 dolari, in functie de magazin. Dar aveti
nevoie de un programator (cel mai ieftin e in jur de $40) si de un compilator (in
limbaj Basic cel mai ieftin e $99 sau pentru limbaj de asamblare se poate descarca
gratuit). De fapt, si pentru programarea lui Nemesis aveti nevoie de un adaptor de
nivel logic pentru portul serial. (Vezi schema Adaptor)
A doua componenta importanta este integratul SN754410E, fabricat de Texas
Instruments, care este un "Quad Half H-Bridge", cu care se pot comanda 2 motoare
de curent continuu sau un motor pas-cu-pas. Costa in jur de 2 dolari si se poate
comanda la magazinele de import de piese electronice. Fiecare motor are 2 pini de
comanda plus un pin de enable, care poate fi oscilat cu o frecventa crescatoare
pentru un efect de accelerare sau descrescatoare pentru un efect de incetinire.
Interesant este ca daca ambii pini de comanda sunt 1 logic si pinul de enable tot
1 logic, motorul este franat electronic.
Piesa U1 este un "Photo IC" PNA4613, 40KHz, fabricat de Panasonic. Este un senzor
infrarosu, sensibil la un semnal modulat pe o frecventa de 40KHz, care se gaseste
in mai toate aparatele electronice care folosesc telecomanda - video, TV, DVD,
etc. In aceasta schema, senzorul este folosit pentru mai multe scopuri, in functie
de necesitati. In principal este folosit la detectarea oponentului, dar se pate
folosi si pentru a telecomanda robotul sau pentru a primi mesaje sau comenzi de la
un alt robot. Dupa cum vedeti in schema, la stanga si la dreapta lui U1 se afla
cate un LED infrarosu, pe lungimea de unda de 940nm, in capsula de 5mm. Aceste
LED-uri sunt comandate de portul 6 al controllerului, care poate fi setat ca Pulse
Width Modulation pentru generarea unui semnal cu frecventa de 40KHz. Din
semireglabilul R3 se regleaza curentul care trece prin LED pentru reglarea
distantei la care obstacolele vor fi detectate. Din cauza ca exista un singur port
pentru comanda a 2 LED-uri, am conectat fiecare LED la un port diferit al
controllerului, selectand din program care LED va fi activ. Am folosit 2 LED-uri
pentru a avea detectectia obstacolelor pe stanga-centru-dreapta.
Se mai observa in scema 2 grupuri de LED-Fototranzistori infrarosii, care sunt
recuperate dintr-un video casetofon stricat. Fototranzistorii sunt in capsula de 3
mm, cu lungimea de unda de 940nm. Pentru realizarea acestui montaj aveti nevoie de
2 LED-uri infrarosii in capsula de 3 mm. (LED-ul din aparatul video era de 5 mm si
l-am folosit la detectia obstacolelor impreuna cu cel recuperat din telecomanda
aparatului). Se pot cumpara senzori incapsulati in plastic, in capsule de diverse
marimi si forme, pentru 2-4 dolari bucata. Din semireglabilul R6 se regleaza
sensibilitatea senzorilor (intre 1 si 2 cm). Acesti senzori detecteaza trecerea de
pe negru (high) pe alb (low) si sunt folositi pentru detectarea marginii ringului
de Sumo sau a unei linii negre pe fond alb - la urmarire de linie.
Regulatorul de tensiune este de tip "low dropout" LM 2940. Se poate folosi si un
regulator de tip 7805 dar atunci montajul trebuie alimentat la 7,5-9V.
Motoarele sunt de curent continuu, recuperate dintr-o jucarie electrica (masina
telecomandata) sau video casetofon, etc. Trebuie sa fiti atenti ca firele de
alimentare ale motoarelor sa fie rasucite si motoarele sa aibe condensatori
ceramici de decuplare de 0.1uF montati direct pe motor astfel: unul intre cele
doua fire, unul de la un fir la carcasa si altul de la celalalt fir la carcasa.
In urmatoarea parte a tutorialului voi atasa si discuta un program de deplasare la
intamplare cu evitarea obstacolelor.
Dupa cum am spus in partea I, pentru programarea lui Nemesis aveti nevoie de un
adaptor de semnal pentru portul serial. Acesta este realizat cu un circuit
integrat MAX232, care aduce semnalul de la portul serial la nivel TTL si il
inverseaza. Aceasta schema se poate integra in schema robotului sau se poate
realiza separat pentru a se putea folosi la programarea a mai multor roboti.

Iata si programul, scris in limbaj Basic, folosind mediul de programare Athena


dezvoltat de firma Kronos Robotics. Poate fi usor transcris in limbaj de asamblare
si programat intr-un PIC 16F88.
Descarcati programul in Visual Basic
Pentru a fi usor de inteles de catre novici, am scris in romana numele de
variabile, etichete, subrutine, etc. In mod normal se scrie direct in engleza,
eventual comentariile in romana. Celelalte programe asa vor fi scrise.
Programul e simplu: citeste senzorul, afiseaza valorile (pentru teste), decide cum
trebuie facuta deplasarea, mergi la inceput. Sa le luam pe rand.
1. Citirea senzorului IR. In acest caz am folosit un singur senzor IR si doua LED-
uri pe care le pornesc pe rand, pentru o fractiune de secunda, dupa care citesc
valoarea senzorului si o scriu intr-o variabila pentru fiecare LED in parte. Se
pot folosi 2 senzori si 2 LED-uri, in acest caz LED-urile fiind legate in serie
intre semireglabil si masa. Astfel se elibereaza un port care poate fi folosit la
altceva.
2. Afisarea valorilor. Afisarea se face in fereastra Debug (pe calculator), cablul
serial fiind inca conectat la controller. (Este bine ca alimentarea motoarelor sa
aibe un comutator sa le puteti scoate din functiune pentru teste.) Afisarea
valorilor e importanta pentru reglarea sensibilitatii detectiei din semireglabilul
R3. Luati o foaie de hartie si tineti-o in fata robotului la distanta maxima la
care doriti ca robotul sa inceapa sa detecteze obiecte si apoi rotiti
semireglabilul pana cand valorile se schimba din 1 in 0. Ori de cate ori doriti sa
modificati sensibilitatea, procedati ca mai sus. Veti observa ca in functionare,
robotul va reactiona diferit la diverse materiale si culori, cel mai greu de
detectat fiind culoarea neagra, mata.
3. Decizia deplasarii. Imaginati-va ca sunteti la bordul unui tanc. Aveti doua
manse, una pentru comanda motorului stang si una pentru comanda motorului dreapt.
Daca le miscati in fata, tancul merge inapoi. Daca le miscati in spate, tancul
merge inainte. Ca sa cotiti la stanga, mansa stanga o miscati in spate, cea
dreapta fiind in fata, si invers, daca vreti sa cotiti spre dreapta. In acelasi
fel functioneaza decizia deplasarii si la robotul de fata. Daca nu este detectat
nici un obiect, robotul merge inainte. Daca un obiect este detectat la stanga,
robotul trebuie sa coteasca spre dreapta, adica sa faca motorul din dreapta sa
mearga inapoi. Daca un obiect este detectat spre dreapta, trebuie sa faca motorul
din stanga sa mearga inapoi. Dar daca este detectat un obiect in fata? Atunci
robotul va face ambele motoare sa mearga in spate.
4. Reluare. Ciclul s-a incheiat, o luam de la inceput.
Acest program este foarte simplu si se poate folosi si cu alte tipuri de senzori,
ca: senzori de contact, senzori de margine - pentru urmarire de linie sau sumo, cu
foarte mici modificari (la citirea senzorilor).
Imbunatatiri.
Daca il puneti in practica, veti observa ca se pot aduce imbunatatiri in
functionare, in special in situatii in care robotul se impotmoleste intr-un colt
de camera.
O alta situatie este atunci cand nu reuseste sa detecteze un obiect si se loveste
de el. In acest caz, se pot folosi senzori de contact, conectati la cele doua
porturi ramase libere.
Dar daca vrem ca robotul sa mearga intr-un anume loc si apoi sa se intoarca la
locul de unde a plecat (baza)? Pentru asta trebuie sa masuram distanta parcursa si
unghiurile de cotire. Acest lucru se poate face in doua moduri: cu un contor de
timp sau cu un contor de impulsuri.
Dar daca adaugam robotului un brat simplu si vrem sa se deplaseze la intamplare
prin camera si sa culeaga diverse obiecte (pe care le poate apuca) si sa le aduca
la baza?
Despre toate aceste posibilitati vom vorbi in lectiile urmatoare...
Ca sa vedeti ce se poate face din piese recuperate din VCR-uri stricate (video
cassette recorder), am adunat de la gunoi (de fapt le-am luat de la o firma care
repara televizoare, ca fiind nerecuperabile) 2 VCR-uri diferite, dar care s-au
dovedit a fi foarte asemanatoare. Am facut cateva poze la unul din ele, sa va pot
arata care sunt piesele importante.
Fotodiodele IR (5 buc in total, dar am folosit doar 3), LED-urile IR (cate unul in
mijlocul fiecarei placi), senzorul demodulator IR, cativa rezistori de 10K, unul
de 100 de ohmi, un condensator de 10uF, unul de 1000uF, motoarele, impreuna cu
curelele mici), 2 rotite care trag banda in caseta, un micro-intrerupator, un Led
verde, un semireglabil, un suport de plastic si o bucatica de tabla cu 2 gauri -
au fost scoase din aceste 2 aparate.
Pe langa aceste piese am mai cumparat: o placa de textolit perforata, cu "pastile"
de cupru pe o parte, un soclu de integrate cu 18 pini, unul cu 16 pini, un
conector cu 5 pini in linie (female), 2 conectori cu 3 pini (female), un conector
cu 2 pini (male), mansoane termoconstrictibile, un soclu de baterii A6 (pt 4 buc),
un circuit integrat SN754410E, un controller Nemesis. Am mai folosit 2 cuie,
cateva saibe, cateva surubele de lemn, cateva suruburi cu piulita de 3 mm, o
bucsa, cateva bucati de... tie-wraps si sarma de wrapping. Ciocan de lipit,
fludor, etc.
Dupa ce am deslipit piesele de care aveam nevoie, am pregatit placa perforata. Am
taiat o bucata de circa 75x100 mm, am taiat 2 colturi la 45 grade (in fata) si am
slefuit-o cu smirghel. Am pregatit rotile, folosind cuiul si 2 saibe, apoi am
prins cuiele pe placa, cu rotile montate pe ele, cu ajutorul a catorva bucati de
sarma rasucite si lipite. Am luat motoarele si curelele si l-am pozitionat pe
placa, marcand locul unde vor fi instalate. Am dat 8 gauri de 4 mm in locurile
marcate si apoi am prins motoarele pe placa folosind tie wraps. Bineinteles ca am
uitat sa montez pe ele condensatorii de filtraj, asa ca a trebuit sa le dau jos,
sa-i pot monta mai usor...
Am inceput sa lipesc piese pe placa, incepand cu soclurile pentru integrate,
condensatorii de 0.1u si de 10u, rezistorii de 10K, soclul cu 5 pini (pentru
programare), micro-intrerupatorul, condensatorul de 1000u, conectorul cu 2 pini si
jumper (pentru a putea decupla tensiunea de alimentare la motoare in timpul
programarii), LED-ul verde, rezistorul de 100ohmi. Am lipit apoi senzorul
demodulator, cele 2 LED-uri IR (dupa ce in prealabil le-am prelungit piciorusle si
le-am acoperit cu mansoane termoconstrictibile) si semireglabilul. Cea mai mare
problema este faptul ca acele pastile sunt foarte usor de rupt daca se incearca
miscarea unei piese. Din acest motiv a trebuit sa indoi piciorusele si sa le
lipesc pe mai multe pastile. La sfarsit am montat cele 2 conectoare cu 3 pini, pe
care le voi folosi sa atasez o placuta pe care voi monta cele 3 diode IR impreuna
cu 2 LED-uri IR asezate intre ele, pe care le vom folosi la urmarile de linie.
Dupa ce toate piesele au fost lipite pe placa, am inceput sa le unesc folosind
sarma de wrapping. La sfarsit am conectat soclul de baterii si am cautat o solutie
pentru a "fabrica" a 3-a roata. Am luat o bucata de plastic (din VCR) care avea un
tub fixat vertical pe o placa orizontala (pe care am taiat-o mai mica) si am
montat-o pe placa cu ajutorul unui surub de lemn. Am luat apoi o bucatica de tabla
cu 2 gauri la capete (tot din VCR), pe care am rasucit-o in asa fel incat o gaura
sa fie verticala si cealalta orizontala. Am gasit in una din cutiile mele cu piese
o bucsa din plastic, de marime cam cat o rola presoare de la un casetofon audio (o
rola presoare e mult mai buna din cauza ca are cauciuc pe ea), pe care am prins-o,
folosind un surub cu piulite, de un capat al tablei. Folosind un alt surub cu
piulite, am prins tabla de tubul de plastic, in asa fel incat sa se poata invarti
usor.
Am pus apoi bateriile, am scos jumperul sa nu porneasca motoarele si am bagat
adaptorul serial in conectorul cu 5 picioare. Am descarcat programul in controller
si pe ecran s-a deschis fereastra de debug aratandu-mi valorile citite de senzor.
Tinand mana in fata senzorului, am reglat semireglabilul incat sa se schimbe
valorile cand mana se afla la circa 10 cm in fata robotului. Am oprit apoi robotul
si am deconectat adaptorul serial si am pus inapoi jumperul.
Am pus apoi robotul pe jos si i-am dat drumul! A pornit in viteza spre un perete
si cand a ajuns aproape s-a intors fara sa se loveasca! A reusit sa evite aproape
toate obiectele din camera, cea mai mare problema fiind obiectele negre.
Ca sa puteti si voi vedea cum merge, am facut un mic filmulet cu camera digitala
pe care puteti sa-l descarcati folosind linkul de mai jos. Sper sa va placa!

Program Visual Basisc pt programare


Nemesis
'===============================================================
'Robot cu 2 Motoare si 1 senzor IR pt. detectare de proximitate
'Deplasare la intamplare folosind "faruri" InfraRosii
'Programul compilat ocupa: 176 biti (din 1024 biti)
'===============================================================

'--------------------------------------------------
'Declaratii variabile,etichete,etc.
'--------------------------------------------------

dim StangaIR 'variabile in care se vor stoca valorile


dim DreaptaIR 'senzorului IR pt stanga respectiv dreapta

const Motor1a 8 'motor dreapta


const Motor1b 9 '
const Motor2a 10 'motor stanga
const Motor2b 14 '
const MotorEn 13 'activeaza motoare

const IRsenzor 5 'senzorul IR de proximitate


const IRmod 6 'modulator

const IRLedSt 11 'IR LED proximitate stanga


const IRLedDr 7 'IR LED proximitate dreapta

const IRmargineS 2 'IR LED margine stanga


const IRmargineD 3 'IR LED margine dreapta

hwpwm 0,50,15 'initializare modulator 40KHz 60% "on time"

'=================================================================
'Programul principal
'=================================================================
output Motor1a 'Se declara porturile la care sunt conec-
output Motor1b 'tate motoarele si LED-urile IR ca iesire
output Motor2a '"output" si apoi se seteaza starea
output Motor2b 'portului sus "high" sau jos "low".
low Motor1a 'Porturile nedeclarate vor fi automat
low Motor1b 'setate ca intrare "input".
low Motor2a
low Motor2b

output IRLedSt
output IRLedDr
high IRLedSt
high IRLedDr

output MotorEn
high MotorEn

'-----------------------------------------------------------------
'Bucla principala
'-----------------------------------------------------------------
Mainloop:

'-------------------------------------------------
'citeste senzorii
'-------------------------------------------------
gosub CitireSenzorIR

'-------------------------------------------------
'afiseaza in fereastra Debug valorile citite
'-------------------------------------------------
print "Stanga ",StangaIR," Dreapta ",DreaptaIR

'-------------------------------------------------
'decide directia deplasarii
'-------------------------------------------------
if DreaptaIR = 0 then 'obstacol detectat la dreapta
gosub StangaInapoi 'motorul stanga inapoi
else 'nimic detectat
gosub StangaInainte 'motorul stanga inainte
endif
if StangaIR = 0 then 'obstacol detectat la stanga
gosub DreaptaInapoi 'motorul dreapta inapoi
else 'nimic detectat
gosub DreaptaInainte 'motorul dreapta inainte
endif

goto Mainloop 'mergi la inceputul buclei

'=================================================================
'Subrutine
'=================================================================

'-------------------------------------------------
'Controlul motoarelor
'-------------------------------------------------
DreaptaInainte:
low Motor1b
high Motor1a
return

DreaptaInapoi:
low Motor1a
high Motor1b
return

StangaInainte:
low Motor2b
high Motor2a
return

StangaInapoi:
low Motor2a
high Motor2b
return

'-------------------------------------------------
'Citeste senzorul IR de proximitate
'-------------------------------------------------
CitireSenzorIR:
low IRLedDr 'activeaza LED IR dreapta
output IRmod 'porneste modulatorul
pause 1 'asteapta o milisecunda
input IRmod 'opreste modulatorul
DreaptaIR = inp.IRsenzor 'citeste senzorul
pause 1 'asteapta o milisecunda
high IRLedDr 'dezactiveaza LED IR dreapta
low IRLedSt 'activeaza LED IR stanga
output IRmod 'porneste modulatorul
pause 1 'asteapta o milisecunda
input IRmod 'opreste modulatorul
StangaIR = inp.IRsenzor 'citeste senzorul
pause 1 'asteapta o milisecunda
high IRLedSt 'dezactiveaza LED IR stanga
return

S-ar putea să vă placă și