Constructia Unui Robot

12
 GENERALITATI Cuvântul `robot` a fost folosit pentru prima datã în sensul acceptat astãzi în anul 1920 de cãtre scriitorul ceh K. Capek , care l-a preluat din limba cehã unde înseamnã “muncã grea”. Epopea roboţilor industriali dureazã de numai 30 de ani. Primul robot industrial a fost folosi t în anul 1963 la uzine le Trenton ( S.U.A. ) ale compan iei General Motors. De atunci şi pânã astãzi numãrul şi performanţele roboţilor industriali au crescut în continuu ,  pe mãsura dezvoltãrii posibilitãţilor lor , gãsindu-şi noi utilizãri , astãzi putând fi folosiţi în toate sferele de activitate , ziua când el va putea efectua orice gen de operaţ ii întrezãrindu-se deja. Existã o multitudine de definiţii date roboţilor industriali. Mai nou definiţiile roboţi lor indust riali au fost standardi zate de cãtre principale le ţãri producãtoar e . Astf el norma francezã NF E61-100/1983 defineşte robotul industrial astfel : “ Un robot industrial este un mecanism de manipulare automatã , aservit în pozi ţ ie , reprogramabil , polivalent , capabil sã poziţioneze şi sã orienteze materialele, piesele , uneltele sau dispozitivele specializate , în timpul unor mişcãri variabile şi programate , destinate executãrii unor sarcini variate.” Dupã norma germanã VDI 2860 BI.1 “ roboţii industriali sunt automate mobile universale , cu mai multe axe , ale cãror mişcãri sunt liber programate pe traiectorii sau unghiuri , într-o anumitã succesiune a mişcãrilor şi în anumite cazuri comandate prin senzori. Ele pot fi echipate cu dispozitive de prehensiune, scule sau alte mijloace de fabricaţie şi pot îndeplini activitãţi de manipulare sau tehnologice.” Dupã norma rusã GOST 25685-83 , “ robotul industrial este maşi na automatã care reprezintã ansamblul manipulatorului şi al dispozitivului de comandã reprogramabil ,  pentru realiza rea în procesu l de producţ ie a funcţ iilo r motri ce şi de comandã , înlocuind funcţiile analoage ale omului în deplasarea pieselor şi / sau a uneltelor tehnologice.” Standardul japonez JIS B 0124/1979 defineşte robotul industrial ca :”...un sistem mec anic dot at cu fun cţ i i mot oare fle xib il e analoage cel or ale organis mel or vii sau combin ã asemenea fun cţ i i mot oare cu fun cţ i i inteli gen te , sis tem e care acţ ti onea corespunzãtor voinţei omului.” In contextul acestei definiţii, prin funcţie inteligentã se înţ elege capacitatea sistemului de a executa cel puţ in una din urmãtoarele acţ iuni :  judecatã , recunoaşterea , adaptarea sau învãţarea. Dezvoltarea explozivã a roboţ ilor industriali a condus la apari ţ ia unui numãr enorm de roboţi industriali având cele mai diferite forme şi structuri. A apãrut astfel necesitatea clasificãrii roboţilor industriali dupã anumite cr iterii. Ei se clasificã astfel : I. Dupã informaţia de intrare şi modul de învãţare al robotului industrial : I.1. Manipulator manual, care este acţionat direct de cãtre om; I.2. Robot secvenţial, care are anumiţi paşi ce “asculta” de o procedurã predeterminatã. La rândul lor aceştia pot fi : - robot secvenţial fix, la care informaţia predeterminatã nu poate fi uşor modificatã; - robot secvenţial variabil, la care informaţia predetrminatã poate fi uşor schimbatã; I.3. Robot repetitor (playback). La început omul învaţã robotul procedura de lucru, acesta memoreazã procedura, apoi o poate repeta de câte ori este nevoie.

Transcript of Constructia Unui Robot

Page 1: Constructia Unui Robot

5/14/2018 Constructia Unui Robot - slidepdf.com

http://slidepdf.com/reader/full/constructia-unui-robot-55a758b5e6216 1/12

GENERALITATI 

Cuvântul `robot` a fost folosit pentru prima datã în sensul acceptat astãzi în anul 1920 decãtre scriitorul ceh K. Capek , care l-a preluat din limba cehã unde înseamnã “muncãgrea”.

Epopea roboţilor industriali dureazã de numai 30 de ani. Primul robot industrial afost folosit în anul 1963 la uzinele Trenton ( S.U.A.) ale companiei General Motors. Deatunci şi pânã astãzi numãrul şi performanţele roboţilor industriali au crescut în continuu , pe mãsura dezvoltãrii posibilitãţilor lor , gãsindu-şi noi utilizãri , astãzi putând fi folosiţiîn toate sferele de activitate , ziua când el va putea efectua orice gen de operaţiiîntrezãrindu-se deja.

Existã o multitudine de definiţii date roboţilor industriali. Mai nou definiţiileroboţilor industriali au fost standardizate de cãtre principalele ţãri producãtoare . Astfelnorma francezã NF E61-100/1983 defineşte robotul industrial astfel :“ Un robot industrial este un mecanism de manipulare automatã , aservit în poziţie ,reprogramabil , polivalent , capabil sã poziţioneze şi sã orienteze materialele, piesele ,

uneltele sau dispozitivele specializate , în timpul unor mişcãri variabile şi programate ,destinate executãrii unor sarcini variate.”Dupã norma germanã VDI 2860 BI.1 “ roboţii industriali sunt automate mobile

universale , cu mai multe axe , ale cãror mişcãri sunt liber programate pe traiectorii sauunghiuri , într-o anumitã succesiune a mişcãrilor şi în anumite cazuri comandate prinsenzori. Ele pot fi echipate cu dispozitive de prehensiune, scule sau alte mijloace defabricaţie şi pot îndeplini activitãţi de manipulare sau tehnologice.”

Dupã norma rusã GOST 25685-83 , “robotul industrial este maşina automatã carereprezintã ansamblul manipulatorului şi al dispozitivului de comandã reprogramabil , pentru realizarea în procesul de producţie a funcţiilor motrice şi de comandã , înlocuindfuncţiile analoage ale omului în deplasarea pieselor 

şi / sau a uneltelor tehnologice.”Standardul japonez JIS B 0124/1979 defineşte robotul industrial ca :”...un sistemmecanic dotat cu funcţii motoare flexibile analoage celor ale organismelor vii saucombinã asemenea funcţii motoare cu funcţii inteligente , sisteme care acţtioneazãcorespunzãtor voinţei omului.” In contextul acestei definiţii, prin funcţie inteligentã seînţelege capacitatea sistemului de a executa cel puţin una din urmãtoarele acţiuni : judecatã , recunoaşterea , adaptarea sau învãţarea.

Dezvoltarea explozivã a roboţilor industriali a condus la apariţia unui numãr enorm de roboţi industriali având cele mai diferite forme şi structuri. A apãrut astfelnecesitatea clasificãrii roboţilor industriali dupã anumite criterii. Ei se clasificã astfel :I. Dupã informaţia de intrare şi modul de învãţare al robotului industrial :

I.1. Manipulator manual, care este acţionat direct de cãtre om;I.2. Robot secvenţial, care are anumiţi paşi ce “asculta” de o procedurã predeterminatã.La rândul lor aceştia pot fi :- robot secvenţial fix, la care informaţia predeterminatã nu poate fi uşor modificatã;- robot secvenţial variabil, la care informaţia predetrminatã poate fi uşor schimbatã;

I.3. Robot repetitor (playback). La început omul învaţã robotul procedura de lucru, acestamemoreazã procedura, apoi o poate repeta de câte ori este nevoie.

Page 2: Constructia Unui Robot

5/14/2018 Constructia Unui Robot - slidepdf.com

http://slidepdf.com/reader/full/constructia-unui-robot-55a758b5e6216 2/12

I.4. Robot cu control numeric. Robotul industrial executã operaţiile cerute în conformitatecu informaţiile numerice pe care le primeşte.I.5. Robotul inteligent îşi decide comportamentul pe baza informaţiilor primite prinsenzorii pe care îi are la dispoziţie şi prin posibilitãţile sale de recunoaştere.

CONSTRUCTIA UNUI ROBOT 

Pentru construirea unui robot aveti nevoie de cunostinte minime in electronica, mecanicasi programare.

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 incare robotul actioneaza motoarele in functie de datele returnate de senzori).

Cea mai importanta componenta a robotului o constituie controllerul. Acesta poate fi unmicro-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 portulserial sau USB), care sa citeasca senzorii si sa dea comenzi motoarelor. In felul acestaPC-ul se poate ocupa de calcule mai grele, cum ar fi recunoasterea de imagine, pozitia peharta, 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, pentrureducerea 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 unuicontroller fiind de la 3-4 dolari pana pe la 14-15. Se gaseste si in Romania la magazinelede componente electronice care aduc piese din Germania. Partea proasta este ca avetinevoie de un asa numit "programmer", care este un montaj electronic pe care se punecontrollerul pentru a fi programat, un compiler, care este un software care traduceinstructiunile scrise de voi in diverse limbaje si apoi le descarca in controller. Ca sa nu fienecesara la fiecare programare scoaterea controllerului de pe placa electronica si punereain programator, se poate folosi un "boot loader" care permite programarea controleruluiin 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 carese deplaseaza in apa sau aer, folosind diverse mijloace de propulsie, bazate in general pemotor 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 roatastanga a robotului si alt motor roata dreapta a robotului. Aceasta deplasare se mai

Page 3: Constructia Unui Robot

5/14/2018 Constructia Unui Robot - slidepdf.com

http://slidepdf.com/reader/full/constructia-unui-robot-55a758b5e6216 3/12

numeste si deplasare diferentiala. Pentru echilibrare, robotul fie foloseste una sau douaroti cu rotire independenta, fie foloseste cate doua roti motoare pe fiecare parte, carelucreaza in stil senila de tanc.

 Motoarele. 

Cel mai des intalnite sunt motoarele de curent continuu, conectate la un reducator deturatie cu roti dintate (sau curele). Aceste motoare sunt usor de gasit in diverse jucariielectrice si in aparatura video.

Un caz aparte reprezinta servo-motoarele, care au reductorul de turatie si circuitul decomanda 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 unuisingur port al controllerului pentru a le comanda, spre deosebire de motoarele de curentcontinuu 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. În robotică se folosesc 3tipuri de motoare: motoare de curent continuu, motoare pas cu pas şi motoare servo tipRC (radiocomandă). Cât de mare, de puternic, ce tip trebuie să folosim?

Ce tip de motor e mai potrivit pentru un anume fel de robot? Dacă alegem varianta dedeplasare a robotului cu roţi, avem mai multe posibilităţi:

- 2 roti motoare conectate la un singur motor realizează propulsia şi alte 2 roţi pentrudirecţie, ca o maşină- 2 roţi motoare conectate la un singur motor şi o roată pentru direcţie- 2 roţi motoare conectate fiecare la câte un motor şi una sau 2 roţi pivotante pentruechilibrare (cea mai comună variantă), ca un tanc pe roţiŞenilele sunt asemănătoare cu ultima variantă, dar mai dificil de construit.Dacă ne hotărâm pentru picioare, mai întâi trebuie să alegem numărul acestora, de la 2(cel mai greu) la 6 sau mai multe. Apoi trebuie să alegem gradele de libertate, acestnumăr determinând numărul de motoare de care avem nevoie.

Dacă clasificăm motoarele după putere, avem:

- Motoare de curent continuu cu reductor. Cele mai puternice, se folosesc la aproape oricetip de robot- Servo Hobby (RC). Se folosesc la roboţi sub 2,5 kg şi la roboţi cu picioare.- Motoare pas cu pas. Cele mai slabe, se folosesc la roboţi mici şi uşori.

Care sunt punctele bune şi rele ale acestor motoare. ]

1. Motorul de curent continuu. 

Page 4: Constructia Unui Robot

5/14/2018 Constructia Unui Robot - slidepdf.com

http://slidepdf.com/reader/full/constructia-unui-robot-55a758b5e6216 4/12

Avantaje:- se găsesc uşor - o mare varietate- cele mai puternice- uşor de interfaţat

- neapărat de folosit la roboţi de talie mareDezavantaje:- prea rapide, au nevoie de reductor de turaţie- consumă mult- dificil de montat roţi- mai scumpe- comandă de control complexă (PWM)Cel mai bun pentru:- roboţi de talie mare

2. RC Servo: 

Avantaje:- reductor de turaţie inclus- mare varietate- viteză bună pt interior - mai puţin scump- putere bună pt roboţi mici- uşor de montat- uşor de montat roţi- uşor de interfaţat- consum mediuDezavantaje:

- nu sunt bune pt greutate mare- controlul de vitezş destul de redusCel mai bun pentru:- roboţi mici- roboţi cu picioare

3. Motoare pas cu pas: Avantaje:- control precis- mare varietate- viteză bună pt. interior 

- uşor de interfaţat- ieftinuţeDezavantaje:- grele pentru puterea dezvoltată- consumă mult- masive ca mărime- greu de montat roţi- nu sunt bune pt greutate mare

Page 5: Constructia Unui Robot

5/14/2018 Constructia Unui Robot - slidepdf.com

http://slidepdf.com/reader/full/constructia-unui-robot-55a758b5e6216 5/12

- nu sunt prea puternice- comandă de control complicatăCel mai bun pentru:- urmărire de linie- rezolvare de labirint

 Senzorii. 

Pentru a se putea deplasa fara sa se izbeasca de primul obiect intalnit in cale, robotulfoloseste diversi senzori. Acesti senzori pot fi de contact, de lumina, de proximitate, dedistanta, 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 robotuluicoliziunea.

Senzorii de lumina sunt de obicei foto-rezistente de tipul CDS, care isi modificarezistenta in functie de lumina ambienta.

Senzorii de proximitate sunt de obicei o combinatie de emitator-receptor de luminainfra-rosie, care se bazeaza pe emiterea unei unde infra-rosii care se reflecta pe suprafataunui obiect si este apoi receptionata. Acesti senzori semnaleaza controllerului prezentaunui obiect la o anumita distanta, robotul putand astfel evita coliziunea.

Senzorii de distanta se bazeaza pe acelasi principiu ca cei de proximitate, dar masoaraungiul de intoarcere a razei infra-rosii, determinand astfel distanta pana la obiect. Alt felde 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 unuilichid intr-un sistem pneumatic sau hidraulic.

Senzorii de imagine sunt de obicei camere video care sunt folosite pentru recunoasterede obiecte.

Datorita limitelor senzoriale, robotul are nevoie sa calculeze mereu pozitia sa in mediulinconjurator, pentru a sti unde se afla. Pentru un robot care se afla intr-o camera, se poate

introduce harta camerei in prealabil, caroiata sa zicem din 20 in 20 de centimetri, cuobiectele fixe marcate. In timpul deplasarii, robotul foloseste codificatoare (tachometre)cu care masoara distanta parcursa. Din cand in cand isi verifica pozitia pe harta,masurand distanta pana la obiecte fixe marcate (cu senzorii ultrasonici), corectandeventualele erori datorate alunecarii sau denivelarilor. Pentru aceasta, se stabileste ocomunicare intre computer, care are harta si mocrocontrolerul care controleazamotoarele, codificatoarele si senzorii de proximitate (folositi pentru evitarea obstacolelor nemarcate pe harta). Computerul comanda deplasarea pe distanta x in directia y si cand

Page 6: Constructia Unui Robot

5/14/2018 Constructia Unui Robot - slidepdf.com

http://slidepdf.com/reader/full/constructia-unui-robot-55a758b5e6216 6/12

microcontrolerul raporteaza executia, computerul face masuratorile de verificare, dandcomenzi microcontrolerului care actioneaza capul sa se roteasca si sa masoare distanta pana la 3 obiecte fixe de pe harta. Prin triangulatie determina din nou pozitia si dacomanda urmatoare de deplasare. In cazul in care in timpul deplasarii se intalnesc obiectenemarcate pe harta, computerul este avertizat de catre microcontroler, marcheaza

obstacolul pe harta si cauta calea cea mai buna de evitare, tot cu ajutorul senzorilor de pecap.

In cazul unui robot pasitor, masurarea distantei parcurse este mai greu de realizat, dar seface in principiu cunoscand lungimea pasului. Este necesara o verificare mai deasa a pozitiei pe harta si corectia erorilor.

Dar ce se intampla daca scoatem robotul din mediul lui obisnuit? La pornire, robotul seuita in jur si daca nu reuseste sa regaseasca punctele fixe de pe harta, genereaza o hartanoua si alege punctul in care se afla ca fiind 0,0. Dupa care, incepe sa marcheze pe hartadistanta pana la obiectele din jur, apoi incepe sa se deplaseze in directia in care detecteaza

o deschidere, marcand noile obiecte intalnite in cale. Dupa o oarecare perioada de timp,robotul reuseste sa faca harta noului mediu.

SCHEMA ELECTRONICA

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 incale, 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

Page 7: Constructia Unui Robot

5/14/2018 Constructia Unui Robot - slidepdf.com

http://slidepdf.com/reader/full/constructia-unui-robot-55a758b5e6216 7/12

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 cudocumentatia aferenta si se pot gasi o gramada de exemple de folosire in forumul de pesite-ul firmei producatoare, Kronos Robotics (www.kronosrobotics.com). Un alt criteriureprezinta 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) side 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 unadaptor de nivel logic pentru portul serial. (Vezi schema Adaptor)

A doua componenta importanta este integratul SN754410E, fabricat de TexasInstruments, care este un "Quad Half H-Bridge", cu care se pot comanda 2 motoare decurent continuu sau un motor pas-cu-pas. Costa in jur de 2 dolari si se poate comanda lamagazinele 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 deaccelerare 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 maitoate aparatele electronice care folosesc telecomanda - video, TV, DVD, etc. In aceastaschema, 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 telecomandarobotul sau pentru a primi mesaje sau comenzi de la un alt robot. Dupa cum vedeti inschema, la stanga si la dreapta lui U1 se afla cate un LED infrarosu, pe lungimea de undade 940nm, in capsula de 5mm. Aceste LED-uri sunt comandate de portul 6 alcontrollerului, care poate fi setat ca Pulse Width Modulation pentru generarea unui

semnal cu frecventa de 40KHz. Din semireglabilul R3 se regleaza curentul care trece prinLED pentru reglarea distantei la care obstacolele vor fi detectate. Din cauza ca exista unsingur port pentru comanda a 2 LED-uri, am conectat fiecare LED la un port diferit alcontrollerului, selectand din program care LED va fi activ. Am folosit 2 LED-uri pentru aavea detectectia obstacolelor pe stanga-centru-dreapta.

Se mai observa in scema 2 grupuri de LED-Fototranzistori infrarosii, care sunt recuperatedintr-un video casetofon stricat. Fototranzistorii sunt in capsula de 3 mm, cu lungimea deunda de 940nm. Pentru realizarea acestui montaj aveti nevoie de 2 LED-uri infrarosii incapsula de 3 mm. (LED-ul din aparatul video era de 5 mm si l-am folosit la detectiaobstacolelor 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 pentrudetectarea marginii ringului de Sumo sau a unei linii negre pe fond alb - la urmarire delinie.

Regulatorul de tensiune este de tip "low dropout" LM 2940. Se poate folosi si unregulator de tip 7805 dar atunci montajul trebuie alimentat la 7,5-9V.

Page 8: Constructia Unui Robot

5/14/2018 Constructia Unui Robot - slidepdf.com

http://slidepdf.com/reader/full/constructia-unui-robot-55a758b5e6216 8/12

Motoarele sunt de curent continuu, recuperate dintr-o jucarie electrica (masinatelecomandata) sau video casetofon, etc. Trebuie sa fiti atenti ca firele de alimentare alemotoarelor sa fie rasucite si motoarele sa aibe condensatori ceramici de decuplare de0.1uF montati direct pe motor astfel: unul intre cele doua fire, unul de la un fir la carcasasi altul de la celalalt fir la carcasa.

 pentru programarea lui Nemesis aveti nevoie de un adaptor de semnal pentru portulserial. 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 schemarobotului 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 dezvoltatde firma Kronos Robotics. Poate fi usor transcris in limbaj de asamblare si programatintr-un PIC 16F88.

EXEMPLU DE PROGRAM

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

Page 9: Constructia Unui Robot

5/14/2018 Constructia Unui Robot - slidepdf.com

http://slidepdf.com/reader/full/constructia-unui-robot-55a758b5e6216 9/12

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

Page 10: Constructia Unui Robot

5/14/2018 Constructia Unui Robot - slidepdf.com

http://slidepdf.com/reader/full/constructia-unui-robot-55a758b5e6216 10/12

'-------------------------------------------------

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 modulatorulpause 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

Page 11: Constructia Unui Robot

5/14/2018 Constructia Unui Robot - slidepdf.com

http://slidepdf.com/reader/full/constructia-unui-robot-55a758b5e6216 11/12

StangaIR = inp.IRsenzor 'citeste senzorul

pause 1 'asteapta o milisecunda

high IRLedSt 'dezactiveaza LED IR stanga

return

Programul e simplu: citeste senzorul, afiseaza valorile (pentru teste), decide cum trebuiefacuta 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 pecare le pornesc pe rand, pentru o fractiune de secunda, dupa care citesc valoareasenzorului si o scriu intr-o variabila pentru fiecare LED in parte. Se pot folosi 2 senzori si2 LED-uri, in acest caz LED-urile fiind legate in serie intre semireglabil si masa. Astfelse elibereaza un port care poate fi folosit la altceva.

2. Afisarea valorilor. Afisarea se face in fereastra Debug (pe calculator), cablul serialfiind 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 sitineti-o in fata robotului la distanta maxima la care doriti ca robotul sa inceapa sadetecteze 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 infunctionare, robotul va reactiona diferit la diverse materiale si culori, cel mai greu dedetectat 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 miscatiin 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 sacotiti spre dreapta. In acelasi fel functioneaza decizia deplasarii si la robotul de fata. Dacanu este detectat nici un obiect, robotul merge inainte. Daca un obiect este detectat lastanga, robotul trebuie sa coteasca spre dreapta, adica sa faca motorul din dreapta samearga inapoi. Daca un obiect este detectat spre dreapta, trebuie sa faca motorul dinstanga sa mearga inapoi. Dar daca este detectat un obiect in fata? Atunci robotul va faceambele 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 micimodificari (la citirea senzorilor).

Imbunatatiri.

Daca il puneti in practica, veti observa ca se pot aduce imbunatatiri in functionare, inspecial in situatii in care robotul se impotmoleste intr-un colt de camera.

Page 12: Constructia Unui Robot

5/14/2018 Constructia Unui Robot - slidepdf.com

http://slidepdf.com/reader/full/constructia-unui-robot-55a758b5e6216 12/12

O alta situatie este atunci cand nu reuseste sa detecteze un obiect si se loveste de el. Inacest 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 deunde a plecat (baza)? Pentru asta trebuie sa masuram distanta parcursa si unghiurile decotire. 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 princamera si sa culeaga diverse obiecte (pe care le poate apuca) si sa le aduca la baza?