Problematica Robotilor
CUPRINS
CAPITOLUL 1. INTRODUCEREA ÎN PROBLEMATICA ROBOȚILOR
1.1. Roboți mobili
1.2. Clasificarea roboților mobili
1.3. Utilizări ale roboților mobili
1.4. Structura unui robot mobil
1.4.1. Structura mecanică a roboților mobili
1.4.2. Sistemul de locomoție cu roți
1.5. Acționarea roboților mobili
1.6. Sistemul senzorial
1.7. Tipuri de roboti mobili
CAPITOLUL 2. STRUCTURA SISTEMULUI MOBIL
2.1. Placa de comandă arduino uno
2.2. Microcontrollerul
2.3. Driverul de motoare cu circuit integrat L298N
2.3.1.Funcționalități suplimentare
2.3.2. Alimentarea motoarelor
2.3.3. Alimentarea plăcii arduino
2.4. Kitul robotului Flexybot 4 motoare
2.5. Portul USB
2.6. Senzorul infraroșu SHARP
CAPITOLUL 3. PROGRAMAREA ÎN EDITORUL SOFTULUI ARDUINO
3.1. Limbajul de programare ARDUINO
3.2 Partea de programare
CAPITOLUL 4. CONCLUZII ȘI DEZVOLTĂRI ULTERIOARE
4.1. Concluzii
4.2. Dezvoltări ulterioare
ANEXE
BIBLIOGRAFIE
CAPITOLUL 1.INTRODUCERE ÎN PROBLEMATICA ROBOȚILOR
Preliminarii
Unul din cele mai importante aspecte în evoluția ființei umane este folosirea uneltelor care să simplifice munca fizică. În această categorie se înscriu și roboții, ei ocupând totuși o poziție privilegiată datorită complexității lor.
Robotica este în prezent o ramură a științelor tehnice, având ca obiect de studiu automatizarea operațiilor umanoide. În corelație cu definiția generală dată în paragraful anterior, robotica se ocupă cu studiul roboților, prin operații umanoide avându-se în vedere activitățile fizice și intelectuale, realizate în general de om. Mai specific, robotica a urmărit în primul rând automatizarea operațiilor efectuate cu ajutorul brațelor, mâinilor, picioarelor, implicând corelația cu sistemul senzorial (în primul rând vederea) și procesele de raționament pentru luarea deciziilor de acțiune. Odată cu răspândirea, perfecționarea roboților și trecerea de la aplicarea lor industrială la folosirea și în alte domenii (aplicații spațiale, medicale, casnice), s-a produs lărgirea gamei operațiilor umanoide studiate și automatizate de robotică.
Noțiunea de robot datează de peste 4000 de ani. Omul și-a imaginat dispozitive mecanizate inteligente care să preia o parte însemnată din efortul fizic depus. Astfel, a construit jucării automate și mecanisme inteligente sau și-a imaginat roboții în desene, cărți, filme "SF" etc.
Termenul "robot" a fost folosit în 1920 de cehul Karel Capek într-o piesă numită "Robotul universal al lui Kossum". Ideea era simplă: omul face robotul după care robotul ucide omul. Multe filme au continuat să arate că roboții sunt mașinării dăunătoare și distrugătoare.
Conform enciclopediei Webster, un robot este ,,un dispozitiv automat care execută funcții normal atribuite oamenilor, sau o mașină cu asemănare de om”. O altă definiție a fost dată de Institutul de Robotică din America în anul 1979. Conform acestei definiții, un robot este o ,,mașină reprogramabilă, multifuncțională creată pentru a muta diverse materiale, bucăți, unelte sau alte dispozitive specializate prin diverse mișcări programate, pentru realizarea unei varietăți mari de sarcini”. O definiție mai scurtă și larg acceptată la ora actuală este următoarea : un robot este un sistem inteligent care interacționează cu mediul fizic înconjurător, prin intermediul unor senzori și a unor efectori.
În 1941 Isaac Asimov a folosit cuvântul "robotizare" pentru descrierea tehnologiei roboților și a prezis creșterea unei industrii robotice puternice. În 1956 a luat ființă prima companie ce realiza roboți industriali, iar în 1961 Compania de automobile "General Motors" "angaja" primul robot industrial. Începând cu 1980 asistăm la o expansiune a roboților industriali în diverse industrii.
Revoluția informatică a marcat saltul de la societatea industrializată la societatea avansat informatizată generând un val de înnoiri în tehnologie și în educație, permițând realizarea de roboți. Roboții oferă beneficii substanțiale muncitorilor, industriilor și implicit țărilor. În situația folosirii în scopuri pașnice, roboții industriali pot influența pozitiv calitatea vieții oamenilor prin înlocuirea acestora în spații periculoase, cu condiții dăunatoare omului, cu condiții de exploatare.
Domeniile de aplicare a tehnicii roboților se lărgesc mereu, ei putând fi utilizați în industrie, transporturi, agricultură, în sfera serviciilor, în cunoașterea oceanului și a spațiului cosmic, în cercetarea științifică, etc.
Roboți mobili
Robotul mobil este un sistem complex care poate efectua diferite activități într-o varietate de situații specifice lumii reale. El este o combinație de dispozitive echipate cu servomotoare și senzori aflate sub controlul unu sistem ierarhic de calcul ce operează într-un spațiu real, marcat de o serie de propietăți fizice ( de exemplu gravitația care influențează mișcarea tuturor roboților care funcționează pe pământ ) și care trebuie să planifice mișcările astfel încât robotul să poată realiza o sarcină în funcție de starea inițială a sistemului și în funcție de informația existentă, legată de mediul de lucru. Succesul în îndeplinirea acestor sarcini depinde atât de cunoștințele pe care robotul le are asupra configurației inițiale a spațului de lucru, cât și de cele obținute pe parcursul evoluției sale.
Problemele specifice ce apar la roboții mobili sunt următoarele:
evitarea impactului cu obiectele staționare sau în mișcare;
determinarea poziției și orientării robotului pe teren;
planificarea unei traiectorii optime de mișcare.
În cazul unui sistem robotic automat distribuit pozițiile spațiale sunt de o extremă importanță și de ele depinde îndeplinirea scopurilor dorite și funcționarea întregului sistem. Cu alte cuvinte, robotul trebuie să fie capabil să-și planifice mișcările, să decidă automat ce mișcări să execute pentru a îndeplini o sarcină, în funcție de aranjamentul momentan al obiectelor din spațiul de lucru.
Planificarea mișcărilor nu constă dintr-o problemă unică și bine determinată, ci dintr-un ansamblu de probleme dintre care unele sunt mai mult sau mai puțin variante ale celorlalte.
Evitarea coliziunii cu obstacole fixe sau mobile (de exemplu alți roboți mobili) aflate în spațiul de lucru al robotului se poate face prin mai multe metode: realizarea unei apărători mecanice care prin deformare oprește robotul, folosirea senzorilor care măsoară distanța până la obstacolele de pe direcția de deplasare, folosirea senzorilor de proximitate, folosirea informațiilor corelate de la mai multe tipuri de senzori.
Localizarea obiectelor se poate realiza și prin contact fizic, dar acesta impune restricții asupra vitezei de mișcare a structurii manipulate. Contactul fizic dintre robot și obiectele din mediu generează forțe de reacțiune care modifică starea robotului. Vitezele mari de lucru fac ca efectele dinamice ale unui contact fizic cu obstacole sau obiecte manipulate să fie riscante (pot duce la deteriorarea obiectelor sau a robotului).
Sistemul senzorial mai este numit și sistem de măsurare. El asigură măsurarea unor mărimi fizice și eventual perceperea unor modificări semnificative a acestor mărimi.
Navigarea robotului este posibilă și fără o determinare a poziției și orientării față de un sistem de coordonate fix dar această informație este utilă pentru sisteme de comandă a mișcării. Dintre metodele de navigație mai des utilizate se pot menționa: măsurarea numărului de rotații făcute de roțile motoare, folosirea de acceleratoare și giroscoape, geamanduri electromagnetice instalate în teren, semnalizatoare pasive sau semipasive de tip optic sau magnetic.
1.2Clasificarea roboților mobili
Clasificare :
în funcție de dimensiuni: macro-, micro- și nano-roboți.
în funcție de mediul în care acționează:
– roboți tereștri – se deplasează pe sol;
– roboți subacvatici – în apă,
– roboți zburători – în aer,
– roboți extratereștri – pe solul altor planete sau în spațiul cosmic;
în funcție de sistemul care le permite deplasarea în mediul în care acționează,există, de exemplu, pentru deplasarea pe sol:
– roboți pe roți sau șenile;
– roboți pășitori: bipezi, patrupezi, hexapozi, miriapozi;
– roboți cățărători:
– roboți târâtori: care imită mișcarea unui șarpe, care imită mișcarea unei râme etc;
– roboți săritori, care imită deplasarea broaștelor, cangurilor
– roboți de formă sferică (se deplasează prin rostogolire) etc.
1.3 Utilizări ale roboților mobili
Micro-roboții își găsesc utilizarea în medicină, fiind capabili să se deplaseze de-a lungul vaselor și tuburilor corpului omenesc, în scopul investigațiilor, intervențiilor chirurgicale, dozării și distribuirii de medicamente .
Macro-roboții :
Îndomeniul industrial, agricol, forestier: în domeniul industrial roboții mobili sunt reprezentați de AGV-uri (Automated-Guided Vehicles), vehicule pe roți, cu ghidare automată, care transportă și manipulează piese, constituind o alternativă flexibilă la benzile de montaj; în agricultură există tractoare și mașini agricole fără pilot, capabile să execute singure lucrările pe suprafețele pentru care au fost programate; în domeniul forestier roboții mobili pot escalada copacii înalți pentru asanarea lor de crengile uscate etc.;
În domeniul militar: este luată în considerare de către armata americană perspectiva înlocuirii soldaților combatanți cu roboți, pentru a reduce riscul pierderilor umane în luptă; roboți mobili de cele mai ingenioase și robuste configurații sunt aruncați în clădiri și incinte din zone de conflict, în scopuri de investigare și chiar anihilare a inamicului;
În domeniul utilitățilorpublice: inspectarea conductelor de combustibili gazoși și lichizi și a canalizării. De exemplu, rețeaua de canalizare a Germaniei însumează 400.000 km, iar inspectarea și curățarea acesteia presupune costuri de 3¸6 Euro pe metru. Numai 20% din conducte sunt accesibile, iar utilizarea roboților poate reduce costurile cu un sfert. Problemele pe care le au de rezolvat astfel de roboți sunt complexe, într-un mediu parțial necunoscut, modificat permanent prin sedimentare, surpare, coroziune, racorduri ilegale;
În domeniul distractiv și recreativ: roboții-jucării, roboții pentru competiții etc.
În domeniul serviciilor: există posibilități deosebit de largi de implementare. Sunt roboți pentru: deservirea bolnavilor în spitale; ajutorarea persoanelor bătrâne sau cu diferite handicapuri; ghidarea și informarea publicului în muzee; aspirarea și curățarea încăperilor; spălarea geamurilor și a pereților clădirilor; executarea de activități casnice.
În domeniul securității: multe operații de inspectare și dezamorsare a unor obiecte și bagaje suspecte sunt executate de roboți;
În domeniul operațiilor de salvare: roboții salvatori (Rescue robots) sunt utilizați în operațiile de salvare a victimelor unor calamități: cutremure, incendii, inundații.
Roboții mobili au următoarele caracteristici comune:
structura mecanică este un lanț cinematic serie sau paralel respectiv tip ,, master-slave ”;
sistemul de acționare uitilizat este electric pentru sarcini mici și medii și hidraulic pentru sarcini mari;
sistemu senzorial utilizează senzori interni de turație, poziție, efort la nivelul articulațiilor, senzori externi ( camere video ) pentru scanarea mediului și senzori de securitate ( de proxemitate, de prezență cu ultrasunete );
sistemul de comandă este ierarhizat, de obicei multiprocesor.
1.4 Structura unui robot mobil
Structura roboților mobili (RM) corespunde arhitecturii generale a roboților, având două părți:
structura mecanică, respectiv manipulatorul, care determină performanțele tehnice;
structura electronică, respectiv de comandă-control, care condiționează calitatea performanțelor.
Indiferent de generația robotului, probleme complexe apar la realizarea structurii mecanice de volum, greutate și cost reduse, la transmiterea mișcării și adaptarea la structura mecanică a motoarelor electrice și hidraulice, la proiectarea mâinilor mecanice pentru a apuca obiecte de diferite forme. Referitor la structura electronică, posibilitățile actuale permit folosirea a câte unui microprocesor pentru comanda fiecărui grad de mobilitate, precum și a altor microprocesoare specializate pentru tratarea semnalului senzorial. Robotul mobil interacționează cu mediul înconjurător prin structura sa mecanică, asigurând astfel deplasarea,poziționarea și orientarea organului de execuție.
1.4.1 Structura mecanică a roboților mobili
sistemul de locomoție (pe șenile sau roți), prin care se asigură deplasarea robotului pe o suprafață de lucru (în cadrul unei autonomii sporite);
sistemul de manipulare, care asigură poziționarea și orientarea organului de lucru.
robotul mobil în proces de deplasare pe o anumită traiectorie este caracterizat prin 3 funcții: funcția de locomoție; funcția de percepție-decizie; funcția de localizare.Din analiza principalelor caracteristici tehnice ale roboților mobili realizați de firme cu renume, se desprind următoarele :
roboții mobili cu sistem de locomoție cu șenile sunt realizați într-o gamă foarte variată de dimensiuni și greutăți, având diferite grade de mobilitate, în funcție de complexitatea operațiilor pe care trebuie să le efectueze, cu diferite viteze de deplasare.
roboții mobili cu sistem de locomoție cu roți pneu au dimensiuni de gabarit și greutate mai mari, însă au viteza de deplasare superioară față de roboții mobili cu șenile.
roboții mobili cu sistem de locomoție cu picioare au dimensiuni de gabarit și greutate mai mari, viteze de deplasare mai mici, îndeplinind mai puține operații decât roboții din primele două categorii.
autonomia roboților mobili este strict legată de tipul bateriilor de acumulatoare care sunt folosite la alimentarea motoarelor, în cazul celor mai bune baterii această autonomie ajungând la 9 ore.
lungimea cablurilor de alimentare cu curent electric este de maxim 250 m, iar raza de acțiune prin radio este în majoritatea cazurilor de 300 m.
1.4.2 Sistemul de locomoție cu roți
Acest sistem de locomoție cu roți, prevăzute cu pneuri, permite viteze de deplasare mai mari decât cel cu șenile.Roboții cu astfel de sistem de locomoție acționează de regulă în zone cu teren asfaltat sau pietruit, având posibilități de trecere peste obstacole mai mici decât în cazul celor cu șenile. În funcție de greutatea robotului și sarcina de manipulat, acest sistem de locomoție pe roți poate fi prevăzut cu 3 roți, 4 roți sau 6 roți (fig. 1.1), acționarea fiecărei roțifiind de regulă individuală.
Figura. 1.1-Sistem de locomoție pe 3 roți
În general roțile din mijloc II sunt articulate la o osie fixată de șasiul 2, iar roțile extreme I și III sunt articulate la brațele 1 respectiv 3 care pot oscila, în plan vertical, în raport cu șasiul 2.Acționarea fiecărei roți motoare se face independent, cu ajutorul motoarelor electrice de curent continuu, folosindu-se reductoare armonice, alimentarea făcându-sede la baterii de acumulatoare sau de la grupurielectrogene adecvate. Sistemul de locomoție cu roți permite deplasarea robotului înainte și înapoi, efectuarea virajelor la stânga și la dreapta, precum a unei rotații în plan orizontal. De menționat că raza de virare în cazul sistemului de locomoție cu roți este mai mare decât la sistemul cu șenile. Raza de virare se poate modifica de la o valoare minimă (fig. 1.1) la o valoare maximă (fig. 1.2).
Figura 1.2
1.5 Acționarea roboților mobili
Se face cu motoare electrice de putere mică, cu moment de inerție redus, cu capacitate de suprasarcină, cu reductoare de raport mare (i>100) și moment de inerție redus de tip procesional sau armonic.Se pot folosi și unități integrate motor-reductor.
Motoare electrice cu inerție redusă utilizate:
motoare de curent continuu cu pahar sau indus disc;
motoare sincrone cu magneți permanenți;
motoare pas cu pas cu reluctanță variabilă cu indus pahar și intrefier radial sau cu indus tip disc și intrefier radial;
motoare sincrone cu magneți permanenți;
Analiza performanțelor dinamice a acționărilor pe baza funcției de transfer Hd(s) presupune determinarea parametrilor:
Precizia care se determină cu ajutorul funcției de transfer prin calculul erorii staționare:
(1.1)
Ui(s)= mărime de intrare.
Promptitudinea, care se calculează cu ajutorul locului de transfer considerând un compromis optim precizie-stabilitate pentru o margine de fază MΦ=25÷450. Stabilitatea care se determină cu ajutorul locului de transfer. Capacitatea de urmărire se poate aprecia cu ajutorul caracteristicii Bode.
Pentru a se ameliora performanțele dinamice ale acționărilor în anumite domenii de frecvență se utilizează elemente de corecție serie sau paralel având funcția de transfer
(1.2)
Motoare
În robotică se folosesc 3 tipuri de motoare: motoare de curent continuu, motoare
pas cu pas și motoare servo tip RC (radiocomandă ).
Dacă alegem varianta de deplasare a robotului cu roți, avem mai multe posibilități:
– 2 roți motoare conectate la un singur motor realizează propulsia și alte 2 roți pentru direcț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 pentru echilibrare (cea mai comună variantă), ca un tanc pe roți.
Șenilele sunt asemănătoare cu ultima variantă dar sunt 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, acest numă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 orice tip 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.
Motorul de curent continuu
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 mare.
Dezavantaje: 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 des folosite sunt pentru: roboți de talie mare.
RC Servo
Avantaje: reductor de turație inclus, mare varietate, viteză bună pentru interior, mai puțin scumpe, putere bună pentru roboți mici, ușor de montat, ușor de montat roți, ușor de interfațat, consum mediu.
Dezavantaje: nu sunt bune pentru greutate mare, controlul de viteză destul de redus. Cel mai des folosite sunt pentru: roboți mici și roboți cu picioare.
Motoare pas cu pas
Avantaje: control precis, mare varietate, viteză bună pentru interior,ușor de interfațat, ieftine.
Dezavantaje: grele pentru puterea dezvoltată, consumă mult, masive ca mărime, greu de montat roți, nu sunt bune pentru greutate mare, nu sunt prea puternice, comandă de control complicată.
Cel mai des folosite sunt pentru: urmărire de linie și rezolvare de labirint.
1.6 Sistemul senzorial
Robotul mobil este pus în situația de a desfășura acțiuni similare cu cele ale operatorului uman. Acest lucru determină existența unor anumite dispozitive prin care să se culeagă informații din mediul de lucru, care să realizeze interacțiunea robot-mediu cu ajutorul unor caracteristici ale mediului sau ale obiectelor din mediu și o unitate centrală care să prelucreze în timp real informația senzorială, să o transforme într-o formă utilă pentru sistemul de comandă.
Sistemul senzorial mai este numit și sistem de măsurare. El asigură măsurarea unor mărimi fizice și eventual perceperea unor modificări semnificative a acestor mărimi. Datorită sistemului senzorial se pot pune în evidență și caracteristicile geometrice și chimice ale obiectelor din mediul de lucru. Senzorii, datorită caracteristicilor pe care le au, pot explora zona de lucru, zona de contact, cea apropiată, cea îndepărtată, iar senzorii foarte puternici chiar și zone foarte îndepărtate. Informațiile culese cu ajutorul sistemului senzorial servesc la construirea unui model al lumii în care evoluează robotul, model funcție de care acesta își va genera planurile de acțiune viitoare.
În funcție de soluția constructivă, senzorii sunt pasivi sau activi. Senzorii activi folosesc caracteristicile intrinseci ale mediului, iar cei pasivi generează modificări în mediu pentru a măsura unele caracteristici.
Alte două categorii de senzori cu care poate fi dotat un robot mobil sunt: senzori de mărimi interne ai robotului (poziție, viteză sau accelerația unor componente mecanice proprii) și senzori de mărimi externe (greutate, formă, poziție, temperatură, culoare, etc ale obiectelor asupra cărora acționează robotul).
Caracteristicile senzoriale ale unui robot depind foarte mult de gradul său de autonomie, de aplicațiile pentru care a fost proiectat și de tipul mediului de lucru.
În general percepția se realizează în două etape:
conversia proprietăților fizice într-un semnal, de obicei electric;
prelucrarea acestui semnal în vederea extragerii informației care interesează.
Se preferă o prelucrare preliminară în care senzorii robotului elimină zgomotele care perturbă semnalul util.
Există mai multe criterii de clasificare a senzorilor utilizați în sistemele de comandă ale robotului industrial:
1. După cum vine sau nu în contact cu obiectul a cărui proprietate fizică o măsoară, distingem:
senzori cu contact;
senzori fără contact;
2. După proprietățile pe care le pun în evidență:
senzori pentru determinarea formelor și dimensiunilor (pentru evaluarea în
mediul de lucru);
senzori pentru determinarea proprietăților fizice ale obiectelor (de forță, de
cuplu, de densitate și elastici);
senzori pentru proprietăți chimice (de compoziție, de concentrație,
analizatoare complexe);
după distanța la care sunt culese informațiile avem senzori de contact.
1.7 Tipuri de roboți mobili
AIRAT 2
Figura 1.4-Minirobot AIRAT 2
AIRAT 2 este un robot micromouse care folosește un procesor CPU 8051.AIRAT 2 folosește senzori pentru a o recepta când se întoarce înapoi. Placa CPU folosește o placă JS8051-A2. Placa JS8051-A2 este foarte bine construită.Folosește resurse externe de putere cum ar fi LCD, ADC, douǎ ceasuri externe, auto-Flash scriere și altele.
AIRAT 2 utilizează șase senzori oferindu-i astfel posibilitatea de a se deplasa pe diagonală.Un simulator PC este prevăzut,oferindu-i posibilitatea utilizatorului de a întelege mai bine nivelul înalt de căutare algoritmică a mouseului.Codul sursa C este implementat astfel încât programatorul poate dezvolta mai ușor altgoritmi care pot fi testați cu ajutorul unui simulator și apoi implementat mouseului.
În plus, LCD, comunicația serială,controlul mouse-ului precum și alte funcții sunt furnizate sub forma de librărie și fișiere sursă. Pentru cei ce vor să învețe mouse-ul la un nivel înalt, AIRAT2 furnizează un mediu excelent de dezvoltare, teste algoritmice, precum și multe altele.
AIRAT 2 a apărut pe coperta publicației franceze »MICROS&ROBOTS ».
Caracteristici AIRAT 2 :
– Capabil de reglare proprie, învață din mers;
Folosește 6 senzori, dându-i posibilitatea de a se deplasa pe diagonală;
Ușor de asamblat/dezasamblat;
Port de reîncarcare;
Instrucții de asamblare și manual al utilizatorului;
Include un simulator PC pentru accelerarea dezvoltării;
Librării,coduri sursă C;
AIRAT2 baterie(NiMh-450).
Figura 1.5- Bateria AIRAT 2
Baterie NiMh.Marime 35X35X16mm.
Putere 7.2 V(1.2X6), 450mAh
RCX 1.0
Una dintre principalele structuri de robot mobil, construită și utilizată în cadrul testelor, este prezentată în figura 1.6. Include două roți active în partea din spate, acționate fiecare de câte un motor de curent continuu montat într-o piesă LEGO și o roată pasivă în partea din față. În vârful construcției este amplasată unitatea de comandă, RCX, conectată la cele două motoare (A și C) în programele prezentate la senzorul de lumină din frunte (senzor 1 în programe). Acest senzor este constituit dintr-un LED (diodă luminiscentă), care generează un fascicul de lumină roșie și un fotodetector care recepționeză lumina reflectată de podea și generează la ieșire o tensiune electrică, proporțională cu intensitatea luminii reflectate. Roțile active sunt acționate prin intermediul a două trepte de angrenaje cu roți dințate.
Prima include un pinion cu 8 dinți, montat pe axul motorului (pinionul de culoare deschisă din figură) și o roată dințată cu 24 de dinți, iar a doua este realizată prin angrenarea roții intermediare de 24 de dinți cu o roată de 40 de dinți care antrenează axul roții active. Raportul de transmitere poate fi calculat cu formula:
i = (24/8) * (40/24) = 5
Asigură o reducere de 5 la 1 a vitezei unghiulare a motorului și o amplificare de 1 la 5 a momentului dezvoltat de motor. Direcția de deplasare a robotului este controlată,fie prin mișcarea roților active în sensuri opuse, fie prin deplasarea acestora cu viteze unghiulare diferite.
Figura 1.6-Minirobot RCX 1.0
CAPITOLUL 2.STRUCTURA SISTEMULUI MOBIL
Prezentarea principalelor componentele ale sistemului cu care punem mecanismul în funcționare, datorită propietăților fiecărei componente asamblată, ajutându-se una pe cealaltă la realizarea comunicării cât și a deplasării sistemului mobil. Fiecare componentă are rolul său specific și toate împreuna formează un întreg.
Modul de utilizare a acestui sistem mobil constă în primul rând în asamblarea pieselor , alimentarea driveru-lui de motoare cu 6 baterii R6. Platforma pentru asamblarea dispozitivelor este o plăcuță de plastic având dimensiunea de 160×60 mm , cu găuri de 3mm și o distanță de 5mm între fiecare gaură, eficace pentru montarea dispozitivelor hardware ale sistemului mobil. Al doilea pas este conectarea plăcii Arduino la un calculator prin intermediul cablului de conectare USB pentru transmiterea datelor. În final se folosește softul de programare pentru Arduino, care are un editor de programre oferit de de site-ul:www.arduino.cc . Limbajul de programare este unul obișnuit similar cu C++. Procesul de desfășurare al comenzii constă in programarea celor 4 motoare de curent continu cu deplasarea în direcțiile înainte,înapoi,stânga,dreapta setând viteza de deplasare cuprinsă între 0-255. Sistemul mobil poate urca pe suprafețe plate pâna la 45 grade datorită roților de cauciuc care nu permite alunecarea în timpul deplasării și a urcării. El poate trece peste diferite obstacolole (nu mai mari decât el) care l-ar putea împiedica să se deplaseze.
2.1 Placa de comandăArduino Uno Rev3
Arduino Uno este un microcontroller bazat pe ATmega328. Are 14 pini digitali de intrare\ieșire,în care 6 pini pot fi utilizați ca ieșiri PWM(Pulse width Modulation), 6 intrări analogice, un oscilator cristal 16 MHz, o conexiune USB, un jack pentru alimentare, un ICSP și un buton de resetare. Conține tot ce este necesar pentru a sprijini microcontrollerul.Constă într-o platformă de mici dimensiuni (6.8 cm / 5.3 cm ) construită în jurul unui procesor de semnal și este capabilă de a prelua date din mediul înconjurător printr-o serie de senzori și de a efectua acțiuni asupra mediului prin intermediul luminilor, motoarelor, servomotoarelor, și altor tipuri de dispozitive mecanice. Procesorul este capabil să ruleze codul scris într-un limbaj de programare care este foarte similar cu limbajul C++.
Pinii digitali de intrare/ieșire
Figura 2.0-Placa ARDUINO UNO
Specificații:
MICROCONTROLER: ATmega328
TENSIUNEA DE LUCRU: 5V
TENSIUNE DE INTRARE (recomandat): 7-12V
TENSIUNE DE INTRARE (limita): 6-20V
PINI DIGITALI: 14 (6 PWM output)
PINI ANALOGICI: 6
INTENSITATEA DE IESIRE: 40 mA
INTENSITATEA DE IESIRE PE 3.3V: 50 mA
FLASH MEMORY: 32 KB (ATmega328)
0.5 KB pentru bootloader
SRAM: 2 KB (ATmega328)
EEPROM: 1 KB (ATmega328)
Clock Speed: 16 MHz
Alimentarea
Arduino Uno poate fi alimentat prin conexiune USB sau de la o sursă de alimentare externă. Sursa de alimentare este selectată automat.
Alimentarea externă provine de la un adaptor care transformăcurentul alternativ în curent continuu sau prin intermediul bateriei. Adaptorul poate fi conectat la placa Arduino prin două fire cu mufă jack.
Placa Arduino poate funcționa la o sursă externă de 6-20 volți. În cazul alimentării cu mai puțin de 7V, PIN-ul cu ieșirea de 5V are o tensiune mai mică de 5 volți și placa Arduino poate fi instabilă. Dacă utilizați mai mult de 12V, regulatorul de tensiune se poate supraîncălzi și poate provoca daune plăcii. Tensiunea de intrare recomandată este 7-12 volți.
Pinii de alimentare sunt după cum urmează:
VIN- Tensiunea de intrare la placa Arduino atunci când utilizează o sursă de alimentare externă (spre deosebire de 5 volți la conexiunea USB sau altă sursă regulatoare de tensiune). Puteți furniza tensiune de alimentare prin acest pin , sau, furnizarea de tensiune de alimentare asemănătoare celei cu mufă jack, tot prin acest pin.
5V – Acest pin pune la ieșire o tensiune de 5V stabilă, provenită de la regulatorul plăcii.Placa Arduino poate fi alimentată de la sursa de alimentare de curent continuu cu mufă jack (7 – 12V), conector USB (5V), sau prin PIN-ul VIN al plăcii (7-12V).
3V – Acest pin are o tensiune de 3.3 V stabilă dată de regulatorul plăcii.Curentul maxim este de 50 mA.
GND- Sunt 2 pini pentru masă (ground).
Memoria
Microcontrolerul ATmega328 are 32 KB (cu 0,5 KB utilizați pentru bootloader). De asemenea, are 2 KB SRAM și 1 KB de EEPROM (care poate fi citit și scris cu biblioteca EEPROM).
Intrarea și ieșirea
Fiecare dintre cei 14 pini digitali de pe Arduino Uno poate fi folosit ca o intrare sau ieșire, utilizând funcțiile pinMode(), digitalWrite(), și digitalRead(). Operează cu tensiunea de 5 volți. Fiecare PIN poate oferi sau primi un curent maxim de 40 mA și are o rezistență internă de 20-50 kOhms. În plus, unii pini au funcții speciale.
Serial: 0 (RX) și 1 (TX). Utilizat pentru primire (RX) și transmite date seriale (TX) TTL. Acești pini sunt conectați la pinii corespunzători ATmega8U2 USB-la-cipul serial TTL.
Întreruperi externe: 2 și 3. Acești pini pot fi configurați pentru a declanșa o întrerupere pe valoare mică,o anumită creștere sau scădere, sau o schimbare în valoare.
PWM:pinii 3, 5, 6, 9, 10, 11 furnizează o ieșire pe 8 biți cu ajutorul funcției analogWrite().
SPI: 10 (SS), 11(MOSI), 12(MISO), 13(SCK).Acești pini acceptă comunicarea SPI folosind biblioteca SPI.
LED: 13.Există un led pe placă corespunzător pinului 13.Când pinul este pe un 5V(HIGH), ledul se aprinde, când pinul este pe 0V (LOW), ledul este oprit.
Placa Arduino Uno conține 6 intrări analogice.Numerotate de la A0 – A5, fiecare intrare analogică oferă 10 biți de rezoluție (adică 1024 de diferite valori). În mod implicit, ei ating un prag de 5V deci este posibil să modifice capătul razei de acțiune folosind pinul AREF și funcția analogReference().
TWI- A4 sau SDA pin și pin A5 sau SCL. Suportă TWI comunicare folosind biblioteca de fir.
AREF- Tensiunea de referință pentru intrări analogice. Folosit cu analogReference().
Reset- Este folosit pentru a reseta microcontrollerul.
Programarea
Arduino Uno poate fi programat cu software-ul Arduino care poate fi descărcat de pe site-ul oficial (www.arduino.cc). El folosește un mediu de programare asemănător limbajului de programare C++.
Mediul de dezvoltare Arduino lucrează cu un soft Arduino 1.0, având un editor de text pentru scrierea de cod, o zonă de mesaj, o consola text, o bară de instrumente cu butoanele pentru funcții comune și o serie de meniuri. Se conectează la hardware-ul Arduino să încărce programe și să comunice cu ele.
Protecția la supracurent pentru USB
Arduino Uno are o siguranță de resetare care protejează porturile USB ale computerului de scurtcircuit și supracurent. Deși cele mai multe calculatoare au propriile lor protecții, siguranța oferă un strat suplimentar de protecție. Dacă este aplicat un curent mai mare de 500 mA la portul USB, siguranța va opri automat legătura până când scurtcircuitul sau suprasarcina este eliminată.
Comunicația
Arduino Uno are un număr de facilități pentru a comunica cu un calculator, alt Arduino sau alte Microcontrolere. ATmega328 oferă UART TTL comunicare serială (5V), care este disponibil pe pinii digitali 0 (RX) și 1 (TX). ATmega16U2 pe placa de canale de comunicare serială peste USB și apare ca un port com virtual software-ul de pe computer. \"16U2 firmware-ul utilizează driverele USB COM standard și nu este nevoie de niciun driver extern. Cu toate acestea, pe Windows este necesar un fișier cu extensia .inf. Software-ul Arduino include un monitor serial care permite date textuale simple pentru a fi trimise înspre și de la placa Arduino.Ledurile corespuzătoare lui RX și TX de pe bord vor clipi când se transferă date prin intermediul adaptor USB-serie și conexiune USB la computer (dar nu pentru comunicare în serie pe pinii de 0 și 1).
Pini Digitali
Pinii de pe Arduino pot fi configurați ca intrări sau ieșiri.Acest document explică funcționarea pinilor în aceste moduri. În timp ce titlul acestui document se referă la pinii digitali, este important să rețineți că marea majoritate a pinilor analogici Arduino (Atmega), pot fi configurați și utilizați exact în același mod ca pinii digitali.
Setarea pinilor ca intrare
Pinii plăcii sunt implicit setați ca intrări, astfel încât nu au nevoie să fie explicit declarate ca intrări cu pinMode(). Pinii configurați ca intrări se spune că sunt în stare de înaltă-impedanță. O modalitate de a explica acest lucru este că pinii de intrare fac solicitări extrem de mici în circuitul pentru care sunt atât de simpli, spun echivalentă cu o rezistență de serie de 100 megohm în fața pinului. Aceasta înseamnă că este nevoie de foarte puțin curent pentru a muta pinul de intrare de la un strat la altul și poate face pinii utili pentru sarcini, cum ar fi un senzor "capacitive touch" de punere în aplicare, să citească LED-ul ca o fotodiodă sau un senzor analogic cu un sistem de tip RCTime.
Setarea pinilor ca ieșire
Pinii configurați ca ieșire cu pinMode() se spune că sunt în stare de Impedanță joasă. Asta înseamnă că ei pot furniza o sumă substanțială de curent la alte circuite.Pinii microcontrollerului pot fi o sursă de alimentare (oferă curent pozitiv sau oferă curent negativ) până la 40 mA (miliamperi) de curent la alte dispozitive sau circuite. Acest curent este suficient să aprindă un LED sau să lucreze cu mai mulți senzori deodată dar nu suficient curent pentru a rula mai multe relee, solenoizi sau motoare.
Scurtcircuitarea pe pinii plăcii Arduino sau trecerea unui curent mai mare prin ei, poate deteriora sau distruge tranzistori de ieșire a pinului sau deteriora întregul micorcontroler Atmega. Adesea, acest lucru va avea ca rezultat un pin "mort" în microcontroller dar cipul rămas încă va funcționa corespunzător. Din acest motiv este o idee bună pentru a vă conecta la pinul de ieșire cu alt dispozitiv cu o rezistență de 470Ω sau 1 k.
Pinii analogici de intrare
Controlerul Atmega utilizat pentru Arduino conține 6 canale cu convertor analogic-digital (A\/D). Convertorul are 10 biți de rezoluție, returneazăun întreg de la 0 la 1023. În timp ce funcția principală a pinilor analogici pentru majoritatea utilizatorilor Arduino este de a citi semnalul analogic al senzorilor, pinii analogici au, de asemenea, funcționalitatea de scop general intrare\ieșire (GPIO) (la fel ca cei digitali 0 – 13).
2.2 Microcontrollerul
Prezentarea generală a microcontrollerelor pe 8 biți din familia Atmel
Microcontrollerele din familia AVR prezintă o organizare de tipul RISC executândo instrucțiune/ciclu mașină. Prezența unor blocuri interne ca : oscilator intern, timere, unitate UART, SPI, rezistoare pull-up, PWM ( pulse widith modulation),ADC,comparatoare, determină utilizarea acestor microcontrollere într-o gamă foarte largă deaplicații.
Instrucțiunile acestei familii de microcontrollere au fost proiectate pentru a reduce dimensiunea unui program scris în limbaj C sau în limbaj de asamblare. Posibilitatea programării memoriei FLASH și a memoriei EEPROM, determină ca aceste microcontrollere să aibă o largă utilizare datorată costului mic de dezvoltare a unei aplicații (timpul de proiectare scurt).
O altă calitate remarcabilă a acestor microcontrollere este consumul foarte mic de energie. Domeniul tensiunilor de alimentare este cuprins între 1.8 și 5V.Prezintă 6 moduri diferite de stand-by ceea ce ne asigură că aceste microcontrollere nu vor consuma energie decât atunci când este nevoie.Controlul software al frecvenței garantează o viteză maximă de execuție atunci când este nevoie, iar în restul timpului microcontrolerul poate trece în stand-by, unde consumul de energie este minim.
Utilizarea acestor microcontrollere poate reduce semnificativ timpul de dezvoltarea unei aplicații datorită prezenței pe acestea a unui bloc de depanare în timp real, circuitul aflându-se chiar pe placa ce reprezintă aplicația. Se pot face în timp real operații de “watch” asupra unor regiștri, operații de rulare pas cu pas, operații de oprire în breakpoint.
Sunt produse microcontrollere de uz general precum și microcontrollere cu funcțiispecializate. Printre cele mai utilizate microcontrollere de uz general putem specifica:ATMEGA 8 , ATMEGA 16, ATMEGA 128, ATMEGA 168, ATMEGA 328 etc.
Microcontrollerele cu funcții specializate se împart în mai multe categorii :
Ligthing AVR: conțin un procesor de semnal și este special conceput pentru
controlul motoarelor de curent continuu.
LCD AVR: conțin un controller pentru adresarea dispozitivelor LCD.
CAN AVR: conțin implementată hardware o interfață CAN.
ATmega 328 este un microcontroller CMOS de 8 – biți de mică putere bazat pearhitectura RISC AVR îmbunătățită. Dispune de un set de 131 instrucțiuni și 32 de registre de uz general. Cele 32 de registre sunt direct adresabile de Unitatea Logică Aritmetică (ALU), permițând accesarea a două registre independente într-o singură instrucțiune. Se obține astfel o eficiență sporită în execuție (de până la zece ori mai rapide decât microcontrollerele conveționale CISC).
Figura 2.1-Microcontroller
Caracteristicile principale ale acestuia sunt:
Arhitectura RISC avansată:
– 131 de instrucțiuni executate într-un singur ciclu de ceas;
– 32*8 registre de scop general;
– operații complet statice;
– up to 20 MIPS Throughput at 20 MHz;
– multiplicator de 2 cicluri pe cip.
Programe și memorii de date nonvolatile:
– 32 kbiți în-sistem self-programmable flash ; rezistență : 10.000 cicluriScriere/Ștergere – 1 kB EEPROM, rezistență : 100.000 Scriere/Ștergere
– 2 kB intern SRAM
– închidere programabilă pentru securitatea softului
Caracteristici periferice:
– două cronometre/numarători de 8 biți cu prescalar separate și un mod de comparare
– un cronometru/numărător de 16 biți cu prescalar separate, mod de comparare și mod de capturare
– numărător în timp real cu oscilator separat
– 6 canale PWM
– 8 canale ADC de 10 biți în TQFP și pachetul QFN/MLF
– 6 canale ADC de 10 biți în pachetul PDIP
– Interfață serială
– USART serial programabil
– interfață serială SPI Master/Slave
– comparator analogic On-Chip
Caracteristici speciale ale microcontrollerului
– oscilator Rc intern calibrat
– surse de întrerupere interne și externe
– cinci moduri de repaus : Idle, ADC Noise Reduction, Power-save, Power-down, Standby
– DebugWIRE on-chip de depanare Sistem
Intrări/Ieșiri și Pachete
– 23 de linii programabile de I/O
– 28-lead PDIP, 32-lead TQFP și 32-pad QFN/MLF
Tensiuni operaționale:
– 1.8 – 5.5 V
Grade de viteză :
– 0 – 4 MHz, 1.8 – 5.5V, 0 – 16 MHz, 2.7 – 5.5V
Puterea consumată :
– Activ :250 mA la 1 MHz, 1.8V
15 mA la 32 kHz, 1.8V (inclusiv Oscilator)
– Idle mode : 1.0 mA
– Power-down mode : 0.1μA la 1.8V
Temperatura:
-40 ° C la 85 ° C
Structura internă generală a controllerului este prezentată în Figura 2.2. Se poateobserva că există o magistrală generală de date la care sunt conectate mai multe module:
– unitatea aritmetică și logică (ALU)
– registrele generale
– memoria RAM și memoria EEPROM
– liniile de intrare (porturile – I/O Lines) și celelalte blocuri de intrare/ieșire.
Acesteultime module sunt controlate de un set special de registre, fiecare modul avândasociat un număr de registre specifice.
Memoria Flash de program împreună cu întreg blocul de extragere a instrucțiunilor, decodare si execuție comunică printr-o magistrală proprie, separată de magistrala de date menționată mai sus. Acest tip de organizare este conform principiilor unei arhitecturi Harvad și permite controllerului să execute instrucțiunile foarte rapid.
Modul Power-down salvează conținutul registrelor dar blochează oscilatorul, dezactivând toate celelalte funcții ale chip-ului până la urmatoarea întrerupere externă sau reset hardware. În modul power-save, timer-ul asincron continuă să meargă, permițând userului să mențină o bază de timp, în timp ce restul dispozitivului este oprit.
În modul standby, oscilatorul funcționează în timp ce restul dispozitivului este oprit. Acest lucru permite un start foarte rapid combinat cu un consum redus de energie. În modul stanby extins (Extended Stanby Mode), atât oscilatorul principal cât și timer-ul asincron continuă să funcționeze. Memoria flash (On-chip) permite să fie reprogamată printr-o interfață serială SPI, de către un programator de memorie nonvolatilă convențional sau de către un program de boot On-chip ce rulează pe baza AVR.
Programul de boot poate folosi orice interfață să încarce programul aplicație în memoria Flash de aplicație. Combinând un CPU RISC de 8 biți cu un Flash In-system auto –programabil pe un chip monolithic, ATmega 328 este un microcontroller puternic ce oferă o soluție extrem de flexibilă și cu un cost redus în comparație cu multe altele de pe piață. ATmega 328 AVR este susținut de o serie completă de instrumente de program și de dezvoltare a sistemului, care include: compilatoare C, macroasambloare, programe debug simulare etc.
Figura 2.2- ATmega 328 AVR
Figura 2.3-Diagrama bloc a arhitecturii AVR
Figura 2.4- Semnificația pinilor Microcontrollerul Atmega 328
VCC-Alimentarea cu tensiune
GND-Masa
Port B( PB7…PB0-XTAL1/XTAL2/TOSC1/TOSC2) – Portul B este un port de ieșire bidirecțional pe 8 biți cu rezistoare interne, selectate pentru fiecare bit. Depinzând de setările selecției de ceas, PB6 poate fi folosit ca intrare pentru amplificatorul oscilatorului sau circuitului operațional intern de ceas. PB7 poate fi folosit ca ieșire pentru amplificatorul oscilatorului.
XTAL 1: Intrare pentru amplificatorul inversor al Oscilatorului;
XTAL 2: Iesire pentru amplificatorul inversor al Oscilatorului.
Port C(PC5…PC0) – Portul C este un bidirecțional I/O pe 7 biți cu rezistoare interne selectate pentru fiecare bit. Ieșirea portului C are caracteristici simetrice. Pinii portului C sunt “tri-stated” când o condiție de resetare devine activă, chiar dacă ceasul nu funcționează.
PC6/RESET – Dacă conținutul RSTDISBL este programat, PC6 este folosit ca pin de I/O. Caracteristicile electrice ale portului PC6 diferă de cele ale altor pini ai portului C.
Dacă conținutul RSTDISBL-ului este neprogaramat, PC6 este folosit ca o resetare a ieșirilor. Un nivel scăzut pe acest pin pentru mai mult timp decât lungimea minimă de puls va genera o resetare, chiar dacă ceasul nu este funcțional.Pulsurile mai mici nu garantează o resetare.
Port D ( PD7..PD0 ) – Portul D este un port de I/O bidirecțional pe 8 biți cu rezistoare interne selectate pentru fiecare bit.
AVCC – Este un pin pentru alimentarea de la sursa convertorului A/D, a Port-ului C ( 3..0 ) și ADC ( 7..6 ). Ar trebui să fie conectat extern la VCC chiar dacă ADC nu este folosit. Dacă ADC este folosit, ar trebui să fie conectat la VCC iar printr-un filtru trece jos.
AREF – AREF este un pin analogic de referință pentru convertorul A/D.
ADC7:6 (TQFP and QFN/MLF Package Only) – TQFP și pachetul QFN/MLF, ADC7: 6 servesc ca și intrări analogice pentru convertorul A / D.Aceste pinuri sunt alimentate de la sursa de analogice și servesc drept canale de 10-bit ADC.
Porturile I/O
Atmega328 dispune de 32 de linii de I/O grupate în trei porturi de 8 biți. Porturile sunt denumite cu literele B, C si D. Fiecare pin al oricărui port se poate seta individual ca intrare sau ieșire fără să afecteze ceilalți pini. În plus, anumiți pini se pot utiliza pentru funcții speciale ale microcontrollerului. În Figura 9 este prezentată structura generală a unui pin. Toți cei 32 de pini au fiecare câte o rezistență „pull-up” care poate fi activată sau dezactivată.
Operațiile cu porturile se fac prin intermediul unui set de 3 registre alocate fiecărui port: PORTx, PINx și DDRx; x poate fi B, C sau D. Acești regiștri fac parte din categoria regiștrilor de intrare/ieșire, de aceea instrucțiunile care pot lucra direct cu ei sunt CBI, SBI, IN și OUT.
Regiștrii DDRx stabilesc dacă un pin este intrare sau ieșire. Astfel, un bit cu valoarea „1” în registrul DDRx face ca pinul corespunzător să fie considerat ieșire, altfel pinul va fi intrare.
Regiștrii PORTx sunt utilizați pentru a scrieo valoare în portul corespunzător iar regiștrii PINx se folosesc pentru a citivaloarea prezentă pe pinii unui port. Activarea sau dezactivarea rezistențelor „pull-up” este determinată de bitul PUD din registrul SFIOR și de valorile regiștrilor PORTx si DDRx așa cum se poate observa în tabelul următor.
Figura 2.5- Regiștrii PORTx
Toate porturile AVR au funcția Citește – Modifică – Scrie atunci când sunt folosite ca porturi I/O digitale generale. Asta înseamnă că direcția unui pin port poate fi schimbată fară a schimba în mod intenționat direcția oricărui alt pin cu comenzile SBI și CBI. Aceeași regulă se aplică când se schimbă valoarea driver-ului (dacă este configurat ca output) sau a activării/dezactivării rezistorilor (dacă sunt configurați ca input). Fiecare buffer de input are caracteristici similare de drive atât cu capacitatea sursei cât și cu sincronizarea. Driver-ul pinului este îndeajuns de puternic ca să activeze displayul LED direct. Toți pinii port au rezistori care pot fi selectați individual cu o sursă suplimentară de tensiune cu rezistența invariabilă. Toți pinii I/O au diode de protecție atât la Vcc cât și la împământare așa cum este indicat în figura de mai jos :
Figura 2.6-Schema echivalentă a pinilor I/O
Toți regișitrii și referințele de bit din această secțiune sunt scriși în forma generală. Un “x” mic reprezintă litera care denumește portul și un “n”mic reprezintă numărul bitului. Când se utilizează registrul sau biții într-un program, trebuie să fie folosită forma exactă, adică PORTB3 pentru bitul numărul 3 în Portul B, prezentat general ca PORTxn.
Trei locații de adrese de memorie I/O sunt alocate pentru fiecare port :
– una pentru fiecare registru de date – PORTx,
– registrul direcției datelor – DDRx,
– port de intrare – PINx.
Locația pinilor port intrare este read only, în timp ce registrul de date și DDR sunt read și write. În plus, bitul PUD (dezactivare pull-up) din SFIOR dezactivează funcția pull-up pentru toți pinii din toate porturile când este setat.
Majoritatea pinilor au funcții alternative pentru caracteristicile periferice ale dispozitivului. Este de remarcat faptul că activarea funcțiilor alternante ale unor pini port nu afectează utilizarea altor pini din port ca I/O general digital.
2.3 Driverul de motoare cu circuit integrat L298N
Driver-ul de motoare L298N este utilizat pentru controlul motoarelor de curent continu folosind Arduino.
Arduino este capabil să scoată pe porturile lui o putere foarte mică, total insuficientă pentru a învârti un motor. Dacă vom conecta un motor electric direct la un port Arduino, cel mai probabil vom obține arderea procesorului din placa Arduino.
Ca să nu se întâmple acest lucru, avem nevoie de un amplificator de putere, care să ia putere din sursa de alimentare (baterie de exemplu) și să o transmită motoarelor așa cum îi comandă Arduino. Acest amplificator poartă numele generic de "driver de motoare".
Există o multitudine de drivere de motoare, diferența majoră între ele fiind cât de multă putere pot conduce (cât de puternice pot fi motoarele pe care le pot controla). Driver-ul din această secțiune este bazat pe integratul L298N, fiind un driver de nivel mediu din punct de vedere al puterii conduse. Poate controla motoare care necesită cel mult 2 Amperi.
Figura 2.7- Driverul de motoare cu circuit integrat L298N
Câteva motoare care funcționează perfect împreună cu acest driver – toate cele din categoria micro-metal, motorul hobby fară cutie de viteze, motorul Pololu 120:1, cutia Tamiya.
Driver-ul se conectează la platforma Arduino folosind 4 pini digitali (3, 5, 6 si 9) prin înfigere direcția în pinii plăcii Arduino.
Produsul se prezintă sub forma shield-ului Arduino complet asamblat (placa roșie cu pini) la care se adaugă o serie de elemente de conectare care nu sunt montate pe placă în mod obișnuit( două barete mamă cu 6 pini fiecare pentru alimentarea senzorilor direct din shield, o baretă cu 6 pini mamă în unghi pentru montarea conectorului Bluetooth – dacă dorești – și doi pini tată și un jumper pentru alimentarea robotului folosind o singură sursă de tensiune). Aceste elemente de conectare nu sunt montate pe shield în varianta obișnuită. Le poți lipi tu singur sau poți alege opțiunea "toți pinii lipiți" și îi vom lipi noi pentru tine.
2.3.1 Funcționalități suplimentare
Versiunea curentă 2.0 prezintă o serie de îmbunătățiri care fac și mai simplă utilizarea acestui shield:
1. poți alimenta senzorii (5V) direct din shield, folosind cei 6 conectori care oferă conexiune directă la 5V si cei 6 conectori care oferă conexiune directă la GND.
Figura 2.8- Driverul de motoare
2. poți conecta un Bluetooth Mate la Arduino extrem de simplu. Pe shield ai deja un conector dedicat cu 6 pini gândit special pentru Bluetooth Mate. Tot ce ai de făcut este să înfigi Bluetooth-ul în el și ai o conexiune SoftwareSerial pe pinii digitali 2 si 4.
Figura 2.9- Driverul de motoare conectat un Bluetooth Mate
3. ai la dispoziție un jumper care iți permite să alimentezi placa Arduino direct din sursa de alimentare a shield-ului / să alimentezi shield-ul din sursa de alimentare a plăcii Arduino (atunci când jumper-ul este conectat pe shield), sau să ai două surse de alimentare complet independente (atunci când jumper-ul este scos din placă).
Figura 2.10- Driverul de motoare
2.3.2 Alimentarea motoarelor
Alimentarea shield-ului se face prin pinii cu șurub VIN si GND. Shield-ul se alimentează în funcție de necesitățile motoarelor. Dacă motoarele acceptă o tensiune de cel mult 9V, atunci poți utiliza o cutie cu 6 baterii. Tensiunea totală a bateriilor este de 9V dar driver-ul consumă intern între 2.5 si 4.5V. În acest mod, pe motor ajunge o tensiune cuprinsă între 4.5V și 6.5V, suficient câtsă își îndeplinească funcția fără să îl arzi.
2.3.3 Alimentarea plăcii Arduino
Pentru placa Arduino poți alege să folosești o altă sursă de tensiune (cutie de baterii, LIPO, etc.), sau poți alege să folosești aceeași sursă de tensiune pe care o folosești pentru motoare. Este recomandat să folosești o altă sursă de tensiune. Dacă vei folosi o singura sursă de tensiune, atunci când bateriile se descarcă prea mult, placa Arduino se poate reseta sau senzorii pot genera semnale eronate din cauză că motoarele necesită un curent prea mare când pornesc sau când își schimbă sensul de rotație.
Pentru a folosi două surse de tensiune, shield-ul se alimentează folosind pinii VIN și GND (cei cu șurub, partea frontală), iar placa Arduino se alimentează fie pe mufa rotundă – de exemplu folosind acest cablu împreună cu o cutie cu 6 baterii, sau altă modalitate (de exemplu direct prin pinii mamă GND și VIN). În această situație (două surse de tensiune) NEAPĂRAT jumper-ul mov trebuie să fie DECONECTAT pe shield, altfel, cele două surse vor debita curent una în cealaltă.
Figura 2.11- Driverul de motoare cu surse de alimentare
Pentru a folosi o singură sursă de tensiune, poți cupla jumper-ul de culoare mov pe shield.În acest fel, tensiunea aplicată pe pinul cu șurub VIN ajunge direct prin jumper pe pinul VIN (mamă) din placa Arduino. Poți opri placa Arduino apoi prin deconectarea jumper-ului.
2.4 KITUL ROBOTULUI FLEXYBOT – 4 MOTOARE
Kit-ul conține patru motoare cu cutie de viteze, patru roti din cauciuc, doua sasiuri din Plexiglas,4 elemente de prindere pentru motoare, printate 3D,2 elemente de extindere, printate 3D, 16 suruburi M3 x 35 mm, 4 suruburi M3 x 18 mm, 1 surub M4 x 45 mm, 20 piulite M3, 2 piulite M4.Acest kit poate fi achiziționat prin comandă, de pe site-ul www.robofun.ro. El vine complet dezasamblat, urmând ca utilizatorul să se ocupe de asamblarea lui urmărind instrucțiunile de folosire.
Figura 2.12-Flexybot – 4 motoare
Figura 2.13-Flexybot – 4 motoare asamblat
2.5 PORTUL USB
Porturile sunt niște mufe situate în partea din spatele carcasei calculatorului la care se conectează diverse dispozitive periferice, prin cabluri cu forme specifice. O parte dintre aceste mufe sunt așa-numitele porturi de comunicație, prin care calculatorul poate schimba date cu alte dispozitive specializate, interfețe hard (conectori fizici) care permit ca în timpul fabricației sau mai târziu să poată fi atașată la magistralele calculatorului o gamă largă de adaptoare sau sunt "porți" de comunicare ale computerului cu lumea reală.
Orice calculator nou achiziționat are unul sau mai mulți conectori USB, la care putem conecta simplu și rapid orice echipamente periferice.
Portul USB a fost dezvoltat prin colaborarea companiilor Intel,Comapaq,NEC, DEC(Digital), IBM, Nothern Telecom și Microsoft.
Denumirea USB provine din terminologia engleză “Universal Serial Bus”, în traducere “magistrală serială universală”.Avantajele portului USB sunt majore și sunt explicate rând pe rând.
În zilele noastre la portul USB pot fi conectate toate tipurile de echipamente:
Imprimante
Scannere
Mouse-uri
Joystick-uri
Camere digitale
Camere video pentru web
Echipamente științifice pentru achziționarea datelor
Plăci de dezvoltare cu microcontrollere
Modem-uri
Telefoane
Video – telefonie
Memorie portabilă(flash drive, pen drive)
Echipamente de stocare a datelor (zip drive, hard disk portabil, pen drive,etc.)
Portul USB este un element de noutate revoluționar în domeniul hardware.Echipamentele periferice atașate calculatoarelor prin portul USB pot fi configurate automat imediat după conectarea lor fzică, fără să mai fie necesară restartarea sitemului și de aceea se spune că sunt “Plug and Play”, adică ”conectează și utilizeză”.Odată instalat fizic echipamentul,sistemul de operare va remarca prezența acestuia și va solicita programul de instalare aferent.Echipamentul poate fi conectat și deconectat în orice moment, chiar și atunci când sistemul de calcul este pornit.
Portul USB se distinge clar atât prin numărul mare de echipamente periferice ce pot fi conectate la portul USB, ce poate ajunge la 127, cât și prin rata de transfer oferită de USB, acesta fiind între 1,5 Mbps și 12 Mbps. Prin standardizarea portului USB se rezolvă într-un mod convenabil toate problemele existente din cauza insuficienței numarului de porturi sau incoveniențele legate de viteza de transfer mare de care unele echipamente aveau nevoie. În plus, conectarea fizică a echipamentelor devine mult mai facilă, specialiștii declarând conectarea greșită ca fiind imposibil de realizat.
Majoritatea echipamentelor se conectează la portul USB prin intermediul unui cablu ce conține doi conectori.Conectorii USB sunt de două tipuri, A și B, așa cum se vizualizează în figurile de mai jos.De regulă, conectorul de tip A este cel ce va fi atașat la portul USB al calculatorului, iar conectorul de tip B va fi cel atașat echipamnetului.
Conector de tip A Conector de tip B
În general, calculatoarele se comercializeză cu 2 sau 4 socket-uri USB dar având în vedere că de multe ori e nevoie să conectăm mai mult de 4 echipamente avem posibilitatea de a achiziționa la un preț acceptabil un dispozitiv numit USB hub, care face parte din standarul USB . Hub-ul poate fi vizualizat în figura următoare.Hub-ul poate fi alimentat sau nealimentat, doarece standardul Usb permite echipamentelor alimentarea de la conexiunea USB.Totuși un echipament ce necesită putere a curentului mai mare, cum ar fi imprimanta sau scanner-ul se alimentează separat, dar echipamnetele ce nu necesită curent așa mare, cum ar fi mouse-ul sau camera digitală obțin curent direct de la conexiunea USB, tocmai pentru a nu le complica structura.de
Curentul de până la la 500 mA la o tensiune de 5 V e furnizat către calculator.Dacă avem mai multe echipamente cu alimentare propie, atunci hub-ul nu are nevoie să fie alimentat. În cazul în care avem o serie de echipamente fără alimentare propie, avem nevoie de un hub cu alimentare. Acesta are propiul său transformator și furnizează tensiune magistralei astfel încât echipamentele să nu supraîncarce PC-ul.
Avantajele portului USB
Portul USB oferă avantaje clare, atât de ordinul vitezei de transfer, cât și în ceea ce privește numărul maxim de echipamente periferice atașate calculatorului în același timp.De asemenea devine extrem de facilă conectarea fizică a echipamentelor la calculator și în plus pe sistemele de operare mai nou nu mai este necesară instalarea software-ului corespondent echipamentului , ci acesta este recunoscut de către sistem pur și simplu.
Versiunea 2.0 a portului USB, produs de Compaq, Intel, Hewlett Packard, Luccent,Microsoft, NEC și Philips face ca viteza de transfer prin portul USB să crească până la 480 Mbps, adică de 40 de ori față de USB 1.1.Prin creșterea vitezei de transfer, utilizatorii se vor bucura de o creștere a nivelului de exploatare a multitudinii de periferice, fără a aduce grija unei limitări.USB 2.0 folosește transfer unidirecțional (half-duplex) pe patru fire.
Specificația SuperSpeed din USB 3.0 prevede o viteză maximă de 4800Mbps spre deosebire de cei 480Mbps oferiți de USB 2.0, cel introdus în 2002 și pe care-l avem cu toții prin calculatoarele noastre .Binefacerile lui USB 3.0 vor fi cel mai mult apreciate când avem de transferat cantități mari de date către sau dinspre dispozitive care ar fi capabile de mai mult decât cei 480Mbps ai lui USB 2.0.Noul conector USB 3.0 conține 9 fire dar datele se pot transfera simultan în ambele direcții(full-duplex).
Este important de reținut că majoritatea echipamentelor periferice noi și performante se conectează la portul USB și de aceea beneficiem de conectare extrem de facilă, ușurință în instalare dar mai ales viteză de transfer mare.
Acum, în condițiile actuale întâmpinăm o tendință crescând a implicării tehnicii de calcul în toate domeniile, o familiarizare cu ce ne oferă portul USB este cât se poate de bine venită.
2.6 Senzor de distanta digital Sharp GP2Y0D810Z0F
Acesta a apărut odată cu dezvoltarea microelectronicii, împreună cu alte noțiuni de mare impact, cum ar fi cele de „microprocesor”, „microcontroller”, „transputer”, actuator” etc.Astfel, o mare parte din elementele tehnice senzitive sunt încadrate în categoria de traductor.Un traductor este un dispozitiv care convertește efecte fizice în semnale electrice, ce pot fi prelucrate de instrumente de măsurat sau calculatoare. Prin senzor se va înțelege dispozitivul tehnic destinat înzestării mașinilor cu integrare, poate avea funcții mai simple sau mai complexe după cum este arătat în figura de mai jos:
Figura 2.14-Principiul de funcționare al unui senzor
Structuri ale sistemelor senzoriale
Senzorul cuprinde traductorul/traductoarele pentru transformarea mărimii de intrare într-un semnal electric util, dar și circuite pentru adaptarea și conversia semnalelor și eventual, pentru prelucrarea și evaluarea informațiilor. Senzorul care include și unitățile micromecanice și microelectronice de prelucrare, realizate prin integrare pe scară largă (LSI) sau foarte largă (VLSI), se întâlnește în literatura de specialitate și sub denumirile de "sistem senzorial" sau "senzor inteligent" (smartsensor). Producerea senzorilor inteligenți este facilitată de dezvoltarea tehnicii microsistemelor, care permite integrarea în volume extrem de mici atât a traductoarelor de diferite tipuri, cât și a micromecanicii și microelectronicii de prelucrare. Gruparea senzorilor după acțiunea robotului cu mediul înconjurător : Senzorii interni ( intero-receptori), care servesc la obținerea unor informații legate de funcționarea robotului, cum ar fi poziția relativă a elementelor cuplelor cinematice, vitezele și accelerațiile liniare și unghiulare, deformațiile elementelor cinematice.
Figura 2.15-Tipuri de senzori
Senzorii externi (denumiți de unii autori și extero-receptori), utilizați pentru culegerea unor informații asupra mediului înconjurător și asupra interacțiunii robot/mediu; servesc la identificarea prezenței și stabilirea tipului, poziției, orientării, culorii sau a altor proprietăți ale obiectelor din mediu, la identificarea unor obstacole, la determinarea forțelor de interacțiune robot/mediu. Un criteriu care poate permite clasificarea senzorilor externi este cel referitor la contactul cu obiectele din mediu .
Un senzor care măsoară pozițiile/deplasările în cuplele cinematice este un senzor intern, un senzor de investigare, care baleiază mediul înconjurător pe principiul radarului, este un senzor extern fără contact, un senzor tactil este un senzor extern cu contact direct, iar un senzor de forță/moment este un senzor extern cu contact indirect, întrucât forțele de interacțiune cu mediul nu sunt exercitate direct asupra senzorului, ci sunt resimțite de acesta prin propagarea lor de-a lungul unor elemente intermediare. Senzorii fără contact pot servi la recunoașterea obiectelor, a poziție și orientării lor și la controlul calității. Senzorii de proximitate sunt senzori de zonă foarte apropiată; ei furnizează informații despre existența obiectelor și sunt montați pe efectorul final sau în apropierea acestuia. Senzorii optici sunt senzori de zonă apropiată, iar cei de investigare de zonă îndepărtată.
Senzorul folosit pentru aplicația robotului
Un senzor special folosit pentru evitarea obstacolelor este senzorul infraroșu SharpGP2D12 care prezintă următoarele caracteristici tehnice:
• Folosește principiul de reflexie al luminii infraroșii pentru măsurarea distanței.
• Raza de acțiune este între 10 și 80 cm.
• Alimentarea se face la o tensiune de 4,5 până la 5 V și o intensitate de 33 mA.
• Tensiunea de ieșire este cuprinsă în intervalul 0.4-2.4 V la o alimentare de 5 V.
Interfața sa prezintă 3 fire: alimentarea(Vcc)- fir roșu, masa(GND)- fir negru și tensiunea de ieșire(Vout)- fir galben..
Figura 2.16-Senzor Sharp si schema de conectare la driver
Modul de funcționare:
Principiul care stă la baza acestei metode de măsurare folosite de senzorul Sharp se bazează pe formarea unui triunghi între Emițătorul de rază infraroșie, punctul de reflexie și detectorul de infraroșu. Astfel, emițătorul emite un puls de lumina infraroșie. Lumina străbate câmpul vizual și fie lovește un obstacol sau continuă deplasarea. În cazul inexistenței unui obstacol, lumina nu va fi reflectată și nu se va detecta niciun obiect. Dacă lumina se reflectă de pe un obiect, se va întoarce la detector și va creea un triunghi între emițător, punctul de reflexie și detector, ca în figura următoare:
Fig 2.17-Date tehnice privind funcționarea senzorului Sharp
Prin conexiunea senzorului infraroșu cu convertizorul Analog/Digital rezultă datele analogice care sunt convertite în distanțe corecte cu ajutorul softului de programare.
Fig 2.18- Modul de funcționare al senzorului Sharp
CAPITOLUL 3. PROGRAMAREA ÎN EDITORUL DE LUCRU AL SOFTULUI ARDUINO
Arduino este o platformă de hardware gratuit, bazat pe o placă cu microcontrollerși un mediu de dezvoltareconceput pentru a facilita utilizarea de electronice în proiecte multidisciplinare.
3.1 Limbajul de programare Arduino
Platforma Arduino este programată folosind propriul limbaj, bazat pe limbajul de programare de un nivel înalt de prelucrare. Cu toate acestea, este posibil să se utilizeze alte limbaje de programare și aplicați. Arduino folosește transmisie serială de date susținuta de cele mai multe dintre limbajele de mai jos. Pentru cei care nu acceptă formatul serial nativ, pot folosi middleware pentru a traduce mesajele trimise de către ambele părți, pentru a permite o comunicare buna. Câteva exemple sunt:
3DVIA Virtools: aplicatii interactive și în timp real.
Adobe Director
BlitzMax (acces limitat)
C
C + + (folosind libSerial sau Windows)
C #
Cacao / Objective-C (pentru Mac OS X )
Flash (cu ActionScript)
Java
Mathematica
Matlab
Php
Etoys fizic : mediu de programare grafic folosit pentru proiecte de robotică de învățământ
Prelucrare
Pure de date
VBScript
Visual Basic.
Funcțiile de bază și operatorii
Arduino este bazat pe C și suportă toate funcțiile de C standard și unele C + +. Ceea ce urmează este un rezumat al structurii și sintaxa limbii Arduino este afișată:
Sintaxa de bază
Delimitatori:,, {}
Comentarii: / /, / ** /
Antete: # define, # include
Operatori aritmetici: +, -, *, /,%
Atribuire: =
Operatorii de comparație: ==, =, <,>, <=,> =!
Operatori booleeni: &&, | |,!
Operatorii de acces indicii: *, &
Operatori pe biți: &, |, ^, ~, <<, >>
Operatorii compuse:
Increment variabil și decrement: + +, –
Alocarea și funcționare: + =, – =, * =, / =, & =, | =
Structuri de control
Condiționat: dacă, în cazul în care … altfel, caz comutator
Cele mai rapide: pentru, în timp ce, în timp ce face …
Ramificare și sare: pauză, continua, întoarcere, Du-te
Variabile
În ceea ce privește tratamentul de variabile împărtășește, de asemenea, o asemănare puternică pentru limbajul C
Constante
HIGH / LOW: reprezinta niveluri ridicate și scăzute de semnalele de intrare și de ieșire. Nivelurile ridicate sunt cele de 3 volți sau mai mult.
De intrare / ieșire: de intrare sau de ieșire.
fals semnal (false) reprezentând logica zero. Spre deosebire de semnale HIGH / LOW, numele tău este scris în litere mici.
true (adevărat) semnal a cărui definiție este mai largă decât fals. Orice număr întreg diferit de zero este "adevărat" în conformitate cu algebra booleană , ca și în cazul -200, -1 sau 1. Dacă zero este "fals".
Tipuri de date
nule, boolean, char, unsigned char, byte, int, int nesemnate, cuvânt, lung, nesemnat lung, float, double, string, matrice.
Conversia
Aceste funcții primesc ca argument o variabilă de orice tip și să se întoarcă o variabilă convertit la tipul dorit.
char (), octet (), int (), cuvânt (), lung (), float ()
Timp
Millis nesemnate lungi ()
micros nesemnate lungi ()
întârziere (ms)
delayMicroseconds (microsecunde)
Comunicare port serial
Funcțiile de conducere ale portului serial trebuie să fie precedate de cuvântul "Serial", dar nu au nevoie de nicio declarație în antetul programului. Prin urmare, se consideră funcțiile de bază ale limbii. Acestea sunt funcțiile de transmitere de serie:începe (), disponibil (), read (), culoare (), print (), println (), scrie ()
Editorul pentru programare folosit numai pentru plăcile de dezvoltare Arduino
Figura 3.1 Interfața progamului
Fereastra de mai jos este un editor pentru programare folosit numai pentru plăcile de dezvoltare Arduino .Pentru aceasta trebuie intrat în meniul tools și aleasă placa cu care se lucrează.
Figura 3.2
După alegerea plăcii cu care se lucrează, se alege și portul cu ajutorul calculatorului.
Figura 3.3
Orice program scris trebuie verificat prin butonul care verifică dacă apar erori în structura programului, iar prin afișarea mesajului “ Done compiling” .
Fig. 3.4
Programul poate fi rulat prin apăsarea butonului de upload care trimite prin intermediul portului COM1 instrucțiunile către microcontroller care le prelucrează și trimite mai departe spre pinii de ieșire.
Figura 3.5
Figura 3.6
În funcția void loop(), pe prima linie se citește valoarea senzorului prin pinul Analogic A0, această valoare se poate vizualiza pe monitorul serial prin comanda liniei 2. Pe linia 3 este pusă condiția (if) dacă valoarea senzorului este mai mare decât pragul DIST_OBSTACOL care poate fi un corp solid sau orice obstacol, atunci funcția rulare(-150,-100), arată că primul motor va roti înapoi cu viteza de -150 iar cel de al doilea motor va roti în față cu viteza de -100. Motoarele suportă o comandă pentru viteză de 0 până la 255, iar prin semnul (-) motoarele se rotesc invers.
Cea de a doua condiție (if) verifică dacă valoarea senzorului este mai mică decât pragul DIST_OBSTACOL, atunci funcția rulare(100,-100) face ca ambele motoare să rotească înainte, primul fiind cu plus iar al doilea cu minus, cele 2 motoare fiind în oglindă.
Prezentarea monitorului serial
Figura 3.7- Citirea senzorului
În fereastra din figura 3.7 este prezentată citirea senzorului care monitorizează valorile citite într-un număr binar, dacă valoarea citită este mai mare decât 200, ceea ce înseamnă o distanță mai mică de 31cm, motorul stâng rotește înapoi iar motorul drept rotește înainte, făcând o rotație ușor spre dreapta pentru evitarea obstacolului.Al doilea caz este când valoarea citită este mai mică decât 200,o distanță mai mare de 31 cm, cum este și în fereastră, atunci ambele motoare rotesc înainte. Acest proces rulează atâta timp cât este alimentată placa arduino și driverul de motoare.
Tabelul 3.1. Valorile citite de senzor exprimate în distanta
3.2 Partea de programare
#define SENZOR_OBSTACOL 7
#define SPEED 200
int MOTOR2_PIN1 = 3;
int MOTOR2_PIN2 = 5;
int MOTOR1_PIN1 = 6;
int MOTOR1_PIN2 = 9;
void setup() {
pinMode(MOTOR1_PIN1, OUTPUT);
pinMode(MOTOR1_PIN2, OUTPUT);
pinMode(MOTOR2_PIN1, OUTPUT);
pinMode(MOTOR2_PIN2, OUTPUT);
Serial.begin(9600);
}
void loop() {
int senzorObstacol = digitalRead(SENZOR_OBSTACOL);
Serial.print(" SENZOR OBSTACOL: ");
Serial.println(senzorObstacol);
if (senzorObstacol == 0) {
go(-SPEED, -SPEED);
delay(1000);
go(-SPEED, SPEED);
delay(1000);
} else {
go(SPEED, SPEED);
}
}
void go(int speedLeft, int speedRight) {
if (speedLeft > 0) {
analogWrite(MOTOR1_PIN1, speedLeft);
analogWrite(MOTOR1_PIN2, 0);
}
else {
analogWrite(MOTOR1_PIN1, 0);
analogWrite(MOTOR1_PIN2, -speedLeft);
}
if (speedRight > 0) {
analogWrite(MOTOR2_PIN1, speedRight);
analogWrite(MOTOR2_PIN2, 0);
} else {
analogWrite(MOTOR2_PIN1, 0);
analogWrite(MOTOR2_PIN2, -speedRight);
}
}
CAPITOLUL 4. CONCLUZII ȘI DEZVOLTĂRI ULTERIOARE
4.1 Concluzii
S-a avut în vedere sublinierea principalelor cerințe de îndeplinire de către un robot mobil care trebuie să detecteze obstacole și să fie autonom, prevăzut cu senzor care sesizează obiectele ce îi apar în cale, programarea microcontrollerului cu care acesta este dotat;
proiectarea unei structuri cât mai simple, pentru ușurarea deplasării și a punerii în funcțiune a robotului;
componentele principale stabilesc comportarea principală a sistemului: executarea unei comenzi deja implementate, emisia și recepția de date;
componentele de securitate având ca finalitate evitarea interacțiunii robotului cu un obiect din mediul înconjurător: oprirea de urgență,îndepărtarea de un obiect prea apropiat în partea în care este mai mult spațiu disponibil;
4.2 Dezvoltări ulterioare
Viitoarele dezvoltări care se pot aduce robotului și anume:
Dotarea robotului cu un conector Bluethoot, pentru a putea fi comandat cu ajutorul unui telefon inteligent (cu android).
Dotarea robotului cu o cameră foto/video pentru a putea filma și fotografia în locuri greu accesibile sau total inaccesibile pentru oameni.
Dotarea robotului cu o sursă de lumină pentru a putea vedea pe timpul nopții sau în locuri întunecate.
Dotarea robotului cu un conector Bluethoot
Ca să faci conexiunea telefon – robot, ai nevoie de un conector Bluetooth și un telefon care rulează Android și este echipat cu Bluetooth.
Conectorul Bluetooth are nevoie de patru fire, două pentru alimentare și două pentru transmisia de date. Cele douăfire de alimentare se conectează în placa Ardumoto în pinii VCC, respectiv GND, iar cele două fire de date se conectează în pinii RX si TX (încrucișat, adică pinul RX din conectorul bluetooth la pinul TX din placa Ardumoto).Urmează operatiunea obisnuită de pairing (pin-ul defaulteste “1234″). Pasul următor este configurarea informațiilor care vor fi trimise către robot. Pentru aceasta, ține apăsat pe device-ul Bluetooth din listă până când apare meniul contextual și alege “Show Events”. Obții astfel lista tuturor informațiilor care pot fi trimise peste Bluetooth. Astfel, poziția telefonului mobil va fi trimisă către telefon de mai multe ori pe secundă.Mai exact:
când apleci telefonul spre fațărobotul se va mișca în față,
când apleci telefonul spre spate robotul se va mișca înapoi,
mișcările laterale vor întoarce robotul.
Figura 4.1- Modul de conectare a Bluethootului
Dotarea robotului cu o cameră foto/video
Dotarea robotului cu o cameră foto/video pentru a putea filma și fotografia în locuri greu accesibile sau total inaccesibile pentru oameni, cum ar fi:
peșteri
mine
locuri cu multă vegetație
teren instabil sau cu pericol de surpare
Figura 4.2- Camera foto/video
ANEXE
Comparație între motarele electrice tip Pololu
Specificații circuit integrat L298
BIBLIOGRAFIE
[1] Crișan Ion , “Sisteme flexibile de montaj cu roboți și manipulatoare”, Ed. Tehnică, 2000
[2] Tirian Gelu Ovidiu, „Robotică”, Editura Politehnica Timisoara, 2013.
[3] Ivănescu Mihai, “Roboți industriali”, Ed. Craiova, 1994
[4] Popescu Daniel, “Teoria sistemelor automate”, Ed. Matrix Rom, 2000
[5] Ivănescu Mihai, “Robotică”, Ed. Universitaria, 1995
[6] Ispas Victor, “Roboți pentru aplicații speciale”, Ed. Dacia, 2001
[7] Merlet J. P., “Parallel Robots”, Ed. Oda, 2003
[9] http://www.robotul.ro/Products.aspx
[10] http://www.roboter-info.de/index_en.htm
[11] http://www.robofun.ro
[12 ] www.arduino.cc
[13 ] www. sparkfun.com
[14 ] www. pololu.com
[15 ] www. olimex.com
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Problematica Robotilor (ID: 163017)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
