Constructia Unui Robot Mobile cu Kit Arduino
CONSTRUCȚIA UNUI ROBOT MOBIL CU KIT ARDUINO
Capitolul 1: Introducere
Introducere în Mectronică
Fig. 1.1 Conceptul de mecatronică
Termenul "mecatronică" a fost utilizat pentru prima dată în anul 1975 de către concernul japonez Yaskawa Electric Corporation , fiind o prescurtare a cuvintelor Mechanica-Electronica-Informatica.
La început, mecatronica a fost ințeleasă ca o completare a componentelor mecanicii de precizie, aparatul de fotografiat cu bliț fiind un exemplu clasic de aplicație mecatronică. Cu timpul, noțiunea de mecatronică și-a schimbat sensul și și-a extins aria de definiție: mecatronica a devenit știința inginerească bazată pe disciplinele clasice ale construcției de mașini, electrotehnicii, electronicii și informaticii. Scopul acestei științe este îmbunătățirea funcționalității utilajelor și sistemelor tehnice prin unirea disciplinelor componente într-un tot unitar.
Totuși, mecatronica nu este același lucru cu automatica sau cu automatizarea producției. Aceștia sunt termeni care apar și în afara domeniului MECATRONIC, dar sunt și inclusi în el. Mecatronica poate fi definită ca o concepție inovatoare a tehnicii de automatizare pentru nevoile ingineriei și educației.
Mecatronica s-a nascut ca tehnologie și a devenit filosofie care s-a răspândit în întreaga lume. În ultimi ani, mecatronica este definită simplu: știința mașinilor inteligente.
Ca o concluzie, se poate spune că mecatronica este o sferă interdisciplinară a științei și tehnicii care se ocupă în general de problemele mecanicii, electronicii și informaticii. Totuși, în ea sunt incluse mai multe domenii, care formează baza mecatronicii, și care acoperă multe discipline cunoscute, cum ar fi: electrotehnica, energetica, tehnica de cifrare, tehnica microprocesării informației, tehnica reglării și altele.
Introducere în Robotică
Fig. 1.2 Depozit automatizat
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.
Noțiunea de robot datează de peste 4 mii de ani. Omul și-a imaginat dispozitive mecanizate, inteligente care să preia o parte însemnata 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.
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. Acest lucru a dus și la apariția roboților.
Termenul "robot" a fost folosit in 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.
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 si 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 de medii dăunătoare omului, cu condiții necunoscute de exploatare etc.
Introducere în microcontrolere
Circumstanțele în care ne găsim astăzi în domeniul microcontrolerelor și-au avut începuturile în dezvoltarea tehnologiei circuitelor integrate. Această dezvoltare a făcut posibilă înmagazinarea a sute de mii de tranzistoare într-un singur cip. Aceasta a fost o premiză pentru producția de microprocesoare, și primele calculatoare au fost făcute prin adăugarea perifericelor ca memorie, linii intrare-ieșire, timer-i și altele. Următoarea creștere a volumului capsulei a dus la crearea circuitelor integrate. Aceste circuite integrate conțin atat procesorul cât și perifericele. Așa s-a întamplat cum primul cip conținând un microcalculator, sau ce va deveni cunoscut mai târziu ca microcontroler a luat ființă.
1.3.1 Ce este un microcontroler?
La modul general un controler ("controller" – un termen de origine anglo-saxonă, cu un domeniu de cuprindere foarte larg) este, actualmente, o structură electronică destinată controlului (destul de evident!) unui proces sau, mai general, unei interacțiuni caracteristice cu mediul exterior, fără să fie necesară intervenția operatorului uman. Primele controlere au fost realizate în tehnologii pur analogice, folosind componente electronice discrete și/sau componente electromecanice (de exemplu relee). Cele care fac apel la tehnica numerică modernă au fost realizate inițial pe baza logicii cablate (cu circuite integrate numerice standard SSI și MSI ) și a unei electronici analogice uneori complexe, motiv pentru care "străluceau" prin dimensiuni mari, consum energetic pe măsură și, nu de puține ori, o fiabilitate care lăsa de dorit.
Apariția și utilizarea microprocesoarelor de uz general a dus la o reducere consistentă a costurilor, dimensiunilor, consumului și o îmbunătățire a fiabilității. Există și la ora actuală o serie de astfel de controlere de calitate, realizate în jurul unor microprocesoare de uz general cum ar fi Z80 (Zilog), 8086/8088 (Intel), 6809 (Motorola), etc.
Pe măsură ce procesul de miniaturizare a continuat, a fost posibil ca majoritatea componentelor necesare realizării unei astfel de structuri să fie încorporate (integrate) la nivelul unui singur microcircuit (cip). Astfel că un microcontroler ar putea fi descris ca fiind și o soluție (nu în sens exhaustiv !) a problemei controlului cu ajutorul a (aproape) unui singur circuit.
Legat de denumiri și acronime utilizate, așa cum un microprocesor de uz general este desemnat prin MPU (MicroProcessor Unit), un microcontroler este, de regulă, desemnat ca MCU, deși semnificația inițială a acestui acronim este MicroComputer Unit.
O definiție, cu un sens foarte larg de cuprindere, ar fi aceea că un microcontroler este un microcircuit care incorporează o unitate centrală (CPU) și o memorie împreună cu resurse care-i permit interacțiunea cu mediul exterior.
Resursele integrate la nivelul microcircuitului ar trebui să includă, cel puțin, următoarele componente:
a. o unitate centrală (CPU), cu un oscilator intern pentru ceasul de sistem
b. o memorie locală tip ROM/PROM/EPROM/FLASH și eventual una de tip RAM
c. un sistem de întreruperi
d. I/O – intrări/ieșiri numerice (de tip port paralel)
e. un port serial de tip asincron și/sau sincron, programabil
f. un sistem de timere-temporizatoare/numărătoare programabile
Este posibil ca la acestea să fie adăugate, la un preț de cost avantajos, caracteristici specifice sarcinii de control care trebuie îndeplinite:
g. un sistem de conversie analog numerică (una sau mai multe intrari analogice)
h. un sistem de conversie numeric analogic și/sau ieșiri PWM (cu modulare în durată)
i. un comparator analogic
j. o memorie de date nevolatilă de tip EEPROM
k. facilități suplimentare pentru sistemul de temporizare/numărare (captare și comparare)
l. un ceas de gardă (timer de tip watchdog)
m. facilități pentru optimizarea consumului propriu
Un microcontroler tipic mai are, la nivelul unității centrale, facilități de prelucrare a informației la nivel de bit, de acces direct și ușor la intrări/ieșiri și un mecanism de prelucrare a întreruperilor rapid și eficient.
Utilizarea unui microcontroler constituie o soluție prin care se poate reduce dramatic numărul componentelor electronice precum și costul proiectării și al dezvoltării unui produs.
OBSERVAȚIE Utilizarea unui microcontroler, oricât de evoluat, nu elimină unele componente ale interfeței cu mediul exterior (atunci când ele sunt chiar necesare): subsisteme de prelucrare analogică (amplificare, redresare, filtrare, protecție-limitare), elemente pentru realizarea izolării galvanice (optocuploare, transformatoare), elemente de comutație de putere (tranzistoare de putere, relee electromecanice sau statice).
1.3.2 Unde sunt utilizate microcontrolerele?
Toate aplicațiile în care se utilizează microcontrolere fac parte din categoria așa ziselor sisteme încapsulate-integrate (“embedded systems”), la care existența unui sistem de calcul incorporat este (aproape) transparentă pentru utilizator.
Pentru ca utilizarea lor este de foarte ori sinonimă cu ideea de control microcontrolerele sunt utilizate masiv în robotică și mecatronică. Conceptul de mecatronică este pană la urmă indisolubil legat de utilizarea microcontrolerelor.
Automatizarea procesului de fabricație-producție este un alt mare beneficiar: CNC Computerised Numerical Controls- comenzi numerice pentru mașinile unelte, automate programabile- PLC, linii flexibile de fabricație, etc.). Indiferent de natura procesului automatizat sarcinile specifice pot fi eventual distribuite la un mare număr de microcontrolere integrate într-un sistem unic prin intermediul uneia sau mai multor magistrale. Printre multele domenii unde utilizarea lor este practic un standard industrial se pot menționa: în industria de automobile (controlul aprinderii/motorului, climatizare, diagnoză, sisteme de alarmă, etc.), în așa zisa electronică de consum (sisteme audio, televizoare, camere video și videocasetofoane, telefonie mobilă, GPS-uri, jocuri electronice, etc.), în aparatura electrocasnică (mașini de spălat, frigidere, cuptoare cu microunde, aspiratoare), în controlul mediului și climatizare (sere, locuințe, hale industriale), în industria aerospațială, în mijloacele moderne de măsurare – instrumentație (aparate de măsură, senzori și traductoare inteligente), la realizarea de periferice pentru calculatoare, în medicină.
„Johnnie” (figura 1.3) un robot umanoid destul de simplu, construit la Universitatea Tehnică din Munchen în 1998, utilizează 5 microcontrolere, conectate prin intermediul unei magistrale CAN la un calculator PC. „Alpha” un alt robot umanoid (fotbalist ca destinație) dezvoltat la Universitatea din Freiburg utilizează, intr-o variantă a sa, 11 microcontrolere conectate similar. Un număr foarte mare de microcontrolere sunt folosite și de așa zisele jucării inteligente, din care „capetele de serie” cele mai cunoscute sunt cei doi roboți, unul canin și altul umanoid: AIBO (figura 1.4) și ASIMO (figura 1.5). ASIMO folosește 26 de microcontrolere numai pentru controlul individual al celor 26 de elemente de acționare inteligente (motoare). Tot în categoria roboților umanoizi intra și QRIO sau HOAP-1. Roboții respectivi sunt produși în serie, unii dintre ei chiar la un preț „accesibil”.
Ca un exemplu din industria de automobile (automotive industry), unde numai la nivelul anului 1999, un BMW seria 7 utiliza 65 de microcontrolere, iar un Mercedes din clasa S utiliza 63 de microcontrolere.
Practic, deși am prezentat ca exemple concrete numai sisteme robotice și mecatronice, este foarte greu de găsit un domeniu de aplicații în care să nu se utilizeze microcontrolerele.
Fig. 1.4 AIBO
Fig. 1.3 Johnnie
Fig. 1.5 ASIMO
1.3.3 Modele de microcontrolere
A. Microcontrolerul PIC
Microcontrolerele PIC au fost dezvoltate de firma americană Microchip, la începutul anilor `90. Faptul remarcabil pentru care a putut cuceri un important segment din piața de microcontrolere a fost modalitatea simplă de înscriere a programului (serială, necesită doar trei fire), memoria program conținută în aceeași capsulă, noua tehnologie CMOS de realizare (deci consum redus) și prețul relativ scăzut.
Aproape toate microcontrolerele PIC există în două versiuni, și anume:
– "Windowed", marcate cu sufixul "JW" pe capsulă (Ex. 12C509-04/JW). Aceste chip-uri se folosesc la dezvoltarea de aplicații deoarece permit ștergerea programului și reînscrierea lui, de mai multe ori. Ștergerea programului se face prin expunerea chip-ului la raze ultraviolete. Capsula are prevazută pe partea de sus o fereastra din sticla de cuart prin care pot patrunde razele ultraviolete.
– "OTP" (One Time Programable), cele programabile o singura dată. Funcțional și tehnologic sunt identice cu cele "windowed", doar că nu au prevazută fereastra de cuarț, deci programul odata înscris nu mai poate fi șters. Deci o aplicație gata dezvoltată și incercată cu o versiune "windowed" poate fi multiplicata pentru producție de serie în capsule "OTP" care sunt de câteva ori mai ieftine.
Aceste două versiuni, Windowed si OTP sint realizate in tehnologie CMOS EPROM.
Fig. 1.6 Denumirea pinilor unui microcontroler PIC 12F675
Fig. 1.7 Numerotarea pinilor unui microcontroler PIC 16F675
B. ATMega 16
ATmega 16 este un microcontroler CMOS de 8 – biți de mică putere bazat pe arhitectura RISC AVR îmbunatațită.
Dispune de un set de 131 instrucțiuni și 32 de regiștri de uz general. Cele 32 de registre sunt direct adresabile de Unitatea Logica Aritmetica (ALU), permițând accesarea a doua registre independente într-o singură instrucțiune. Se obține astfel o eficiență sporită in execuție (de până la zece ori mai rapide decât microcontrorelerele convenționale CISC).
ATmega16 este un microcontroler RISC pe 8 biți realizat de firma Atmel. Caracteristicile principale ale acestuia sunt:
-16KB de memorie Flash reinscripțibilă pentru stocarea programelor
-1KB de memorie RAM
-512B de memorie EEPROM
-două numărătoare/temporizatoare de 8 biți
-un numărător/temporizator de 16 biți
-conține un convertor analog – digital de 10 biți, cu intrări multiple
-conține un comparator analogic
-conține un modul USART pentru comunicație serială (port serial)
-dispune de un cronometru cu oscilator intern
-oferă 32 de linii I/O organizate în patru porturi (PA, PB, PC, PD).
Fig. 1.8 Descrierea pinilor microcontrolerului ATMega16
Tema proiectului
Această lucrare se concentrează pe construcția, descrierea, utilizarea și programarea unui robot mobil cu senzori infraroșu, care poate evita orice coleziune cu vre-un obstacol.
Robotul este dotat cu două motoare de current continuu și cutie de viteza Tamya, senzor infraroșu de distanță SHARP, placă de programare Arduino UNO, Shield Ardumoto pentru controlul motoarelor de current continuu.
Robotul mobil cu kit Arduino are abilitatea de a evita orice obstacol. În momentul în care sesizează un obstacol acesta își schimbă direcția de deplasare.
Capitolul 2: Roboți mobili
2.1 Introducere în 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 unui sistem ierarhic de calcul) ce operează într-un spațiu real, marcat de o serie de proprietăț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 apriori 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țiului de lucru, cât și de cele obținute pe parcursul evoluției sale.
Problemele specifice ce apar la roboții mobili ar fi 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.
Evitare 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, folosireasenzorilor care măsoară distanța până la obstacolele de pe direcția dedeplasare, 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).
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.
2.2 Clasificarea roboților mobili
Roboții mobili se clasifică astfel:
Î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:
1. roboți pe roți sau șenile
2. roboți pășitori: bipezi, patrupezi, hexapozi, miriapozi;
3. roboți târâtori: care imită mișcarea unui șarpe, care imită mișcarea unei
râme etc.;
4. roboți săritori, care imită deplasarea broaștelor, cangurilor etc.;
5. roboți de formă sferică (se deplasează prin rostogolire) etc.
Fig. 2.1 Exemple de roboți mobili
2.3 Utilizarea roboților mobili
Utilizările pentru care au fost, sunt și vor fi concepuți roboții mobili sunt dintre cele mai diverse. Mulți roboți din zona micro îș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 etc. La fel de spectaculoase sunt și multe utilizări ale macro-roboților:
În domeniul 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;
În domeniul militar: este luată în considerare de către armata americană perspective î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ădi și incinte din zone de conflict, în scopuri de investigare și chiar anihilare a inamicului;
Fig. 2.2 Sistem Integrat Telecomandat pentru Deminare
În domeniul utilităților publice: una dintre cele mai utile și economice utilizări ale roboților mobili o reprezintă inspectarea conductelor de combustibili gazoși și lichizi și a canalelor de canalizare. De exemplu rețeaua de canalizare a Germaniei însumează 400.000 km, iar inspectarea și curățirea 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.
În domeniul distractiv și recreativ: sunt roboții-jucării, roboții pentru competiții
Î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ățirea încăperilor; spălarea geamurilor și a pereților clădirilor;
Î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.
2.4 Caracteristici comune roboților mobili
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 utilizat este electric pentru sarcini mici și medii și hidraulic pentru sarcini mari;
sistemul senzorial utilizează senzori interni (de turație, poziție, efort) la nivelul articulațiilor, senzori externi(camere TV) pentru scanarea mediului și senzori de securitate( de proximitate, de prezență cu ultrasunete);
sistemul de comandă este ierarhizat, de obicei multiprocesor;
limbajele de programare utilizate sunt preluate de la roboții staționari.
2.5 Structura roboților mobili
Structura roboților mobili (RM) corespunde arhitecturii generale a roboților, având două părți:
A. Structura mecanică, respectiv manipulatorul, care determină performanțele tehnice;
Structura mecanică a roboților mobili este formată din:
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 procesul de deplasare pe o anumuită traiectorie este caracterizat prin 3 funcți:
1. funcția de locomoție;
2. funcția de percepție-decizie;
3. funcția de localizare;
B. Structura electronică, respectiv de comandă-control, care condiționează calitatea performanțelor.
Roboții mobili pot fii dotați cu camera video sau alți senzori de percepere al mediului în care activează. Memoria robotului conținută in microcontroler înmagazinează cunoștințele necesare localizării tuturor segmentelor de traseu posibile.
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.
Capitolul 3: Tipuri de roboți mobili
3.1 Robotul AIRAT2
Fig. 3.1 Robotul AIRAT2
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 folosete o placă JS8051-A2. Placa JS8051-A2 este foarte bine construită. Folosește resurse externe de putere cum ar fii LCD, ADC, douǎ ceasuri externe, auto-Flash scriere și altele.
AIRAT 2 utilizeaza șase senzori oferindu-i astfel posibilitatea de a se deaplasa pe diagonală. Un simulator PC este prevăzut,oferindu-i posibilitatea utilizatorului de a întelege mai bine nivelul inalt 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 si apoi implementat mouseului.
În plus, LCD, comunicație serială, controlul mouse-ului precum și alte funcții sunt furnizate sub formă de librarie și fișiere sursă. Pentru cei ce vor sa invețe mouse-ul la un nivel înalt, AIRAT2 furnizează un mediu excelent de dezvoltare, teste algoritmice, precum și multe altele.
AIRAT 2 a aparut pe coperta publicației franceze „MICROS&ROBOTS”.
Caracteristici ale robotului AIRAT2:
– capabil de reglare proprie; învață din mers;
– folosește 6 senzori dându-i posibilitatea de a se deplasa pe diagonala;
– ușor de asamblat/dezasamblat;
– port de reîncărcare;
– instrucții de asamblare și manual al utilizatorului;
– include un simulator PC pentru accelerarea dezvoltării;
– librării, coduri sursa C;
– AIRAT2 baterie (NiMh-450).
Fig. 3.2 Bateria robotului AIRAT2
3.2 Robotul Pololu 3pi
Fig. 3.3 Robotul Pololu 3pi
Robotul pololulu 3pi este o platformă mobilă de înaltă performanță care conține două motoare cu cutie de viteze, 5 senzori de reflexie, un LCD 8×2, un buzzer și trei butoane, toate conectate la un microcontroler programabil Atmega328. Capabil de viteze pana la 1 m/s, 3 pi este un excelent prim, pentru începători curajoși și un perfect al doilea robot pentru cei care vor să avanseze de la roboți neprogramabili.
Robotul 3 pi este proiectat pentru a excela în competiții precum urmărirea liniei sau rezolvarea labirintelor. Are dimensiuni mici (diametru: 9.5 cm, greutate 83 g fără baterii) și îi trebuie decât 4 baterii de tip AAA, în timp ce un sistem de alimentare unic pune în funcțiune motoarele la o tensiune constantă de 9.25 v, tensiune independentă de cea a nivelului de încărcare. Regulatorul de tensiune îi permite lui 3pi sa ajungă la viteze de până la 1 m/sec, în timp ce face viraje și întoarceri precise, care nu variaza cu tensiunea bateriei.
Robotul 3pi este o platforma excelentă pentru persoane cu experiență în programare C care vor să învețe robotica și este o distracție in orice momente pentru cei care vor să invețe programare C. Inima robotului este un microcontroler Atmel ATmega328P care ruleaza la o frecvență de 20 MHz alături de un program de 32 KB, 2 KB de memorie RAM si 1KB de memorie EEPROM. Popularul compilator GNU C/C++ funcționează perfect cu 3pi, Atmel AVR Studio ofera un spațiu de dezvoltare confortabil și un set de librării interesante oferite de Pololu si realizează interfațării cu componentele se face foarte ușor. 3pi este deasemenea compatibil cu plăcile de dezvoltare Arduino.
Imaginile de mai jos identifică componentele cele mai importante ale robotului.
Fig. 3.4 Vedere de sus a robotului Pololu 3pi
Fig. 3.5 Vedere de jos a robotului Pololu 3pi
3.3 Robotul Inex POP-Bot Standard
Fig. 3.6 Robotul Inex POP-Bot Standard
POP-BOT are un driver pentru două motoare de curent continuu. Viteza și direcția motoarelor se poate controla din software-ul robotului, deoarece sunt controlate de catre PWM (Pulse Width Module).
Robotul conține și un modul microcontroler POP-168. POP-168 este o placă flexibilă care nu are componente ascunse și permite dezvoltare completă a caracteristicilor cu ajutorul uneltelor standard AVR, cum ar fi IAR C/C++,MikroElektronikaMikro BASIC/ MikroPascal pentru AVR si deasemenea uneltele open-source WINAVR: AVRGCC pentru Windows.
Un display LCD permite vizualizarea activității microcontrolerului. Modulul LCD are nevoie decât de un pin de intrare/ieșire, +5v și masa pentru a funcționa. Pentru a comunica cu microcontrolerul, modulul LCD are nevoie decât de simple comenzi de ieșire.
Alte părți componente ale robotului:
Placa de control a robotului RBX-168 cu suport de 4 baterii AA
Modul de butoane cu cablu JST
Senzor de distanță infraroșu GP2D120
Placa cu senzori de reflexie
Roti de cauciuc
Ball-caser
Placa de plastic de 80×60 cm
3.4 Robotul construit cu kit Arduino
Fig. 3.7 Robotul construit cu kit Arduino
Robotul are abilitatea de a evita orice obstacol. În momentul în care sesizează un obstacol acesta își schimbă direcția de deplasare.
Componenta de bază a robotului o constituie placa Arduino UNO pe care este prezent microcontrolerul Atmel ATMEGA328 împreună cu diferite circuite auxiliare de interfață cu diferite medii printre care enumerăm circuitul integrat L298P cu rol de punte H ce îndeplinește rolul de amplificare al semnalului de la pinii microcontrolerului și acționare de putere a motoarelor de curent continuu și circuitul integrat TL499 care are rol de stabilizator de tensiune. Pe lângă aceasta mai avem două motoare de curent continuu un sensor infraroșu de distanta Sharp GP2D120 și alte componente mecanice care utilizează ca mediu de programare limbajul C.
Robotul este conceput pe două roți motrice din plastic cu membrană de cauciuc iar pe șasiu se mai găsește o sfera cu rol de echilbrare. Pentru a înnobila partea electronică robotul a fost dotat cu un senzor infraroșu Sharp care ocolește obstacole și care deasemenea poate determina distanța până la un anumit obiect. Pentru ca senzorul Sharp să se poată mișca acesta este montat pe un servomotor.
Capitolul 4: Proiectarea elementelor componente
4.1 Elemente componente:
-Sasiu -2 motoare de current continuu
-placa Arduino UNO -placa ardumoto
-Ball caster -Senzor inflarosu de distanta Sharp
-Servomotor -roti
4.2 Placa de dezvoltare Arduino
Componenta de bază a robotului o constituie placa Arduino UNO.
Arduino este o platformă de procesare open-source, bazată pe software și hardware flexibil și simplu de folosit. Constă într-o platformă de mici dimensiuni (6.8 cm / 5.3 cm – în cea mai des intâlnită variantă) 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, servomotoare, și alte tipuri de dispozitive mecanice. Procesorul este capabil să ruleze un cod scris într-un limbaj de programare care este foarte similar cu limbajul C++.
Ce este cu adevărat interesant este ecosistemul dezvoltat in jurul Arduino. Vorbim aici atât despre comunitatea care este foarte activa, cât și despre numărul impresionant de dispozitive create special pentru Arduino.
Câteva exemple de senzori disponibili – senzori de distanță (capabili să măsoare de la câțiva centimetri până la 7-9 metri), senzori de sunet, senzori de câmp electromagnetic, senzori de fum, senzori de tip GPS, senzori de tip giroscopic, senzori de flux lichid (ca cei folosiți la pompele de benzină), senzori de temperatură, senzori de monoxid de carbon, senzori de lumină, senzori capabili să detecteze doar o anumită culoare, senzori de prezență, senzori de umiditate, senzori de nivel pentru lichid, senzori capabili sa măsoare concentratia de alcool în aerul expirat. Pentru a efectua acțiuni asupra mediului înconjurator, există o largă varietate de motoare, servomotoare, motoare pas cu pas, led-uri, actuatoare. Ca și conectivitate, există disponibile componente capabile sa conecteze Arduino la rețeaua Ethernet (“Ethernet Shield”), componente pentru rețea wireless, componente capabile să realizeze conectare pe rețeaua de date GSM / 3G, sau componente de tip XBEE utile pentru a realiza comunicații de tip personalizat.
Platforma Arduino este disponibilă într-o serie de variante, fiecare cu diferite capabilități și dimensiuni.
4.2.1 Exemple de plăci Arduino
A. Arduino Uno – Aceasta este cea mai recenta placă de dezvoltare de la Arduino. Se conectează la computer prin intermediul cablului USB standard A-B și conține tot ceea ce ai nevoie pentru a programa și utiliza placa. Acestuia i se poate adăuga o varietate de Shild-uri (placă cu caracteristici speciale, specifice unor tipuri de aplicații). Este similar cu Duemilanove, dar are un chip diferit USB-to-serial – ATMega8U2, și cu un design nou de etichetare pentru a identifica mai ușor intrările și ieșirile.
Fig. 4.1 Placa de dezvoltare Arduino UNO
B. Mega 2560 – versiune a modelului Mega lansat cu Uno, această versiune dispune de Atmega2560, care are de două ori mai mult spațiu pentru memorie, și folosește 8U2 ATMega pentru comunicare USB-to-serial.
Fig. 4.2 Placa de dezvoltare Arduino Mega2560
C. Mini – Aceasta este cea mai mica placa de dezvoltare de la Arduino. Aceasta functioneaza bine intr-un breadboard sau pentru aplicatii in care spatiul este limitat. Se conecteaza la calculator prin intermediul unui cablu mini USB Adapter.
Fig. 4.3 Placa de dezvoltare Arduino Mini
D. Nano – O placă de dezvoltare compactă proiectată pentru utilizarea pe un breadboard. Nano se conectează la computer utilizând un cablu USB Mini-B.
Fig. 4.4 Placa de dezvoltare Arduino Nano
E. Duemilanove – Arduino Demilanove este o platformă de procesare bazată pe microcontrolerul ATmega168 sau ATmega328. Are 14 pini de intrări/ieșiri digitale.
LED: 13. Există un LED încorporat în placă, conectat la pinul 13. Cand valoarea pe pin este HIGH, LEDul este aprins, când valoare este LOW, LEDul este stins.
Placa Arduino UNO are 6 intrări analogice, denumite dela A0 la A5, fiecare oferă o rezoluție de 10 biți. Implicit, ieșirile măsoară de la masa la 5v, deși este posibil ca limita superioară să fie schimbată cu ajutorul pinului AREF si funcția analogReference().
Fig. 4.5 Placa de dezvoltare Arduino Duemilanove
F. LilyPad – Proiectat pentru aplicații ușor de implementat pe materiale textile, acest microcontroler poate fi cusut pe țesătură și are o culoare atrăgătoare, mov.
Fig. 4.6 Placa de dezvoltare Arduino LilyPad
G. Fio – Proiectată pentru aplicații fără fir. Acesta are inclusă o priză dedicată pentru un modul radio Wi-Fi XBee, un conector pentru o baterie Li Polymer și circuite integrate de încărcare a bateriei.
Fig. 4.6 Placa de dezvoltare Arduino Fio
H. Pro – Acestă placă de dezvoltare este concepută pentru utilizatorii avansați care doresc să încorporeze această placă într-un proiect: este mai ieftin decât un Diecimila și ușor de alimentat la o baterie, dar necesită componente suplimentare și asamblare.
Fig. 4.7 Placa de dezvoltare Arduino Pro
I. Pro Mini – Ca Pro, Pro Mini este conceput pentru utilizatorii avansați care au nevoie de un cost scăzut, plăci de dezvoltare mici și care sunt dispuși să facă ceva lucru suplimentar pentru a o putea utiliza în proiecte.
Fig. 4.8 Place de dezvoltare Arduino Pro Mini
J. Serial – Este o placă de dezvoltare, care utilizează ca interfață un RS232 (COM) la un calculator pentru programare sau de comunicare. Acestă placă este ușor de asamblat, chiar ca un exercitiu de învățare. (Inclusiv scheme și fișiere CAD)
Fig. 4.9 Placa de dezvoltare Arduino Serial
K. Serial Single Sided – Acestă placă de dezvoltare este concepută pentru a fi gravată și asamblată de mână. Este puțin mai mare decât Duemilanove, dar este compatibilă cu toate shield-urile Arduino.
Fig. 4.10 Placa de dezvoltare Arduino Serial Single Sided
4.2.2 Placa Arduino UNO
Fig. 4.11 Elementele componente ale plăcii Arduino UNO
A. Prezentare generală
Arduino Uno este o placă de procesare bazată pe microcontrollerul ATmega328. Are 14 pini de intrări\ieșiri digitale (din care 6 pot fi utilizate ca ieșiri PWM), 6 intrări analogice, un cristal oscilator de 16 MHz, o conexiune USB, o mufă de alimentare, un ICSP, și un buton de resetare. Aceasta conține tot ceea ce este necesar pentru a ajuta la funcționarea microcontrolerului; pur și simplu conectați la un computer cu un cablu USB sau alimentați la un adaptor AC-DC sau baterie pentru a începe.
Uno diferă de toate plăcile precedente, în sensul că nu folosește chip driver FTDI USB la un serial. În schimb, este dotat cu Atmega8U2 programat ca și convertor USB.
"Uno" înseamnă unu în limba italiană și este numită pentru a marca lansarea viitoare a Arduino 1.0. Uno și versiunea 1.0 vor fi versiunile de referință Arduino, pentru a avansa. Uno este ultima dintr-o serie de plăci Arduino USB, și modelul de referință pentru platforma Arduino.
B. Caracteristici
Tabelul 4.1
C. Alimentare
Arduino Uno poate fi alimentat prin intermediul conexiunii USB sau cu o sursă de alimentare externă. Sursa de alimentare este selectată automat.
Sursele externe de alimentare (non-USB) pot fi, fie un adaptor AC-DC sau baterie. Adaptorul poate fi conectat printr-un conector de 2.1mm cu centru-pozitiv în mufa de alimentare de pe placă. Traseele de la baterie pot fi introduse în pinii GND și V-in ai conectorului de alimentare.
Placa poate funcționa cu o sursă externă de 6-20 volți. Dacă este alimentată cu mai puțin de 7V, atunci pinul de 5V scoate o tensiune mai mica de 5V și placa poate deveni instabilă. Dacă se utilizează mai mult de 12V, regulatorul de tensiune se poate supraîncălzi și deteriora placa. Intervalul recomandat este de 7-12 volți.
Pinii de putere sunt după cum urmează:
V-IN. Tensiunea de intrare la placa Arduino atunci când folosește o sursă de alimentare externă (spre deosebire de 5 volți de conexiune USB sau o altă sursă de energie regulată). Se poate alimenta prin acest pin sau dacă este folosită alimentarea prin conectorul de alimentare atunci tensiunea poate fi accesată din acel pin.
5V. Tensiunea de alimentare folosită pentru microcontroler și alte componente de pe placă. Aceasta poate veni fie din pinul V-IN printr-un regulator de tensiune încorporat, sau să fie furnizată de către USB sau o altă sursă de tensiune de 5v .
3V3. O tensiune de 3.3V generată de către regulatorul de pe placă.
GND. Pinii de masă.
D. Memoria
ATmega328 are 32 KB (cu 0,5 KB utilizate pentru bootloader). Ea are, de asemenea, 2 KB de SRAM și 1 KB de EEPROM (care poate fi citit și scris cu biblioteca EEPROM ).
E. Intrări și ieșiri
Fiecare din cei 14 pini digitali pot fi utilizați ca intrare sau ieșire, folosind funcțiile pinMode () , digitalWrite () , și digitalRead (). Aceștia funcționează la 5 volți. Fiecare pin poate oferi sau primi un maxim de 40 mA și are un rezistor de siguranță (deconectat implicit) de 20-50 kOhms. În plus, unii pini au funcții particulare:
Serial: 0 (RX) și 1 (TX). Folosit pentru a primi și transmite date seriale TTL. Acești pini sunt conectați la pinii corespunzători ai cipului ATmega8U2 USB-TTL;
Întreruperile externe: 2 și 3. Acești pini pot fi configurați pentru a declanșa o întrerupere pe o valoare scăzută, o limită crescătoare sau descrescătoare, sau o schimbare în valoare.
PWM: 5, 6, 9, 10, și 11. Oferă o ieșire PVM de 8 biți cu funcția analogWrite ().
SPI:10 (SS), 11 (Mosi), 12 (MISO), 13 (SCK). Acești pini suportă comunicația SPI folosind biblioteca SPI .
LED: 13. Există un LED încorporat în placă, conectat la pinul 13. Când valoarea pe pin este HIGH, LEDul este aprins, când valoare este LOW, LEDul este stins.
Placa Arduino UNO are 6 intrări analogice, denumite de la A0 la A5, fiecare oferă o rezoluție de 10 biți. Implicit, ieșirile măsoară de la masa la 5V, deși este posibil ca limita superioară să fie schimbată cu ajutorul pinului AREF și funcția analogReference(). În plus, unii pini au funcționalități specializate:
I2C:A4 (SDA) și A5 (SCL). Suportă comunicare I2C folosind librăria Wire.
Mai există câțiva pini pe placă:
AREF. Tensiune de referință (numai de la 0 la 5V) pentru intrările analogice. Folosit cu funcția analogReference().
Reset. Aduce linia la zero pentru a reseta microcontrolerul. De obicei folosit pentru a adauga un buton de reset Shield-urilor care blochează acțiunea celui de pe placă.
F. Harta pinilor – ATMega 328
Fig. 4.12 Descrierea pinilor microcontrolerului ATMega328
G. Comunicația
Arduino UNO are câteva posibilități de comunicare cu un calculator, o altă placă Arduino sau un alt microcontroler. Microcontrolerul ATmega328 furnizează comunicație serială UART TTL (5V) care este disponibilă pe pinii digitali 0(RX) și 1(TX). Un microcontroler ATmega8U2 direcționează comunicația serială către USB și apare ca un port serial virtual în software-ul de pe calculator. Firmware-ul microcontrolerului folosește driverele standard ale portului USB al calculatorului și nu este nevoie de un driver din exterior. Software-ul Arduino este prevăzut cu o fereastră care permite preluarea și trimiterea de date de tip text de la placa Arduino. LEDurile corespunzătoare semnalelor RX și TX de pe placă vor pâlpâi când informația este trimisă prin portul USB către cipul serial prin intermediul unei conexiuni USB cu calculatorul (dar nu pentru comunicația serială de pe pinii 0 și 1).
O bibliotecă a programului (SoftwareSerial) permite comunicația serială pentru oricare dintre pinii placii.
Microcontrolerul ATmega328 suportă, de asemenea comunicație I2C (DST) și SPI. Software-ul Arduino include o bibliotecă de conexiuni (wire library) pentru a simplifica utilizarea portului I2C .
H. Programare
Arduino uno poate fi programată cu software-ul Arduino. Selectați "Arduino Uno din meniul Tools Board (în conformitate cu microcontrolerul de pe placă).
Microcontrolerul ATmega328 de pe placa Arduino Uno vine cu un program de butare (bootloader) care vă permite încărcarea unui program nou fără a utiliza un compilator extern. Acesta comunică folosind protocolul STK500 original.
Se poate evita, de asemenea, bootloader –ul și, microcontrolerul se poate programa prin ICSP (In-Circuit Serial Programming).
Codul sursă al Firmware –ul microcontrolerului ATmega8U2 este disponibil, el este încărcat cu un program de butare DFU care poate fi activat cu ajutorul unui jumper de pe spatele placii, ATmega8U2 fiind resetat. Apoi se pot folosi programele Atmel’s FLIP (windows) sau DFU (Mac si Linux) pentru a încărca un nou firmware.
I. Resetarea automată (Software)
Pentru a nu fi nevoie de resetarea manuală, înainte de încărcarea unui program, Arduino Uno este proiectată astfel încât îi permite sa fie resetată de către software, atunci când este conectată la calculator. Una dintre liniile de control a funcționării hardware (DTR) a microcontrolerului ATmega8U2 este conectata la linia de reset al microcontrolerului ATmega328 printr-un condensator de 100 nanofarad. Atunci când această linie este activată, linia de reset este activă suficient de mult timp pentru a reseta microcontrolerul. Software-ul Arduino folosește această capacitate pentru a vă permite să încărcați un cod prin simpla apăsare a butonului de încărcare din mediul de programare Arduino. Acest lucru înseamnă că bootloader-ul are o perioadă scurtă de pauză.
Această configurare are alte implicații. Când Uno este conectată fie la un computer pe care rulează fie un sistem de operare Mac OS X sau Linux, aceasta se resetează de fiecare dată când o conexiune este realizată între ea și software (prin USB). Pentru următoarele jumătăți de secundă sau așa ceva, aplicația bootloaderul rulează pe Uno. Deși este programat să ignore date necorespunzătoare (adică nimic în afară de o încărcare a noului Cod), se vor intercepta primii biți din datele trimise către placă după ce conexiunea este deschisă.
Uno conține un traseu care poate fi înterupt pentru a dezactiva resetarea automată. Zonele de pe fiecare parte a traseului înterupt pot fi lipite pentru a activa din nou resetarea automată. Traseul este denumit ”RESET_EN”. O altă modalitate de a dezactiva resetarea automată este prin a conecta un resistor de 110 ohm între linia de 5V și linia de reset.
J. Protecția la suprasarcină a portului USB
Arduino Uno are o siguranță resetabilă care protejează porturile USB ale computerului de scurtcircuit și suprasarcină. Deși majoritatea calculatoarelor au protecție internă proprie, siguranța oferă o protecție suplimentară. Dacă un curent mai mare de 500 mA trece prin portul USB, siguranța va întrerupe în mod automat conexiunea până la îndepărtarea suprasarcini sau scurtcircuitului.
K. Caracteristici fizice
Lungimea și lățimea maximă a plăcii este de 6.8 cm respective 5.3 cm, cu conectorul USB și conectorul de alimentare care ies din dimensiunile plăcii. Patru orificii de șurub care permite plăcii să fie atașată la o suprafață sau carcasă. Observați că distanța dintre pinii 7 și 8 este de 160 mm.
Fig. 4.13 Dimensiunile plăcii Arduino UNO
L. Schema electrică
Fig. 4.14 Schema electrică a plăcii Arduino UNO
4.3 Motoare de curent continuu
Fig. 4. 15 Motor de curent continuu
Un motor electric (sau electromotor) este un dispozitiv ce transformă energia electrică în energie mecanică. Transformarea inversă, a energiei mecanice în energie electrică, este realizată de un generator electric. Nu există diferențe de principiu semnificative între cele două tipuri de mașini electrice, același dispozitiv putând îndeplini ambele roluri în situații diferite.
Principiul de funcționare: Majoritatea motoarelor electrice funcționează pe baza forțelor electromagnetice ce acționează asupra unui conductor parcurs de curent electric aflat în câmp magnetic. Există însă și motoare electrostatice construite pe baza forței Coulomb și motoare piezoelectrice.
Motoarele electrice pot fi clasificate după tipul curentului electric ce le parcurge:
Motor de curent continuu
Motor de curent alternativ
Motor de inducție (asincron)
Motor sincron
Elemente constructive: indiferent de tipul motorului, acesta este construit din două părți componente: stator și rotor. Statorul este partea fixă a motorului, în general exterioară, ce include carcasa, bornele de alimentare, armătura feromagnetică statoric și înfășurarea statorică. Rotorul este partea mobilă a motorului, plasată de obicei în interior. Este format dintr-un ax și o armătură rotorică ce susține înfășurarea rotorică. Între stator și rotor există o porțiune de aer numită intrefier ce permite mișcarea rotorului față de stator. Grosimea intrefierului este un indicator important al performanțelor motorului.
Fig. 4. 16 Elementele componente ale motorului de curent continuu
Motorul de curent continuu a fost inventat în 1873 de Zénobe Gramme prin conectarea unui generator de curent continuu la un generator asemănător. Astfel, a putut observa că mașina se rotește, realizând conversia energiei electrice absorbite de la generator.
Motorul de curent continuu are pe stator polii magnetici si bobinele polare concentrate care creează câmpul magnetic de excitație. Pe axul motorului este situat un colector ce schimbă sensul curentului prin infășurarea rotorică astfel încât câmpul magnetic de excitație să exercite în permanență o forță față de rotor.
În funcție de modul de conectare a înfășurării de excitație motoarele de curent continuu pot fi clasificate în:
motor cu excitație independentă – unde înfășurarea statorică și înfășurarea rotorică sunt conectate la două surse separate de tensiune;
motor cu excitație paralelă – unde înfășurarea statorică și înfășurarea rotorică sunt legate în paralel la aceași sursă de tensiune
motor cu excitație serie – unde înfășurarea statorică și infășurarea rotorică sunt legate în serie
motor cu excitație mixtă – unde înfășurarea statorică este divizată în două înfășurări, una conectată în paralel și una conectată în serie.
Înfășurarea rotorică parcursă de curent va avea una sau mai multe perechi de poli magnetici echivalenți. Rotorul se deplasează în câmpul magnetic de excitație până când polii rotorici se aliniază în dreptul polilor statorici opuși. În același moment, colectorul schimbă sensul curenților rotorici astfel încat polaritatea rotorului se inversează și rotorul va continua deplasarea până la următoarea aliniere a polilor magnetici.
Pentru acționări electrice de puteri mici și medii, sau pentru acționări ce nu necesită câmp magnetic de excitație variabil, în locul înfășurărilor statorice se folosesc magneți permanenți.
Turația motorului este proporțională cu tensiunea aplicată înfășurării rotorice și invers proporțională cu câmpul magnetic de excitație. Turația se reglează prin varierea tensiunii aplicată motorului până la valoarea nominală a tensiunii, iar turații mai mari se obțin prin slăbirea câmpului de excitație. Ambele metode vizează o tensiune variabilă ce poate fi obținută folosind un generator de curent continuu (grup Ward-Leonard), prin înserierea unor rezistoare în circuit sau cu ajutorul electronicii de putere (redresoare comandate, choppere). Cuplul dezvoltat de motor este direct proporțional cu curentul electric prin rotor și cu câmpul magnetic de excitație. Reglarea turației prin slăbire de câmp se face, așadar, cu diminuarea cuplului dezvoltat de motor. La motoarele serie același curent străbate înfășurarea de excitație și înfășurarea rotorică. Din această considerație se pot deduce două caracteristici ale motoarelor serie: pentru încărcări reduse ale motorului, cuplul acestuia depinde de pătratul curentului electric absorbit; motorul nu trebuie lăsat să funcționeze în gol pentru că în acest caz valoarea intensității curentului electric absorbit este foarte redusă și implicit câmpul de excitație este redus, ceea ce duce la ambalarea mașinii până la autodistrugere.
Motoarele de curent continuu cu excitație serie se folosesc în tracțiunea electrică urbană și feroviară (tramvaie, locomotive).
Schimbarea sensului de rotație se face fie prin schimbarea polarității tensiunii de alimentare, fie prin schimbarea sensului câmpului magnetic de excitație. La motorul serie, prin schimbarea polarității tensiunii de alimentare se realizeaza schimbarea sensului ambelor mărimi și sensul de rotație rămâne neschimbat. Așadar, motorul serie poate fi folosit și la tensiune alternativă, unde polaritatea tensiunii se inversează o dată în decursul unei perioade. Un astfel de motor se numește motor universal și se folosește în aplicații casnice de puteri mici și viteze mari de rotație (aspirator, mixer).
Fig. 4.17 Motor de curent continuu
4.4 Senzorul infraroșu
Fig. 4. 18 Senzorul infraroșu
Senzorii sunt dispozitive care pot măsura diferite proprietăți ale mediului precum: temperatura, distanța, rezistența fizică, greutatea, mărimea, etc. Informația primită de la aceștia poate fi de cele mai multe ori contradictorie și imprecisă.
În cel mai general caz, senzorii pot fi împărțiți în două categorii, și anume:
Senzori de stare internă – senzori care oferă informații despre starea internă a robotului mobil, spre exemplu nivelul bateriei, poziția roților etc;
Senzori de stare externă – senzori care oferă informații despre mediul ambiant în care robotul funcționează. Senzorii de stare externă se mai pot împărți la rândul lor în două categorii: senzori cu contact, mai precis acei senzori care culeg informația din mediu prin atingere (exemplu: senzor „bumper”), respectiv senzori fără contact, care preiau informația din mediu de la distanță (exemplu: cameră video, senzor ultrasonic, etc).
Un senzor poate fi activ sau pasiv. Senzorii activi sunt acei senzori care emit energie în mediu pentru a putea observa anumite caracteristici ale acestuia, spre deosebire de senzorii pasivi care primesc energie din mediu pentru a putea prelua informația.
La modul general, despre toate categoriile de senzori se pot enunța următoarele ipoteze:
– Orice senzor este afectat de zgomot;
– Orice senzor oferă o informație incompletă a mediului în care efectuează măsurătorile;
– Nici un senzor nu poate fi modelat complet.
De asemenea, toate tipurile de senzori sunt caracterizate printr-o serie de proprietăți,
cele mai importante fiind:
– Sensibilitatea: raportul dintre semnalul de ieșire și semnalul de intrare;
– Liniaritatea: exprimă dacă raportul dintre intrare și ieșire este constant;
– Intervalul de măsurare: diferența între distanța minimă și maximă măsurabilă;
-Timpul de răspuns: timpul necesar pentru ca informația de la intrare să fie observabilă la ieșire;
-Acuratețea: diferența între semnalul măsurat și semnalul real;
-Repetabilitatea: diferențele între măsurători succesive ale aceleiași entități;
-Rezoluția: exprimă cea mai mică unitate de incrementare a semnalului măsurat;
-Prețul senzorului;
-Puterea de calcul necesară pentru a interpreta rezultatele;
-Tipul de semnal la ieșire;
-Greutatea, mărimea și cantitatea de energie consumată pentru a face o măsurătoare.
Relația între proprietățile fizice de interes e ale mediului și informația primită de la un senzor r ar putea fi modelată prin ecuația:
f (e) = r
În principiu, orice model al unui senzor ar trebui să includă și un model intern al zgomotului care poate afecta senzorul în momentul citirii informației. Problema de a recupera informația din mediu din datele primite de la senzor poate fi destul de complexă.
Un senzor este considerat instabil dacă pentru variații mici ale intrării, ieșirea se schimbă radical. În caz general, pentru un senzor cu ieșirea f(e), instabilitatea se referă la: în principiu orice tip de senzor poate fi afectat de mai multe tipuri de erori.
Dintre acestea, cele mai importante sunt erorile incidentale, erorile sistematice și erorile stohastice. Erorile incidentale apar ocazional și pot avea un efect neprevăzut asupra informației, ele provenind în cea mai mare parte de la măsurători efectuate greșit. Erorile sistematice au o influență predictibilă asupra acurateții informației, acestea provenind de la o interpretare greșită a parametrilor în algoritmii de estimare, sau din cauza unor neconcordanțe (incertitudini) în modelare. În fine, erorile stohastice, au un caracter aleator, ele diferind de fiecare dată când robotul execută aceeași operație.
În lumea roboților mobili se întâlnesc o mare varietate de tipuri de senzori. O clasificare de bază a acestora ar putea fi:
– senzori de distanță – acei senzori care oferă informații despre distanța între senzor și obiectul de măsurat din mediu;
– senzori de poziție – acei senzori care oferă informații despre poziția robotului în termeni absoluți;
– senzori de mediu – acei senzori care oferă informații despre diverse proprietăți și caracteristici ale mediului (exemplu: temperatură, culoare);
– senzori inerțiali – acei senzori care măsoară proprietăți diferențiale ale poziției
robotului (exemplu: accelerația).
O altă clasificare a senzorilor se poate face în funcție de tipul de semnal primit, precum și de rolul senzorului în sistemul robotului mobil, îmbinând deci cele două clasificări de mai sus. În continuare, pentru descrierea diferitelor tipuri de senzori, se va folosi această abordare.
Sistemul de măsurare a distanței prin senzor în infraroșu este un tip particular de sistem de achiziție de date, iar aplicațiile sale pot fi găsite în domenii foarte variate. De exemplu:
montarea unui senzor infraroșu Sharp GP2 pe un robot cu funcția de a depista obstacolele;
confecționarea unui dispozitiv de mână compact și portabil pentru a măsura rapid și ușor o distanță relativ mică, pentru distanțe mari folosindu-se alți senzori mai puternici.
Realizarea de diverse dispozitive automate care măsoară distanta.
4.4.1 Mod de funcționare:
Senzorul emite un puls de rază infraroșie de lungime de undă 850 nm ± 70nm. Daca un obiect este în raza de acțiune și în calea razei IR, acesta va reflecta raza înnapoi spre senzor. Senzorul face citirile cu o frecvență de aproximativ 24 Hz și raportează datele sub formă de tensiune (marime analogica). Această tensiune va suferi o conversie pe 8 biți la nivelul CAN-ului prezent pe microcontrolerul Atmega8. Mărimea analogică este convertită în Volți, iar apoi, printr-o funcție de liniarizare obținută din diagrama oferită de Sharp pentru acest senzor, vom obține rezultatul final exprimat în cm.
4.4.2 Prezentarea Hardware:
Pentru acest proiect am utilizat un senzor în infraroșu SHARP GP2Y0A02YK, care prezintă urmatoarele caracteristici tehnice:
influența scăzută a culorilor obiectelor reflectate, datorată metodei triunghiulare de măsură a distanței
raza de acțiune între 20 și 150 de cm
Interfața sa prezintă 3 fire: alimentare, masă și tensiunea de ieșire și necesită un connector JST de 3 pini.
Măsurarea distanței prin metoda triunghiurilor (triungiularizării):
Principiul care stă la baza acestei metode de măsură folosite de senzorul Sharp se bazează pe formarea unui triunghi între Emitatorul de rază Infraroșie, punctul de reflexie și Detectorul de Infraroșu. Astfel, emitatorul emite un puls de lumină infraroșie. Lumina străbate câmpul vizual si fie lovește un obstacol sau continuă deplasarea. În cazul inexistenței unui obstacol, lumina nu va fi reflectată și nu se va detecta nici un obiect. Dacă lumina se reflectă de pe un obiect, se va intoarce la Detector și va creea un triunghi între Emitator, punctul de reflexie și Detector, ca în figura 4. 19.
Fig. 4. 19 Schema de funcționare a unui senzor infraroșu
Unghiurile din acest triunghi variază în funcție de distanța până la obiect.
Receptorul este de fapt o lentilă de mare precizie care transmite lumina reflectată într-o rețea liniară de CCD din interior. Rețeaua de CCD poate determina sub ce unghi a intrat lumina reflectată și, astfel, poate calcula distanța până la obiect.
Această nouă metodă de măsurare a distanței este apoape imună la interferențele cauzate de lumina ambientală și oferă o “indiferență” foarte mare față de culoarea obiectului detectat. Astfel este posibilă detectarea unui perete negru în lumină directă a soarelui.
Neliniaritatea ieșirii senzorului:
Senzorul Sharp folosit in acest proiect prezintă o caracteristica de ieșire neliniară, datorată proprietăților trigonometrice din interiorul triunghiului format de Emițător, punctul de reflexie și Receptor.
Fig. 4. 20 Diagrama de neliniarizare
Din diagrama din figura 4. 20 care poate fi găsită în documentația oferită de producător se observă că în intervalul [15; 150] cm ieșirea detectorului nu este liniară ci mai degrabă logaritmică.
Se observă de asemenea că pentru o distanță mai mică decât 15 cm, ieșirea scade rapid și începe să ia valori caracteristice măsurătorii unor distanțe mai mari. Acest lucru poate fi dezastruos pentru echipamentele automate sau pentru roboții care pot folosi acest senzor, deoarece vor interpreta că sunt la o distanță mare de obstacol.
Fig. 4. 21 Schema conectării senzorului cu microcontrolerul
Capitolul 5: Construcția robotului mobil cu kit Arduino
Asamblarea robotului mobil cu kit Arduino
A. Am folosit ca suport pentru piese un șasiu confecționat din material plastic.
Fig. 5.1 Șasiu
B. Robotul mobil cu kit Arduino este acționat de o cutie de viteze cu două motoare de curent continuu de 3V fiecare și oferă un raport de transmisie 58:1. Ambele motoare de curent continuu sunt cuplate la cutia de viteze.
Fig. 5.2 Asambșarea motoarelor pe cutia de viteze
C. Cutia de vitze cu motoarele de current continuu sunt montate la unul din captele sasiului.
Fig. 5.3 Cutia de viteze cu motoarele asamblată pe șasiu
D. Pe axul de transmitere al mișcării de rotație se montează două roți din material plastic cu membrane din cauciuc.
Fig. 5.4 Montarea roțitor
E. La celălalt capăt al șasiului am montat un ball-caster pentru menținerea echilibrului robotului.
Fig. 5.5 Montarea Ball-Caster-ului pe șasiu
F.Senzorul infraroșu Sharp se montează pe servomotor.
Fig. 5.6 Montarea senzorului pe servomotor
G. Senzorul infraroșu Sharp și servomotorul se montează pe șasiu.
Fig. 5.7 Montarea servomotorului pe șasiu
H. Pentru ca placa Arduino UNO să nu vină montată direct pe șasiu am folosit două distanțiere. Apoi am montat placa Arduino uno.
Fig. 5.8 Montarea plăcii Arduino pe șasiu
I. Între servomotor și placa Arduino am montat suportul de baterii (4 baterii a câte 1.5V). Suportul de baterii este prins de șasiu cu bandă dublă adezivă.
Fig 5.9 Montarea plăcii Arduino
J. Se conectează placa Ardumoto la placa Arduino UNO.
Fig. 5.10 Montarea plăcii Ardumoto
K. Ansamblul robotului cu kit Arduino
Fig. 5.11 Robotul mobil cu kit Arduino
Conectarea senzorului infraroșu Sharp la placa Arduino UNO
Senzorul de distanță Sharp este o componentă care poate fi utilizată împreună cu Arduino pentru a măsura distanța până la diverse obiecte înconjurătoare.
Dispozitivul dispune de trei pini, doi dintre ei fiind pini de alimentare (GND și Vcc), iar cel de-al treilea fiind pinul care dă indicații asupra distanței, prin port-serialul prezentat pe acesta.
Fig.5.12 Așezarea pinilor senzorului Sharp
Fig. 5.13 Conectarea senzorului în circuit
5.2.1 Principiul de funcționare
Senzorul emite un puls de raza infrarosie de lungime de unda 850 nm ± 70nm. Daca un obiect este in raza de actiune si in calea razei IR, acesta va reflecta raza inapoi spre senzor. Senzorul face citirile cu o frecventa de aproximativ 24 Hz si raporteaza datele sub forma de tensiune (marime analogica). Aceasta tensiune va suferi o conversie pe 8 biti la nivelul CAN-ului prezent pe microcontrollerul Atmega8. Marimea analogica este convertita in Volti, iar apoi, printr-o functie de liniarizare obtinuta din diagrama oferita de Sharp pentru acest senzor, vom obtine rezultatul final.
Fig. 5.14 Schema principiului de funcționare
5.3 Conectarea motoarelor de curent continuu
Robotul realizat este pus în mișcare de către două motoare de curent continuu. Motoarele sunt montate la o cutie de viteze Tamya care oferă un raport de transmisie 58:1. Fiecare motor este actionat independent.
Motoarele funcționează la o tensiune variabilă între 3 și 6 Volți. Tensiunea de care are nevoie fiecare motor este furnizată de către placa de dezvoltare Ardumoto care este conectată cu placa Arduino.
Microcontrolerul ATMega328 de pe placa Arduino realizează controlul motoarelor.
5.3.1Realizarea controlului motoarelor de curent continuu
Motoarele sunt controlate prin intermediul unui Dual FULL-BRIDGE DRIVER L298. A fost construit un PCB special (Ardumoto) pentru controlul acestui driver de motoare și a circuitului său de protectie. L298 primește 8 intrări de la Atmega32: 4 intrari 0/1 care comandă sensul de rotație al motoarelor (porturile C0-C3), 2 intrări de PWM pe pinii de ENABLE A, ENABLE de la OCR0 (PB3) și OCR2 (PD7) pentru a controla turația motoarelor și VCC și GND de la extensia header a portului B.
De obicei, este nevoie în aplicațiile practice să comandăm un motor în ambele sensuri. Acest lucru se poate realiza folosind o punte H pe post de amplificator (driver).
Puntea H este în principiu un circuit cu patru întreruptoare, ce acționează câte două odata pe diagonală, pentru a schimba sensul de rotație al motorului. Aceste întreruptoare sau comutatoare sunt realizate de obicei cu tranzistoare MOS-FET sau cu tranzistoare Darlington.
Fig. 5.15 Schema punții H simplificată
Schema unei punți H folosind dispozitive discrete este prezentată in figura 5.16. Astfel, tranzistoarele utilizate sunt de tip PNP și la fiecare sens de rotație sunt în conducție două din ele. Diodele au rol de protecție sau de blocare a celorlalte două tranzistoare. Montajul este alimentat la 12V și comandă pe baza tranzistoarelor tip NPN este de 5V și vine de la microcontroler.
Fig. 5.16 Schema de principiu a punții H
Un astfel de circuit integrat amplificator sau driver pentru comanda motorului de curent continuu este și L298P. Cu acest circuit integrat putem comanda două motoare de curent continuu odată. Este alimentat la 6V și poate schimba și sensul de rotație a celor două motoare.
Fig. 5.17 Schema circuitului L298P
Astfel, dacă la pinul 4 vom avea o tensiune de 5V și la pinul 5 vom trimite o tensiune de 0V, atunci motorul A din stanga circuitului integrat se va roti într-un sens. Dacă schimbăm tensiunile prezente la intrările de comandă, adică la pinul 4 să trimitem o tensiune de 0V și la pinul 5 o tensiune de 5V, atunci motorul A se va roti în sensul opus. Asemănător, funcționarea motorului B este comandată în același mod, doar că aceste comenzi se dau pe pinii 6 și 7 ai circuitului integrat.
5.4 Conectarea servomotorului la placa Arduino
Comanda servomotorului se realizează de pe pinul 9 iar citirea distanței de pe pinul A0, după cum se poate observa și în figura 5.18.
Fig.5.14 Conectarea servomotorului la placa Arduino
Unde:
-firul rosu este comanda servomotorului;
-firul negru e pentru a uni masele sursei de alimentare cu a lui Arduino;
-firul alb este pentru citirea datelor de la senzor;
CAPITOLUL 6: Programarea robotului
6.1 Microcontrolerul ATmega 328
ATMega328 cu Arduino bootloader (Uno). Acest microcontroller vă permite să utilizați programe Arduino în proiectul dumneavoastră fără să utilizați o placă arduino. Pentru a putea funcționa cu Arduino IDE acest microcontroller are nevoie de un cristal extern de 16 Mhz sau de un rezonator, de o sursa de alimentare de 5V si de o conexiune serială.
Fig. 6.1 Microcontrolerul ATMega328
6.1.1 Memoria
ATmega328 are 32 KB (cu 0,5 KB utilizați pentru bootloader). Ea are, de asemenea, 2 KB SRAM și 1 KB de EEPROM.
6.1.2 Specificații tehnice
Tabelul 6.1
6.2 Programarea placii
Această secțiune va presupune că aveți un PC pe care rulează Microsoft Windows sau un Mac OSX (10.3.9 sau ulterior). În cazul în care utilizați Linux ca sistem de operare, atunci se va referi la ” Getting Started instructions on the ARDUINO” de pe site-ul Arduino.
Luati Arduino și cablul USB A-B
În primul rând, luați placa ARDUINO și așezați-o pe masă în fața dumneavoastră. Luați cablul de USB și conectați-l cu mufa B (partea mai goasă si dreptunghiulară) în mufa de USB de la Arduino.
Fig. 6.1 Cablu USB
După aceasta etapă NU se conectează ARDUINO la PC sau Mac încă.
Descărcare Arduino IDE (Software pentru programare)
Descărcați Arduino IDE de la secțiunea de download de pe www.arduino.cc. În momentul de față, cea mai recentă versiune de software Arduino IDE este 0022, urmând ca actualizările să se facă în momentul aparițiilor unor versiuni noi. Fișierul este un fișier de tip ZIP astfel încât veți fi nevoiți să-l dezarhivați (Un utilitar bun este WinRAR). Odată ce descarcărea s-a terminat, dezarhivați arhiva de tipul ZIP, asigurându-vă că s-a păstrat structura de foldere așa cum este și nu trebuie făcute nici un fel de schimbări în componenta softului.
Dacă faceți dublu-clic pe dosarul creat, veți vedea câteva fișiere și sub-dosare în interiorul acestuia.
Instalarea driverului pentru USB
Dacă utilizați Windows, veți găsi driverele în directorul numit “drivers/FTDI USB Drivers” din Arduino. În etapa urmatoare (“Conectarea plăcii de dezvoltare Arduino“), veți alege calea în fereastra “Window`s Add New Hardware wizard” către driverele indicate mai sus.
Dacă aveți un calculator cu sistem de operare Mac, driverele pentru microcontroler sunt în directorul cu drivere. Dacă aveți un Mac mai vechi ca un PowerBook, iBook, G4 sau G5, trebuie să utilizati drivere PPC: FTDIUSBSerialDriver_v2_1_9.dmg. Dacă aveți un Mac mai nou, cu un cip Intel, aveți nevoie de driverele de Intel: FTDIUSBSerial Driver_v2_2_9_Intel.dmg. Dublu-click pentru a monta imaginea de disc și alegeți FTDIUSBSerialDriver.pkg. Cea mai recentă versiune a driverelor poate fi gasită pe site-ul FTDI.
Fig. 6.2 Manualul electronic al software-ului
D. Conectați placa de dezvoltare Arduino
În primul rând, asigurați-vă că jumperul de selectare a alimentării, între alimentare externă și mufa USB, este setat la USB și nu la alimentare externă (nu se aplică în cazul în care aveți un microcontroler Arduino, care are o funcție Auto Power Select).
Fig. 6.3 Jumperul de selectare a alimentării
Folosind acest jumper puteți: fie alimenta microcontrolerul de la Portul USB (bun pentru curenți slabi, aplicații cu LED-uri, etc) sau de la o alimentare externa (6-12V DC – Curent Continu). Acum, conectați celalalt capăt al cablului USB (A) în mufa de USB de pe PC sau Mac. Veți vedea acum LED-ul de putere mică (marcat PWR mai sus de comutatorul RESET) se va aprinde pentru a vă arăta alimentarea microcontrolerului.
Dacă aveți un Mac, această etapă a procesului este completă și puteți trece la capitolul următor. În cazul în care sunteți utilizator de Microsoft Windows, există cațiva pași în plus pentru a completa instalarea.
În timp ce sistemul de operare Microsoft Windows va detecta că s-a conectat o nouă placă hardware (microcontrolerul Arduino) la PC, va apărea fereastra Found New Hardware Wizard. Bifați “NO, not this time” (figura 6.4) pentru a nu se conecta la Windows Update (Selectați Nu, nu în acest moment) și apoi faceți clic pe Next.
Fig. 6.4 Fereastra „Found New Hardware” a Windows-ului
În pagina următoare (figura 6.5) selectați “Install from a list or specific location (Advanced)” și apoi faceți clic pe Next.
Fig. 6.5
Asigurați-vă că “Search for the best driver in these locations” este verificat.
Debifați “Search removable media”. Bifați “Include this location in the search” și apoi faceți click pe Butonul Browse. Răsfoiți la locația de drivere pentru USB și apoi faceți click pe Next. (Figura 6.6)
Fig. 6.6
Windows-ul va căuta acum pentru un driver potrivit, vă va informa că un “USB Serial Convertor” a fost găsit și a constatat că expertul hardware este acum complet. Faceți clic pe Finish. (Figura 6.7)
Fig. 6.6
Acum sunteți pregătit pentru a încarca primul “Sketch” pe microcontrolerul Arduino.
6.3 Programul robotului
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: Constructia Unui Robot Mobile cu Kit Arduino (ID: 162202)
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.
