Proiectarea Unui Minirobot In Scopul Detectarii Si Evitarii Obstacolelor

Cuprins

Capitolul I

1.1 Introducere

1.2 Obiective

1.3 Limitări

1.4 ITS-Sisteme Inteligente de Transport

Capitolul II SISTEME CONCEPUTE PENTRU DETECȚIA OBSTACOLELOR

2.1 Introducere

2.2 Metode de detecție

2.3 Controlere principale.PLC-uri.Microprocesoare.Microcontrolere

2.4 Senzori folosiți pentru detecția obstacolelor

2.5 Motoare de tracțiune pentru minirobot

2.6 Interfața de comandă a sistemelor

Capitolul III PROIECTAREA ECHIPAMENTULUI ELECTRONIC

3.1 Schema bloc

3.2 Placa de dezvoltare.Schema Electrică a placii de dezvoltare

3.3 Motoare,senzori,afișaj

3.4 Interfata de comunicare

3.5 Microcontrolerul ATMega16

Capitolul IV STRUCTURA SOFTWARE

4.1 Raționamentul de comandă

4.2 Programarea minirobotului

Capitolul V. FIABILITATEA SISTEMULUI PROIECTAT

5.1 Definirea noțiunii și a indicatorilor de fiabilitate

5.2 Calculul de fiabilitate estimativ

5.3 Prețul estimativ al realizării practice

DICȚIONAR EXPLICATIV DE TERMENI ȘI ABREVIERI

BIBLIOGRAFIE

Capitolul I

Introducere

Acest proiect este destinat dezvoltării unui sistem pentru detecția și evitarea obstacolelor dintr-un mediu. Lucrarea se compune din două parți esențiale și la fel de importante, cea hardware si cea software.

Partea hardware va avea la bază un microcontroler ATMega16, motoare de tracțiune, senzori cu infraroșu și circuitele necesare pentru a integra toate componentele într-un tot unitar funcțional.

Partea software se va referi la algoritmul folosit pentru realizarea detecției obstacolelor și programarea microcontrolerului. MicrocontRolerul ales pentru aceasta lucrare este ATMega16 produs de Atmel.

Obiective

Obiectivele acestei lucrări sunt: proiectarea unui minirobot în scopul detectării și evitării obstacolelor și nu în ultimul rând realizarea algoritmului de detecție ce va fi implementat pe platforma AVR folosind ca și microcontroler principal ATMega16.

Limitari

Proiectarea unui astfel de minirobot poate fi destul de costisitoare astfel că distanța de detecție a obstacolelor va fi de aproximativ 15 cm și se va baza pe tehnologia unei diode și a unei fotodiode.

Folosirea unor senzori ce pot detecta obstacolul de la o distanță mai mare de 70-110 cm cum este senzorul Sharp poate duce la o creștere semnificativă a bugetului alocat proiectului.

ITS-Sisteme Inteligente de Transport

ITS reprezintă o gamă largă și diversă de tehnologii care, aplicată sistemelor actuale de transport, poate ajuta la creșterea siguranței, reducerea congestiilor de trafic, creșterea mobilității, minimizarea impactului de mediu, reducerea consumului de energie și creșterea productivității economice.

Tehnologiile ITS sunt variate și includ:

prelucrarea informațiilor;

comunicații;

control și electronică.

ITS reprezintă rezultatul aplicării tehnologiilor avansate la sisteme și metode de transport pentru eficientizarea, creșterea confortului și siguranței transportului pe căile rutiere, feroviare, navigabile interioare, aeroporturi, porturi și legăturilor dintre aceste tipuri de transport diferite.

Avantajele sistemului “Inteligent Transport System”

fluidizarea traficului printr-o îmbunătățire a condițiilor de trafic cu aproximativ 15%;

îmbunătățirea serviciilor RATB prin respectarea unei programări a sosirii și plecării vehiculelor din stații;

semnalizarea instantanee a echipamentelor defecte din intersecții și posibilitatea intervenției operative pentru remedierea defectelor;

îmbunătățirea serviciilor vehiculelor de intervenție – Poliție, Ambulanță, Pompieri.

Conform standardelor ISO, subsistemele ITS, după funcțiile pe care le realizează, se clasifică astfel:

 – Advanced Traffic Management Systems (ATMS) sau Sisteme Avansate de Management al Traficului;

– Advanced Traveller Information Systems (ATIS) sau Sisteme Avansate de Informare a Călătorilor;

– Advanced Vehicle Control Systems (AVCS) sau Sisteme Avansate de Control al Vehiculelor;

– Advanced Public Transportation Systems (APTS) sau Sisteme Avansate pentru Transportul Public;

– Commercial Vehicle Operations(CVO) sau Sisteme de Operare pentru Vehicule Comerciale.

Minirobotul care detectează și ocolește obstacolele face parte din subcategoria : Sisteme avansate de control al vehiculului (AVCS).

Sistemele avansate de control al vehiculului (AVCS) includ toate sistemele aflate în vehicul sau pe drum, care asigură conducătorului vehiculului o siguranță și/sau un control sporit, fie prin îmbunătățirea informațiilor referitoare la mediul rutier, fie prin asistarea activă a conducătorului vehiculului în dirijarea vehiculului. Sistemul de tip AVCS se utilizează pentru mașini, camioane, autobuze și alte vehicule, cu scopul de a îmbunătăți mobilitatea și siguranța.

Câteva dintre tehnologiile disponibile: sisteme de anti-blocare a frânei și sisteme de control al tracțiunii, sisteme de cotire pe patru roți, sisteme active de suspensie, sisteme de stabilitate a vehiculului, control autonom inteligent al cursei, sisteme de atenționare/avertizare a coliziunii plasate în vehicul, sisteme de atenționare/avertizare referitoare la drum, sisteme de detecție a obstacolelor apropiate, autobuze cu ghidare pe parcursul rutei, îmbunătățirea vizibilității,

urmărirea și menținerea benzii de circulație, monitorizarea conducătorului vehiculului, tehnologii viitoare.

Sistemul de control autonom, inteligent al cursei (AICC-Autonomous Incident Detection) este o tehnologie utilizată în sistemele de tip AVCS, care monitorizează distanța până la vehiculul din față și avertizează conducatorul vehiculului, încetinește efectiv viteza de deplasare a vehicului, daca distanța de separare a vehiculelor scade într-atât încat devine periculoasă.

Majoritatea sistemelor AICC folosesc un sistem senzor-radar sau radar-laser pentru a determina distanta și viteza relativă pana la vehiculul din față și avertizeaza conducatorul vehiculului sau acționeaza frânele.

În prezent, sunt utilizate cateva sisteme de evitare a coliziunii pentru a mari capacitatea de sesizare și siguranța conducatorulului vehiculului.

Există sisteme ce avertizează conducatorul vehiculului asupra obstacolelor ce sunt în afara razei vizuale a acestuia. Senzorii NODS (Near Obstacole Detection Systems-Sisteme de detectare a obstacolelor apropiate) utilizează de obicei radare sau detecție ultrasonică.

             Sisteme de ghidare a vehiculelor pe parcursul rutei permit imbunatatirea calității serviciilor sistemelor ITS de tip ATIS.

             Sisteme pentru imbunătățirea vizibilitații evenimentelor de pe ruta, noaptea sau pe vreme rea, utilizeaza tehnici de iluminare cu raze infraroșii și ultraviolete.

             Aceste sisteme de siguranța au fost testate intens dar nu au fost înca implementate in producție. Tehnologia prezentată consta în camere montate pe vehicul pentru monitorizarea drumului în fața vehiculului, cu ajutorul algoritmilor de recunoaștere a benzii de circulație.

Sunt în curs de dezvoltare sisteme de prevenire a accidentelor datorate ațipirii conducatorilor de vehicule. Aceste sisteme evaluează starea fizică a conducatorului vehiculului prin monitorizarea mișcarii volanului sau clipirii ochilor.

Desi în cazul sistemelor de tip AVCS se pot utiliza aproape toate tipurile de senzori, cea mai importanta parte a tehnologiilor privind senzorii utilizați în AVCS o reprezintă metodele de ghidare a vehiculului. Acestea se împart în patru categorii:

·       metode de ghidare prin imagini care presupun fie iluminarea activă a unei zone de interes, fie o masurare pasivă a imaginii obiectelor din zona;

·       metoda triangularii care localizează vehiculul, în unele cazuri cu o precizie foarte mare, prin măsurarea distanțelor între vehicul și cel putin trei puncte de referință distincte;

·       metode de urmarire a rutei prin care ruta este parcursă de vehicul cu ajutorul senzorilor montați pe acesta;

·       metode de calculare care cu ajutorul senzorilor de supraveghere a mișcarii montați pe vehicul detectează cu precizie direcția și viteza vehiculului;

Domenii de utilizare a sistemeleor de tip AVCS

Creșterea eficienței și a siguranței sistemului se poate face prin automatizarea vehiculului astfel încat acesta să efectueze sarcini tracasante sau periculoase. Un astfel de domeniu în care reiese avantajul AVCS este testarea vehiculelor și a infrastructurii drumurilor.

Capitolul II SISTEME CONCEPUTE PENTRU DETECȚIA OBSTACOLELOR

2.1 Introducere

Există foarte multe tipuri de dispozitive și componente ce pot fi folosite pentru construcția unui rover ce poate ocoli obstacole. În acest capitol se va povesti la modul general despre aceste componente ce pot fi folosite pentru realizarea unui astfel de proiect. Componentele de baza folosite pentru alcatuirea acestui proiect sunt microcontrolere, senzori pentru detecție obstacole, motoare pentru tracțiune, sursă de energie pentru alimentarea acestor componente, dispozitive de comandă. Atmega 16 a fost ales ca microcontroler de bază pentru acest proiect , 3 perechi de senzori infraroșu alcătuite fiecare dintr-un emitor și un receptor, s-au ales motoare de curent continuu și o sursă reîncărcabilă de energie formată dintr-o baterie Li-Ion.

2.2 Metode de detecție.

Evitarea obstacolelor este una din cele mai importante probleme care se pun la realizarea unui robot mobil. Fară această capabilitate, mișcarea roboților ar fi restrictivă și fragilă.

Provocarea supremă pentru activitatea de cercetare în domeniul roboților mobili este proiectarea unui robot, care să poata funcționa autonom in mediul înconjurator real, subîntelegandu-se atat spațiile interioare cât și mediul exterior.

Evitarea obstacolelor înseamna detecția obstacolelor și oprirea sau schimbarea direcției de deplasare a roboților mobili, cu scopul de a evita coliziunile.

Termenul “evitarea obstacolelor” descrie un set de tehnici software, care permit mașinilor mobile, de tipul roboților, să-și ajusteze traiectoria și viteza în funcție de mediul înconjurator.

Utilizat în conjuncție cu măsurarea distanțelor și controlul mișcărilor, softul implementat oferă roboților mobili reflexe similare ființelor vii și le permite să navigheze în mod inteligent.

Exista o foarte mare diversitate de tipuri de roboți mobili și de situații în care trebuie să actioneze aceștia. În funcție de natura misiunilor pe care trebuie să le

rezolve, se pot distinge mai multe niveluri de autonomie și implicit de complexitate a tehnicilor de evitare a obstacolelor.

Dupa cum se poate remarca din figura de mai jos, cele mai numeroase aplicații își propun o navigare simplă, la un punct dat, autonoma sau teleautonoma.

Fig.1 Niveluri de autonomie și evitare a obstacolelor

Pentru ca un robot mobil să poata naviga autonom în mediul în care operează, este esențial să se realizeze un model exact al respectivului mediu înconjurator.

Dezvoltarea unui asemenea model necesită folosirea unor multiple tipuri de sisteme de senzori, pentru a se realiza acoperirea zonelor de interes, în diverse benzi spectrale și cu o varietate de tehnici de procesare.

Sistemele de senzori, instalate in mod curent pe un robot pentru a se realiza evitarea obstacolelor, sunt in principal de urmatoarele tipuri:

1) radar;

2) scanare cu laser;

3) telemetre cu ultrasunete;

4) senzori vizuali (pentru stereo si/sau omniviziune).

Datele transmise de fiecare senzor în parte, sunt procesate printr-un algoritm de detecție și sunt ponderate în funcție de performanțele senzorului, in condițiile unui set de lucru dat.

Coordonatele țintelor detectate, de la fiecare senzor în parte, sunt integrate într-o harta locală a obstacolelor. Informațiile recepționate sunt suprapuse într-o manieră cat mai acoperitoare, pentru ca slabiciunea unor senzori sa fie compensată de performanța celorlalți.

Harta este apoi analizata pentru a se determina cel mai apropiat obstacol de pe direcția de deplasare.

Aceste informatii sunt folosite pentru încetinirea vitezei robotului sau chiar oprirea lui și pentru comanda direcțvarietate de tehnici de procesare.

Sistemele de senzori, instalate in mod curent pe un robot pentru a se realiza evitarea obstacolelor, sunt in principal de urmatoarele tipuri:

1) radar;

2) scanare cu laser;

3) telemetre cu ultrasunete;

4) senzori vizuali (pentru stereo si/sau omniviziune).

Datele transmise de fiecare senzor în parte, sunt procesate printr-un algoritm de detecție și sunt ponderate în funcție de performanțele senzorului, in condițiile unui set de lucru dat.

Coordonatele țintelor detectate, de la fiecare senzor în parte, sunt integrate într-o harta locală a obstacolelor. Informațiile recepționate sunt suprapuse într-o manieră cat mai acoperitoare, pentru ca slabiciunea unor senzori sa fie compensată de performanța celorlalți.

Harta este apoi analizata pentru a se determina cel mai apropiat obstacol de pe direcția de deplasare.

Aceste informatii sunt folosite pentru încetinirea vitezei robotului sau chiar oprirea lui și pentru comanda direcției de mișcare, în vederea ocolirii obstacolului.

Fig.2 Diagrama bloc funcțională a sistemelor de evitare a obstacolelor.

În cadrul sistemelor de evitare a obstacolelor, un rol cheie, poate cel mai important,îl joacă senzorii vizuali, pe baza cărora s-a realizat vederea artificială, concept cunoscut și sub denumirea de robot vision,înrudit îndeaproape cu machine vision și computer vision.

Elaborare algoritmi de estimare a parametrilor obiectelor

Primul pas in înțelegerea scenei este detecția entităților relevante. Implementarea funcțiilor de detecție depinde de tipul obiectelor de interes. Elementele de natură 2D pregnantă precum semnele pictate pe suprafața drumului sau stâlpii se detectează mai ușor in imaginile 2D urmând ca localizarea lor sa se facă prin legătura cu spațiul 3D. Elementele de natura 3D pregnantă ca și vehiculele sau pietonii sunt mai ușor de detectat in spațiul 3D.

Detecția și estimarea parametrilor obstacolelor

Detecția și evitarea obstacolelor este una din marile provocări pentru sistemele de asistență la conducere. Îndeplinirea acestui obiectiv presupune calcularea informației de adâncime precum și a informației de mișcare cu o acuratețe înaltă și integrarea lor folosind un model suficient de robust și de general ca folosirea sa să fie fezabilă în toate scenariile de trafic. Pentru a putea fi utilizate de către diferitele sisteme sau module funcționale de siguranță a conducerii în raționamente specifice, obstacolele sunt în general caracterizate de informațiile de localizare, dimensiune și viteză.. Metode propuse folosesc, în premieră, detecția direct în spațiul 3D spre deosebire de metodele existente în literatura de specialitate care se bazează pe detecția în spațiul disparitate (2D). Spre deosebire de spațiul 2D, spațiul 3D conserva relațiile geometrice de paralelism si permite aplicarea raționamentelor geometrice. Cu toate acestea, există situații în care folosind doar informația 3D și euristici geometrice detecția nu este satisfăcătoare. Aceasta se datorează faptul că senzorul stereo nu măsoară în mod direct mișcarea așa cum o face de exemplu RADAR-ul folosind efectul Doppler. Lipsa informației de mișcare creează ambiguități atunci când un obstacol în mișcare estevăzut în proximitatea unui alt obstacol staționar sau chiar având o mișcare de direcție diferită/opusă. Astfel de situații pot duce la interpretări potențial periculoase atunci când vorbim de un pieton sau un biciclist care trece pe lângă o mașină care staționează și nu poate fi detectat ca o entitate separată ci ambele obstacole sunt grupate ca unul

singur. Având doar informația 3D, sub forma unui nor de puncte, este imposibil a se găsi un criteriu cu care ambiguitățile să fie rezolvate dar, cu care înacelași timp să fie afectate în mod negativ detecțiile în alte situații. Din acest motiv, în algoritmii dezvoltați s-a înglobat atât informația de poziție 3D, oferită de senzorul stereo cât și informația 3D de mișcare estimată din fluxul optic și odometria vizuală.

Informațiile sunt fuzionate întro hartă de ocupare polară, special concepută pentru a modela incertitudinile reconstrucției stereo și dispersia punctelor 3D în funcție de distanță. Cunoscând parametrii sistemului stereo se calculează dimensiunile optime, în funcție de distanța față de cameră,pentru fiecare celulă cu formă trapezoidală din care este formată harta de ocupare polară. Algoritmul de grupare face posibilă agregarea celulelor învecinate pe harta de ocupare, dacă acestea prezintă mișcare compatibilă din punct de vedere al direcției și al vitezei de deplasare. Pentru obstacolele detectate în acest mod se folosesc raționamente geometrice pentru determinarea dimensiunilor.

Viteza instantanee a obstacolelor este determinată folosind vectorii de viteză a căror proiecții se găsesc în cadrul obstacolului.

Detecția obstacolelor in mediu structurat

S-a dezvoltat un algoritm care să răspundă următoarelor cerințe, întâlnite în scenarii reale: Datele de intrare sunt un nor de puncte 3D clasificate ca aparținând suprafeței drumului sau ca fiind poziționate deasupra sa, datele de ieșire sunt obstacole reprezentate de cuboide orientate care în funcție de natură – statice sau dinamice – sunt caracterizate de: obstacole statice – localizarea 3D și estimarea dimensiunilor obstacolelor statice: vehicule parcate, stâlpi, copaci, delimitatori pentru demarcarea porțiunilor de drum aflate în construcție sau în reparație; obstacole dinamice- localizarea 3D, estimarea dimensiunilor și a vitezei obstacolelor dinamice: pietoni, autovehicule

Pornind de la aceste cerințe, s-a dezvoltat un algoritm original de detecție a obstacolelor care înglobează informația 3D oferită de senzorul stereo și informația de mișcare derivată din flux optic și odometrieîntr-o manieră robustă .

Modulul de detecție a obstacolelor fuzionează informația de poziție 3D și informația de mișcare 3D întro hartă de ocupare polară, special concepută pentru a modela incertitudinile reconstrucției stereo și dispersia punctelor 3D în funcție de distanță. Cunoscând parametrii sistemului stereo se calculează dimensiunile optime, în funcție de distanța față decameră, pentru fiecare celulă cu formă trapezoidală din care este formată harta de ocupare polară. Calcularea dimensiunii și poziției corespunzătoare fiecărei celule se face o singura dată, la inițializarea modulului. Apoi, pentru fiecare pereche de imagini stereo procesată pentru care s-au reconstruit punctele 3D se calculează o proiecție a punctelor 3D și a vectorilor de mișcare pe harta de ocupare. În continuare, un algoritm de grupare face posibilă agregarea celulelor învecinate pe harta de ocupare, dacă acestea prezintă mișcare compatibilă din punct de vedere al direcției și al vitezei de deplasare.Obstacolele detectate sunt apoi supuse unui proces de urmărire probabilistică

Detecția obstacolelor in mediul nestructurat

Urmărirea obstacolelor reprezentate prin cuboide nu este cea mai bună soluție atunci când mediul ce urmează a fi urmărit reprezintă o intersecție, un sector urban aglomerat, sau un scenariu off-road. Chiar daca anumite părți ale acestui mediu pot fi urmărite prin estimarea parametrilor modelului cuboidal, anumite parți esențiale ale mediului nu vor respecta constrângerile modelului. Principala problemă a reprezentării mediului dinamic bazate pe cuboide apare atunci când sistemul senzorial nu este capabil să furnizeze direct informația dinamică (cazul scanerelor laser sau a stereoviziunii, capabili să furnizeze informație 3D, nu și informație de viteză). În aceste condiții estimarea vitezei trebuie să se bazeze pe asocierea datelor și a cuboidelor de-a lungul timpului în cadre succesive de imagine. Un obiect care este parțial vizibil, sau nu este potrivit

pentru reprezentarea cuboidală sau un obiect care își schimbă dimensiunile sau forma, va conduce către o asociere greșită a modelelor în timp și o urmărire eronată a obiectelor, astfel încât va fi imposibil de calculat viteza corectă a entităților dinamice. Din acest motiv, orice sistem senzorial poate fi îmbunătățit considerabil dacă proprietățile dinamice ale mediului ar putea fi estimate independent de tipul de reprezentare utilizat.

Hărțile de ocupare dinamică reprezintă o alegere potrivită pentru mediile dinamice utilizate în contextul aplicațiilor de asistare la conducere, deoarece sunt capabile să descrie cât mai concis aspecte relevante ale mediului asigurând în același timp un nivel de complexitate decent. Soluția noastră este o metodă de reprezentare, percepție și urmărire a mediului bazată pe o hartă de ocupare bazată pe particule Această soluție este definită de o abordare originală pentru reprezentarea probabilității de ocupare și a distribuției vitezelor pentru fiecare celulă a hărții, și de un algoritm original pentru actualizarea acestor valori. Probabilitatea de ocupare a fiecărei celule va fi descrisă de numărul de particule din fiecare celulă, iar aceste particule vor avea o natură duală – ele vor reprezenta ipoteza ocupării, ca în algoritmii tipici bazați pe filtrul cu particule precum CONDENSATION, dar aceste particule pot fi considerate și elementele fizice care construiesc lumea pe care o modelăm.

Extragerea delimitatorilor de obiecte a fost realizată prin aplicarea algoritmului de scanare radială Border Scanner.Ideea principala a soluției propuse constă în procesarea doar a informației relevante din scenă. Aceasta se asigurăprin extragerea delimitatorilor și a zonelor ocupate din vecinătatea lor care sunt direct vizibile din punctul de observare (ego-vehicul). Eliminarea zonelor aflate în ocluzie și procesarea celulelor vizibile direct, permit o estimare cu o acuratețe mărită a vectorilor de viteză corespunzători obiectelor din trafic.

2.3 Controlere Principale.PLC-uri.Microprocesoare.Microcontrolere.

Se pot folosi o multitudine de controlere pentru realizarea părții de control a minirobotului dar cele mai utilizate sunt PLC-urile (Programable Logical Controller),microprocesoare și microcontrolere.

Controlerele Programabile Logice sunt automate de comandă și reglare programabile care se utilizează pentru mașini și procese industriale. Programarea lor se face folosind tehnica digital.

Pentru a implementa PLC-uri pentru un sistem robotizat nu este efficient datorită prețului destul de ridicat al acestei componente. În prezent prețul unui PLC este de peste 150 dolari (484,575 lei) ceea ce îl face mai puțin accesibil decât mult mai ieftinele microprocesoare sau microcontrolere.

Un PLC este un dispozitiv electronic digital, construit pentru a controla mașini și procese efectuând operații de coducere a evenimentelor și a timpului. PLC-ul este construit pentru medii industriale eterogene. Poate fi programat fara aptitudini speciale in programare, si poate fi intretinut de tehnicienii fabricii.

Industria de automobile a introdus PLC-ul pentru a elimina costul mare al panourilor cablate, neflexibile, cu relee. Divizia Hydramatic a Corporației General Motors a elaborat specificațiile de proiectare pentru primul controler logic programabil in 1986. Ei au solicitat un sistem numeric fiabil și flexibil care ar suparavietui în mediul industrial, care ar putea fi ușor de programat și de întreținut de personalul din uzină și care ar putea fi reutilizabil. De fiecare data cand era schimbat modelul de mașina sute de panouri cablate cu relee erau aruncate la gunoi. De la acest inceput din 1986, PLC-urile s-au dezvoltat mult mai mult decat doar ca un inlocuitor ieftin al panourilor logice cu relee. PLC-urile recente includ module care realizează o multitudine de funcții cum ar fi: logice, de temporizare, de numarare, de secvențiere, de control PID și logică fuzzy. Ele pot realiza operații aritmetice, de analizare a datelor și pot comunica cu alte controlere programabile și cu calculatoare de tip server.

Câteva avantaje ale PLC-urilor includ:

– cost favorabil pentru controlarea sistemelor complexe;

– flexibil, putând fi reaplicat la controlul rapid și usor al altor sisteme;

– abilitațile computaționale permit control sofisticat;

– instrumentele de identificare a problemelor facilitează programarea și reduce timpul de nefuncționare;

-componentele de încredere face ca sistemul să funcționeze mai mulți ani fără probleme;

-posibilitatea vizualizarii funcționării;

– viteza de funcționare;

– metode diferite de programare.

PLC-urile nu sunt atât de bune în:

-a utiliza o multime mare de date, date complexe sau funcții matematice complicate;

-a citi și scrie baze de date;

-a genera rapoarte;

-a afișa datele și informatiile operatorului.

Fig. 3 Programmable Logic

Controller

Microprocesoare

Microprocesoarele sunt des folosite în sistemul electronic de control al diferitelor echipamente electronice. Este folosit în principal la telefoanele de ultima generatie, PDA-uri (Personal Digital Assistance), playere VCD (Video Compact

Disc) și pentru controlul diferitior roboți. Un microprocesor nu poate sta singur în cadrul unui echipament, el mai are nevoie de un modul de memorie, un cip pentru controlul IO (input , output), un timer și de echipamente periferice. Acestă caracteristică ofera flexibilitate microprocesoarelor : memoria și porturile IO pot fi suplimentate în orice moment prin adăugarea de memorie suplimentară sau unui mdul IO. Exemple de microprocesoare : seria 9000 de la Texas Instruments, Motorola 6800, Intel 8080, 8086.

Fig.4 (a,b,c) Microprocesoare

Motorola 6800 a fost un microprocesor de 8 biți proiectate și fabricate mai întâi de către Motorola în 1974.Microprocesor MC6800 a fost parte a Sistemului de Microcomputer M6800, care a inclus, de asemenea, circuite integrate seriale și paralele interfață, RAM, ROM și alte cipuri de sprijin. O caracteristică semnificativă de design a fost faptul că familia M6800 de circuite integrate necesară numai o singură sursă de alimentare de cinci volți într-un moment când cele mai multe microprocesoare erau create pentru a avea nevoie trei tensiuni. 6800 are o magistrală de adrese pe 16 biți , care ar putea avea acces direct 64 KB de memorie și o magistrală de date bidirectionala pe 8-biți. Are 72 instrucțiuni cu șapte moduri de adresare pentru un total de 192 de opcodes. Versiunea originală a MC6800 avea o frecvență de tact de până la 1 MHz, mai târziu versiunile urmatoare au avut o frecvență de ceas maxim de 2 MHz.

Intel 8080 a fost al doilea microprocesor proiectat și fabricat de Intel pe 8-bit și a fost lansat in aprilie 1974. A fost o variantă extinsă și consolidată a microprocesorului 8008, dar fără compatibilitate binară. Inițial a fost prevăzut cu o frecventă de ceas limitata la 2 MHz și cu instrucțiuni având timpii de execuție de 4 ,5, 7,10 sau 11 cicluri acest lucru a însemnat aproape 200.000 de mii de instrucțiuni pe secundă. 8080 a fost uneori numit "primul microprocesor cu adevărat utilizabil", în ciuda faptului că microprocesoare anterioare au fost utilizate pentru calculatoare și alte aplicații. INTEL 8080 are la baza tehnologie N-MOS, avand un grad de integrare 4.500 de tranzistoare pe capsulă, capacitate de adresare 64 Kb.

Alimentarea microprocesorului se face la 2 tensiuni de +12V si -5V ceea ce repezintă un inconvenient fată de microprocesoarele din ziua de astăzi.

Microcontrolere

Un microcontroler (uneori abreviat uC, UC sau MCU) este un „computer” mic pe un singur circuit integrat care conține un nucleu de procesor, memorie, și programabile de intrare / ieșire periferice. Memoria program, în formă de NOR flash sau ROM-ul OTP este, de asemenea, de multe ori inclus pe chip, precum și o cantitate mică de obicei, de RAM. Microcontrolerele sunt proiectate pentru aplicații embedded, spre deosebire de microprocesoare utilizate în calculatoarele personale sau alte aplicații de uz general.

Fig.5 Microcontrolere

O definiție, cu un sens foarte larg de cuprindere, ar fi aceea că un microcontroler este un microcircuit care încorporează o unitate centrală (CPU) și o memorie împreună cu resurse care-i permit interacțiunea cu mediul exterior.

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.

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ă.

Un microcontroler este un singur circuit integrat, de obicei cu următoarele caracteristici :

Unitate centrală de procesare – variind de procesoare mici și simple pe 4-biți la procesoare complexe pe 32 sau 64 biți.

Memorie volatilă RAM pentru stocarea de date.

Memorie ROM, EPROM, EEPROM sau Flash pentru funcționarea programului și pentru depozitarea parametrilor.

Porturi de intrare/iesire seriala, cum ar fi porturile seriale (UARTs).

Periferice, cum ar fi cronometre, contoare eveniment, generatoare PWM și watchdog.

Unele includ convertoare alalog-digitale, altele includ convertoare digital-analogic

Microcontrolerele au fost inițial programate numai în limbajul de asamblare, dar diferite limbaje de nivel înalt s-au adaptat pentru programarea acestor cipuri. Aceste limbaje au fost concepute special în acest scop, sau exista versiuni de limbaje de uz general, cum ar fi limbajul de programare C. Compilatoarele pentru limbajele generale vor avea de obicei, anumite restricții, precum și accesorii pentru a sprijini mai bine caracteristicile unice ale microcontrolerelor .Unele microprocesoare au medii de ajutor pentru dezvoltarea unor anumite tipuri de aplicatii.

Cele mai cunoscute tipuri de microcontrolere ce sunt utilizate pentru construcția de sisteme robotizate sunt: PIC-urile (8 biti PIC16), Atmel AVR Atmega 8,16,32 (8,16,32 biti), microcontrolerele de la Texas Instruments MSP430 (16 biti), Toshiba TLCS 870 (8-16 biti).

Fig 6. Schem bloc a unui microcontroler

În acest proiect se folosește microcontrolerul Atmega 16 de la Atmel. Acestă decizie a fost luata datorită costului relativ scazut și a simplitații constructive și de programare a acestuia.

2.4 Senzori folosiți pentru detecția obstacolelor.

Senzorul este un dispozitiv tehnic care reacționează calitativ sau cantitativ prin proprii mărimi măsurabile, la anumite proprietăți fizice sau chimice ale mediului din preajma lui. Ca parte componentă a unui aparat sau sistem tehnic detector poate măsura/înregistra de exemplu presiunea, umiditatea, câmpul magnetic, accelerația, forța, intensitatea sonoră, radiații ș.a.

Senzorul este un dispozitiv care măsoară o cantitate fizică(masa, presiune, temperatura, umiditate, etc) și o transforma într-un semnal care poate fi citit de către un observator printr-un instrument sau poate fi prelucrat.

Exista mai multe clasificări, una dintre ele se referă la senzori de tip:

1. Activ: consumator de energie, de exemplu radar (măsurarea distanțelor prin emitere de radiatii electromagnetice)

2. Pasiv: de exemplu fotorezistența cu care se poate măsura intensitatea luminii incidente.

În automatizare, informația calitativă/cantitativa măsurabilă livrată de senzori, dupa o eventuală amplificare și prelucrare servește la controlul și reglarea sistemelor tehnice automate.

Fig.7 Senzori

Prin senzor se va înțelege dispozitivul tehnic destinat înzestării mașinilor cu simțuri. Are rolul determinării unei sau unor proprietăți și în funcție de nivelul de integrare, poate avea funcții mai simple sau mai complexe după cum este arătat în figura de mai jos:

Minirobotul 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ă.

Fig.8 Sistem detecție frontal

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 aceasta își va genera planurile de acțiuni 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).

Fig.9 Zonă detecție pentru cabină

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ă zomotele care perturbă semnalul utilizat.

Există mai multe criterii de clasificare a senzorilor utilizați în sistemele de

comandă ale robotului industrial:

După cum vine sau nu în contact cu obiectul a cărui proprietate fizică o măsoară, distingem:

senzori fără contact;

senzori cu contact;

După proprietățile pe care le pun în evidență:

senzori pentru determinarea formelor și dimensiunilor (pentru evaluarea înmediu 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ă mediul de culegere a informației:

a) senzorii pentru mediul extern;

b) senzorii pentru funcția internă;

după distanța la care sunt culese informațiile avem senzori de contact.

În ziua de astăzi un numar foarte mare de senzori pot fi folositi pentru a realiza functia de detectie a unui obstacol. Exempele de senzori : Infrarosu (IR), senzori de detectie limita, LDR (Light Dependent Resistors), sensor RGB Fig.10 Senzor RGB

(Red Green Blue), sensor digital compass, senzori ultrasunete și sonori.

Senzori Ultrasunete

Senzori cu ultrasunete ( cunoscuți sub numele de traductoare de emisie-recepție, atunci când atât trimit și primesc), care lucrează pe un principiu similar cu radarele sau senzorii sonar, care evaluează atributele unui obiectiv prin interpretarea ecourilor de la radio sau undelor sonore receptate. Senzorii cu ultrasunete generează unde sonore de înalta frecvență cu scopul de a evalua ecoul, care este primit înapoi de senzor. Senzori calculează, intervalul de timp de la

trimiterea semnalului pana la receptarea ecoului de semnal pentru a determina distanța până la un obiect.

Aceasta tehnologie poate fi folosită pentru măsurare: viteza și direcția vântului (anemometru), plenitudine de un rezervor și viteză prin aer sau apă. Pentru măsurarea vitezei de direcție sau un dispozitiv,utilizează detectoare multiple și calculează viteza de la distanțe relativ la particulele din aer sau apa. Pentru a masura cantitatea de lichid într-un tanc, senzorul de masoara distanta la suprafața lichidului. Cererilor ulterioare se numără: hidratare, sonar, medicale ecografie, alarme antiefractie și non-distructive de testare.

Principiul de funcționare al unu sensor cu ultrasunete este prezentat in figura 11 :

Fig.11 Principiul de funcționare al senzorului cu ultrasunet

Un emițător sonar transmite un semnal acustic în mediu urmând apoi ca reflecția acestuia sa fie recepționată de componenta detector a senzorului. Timpul în care semnalul este receptat înapoi de senzor precum și atenuarea semnalului reprezintă aspect exploatate de diferitele tipuri de senzori sonar. Sunetele transmise de senzorii sonar sunt de regulă în spectrul de sunete ultrasonic,având o frecvență foarte înaltă pentru a nu putea fi detectate de urechea umană. Principiul de funcționare al senzorilor sonar a fost împrumutat din lumea animal,atât liliecii cât și delfinii folosind aceleași tehnici pentru a localiza și identifica diferitele caracteristici ale unei vietăți.

.

Fig.12 Senzor Sonar

Sisteme de obicei folosesc un transductor care generează undele de sunet în gamă de ultrasunete, de mai sus 18000 hertzi, prin transformarea energiei electrice în sunet, apoi la primirea ecou transformă undele sonore in energie electrică, care pot fi măsurate și afișate.

Un traductor cu ultrasunete este un dispozitiv care convertește energia în ultrasunete, sau undele de sunet peste limitele normale a auzului uman. În timp ce punct de vedere tehnic un fluier pentru câine este un traductor de ultrasunete care transformă energia mecanică în formă de presiune a aerului în undele de sunet ultrasonic, termenul este mai apt pentru a fi folosit cu referire la traductoare piezoelectrice care convertesc energia electrică în sunet. Cristale piezoelectrice au proprietatea de a schimba dimensiunea atunci când este aplicată o tensiune, aplicând astfel un curent alternativ (AC) le face să oscileze la frecvențe foarte mari, care produc astfel valuri sonore de frecventa foarte inalta.

Locul de amplasare la care un traductor se concentrează sunetul poate fi determinată de zona traductor activă și forma, frecvența cu ultrasunete, precum și viteza sunetului din mediul de propagare.

Senzori cu infraroșu (IR)

Senzorul infraroșu pasiv (în engleză: PIR sensor) este un dispozitiv electronic care măsoară în infraroșu (IR) lumina care radiază de la obiecte aflate în câmpul său vizual. Este mai ales folosit în construcția detectoarelor de mișcare.

Un detector de mișcare este un dispozitiv de recunoaștere a mișcărilor de corpuri (obiecte, persoane) în vecinătatea lui. Un astfel de detector conține un mecanism fizic sau un senzor electronic care cuantifică mișcarea și care poate să fie integrat sau conectat la alte dispozitive care să alerteze utilizatorul de prezența unui obiect în mișcare în raza de acțiune a senzorului. Detectoarele de mișcare sunt o componentă vitală a sistemelor de securitate atât pentru locuințe cât și pentru firme (companii).

Un senzor pasiv în infraroșu (senzor PIR) este un dispozitiv electronic care măsoară în infraroșu (IR), lumina care radiază de la obiecte aflate în câmpul său vizual. Aparent mișcarea este detectată atunci când un corp cu o anumită temperatură (cum ar fi un om sau un animal) trece prin fața sursei infraroșu (adică un alt corp, obiect) cu o altă temperatură, cum ar fi un perete. Acest lucru înseamnă că senzorul detectează căldura de la trecerea unui obiect prin câmpul de acțiune al senzorului și acel obiect rupe câmpul pe care senzorul l-a determinat anterior ca fiind “normal”. Orice obiect, chiar unul de aceeași temperatură ca și obiectele din jur va activa senzorul PIR dacă corpul se deplasează în câmpul vizual al senzorului.

IRA-E700ST0 MLX90614ESF-BAA

Fig.13 Senzori infraroșu

Exista doua tipuri principale de senzori infrarosu. Primul tip este tranzistor activat de infrarosu, chiar daca numele este tranzistor, sezorul are doar doi pini ce

reprezinta colectorul si emitorul. Senzorul se va activa atunci cand o unda infrarosu va fi detectata.

Al doile tip de senzor infrarosu este sonzorul ce are trei pini. Doi pini sunt folositi pentru alimentarea senzorului iar al treilea este destinat semnalului de iesire (output signal).

Pinii acestor senzori nu sunt intotdeauna dispusi la fel. Figura urmatoare ne arata cum sunt dispusi pinii pentru cateva modele de senzori infrarosu:

Fig.14 Diferite tipuri de senzori.

2.5 Motoare de tracțiune pentru minirobot

Se face cu motoare electrice de putere mică ce au urmatoarele caracteristici:

cu moment de inerție redus,

cu capacitate de suprasarcină,

cu reductoare de raport mare (i>100)

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 reductanță variabilă cu indus pahar și intrefier radial sau cu indus tip disc și intrefier radial;

• motoare sincrone cu magneți permanenți;

În general, sunt similare în construcție cu generatoarele de curent continuu. Ele pot, de fapt să fie descrise ca generatoare care „funcționează invers”. Când curentul trece prin rotorul unui motor, este generat un câmp magnetic care generează o forță electromagnetică, și ca rezultat rotorul se rotește. Acțiunea periilor colectoare și a plăcuțelor colectoare este exact aceiași ca la generator. Rotația rotorului induce un voltaj în bobinajul rotorului. Acest voltaj indus are sens opus voltajului exterior aplicat rotorului. În timp ce motorul se rotește mai rapid, voltajul rezultat este aproape egal cu cel indus. Curentul este mic, și viteza motorului va rămâne constantă atât timp cât asupra motorului nu acționează nici o sarcină, sau motorul nu efectuează alt lucru mecanic decât cel efectuat pentru învârtirea rotorului. Când asupra rotorului se aplică o sarcină, voltajul va fi redus și un curent mai mare va putea să treacă prin rotor.

Astfel, motorul este capabil să primească mai mult curent de la sursa care îl alimentează, și astfel să efectueze mai mult lucru mecanic.Deoarece viteza rotației controlează trecerea curentului prin rotor, mecanisme speciale trebuie folosite pentru pornirea motoarelor cu curent continuu. Când rotorul se află în repaus, el, efectiv, nu are nici o rezistență, și dacă voltajul normal este aplicat, va trece un curent mare, ceea ce ar putea avaria periile colectoare sau motorul.

Mijloacele obișnuite pentru prevenirea acestor accidente este folosirea în serie a unei rezistențe, la început, împreună cu rotorul, pentru a limita curentul până când motorul începe să dezvolte un curent suficient. Pe parcurs ce motorul prinde viteză, rezistența este redusă treptat, fie manual ori automat.

Viteza cu care un motor cu curent continuu funcționează, depinde de puterea câmpului magnetic care acționează asupra rotorului, cât și de curentul rotorului. Cu cât este mai puternic câmpul magnetic, cu atât este mai mică rata rotației necesare să creeze un curent secundar necesar pentru a contracara curentul aplicat. Din acest motiv viteza motoarelor cu curent continuu poate fi controlată prin variația câmpului curentului. Motoarele folosite sunt de tip curent continuu de tip reductor

cu raport de transmisie de 48:1 alimentate la o tensiune de 3V, 6V și o intensitate de 300 mA.

Dezvoltă un cuplu de 0,57mN*m la pornire și 0,19 mN*m în regim normal, dezvoltă 200 rot/min .Motorul are următoarele componente:

Rotorul este format din tablă de siliciu cu bobinaj sârmă de cupru cu diametrul Φ0.1 mm Diametrul interior al statorului este de 15.2 mm iar cel exterior de 20mm 2 lagăre realizate din bronz grafitat.Acestea au rol de sustinere, centrare și rostogolire a rotorului.

Pinion din plastic fixat pe axa rotorului prin presare. Presarea este datorată elasticitații plasticului.O a doua montare a pinionului nu mai are rezistența corespunzătoare și se utilizează altă metodă prin folosirea unor adezivi.

2.6 Interfața de comandă a sistemelor

Sistemele de calcul pot să comunice în două moduri: paralel și serial. În modul paralel, de obicei se utilizează 8 sau mai multe linii (cabluri). Exemple de utilizare a comunicației paralele sunt imprimanta sau hard discul. Comunicația paralelă se utilizează doar pentru distanțe foarte scurte (câțiva metri). Motivul este de fapt că pentru cablurile lungi, semnalele sunt atenuate și pot apare distorsiuni. În plus nu este deloc de neglijat costul cablurilor și problemele ce pot apare la conexiuni. Avantajul comunicației paralele este viteza mare de transmisie.

Comunicația serială este utilizată pentru sisteme aflate la mare distanță intre ele.

Comunicația serială utilizează un număr redus de cabluri. În comunicația serială, datele transmise trebuie serializate la transmisie și deserializate la recepție. Pentru aceasta, la transmisie se utilizează un registru paralel-serie iar la recepție un registru serie-paralel.

Registrul paralel-serie este utilizat pentru transformarea unei date de 8 biți intrun șir de biți. Registrul serie-paralel este utilizat pentru transformarea unui șir de 8 biți intr-un octet. Pentru distanțe lungi, comunicația paralelă poate utiliza linia telefonică. În acest caz semnalele logice 0 și 1 trebuie transformate în semnale sinusoidale. Această conversie este realizată de un dispozitiv numit modem (MODulator/DEModulator).

Pentru distanțe scurte această conversie nu este necesară. De exemplu, tastatura și mouse-ul comunică serial informația către unitatea centrala a PC.

Comunicația serială utilizează două metode:

– sincronă: se transferă blocuri de octeți (caractere)

– asincronă : se transferă câte un octet

Se pot realiza programe pentru realizarea comunicației seriale însă acestea pot fi lungi. Este indicat ca programatorul să se concentreze asupra problemelor specific aplicației și nu asupra unei probleme extrem de generale precum comunicația serială.

Aici intervin și aspectele economice legate de productivitatea muncii. Din acest motiv producătorii de circuite au realizat circuite ce rezolvă problemele legate de comunicația serială. Aceste circuite se numesc UART (Universal Asyncronus Receiver Transmitter).

Microcontrolerul ATMega16 conține un asemenea modul (UART) înglobat. Din acest motiv în cele ce urmează ne vom referi doar la comunicația asincronă. Dacă datele pot fi transmise și recepționate simultan, se spune ca avem comunicație „full-duplex” .

Fig.15 Modul de transmisie a datelor

Dacă datele nu pot fi trimise și recepționate simultan, se spune ca avem comunicație „half duplex” . Aici termenul „simultan” se refera la faptul ca ambele sisteme pot transmite date în același moment de timp. O altă situație este cazul în care unul din sisteme este doar un transmițător celalalt este doar un receptor (comunicație „simplex” ). Pentru comunicația full duplex sunt necesare două fire (plus firul de masă).

a) Comunicația asincronă

Cele două sisteme, pentru a putea comunica intre ele, trebuie sa respecte o serie de reguli. Trebuie stabilite convenții referitoare la:

– modul de împachetare al datelor;

– numărul de biți ai unui caracter;

– cum se identifica începutul unei date;

– cum se identifica sfârșitul unei date;

– care este durata unui bit.

b) Formatul datelor

Comunicația asincronă este frecvent utilizata pentru transmisia orientată pe caracter; comunicația sincronă este utilizata pentru transmisia orientată pe blocuri de date. În comunicația asincronă fiecare caracter este încadrat intre biți de start și biți de stop.

De fapt totdeauna se folosește un bit de start (0 logic) și de obicei un bit de stop (1 logic).

În figura de mai jos este reprezentat modul de transmisie al caracterului ASCII „M” al cărui cod binar este 01001101. Se observa ca transmisia biților se face în ordinea: START(0) , D0(1), D1(0)… D7(0), STOP(1).

Se transmite mai întâi bitul cel mai puțin semnificativ al octetului (LSB – D0). Se observa că de fapt pentru transmisia unui caracter se utilizează 10 biți. Sunt și alte posibilități de transmisie. De exemplu se poate prevede un bit suplimentar care sa reprezinte paritatea octetului. Scopul acestui bit suplimentar este verificarea păstrării integrității datelor. De aceea, programatorul trebuie sa cunoască datele de catalog ale portului serial și modul lui de programare.

c) Rata de transfer

Rata de transfer reprezintă numărul maxim de biți ce pot fi transmiși intr-o secundă. Este dată în bps (biți per second). Alt termen des utilizat pentru bps este baud rate. Cei doi termeni nu sunt identici. Termenul baud rate este preluat din terminologia modemurilor unde este definit ca numărul de schimbări pe secundă ale unui semnal. Sunt situații când o singură modificare a semnalului conduce la transferul mai multor biți de date. Totuși și dacă nu se utilizează modemul se pot utiliza ambii termeni. Rata de transfer depinde de portul de comunicație al sistemului. De exemplu, pentru PCurile mai vechi rata de transfer de date este 100… 9600 bps. Noile PC-uri suporta o rata maximă de transfer de 115.2 Kbps.

d) Standardul RS232

Pentru a permite compatibilitatea echipamentelor realizate de diferiți producători, s-a adoptat standardul numit RS232 realizat de EIA (Electronics Industries Association) în 1960, modificat apoi mai tâ rziu în mai multe rânduri. Standardul actual RS232C adoptat în 1969 este utilizat de PC-uri și de numeroase alte echipamente. Deoarece standardul a fost adoptat înainte de apariția familiei logice TTL, standardul nu este compatibil cu nivelele TTL. Nivelul 1 logic este reprezentat de o tensiune electrică cuprinsa intre -3 și -25V iar nivelul logic 0 este

reprezentat de o tensiune electrica cuprinsa intre +3 și +25V, zona situata intre -3V și 3V fiind nedefinită.

PX-400 Cutie Programator In-Sistem cu interfață serială

Este folosit pentru programarea codului in memoria flash a microcontrolorului AVR.

• Conectarea cu calculatorul se face prin portul serial RS-232.Dacă calculatorul are doar port USB,poate fii folosit un convertor USB la Serial.UCON-232S este recomandat in această situatie.

• Programarea microcontrolorului se face prin cablu ISP.Suportă citirea scrierea ștergerea și protejarea datelor.

• Necesită o tensiune de alimentare de 5V de pe placa microcontrolorului.

• Este operabil cu softul AVR Prog. Acest soft este inclus in AVR Studio fiind compatibil deasemenea cu softul Avr-Osp II.

Interfața SPI

Interfața serie SPI (serial peripheral interface) este o interfață sincronă, de mare viteză, pentru transferul datelor între un microcontroler AVR și un dispozitiv periferic sau între două microcontrolere AVR.

Transferul pe interfața SPI se face cu următoarele caracteristici: transfer full duplex (pe trei fire), operare master slave, transfer cu primul bit LSB sau MSB, patru viteze de transfer, semnalizare sfârșit de transmisie și activare din modul de consum redus. Scrierea datelor în registrul de date al dispozitivului master va genera activarea generatorului de ceas și data va fi transferata bit cu bit pe linia MOSI, prin intermediul registrului de deplasare.

Cabluri de transfer a datelor

Rolul cablurilor de semnal este de a conecta placa de bază cu diferiți senzori și cu calculatorul.Cablul ISP este folosit pentru programarea microcontrolorului, cabluri PCB3AA-8 pentru interconectarea cu senzori și un cablu port serial pentru conexiunea dintre calculator si placa de baza la conectorul ISP.

Cablul ISP este un cablu tip panglică cu 10 fire.Este folosit pentru conexiunea dintre cutia de programare ISP și placa microcontrolorului.Modul de distribuție al firelor este arătat in schema de mai jos

Fig.16 Cablu ISP

Cap. III PROIECTAREA ECHIPAMENTULUI ELECTRONIC

3.1 Schema bloc

Platforma hardware este alcatuita din urmatoarele module principale:

– Placa de dezvoltare

– Microcontroler

– Senzori

– Motoare

– Circuitul punte H

-Logica de comanda

Microcontrolerul Atmega16 relizează procesarea informațiilor recepționate de la senzorii de proximitate, precum și comanda motoarelor roverului prin intermediul puntii H relizata de tranzistorii bipolari BC 327 si BC 337.

3.2 Placa de dezvoltare.Schema electrică a plăcii de dezvoltare.

Componenta de bază a robotului o constituie placa de dezvoltare pe care este montat microcontrolerul Atmel ATMEGA16-16PI împreună cu diferite circuite auxiliare de interfață cu diferite medii printre care enumerăm tranzistoarele bipolar BC 337 si BC 327 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. Pe lângă aceasta mai avem două motoare de curent continuu trei senzori infraroșu (perche RX si TX) și alte componente mecanice care utilizează ca mediu de programare limbajul C.

Fig.17 Placa de dezvoltare

Miniobotul este conceput pe două roți motrice din plastic cu membrană de cauciuc și o roata omnidirectionala plasata în partea din față a placii . Este alimentat de o baterie de 4.2 V 1400 mAh .

Pentru a înnobila partea electronică robotul a fost dotat cu senzori infraroșii pentru a realize detectia obstacolelor ce apar in parcursul sau , un afișor cu cristale lichide pentru scriere diferite mesaje si 2 senzori IR care realizează numararea ciclurilor pentru cele 2 motoare și care deasemenea poate determina distanța parcursă de la un anumit moment pana la intalnirea unui obiect.

Schema Electrica a placii de dezvoltare

Fig.18 Schema Electrica a placii de dezvoltare

Schema electrica a blocului H-Bridge

Fig.19 Schema electrica punte H

Structura în punte H cu dispositive semiconductoare controlabile nu este utilizată in electronica de putere numai pentru relizarea convertoarelor C.C-C.C cu funcționare în patru cadrane. Această topologie este folosită pentru obținerea invertoarelor, a rederesoarelor PWM și a filtrelor active monofazate.

Puntea H este formata din doua brațe de punte A si B, fiecare braț fiind construit din cate două tranzistoare de putere BJT(transistor cu jonctiune bipolar ), legate îin serie prevazute cu diode de descarcare in parallel 1N4148. S-a ales o punte cu tranzistoare BJT.

Tranzistoarele din brațul A au fost notate cu T1,T2, iar cele din brațul B cu T3,T4. Diodele in antiparalel cu fiecare transistor au fost notate cu aceleași cifre dupa cum urmează D1,D2 pentru brațul A si D3,D4 pentru bratul B. Alimentarea structurii se face de la o singură sursă care furnizează tensiunea continuă Ud. Cât mai aproape de puntea H se prevede obligatoriu capacitatea Cd , care pe langa rolul de filtru al tensiuni, are funcția importantă de a prelua energiile descarcate din câmpul inductantelor de sarcina dupa fiecare comandă de blocare a tranzistoarelor. Având în vedere ca tranzistoarele comuta in timpi foarte scurți trebuie utilizate condensatoare cu rezistenta serie echivalenta (Low ESR ).Punctele mediane ale celor doua brațe s-au notat cu A respective B. Tensiunea de la ieșirea convertorului este notata cu Ue, iar curentul cu Ie.

Comanda tranzistoarelor din fiecare braț se face cu o pereche de semnale modulate în lățime (PWM) complementare. În funcție de cum sunt corelate comenzile celor doua brate A si B pot fi puse in evidență doua tehnici(strategii) de comanda a puntii H:

Comanda PWM cu o comutație bipolara a tensiunii la ieșirea punții;

Comanda PWM cu o comutație unipolară a tensiunii la iesirea punții;

Pentru o comandă PWM cu o combinație bipolară a tensiunii sunt grupate în perechi tranzistoarele de pe diagonal punții T1 cu T4 , respective T2 cu T3. Astfel când va fi comandată pentru deschidere perechea (T1,T4) va fi blocată perechea (T2,T3) și viceversa.

În consecința pentru cele patru tranzistoare sunt necesare doar doua semnale de comandă modulate în lățime: PWM1 pentru perechea T1,T4 si PWM2 pentru perechea T2,T3. În practică se folosesc semnale PWM complementare cu timp mort. Este o strategie de comandă simpla și usor de implementat motiv pentru care este utilizată pe o scara largă în practică, chiar daca este mai putin performantă.

Pentru aceasta comandă pot fi puși în evidență 4 subcicli de funcționare ai punții H pe durata unei perioade de comutație Tc.

Descrierea componentelor folosite pentru relizarea plăcii de dezvoltare:

Puntea H este realizată din 2 tranzistoare PNP BC327 și 2 tranzistoare NPN BC337

Partea de senzori a placii este realizată conform schemei electrice descriese mai jos și anume din 3 perechi de senzori infraroșu TX (Transmitter) și RX (Reciver) plasați în partea din față a robotului respectiv stanga și dreapta pentru a realize funcția de detecție a obstacolelor frontale.

Conform codului culorilor din schema electrica vom alege rezistentele R1 de 150 Ohmi si R2 de 22K. Tensiunea de iesire (OUTPUT) variaza intre 0 si 4V în funcție de tipul obstacolului și distanta față de acesta. Ea tinde la 4v atunci când este la o distanță foarte mică de un obstacol

Fig.20 Schema electrica Senzori

Tensiune de ieșire a senzorului RX este recepționată de ADC (convertorul analog digital) de la microcontrolerul AVR Convertorul Analog Digital de AVR va converti tensiunea de ieșire intr-o valoare digitală pe 10 bit, care variază de 0 – 700. Astfel, exista posibilitatea să citim ADC pentru a afla la ce distanță se afla obstacolul.

Placa minirobotului

Principalul microcontrolor este de tip AVR pe 8 biți de la Atmel; ATmega16. Conține multe trăsături caractersitice microcontrolorului modern cum ar fii:

– Convertizorul Analog Digital(ADC) pe 10 biti, programul Flash de memorie 8Kb cu 10000 cilcluri ștergere-scriere, Data EEPROM de 512 bytes si RAM 512 bytes.

– Frecvența internă a ceasului de 16MHz.

– 5 Porturi Intrare/Ieșire pe 3 pini cu 5 canale programabile. Acestea se poate intrebuinta ca port digital de intrare, port digital de ieșire și port analog de intrare. Alimentarea se face la o tensiune normal de 5V

– Conține un port pentru conectarea Receptorului Infraroșu cu frecvența de 38KHz. Acesta este desemnat să participe cu Semnalul Serial de primire(RxD) către dispozitivul exterior de comunicare.

– Piezodifuzor pentru semnale sonore.

– 4 comutatoare pentru apasare(switch-uri).

– Comutator de restartare.

– 2 indicatoare LED active atunci cand logic este “1”.

– 2 canale pentru motoare in curent continuu alimentate la o tensiune de 5 V

– Alimentarea se face la o baterie de 5 V.

Descrierea funcționării plăcii de baza a minirobotului

Piesa principală o constituie microcontrolorul ATmega16.

Functionează la o frecvență de 16MHz .

Toate porturile pot fii programabile pentru intrare/ieșire analogă sau digitală. Semnalele analoge din porturile PC0 -PC4 trec prin Convertorul Analog Digital . Rezoluția conversiei este de 10 biți.

Porturile PB3,PB4 și PB5 sunt porturi Programare In Sistem.

Pinul PC6/Reset este conectat cu comutatorul RESET pentru restartarea operațiilor microcontrolorului de catre utilizator.

Pinul PD0/RxD este receptor serial. Participă cu conectorul IRM(Senzorul Infraroșu) și portul de comunicare pe 5 pini Serial.

Pinul PD1/TxD transmite serial. Participă la activarea LED5(etichetat IND2) și a pinului TxD.

Pentru LED4(IND1) este conectat direct la PC5 cu rezistor de limitare a curentului.

Placa de baza a minirobotului conține și 2 comutatoare conectate la PD2 și PD3 activând un rezistor de 4.7kΩ care seteaza nivelul logic”High” într-o operație normală și schimbă la nivelul logic “Low” sau “0” cand este apăsat comutatorul. Pinul PD4 este conectat la un Piezo difuzor de capacitate 10μF. De asemenea pe placă se mai găsește si dispozitivul pentru controlul motorelor de current continu si anume circuitul H-Bridge alcatuit din tranzitorii bipolari NPN(BC 337) si PNP(BC 327) si diodele ultra rapide 1N4148. Un dispozitiv circuit motor current continu necesită 3 pini semnal pentru funcționare “A”( pinii PC6 și PC0) și “B” ( pinii PC7 și PC5) sunt intrări pentru aplicarea semnalului și selectarea sensului de rotație a motorului. E(pinii PB1 și PB2) sunt folosiți pentru activarea și dezactivarea funcționării circuitului dispozitiv. Prin aplicarea semnalului PWM la acești pini se poate controla și viteza motorului.Daca semnalul PWM(Pulse Width Modulation) are lărgime înseamna ca nivelul”high” a fost trimis către ieșirea motorului. Circuitul de alimentare este de tip întrerupător.

Alimentarea circuitului microcontrolerului se face la o tensiune de +5V.

Manipularea întreruperilor și resetărilor

AVR furnizează mai multe tipuri de întreruperi. Aceste întreruperi și vectorul de resetare au câte un vector de proram fiecare aflat în spațiul memoriei de program. Tuturor întreruperilor le sunt alocate individual biți care trebuiesc scriși logic o dată cu bitul GIE în starea registrului în scopul de permite întreruperea. În funcție de starea în care se află Program Counter-ul, întreruperile pot fi invalidate, atunci când BLB 02 sau BLB12 sunt programate .Această rubrică îmbunatățește securitatea.

Cele mai joase adrese din memoria de program sunt definite ca vectori de resetare și întrerupere. În funcție de listă se determină și nivelurile de prioritate ale diferitelor întreruperi. Cu cât intreruperea are nivelul mai jos cu atât prioritatea este mai mare. RESET are cea mai mare prioritate, iar după aceasta este INTO-cererea de întrerupere externa 0. Vectori de întrerupere pot fi mutați la începutul secțiunii Boot Flash prin setarea bitului IVSEL din registrul global de control al întreruperilor (GICR). Vectorul de RESET poate fi deasemenea mutat la începutul aceleiași sectiuni prin programarea BOOTRST.

Când se întampla o întrerupere GIE bitul I este șters și toate întreruperile sunt invalidate. Utilizatorul de software poate scrie 1 logic în bitul I pentru a permite executarea întreruperilor. Toate întreruperile permise pot, la randul lor, întrerupe întreruperile de rutina. Bitul I este automat corectat când RETI este executat.

Sunt practic două tipuri de întreruperi . Primul tip este declanșat (dat) de evenimentele care setează indicatorul de întrerupere. Pentru aceste întreruperi Program Counter-ul este trimis la vectori de întrerupere în scopul executări întreruperi de rutină și hardware-ul sterge indicatorul de întrerupere corespunzator. Indicatorul de întrerupere poate fi șters și prin scrierea 1 logic. Dacă se întampla o întrerupere în timpul în care bitul care permite întreruperea este șters, atunci indicatorul de întrerupere va fi setat să retină întreruperea pană când aceasta va putea fi permisă , sau indicatorul este șters de software. În caz similar se procedează atunci cand este vorba de ștergerea indicatorului GIE (Global Interrupt Enable) .

Cel de-al doilea tip de întreruperi este dat atâta timp cât condiția de întrerupere este prezentă. Aceste întreruperi nu au neapărat indicator de întrerupere. Daca condiția de întrerupere dispare înainte ca întreruperea să fie permisă, întreruperea nu va mai fi executată.

Cand AVR iese dintr-o întrerupere se intoarce la programul principal și mai execută o data instrucțiunile înainte de a interveni alta întrerupere.

Starea registrului nu este automat stocat cand apare o întrerupere de rutină, nici cand revine din întreruperea de rutină. Acesta trebuie susținut de software.

Când se folosește instrucțiunea CLI pentru invalidarea întreruperilor, întreruperea va fi invalidată imediat. Nici o întrerupere nu va mai fi executată după acționarea instrucțiuni CLI, chiar dacă se întamplă simultan cu instrucțiunea CLI. În exemplu următor se arată cum aceasta poate fi folosită pentru evitarea întreruperilor în timpul scrieri memoriei EEPROM. Când se folosește instrucțiunea SEI pentru a permite întreruperi, instrucțiunea SEI este rulată înaintea oricarei instrucțiuni aflate în asteptare, așa cum se arată în exemplu.

Memoria

ATmega 16 AVR are două spații de memorie principală, spațiul pentru Memoria de Date și pentru Memoria de Program. În plus, ATmega16 are și o

memorie nevolatilă EEPROM pentru memorarea datelor. Toate cele trei tipuri de memorie sunt cu adresare liniară.

Fig.21 Memoria de program

ATmega 16 conține o memorie flash reprogramabilă (In-system On-chip) de 16 Ko pentru programe. Deoarece toate comenzile pentru AVR sunt de 16 și 32 biți, Flash-ul este organizat ca 8Kx16. Pentru securitatea software-ului , spațiul pentru memoria de programe Flash este împarțit în doua secțiuni: secțiunea de program boot și secțiunea pentru programe de aplicație.

Memoria Flash suportă cel putin 10000 de cicluri de scriere/ ștergere. Counter-ul programului de la ATmega 16 (PC) are o lungime de 13 biți, ceea ce permite adresarea unei memorii de 8*1024 locații de 16 biți.

Memoria de date SDRAM

Figura de mai jos arată cum este organizată memoria SDRAM ATmega 16. Primele 96 de locații se referă la Fișierul de Registre, și urmatoarele 1024 de locații sunt dedicate datelor interne SDRAM.

Registrele generale 26, 27, 28, 29, 30, 31 pot fi utilizate cu denumiri specifice:

R26: X octet inferior R27: X octet superior

R28: Y octet inferior R29: Y octet superior

R30: Z octet inferior R31: Z octet superior

Fig.22 Memoria de date SDRAM

Memoria de date EEPROM

ATmega 16 conține 512 octeți de memorie de date EEPROM. Este organizată ca spațiu separat de date, în care pot fi citiți și scriși biți individuali. EEPROM-ul are o durata de viața de cel putin 10,000 de cicluri scriere/ștergere.

Când se citește EEPROM, CPU este oprit timp de patru perioade de ceas înainte ca următoarea comanda să fie executată. Când se scrie EEPROM, CPU este oprit timp de două perioade de ceas înainte ca următoarea comandă să fie executat.

Spatiul de memorie I/O

Toate I/O-urile de la ATmega 16 și perifericele sunt plasate în spațiul I/O. Locațiile I/O sunt accesate de către comenzile IN și OUT , transferând datele dintre cei 32 de regiștrii de lucru și spațiul I/O. Regiștrii I/O cuprinsi între valorile adreselor $00 – $1F sunt direct accesate folosind comenzile SBI și CBI. La acești regiștrii valoarea biților unici poate fi verificată utilizând comenzile SBIS și SBIC.

Când se utilizează instrucțiunile specifice IN și OUT, trebuie folosite adresele I/O din zona $00 – $3F. Când se adresează/accesează regiștrii I/O ca spațiu de date cu instrucțiunile LD și ST, trebuie adaugat la aceste adrese, $20, adica salt peste zona regiștrilor de uz general.

3.3 Motoare,senzori,afișaj

Motor

Partea de acționare a plăcii microcontrolerului constă în circuitul specializat H-Bridge . Acesta este capabil sa controleze 2 motoare de c.c. în ambele sensuri de rotație sau un motor pas cu pas. Placa de dezvoltare conține două punți H capabile să furnizeze în regim constant 600 mA per canal, iar în regim puls aproximativ 1 A.

În general, sunt similare în construcție cu generatoarele de curent continuu. Ele pot, de fapt să fie descrise ca generatoare care „funcționează invers”. Când curentul trece prin rotorul unui motor, este generat un câmp magnetic care generează o forță electromagnetică, și ca rezultat rotorul se rotește. Acțiunea periilor colectoare și a plăcuțelor colectoare este exact aceiași ca la generator. Rotația rotorului induce un voltaj în bobinajul rotorului. Acest voltaj indus are sens opus voltajului exterior aplicat rotorului. În timp ce motorul se rotește mai rapid, voltajul rezultat este aproape egal cu cel indus. Curentul este mic, și viteza motorului va rămâne constantă atât timp cât asupra motorului nu acționează nici o sarcină, sau motorul nu efectuează alt lucru mecanic decât cel efectuat pentru învârtirea rotorului. Când asupra rotorului se aplică o sarcină, voltajul va fi redus și un curent mai mare va putea să treacă prin rotor. Astfel, motorul este capabil să primească mai mult curent de la sursa care îl alimentează, și astfel să efectueze mai mult lucru mecanic.

Deoarece viteza rotației controlează trecerea curentului prin rotor, mecanisme speciale trebuie folosite pentru pornirea motoarelor cu curent continuu. Când rotorul se află în repaus, el, efectiv, nu are nici o rezistență, și dacă voltajul

normal este aplicat, va trece un curent mare, ceea ce ar putea avaria periile colectoare sau motorul. Mijloacele obișnuite pentru prevenirea acestor accidente este folosirea în serie a unei rezistențe, la început, împreună cu rotorul, pentru a limita curentul până când motorul începe să dezvolte un curent suficient. Pe parcurs ce motorul prinde viteză, rezistența este redusă treptat, fie manual ori automat.

Viteza cu care un motor cu curent continuu funcționează, depinde de puterea câmpului magnetic care acționează asupra rotorului, cât și de curentul rotorului.

Cu cât este mai puternic câmpul magnetic, cu atât este mai mică rata rotației necesare să creeze un curent secundar necesar pentru a contracara curentul aplicat. Din acest motiv viteza motoarelor cu curent continuu poate fi controlată prin variația câmpului curentului. Motoarele folosite sunt de tip curent continuu de tip reductor cu raport de transmisie de 48:1 alimentate la o tensiune de 4.2 V și o intensitate de 600 mA.Dezvoltă un cuplu de 0,32 mN*m la pornire și 0,1 9 mN*m în regim normal, dezvoltă 200 rot/min .Motorul are următoarele componente:

Rotorul este format din tablă de siliciu cu bobinaj sârmă de cupru cu diametrul Φ 0.1 mm Statorul este format din tablă de siliciu și este bobinat cu sârmă de cupru cu diametrul Φ 0.1 mm.

Diametrul interior al statorului este de 15.2 mm iar cel exterior de 20mm 2 lagăre realizate din bronz grafitat.Acestea au rol de sustinere, centrare și rostogolire

a rotorului. Pinion din plastic fixat pe axa rotorului prin presare.Presarea este datorată elasticitații plasticului.O a doua montare a pinionului nu mai are rezistența corespunzătoare și se utilizează altă metodă prin folosirea unor adezivi.

Dinamica minirobotului cu doua roti

Pentru a specifica situarea instantanee a robotului în mediul în care se deplasează, stabilim o relație de legătură între sistemul de referință f și sistemul de axe curent,atașat corpului robotului

• Planului I se atașează sistemul de referință fix X000Y0.

• Corpului robotului i se atașează sistemul de axe XRORYR, în punctul P

• Corespunzător poziției inițiale a robotului, se consideră notația XR0OR0YR

Fig.23 Model cinematic robot cu 2 roți

Calculul de miscare a robotului are nevoie de urmatoarele etape:

1. Determinarea mărimilor necesare efectuării calculului(dimensiuni ale robotului; unghiul de orientare al robotului).

2 Se atașează robotului un sistem de axe și se măsoară unghiul de rotație al sistemului curent în raport cu sistemul inițial de referință. C.I.R (centrul instantaneu de rotație) este la intersecția axelor roților pentru cele 2 poziții.

Punctul de contact al fiecărei roți trebuie să se rotească cu aceași viteză unghiulară Ω în jurul centrului instantaneu de rotație.

Fig. 24 Determinarea C.I.R

3. Determinarea vitezei unghiulare Ω, a robotului

v1=ω1r=Ω(R+L/2)

v2=ω2R=Ω(R-L/2)

Rezultă

Ω=(v1-v2)/L

R=L(v1+v2)/(v1-v2)

• Pentru traiectoria rectilinie

v1=v2 Ω=0 și R=∞

Fig.25 Traiectoria rectilinie

• Pentru traiectorie circulară cu raza R- relațiile sunt cele prezentate anterior.

Se determină experimental că:

L=10 cm

v1=0.5m/s și v2=0.3 m/s Ω=2 rad/ și R=16 cm

• Pentru pivotarea în jurul roții

v1=v2 Ω=0

R=∞

Fig.26 Pivotarea in jurul rotii 2

• Pentru pivotare( rotație în jurul axei verticale centrale)

v2=-v1=>Ω=2v1/L=-2v2/L

R=0

v1=ω1r=Ω(R+L/2)

v2=ω2r=Ω(R-L/2)

Rezultă Ω=(v1-v2)/L

R=L(v1+v2)/(v1-v2)

Viteza liniară a robotului este: v=Ω R=(v1+v2)/2=0.4 m/s

Fig.27 Pivotarea in jurul axei vertical

Fig.28 Deplasarea minirobotului

vy(t)=v(t)sin(θ(t));

Prin integrare se obține

x(t)= dt+x0;

y(t)= dt+y0;

θ(t)= dt+x0;

Ω=(v1-v2)/L

R=L(v1+v2)/(v1-v2)

v=ΩR=(v1+v2)/2

Senzorii folosiți în echiparea minirobotului

Senzorul infraroșu

Un senzor special folosit pentru evitarea obstacolelor este senzorul infraroșu care prezintă urmatoarele caracteristici tehnice:

Folosește principiul de reflexie al luminii infraroșii pentru măsurarea distanței,

Raza de acțiune este intre 4 și 20 de cm.

Alimentarea se face la o tensiune de 4,5 pâna 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.

Interfata sa prezinta 3 fire: alimentarea(Vcc), masa(GND) și tensiunea de ieșire(Vout) și necesită un conector JST de 3 pini.

Modul de funcționare:

Principiul care stă la baza acestei metode de masurare folosite de senzorul Infrarosu se bazează pe formarea unui triunghi între Emițătorul de rază infraroșie, punctual de reflexie și detectorul de infraroșu. Astfel, emitatorul emite un puls de lumina infrarosie. Lumina străbate campul 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 nici un 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 eetector, ca în figura urmatoare:

Fig. 29 Pereche senzori TX RX –Detectie

Prin conexiunea senzorului infraroșu cu Convertorul Analog Digital rezulta datele digitale care sunt convertite în distanțe corecte cu ajutorul softului de programare.Astfel pentru o valoare de 0100110011 (binar), 307(zecimal ) corespunde o distanța de 8 cm.

R = (2933 / (V + 20)) – 1

R=distanța in cm.

V=datele anlogice din conversia analog/digitală.Intervalul este intre 0 și 1,023

Afișaj cu cristale lichide

Afișajul cu cristale lichide ( Liquid Crystal Display, prescurtat LCD) este un dispozitiv de afișare pentru litere, cifre, grafică și imagini, fiind constituit dintr-o matrice de celule lichide care devin opace sau își schimbă culoarea sub influența unui curent sau câmp electric. Din punc de vedere fizic fenomenul se explică prin proprietatea cristalelor lichide de a influența direcția de polarizare a luminii atunci

când ele sunt puse sub o anumită tensiune electrică. Afișajele cu cristale nu produc ele însele lumină și au un consum de energie foarte mic. Un afișaj LCD se prezintă sub forma unui ecran afișor (display) care este comandat electronic printr-un decodificator de caractere numerice și alfabetice. Este folosit frecvent în construcția ceasurilor digitale (ceasuri care au în locul acelor arătătoare un afișor de tip LCD), la afișările de date la mașini CNC, mașini de uz casnic, inscripții și semnalizări electronice.

Cristalele lichide sunt, în cazul de față, combinații chimice de natură organică aflate în stare lichidă. Ele au proprietatea de a putea fi comandate de o corespunzătoare tensiune electrică, astfel încât își ordonează moleculele trecând de la stare „transparentă” la stare „netransparentă”. Concret, este vorba de o polarizare electrică a unor molecule lichide care în contrast cu restul „câmpului” formează o imagine vizibilă.

Poate afisa pana la 32 de caractere dispuse pe 2 linii -16 caractere/linie.

Este un senzor LCD care comunică cu microcontrolerul printr-o interfață serială.

Acceptă date transmise serial la la o frecvență de 2400 sau 9600 bps(biți pe secundă) cu format data 8N1(8 biți de date nici un bit de paritate și un bit de oprire).

Acceptă nivelul TTL sau RS-232 prin selectarea a 2 jumperi. Suportă controlerul standard LCD HITACHI HD44780 sau SEIKO EPSON SED1278 compatibil.Caracter LCD-urile folosesc un standard de 14-pini interfață și cele cu iluminare avea 16 pini. The pinouts are as follows: Pinouts sunt după cum urmează:

GND

VCC (+3.3 to +5V) VCC (3.3 – 5 V)

Contrast adjustment (VO) Ajustare de contrast (VO)

Register Select (RS). Inregistreaza Selectați (RS). RS=0: Command, RS=1: Data RS = 0: Command, RS = 1: Date

Read/Write (R/W). Citire / scriere (R / W). R/W=0: Write, R/W=1: Read R / W = 0: Scrieți, R / W = 1: Citește

Clock (Enable). Ceas (Enable). Falling edge triggered Descrescător declanșat

Bit 0 (Not used in 4-bit operation) Bit 0 (Nu este utilizat în 4-bit)

Bit 1 (Not used in 4-bit operation) Bit 1 (Nu este utilizat în 4-bit)

Bit 2 (Not used in 4-bit operation) Bit 2 (Nu este utilizat în 4-bit)

Bit 3 (Not used in 4-bit operation) Bit 3 (Nu este utilizat în 4-bit)

Bit 4 Bit 4

Bit 5 Bit 5

Bit 6 Bit 6

Bit 7 Bit 7

Backlight Anode (+) Anod iluminare din spate (+)

Backlight Cathode (-) Iluminare din spate cu catod (-)

. Ar putea fi, de asemenea, un cod PIN iluminare de fundal unic, care să facă legătura cu celelalte prin intermediul solului sau pinul VCC. Cei doi pini de fundal poate preceda PIN 1. Este operațional la o tensiune de alimentare de 5 volți. Conectorul de interfață are :+5 V tensiune de alimentare(+), intrare serială a datelor(S) și masa(G). Majoritatea caracterelor LCD nu pot fii schimbate deoarece sunt înmagazinate în memoria ROM. Primele 8 simboluri care corespund ASCII 0..7 sunt înmagazinate în memoria RAM(CGRAM).Ele sunt afișate în mărimea 5 cu 8 puncte.

Fig.30 Detalii despre selectarea jumperilor

Numărul de caractere pe linie.Se poate seta 8 caractere sau 16 caractere pe linie.

Rata de transfer a datelor.Se poate seta 9600 biți pe secundă sau 2400 biți pe secundă cu formatul datelor de tip 8N1(8 biți de date nici un bit de paritate și un bit de stop).

3.4 Interfata de comunicare

Sistemele de calcul pot să comunice în două moduri: paralel și serial. În modul paralel, de obicei se utilizează 8 sau mai multe linii (cabluri). Exemple de utilizare a comunicației paralele sunt imprimanta sau hard discul.

Comunicația paralelă se utilizează doar pentru distanțe foarte scurte (câțiva metri). Motivul este de fapt că pentru cablurile lungi, semnalele sunt atenuate și pot apare distorsiuni. În plus nu este deloc de neglijat costul cablurilor și problemele ce pot apare la conexiuni. Avantajul comunicației paralele este viteza mare de transmisie.

Comunicația serială este utilizată pentru sisteme aflate la mare distanță intre ele.

Comunicația serială utilizează un număr redus de cabluri. În comunicația serială, datele transmise trebuie serializate la transmisie și deserializate la recepție. Pentru aceasta, la transmisie se utilizează un registru paralel-serie iar la recepție un registru serie-paralel.

RS232 este un protocol asincron serial de comunicație utilizat pe scară largă în computere și sisteme digitale. Se numește asincron pentru că nu există nici un semnal separat de ceas de sincronizare astfel cum există în alte protocoale de serie cum ar fi SPI și I2C. Protocol este de așa natură încât să sincronizeze automat în sine. Putem folosi RS232 pentru a crea cu ușurință o legătură de date între microcontroler noastre și un PC standard sau alt sistem de comunicație serială capabil, și anume LCD.În comunicarea de serie întreaga unitate de date, sa spunem un octet, este transmisa bit cu bit . În timp ce în transmiterea în paralel, intreaga unitatea de date sa spunem un octet (8biti) sunt transmisi toti odată. Evident, comunicatia seriala necesită un singur fir în timp ce transfer paralel necesită fire cât de multe sunt în unitatea noastră de date. Deci, transferul paralel este utilizat pentru a transfera date în raza de acțiune scurtă (de exemplu, în interiorul calculatorului între cartela de grafică și CPU), în timp ce transferul de serie este de preferat în rază lungă. Ca și în transmiterea de ordine de un singur fir este folosit pentru

transferul de date. Modificările la nivel logic în funcție de biți a fi transmise (0 sau 1).Lungimea unui cuvânt de date este variabilă. Pe PC-uri cu o lungime între 5 și 8 biți pot fi selectate. Această lungime este de informații lungimea netto a fiecărui cuvânt.

Pentru transfer corespunzătoare biti suplimentare sunt adăugate în scopuri de sincronizare și verificarea erorilor. Este important, ca transmitator si receptor folosi același număr de biți. În caz contrar, cuvântul de date poate fi interpretat greșit, sau nu recunoscute la toate. În RS232 există două linii de date RX și TX. TX este de sârmă în care datele sunt trimise către alte device.RX este linia în care celălalt aparat pune datele pe care le necesitatea de a trimis la aparat.

3.5 Microcontrolerul ATMega16.

ATmega 16 este un microcontroler CMOS de 8 – biți de mică putere bazat pe arhitectura RISC AVR imbunatațita.

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 intr-o singura instrucțiune. Se obține astfel o eficiența sporita in execuție (de pana la zece ori mai rapide decat microcontrorelerele convenționale CISC).

Caracteristicile principale ale acestuia sunt:

-16KB de memorie Flash reinscriptibilă 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 biti, 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).

Structura internă generală a controlerului este prezentată în figură. Se poate observa 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. Aceste ultime module sunt controlate de un set special de registre, fiecare modul având asociat un număr de registre specifice.

Memoria Flash de program împreună cu întreg blocul de extragere a instrucțiunilor, decodare și 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 controlerului să execute instrucțiunile foarte rapid.

Modul Power-down salveaza conținutul registrelor, dar blocheaza Oscilatorul, dezactivând toate celelalte funcții al chip-ului pană la urmatoarea Intrerupere Externa sau Reset hardware. In modul Power-save, timer-ul asincron continua sa mearga, permițind user-ului sa mențina o baza de timp in timp ce restul dispozitivului este oprit.

In modul Standby , Oscilatorul funcționează în timp ce restul despozitivului este oprit. Acest lucru permite un start foarte rapid combinat cu un consum redus de energie. In modul standby extins(Extended Stanby Mode), atat Oscilatorul principal cat și timer-ul asincron continuă să funcționeze.

Memoria flash (On-chip) permite să fie reprogaramată printr-o interfață serială SPI , de catre un programator de memorie nonvolatilă convențional, sau de către un program de boot On-chip ce ruleaza pe baza AVR. Programul de boot poate folosi orice interfata pentru a incarca programul de aplicație in memoria Flash .

Combinând un CPU RISC de 8 biți cu un Flash In-system auto –programabil pe un chip monolithic, ATmega 16 este un microcontroler puternic ce ofera o solutie extrem de flexibilă și cu un cost redus în comparație cu multe altele de pe piața.

ATmega 16 AVR este susținut de o serie completa de instrumente de program și de dezvoltare a sistemului, care include: compilatoare C, macroasambloare, programe debug/ simulare etc.

Descrierea Pinilor pentru mictrocontrolerul ATmega16 :

Fig.31 Schema pini Atmega16

VCC – Sursa de curent

GND – Masa

Port A (PA7 .. PA0)

Port-ul A servește drept port de intrări analogice pentru Convertorul A/D.Port-ul A serveste de asemenea și ca un port bidirecțional I/O de 8 biți,în cazul în care Convertorul A/D nu este folosit.

Pinii de port pot fi conectați opțional la VCC prin rezistori interni, (selectați pentru fiecare bit). Buffer-ele de ieșire ale Portului A au caracteristici de amplificare .

Port B (PB7.. PB0)

Portul B este un port I/O de 8 biți bidirecțional cu rezistori interni (opționali).Buffer-ele de ieșire ale Port-ului B au caracteristici de amplificare.

Port-ul B indeplinește de asemenea funcții speciale ale microcontrolerului ATmega 16.

Port C (PC7…PC0)

Portul C este un port I/O de 8 bțti bidirecțional cu rezistori interni (opționali).Buffer-ele de ieșire ale Port-ului C au caracteristici de amplificare.

Daca interfața JTAG (de depanare) este activată, rezistorii pinilor PC5(TDI), PC3(TMS) si PC2(TCK) vor fi activați, chiar daca are loc o resetare.

Port-ul C indeplinește de asemenea funcții ale interfeței JTAG și alte funcții speciale ale ATmega 16.

Port D (PD7…PD0)

Portul D este un port I/O de 8 biți bidirecțional cu rezistori interni conectați optional la VCC (selectați pentru fiecare bit). Buffer-ele de output ale Port-ului D au caracteristici de amplificare. Port-ul D indeplinește de asemenea funcții speciale ale ATmega 16.

Reset

Un nivel scăzut la acest pin mai mare ca durată decat o valoare prestabilită, va genera o inițializare.

XTAL 1: Intrare pentru amplificatorul inversor al Oscilatorului;

XTAL 2: Ieșire pentru amplificatorul inversor al Oscilatorului.

AVCC: AVCC este pin de alimentare pentru Port-ul A si Convertorului A/D. Trebuie conectat extern la Vcc, chiar dacă ADC nu este folosit. Daca ADC este folosit , ar trebui conectat la Vcc printr-un filtru trece -jos.

AREF :AREF este pinul de referința analogica pentru Convertorul A/D

Nucleul CPU AVR

În aceasta parte se discută despre arhitectura, nucleului AVR, în general. Funcția principală a nucleului CPU este aceea de a asigura execuția corectă a programului. Din acest motiv , nucleul CPU este capabil să acceseze memoriile, execute calcule, controleze perifericele și sa controleze întreruperile.

Fig. 32Diagrama bloc a nucleului CPU AVR

Pentru a maximiza performanța ,AVR folosește o arhitectura Harvard: -cu memorii separate și magistrale pentru program și informații. Instrucțiunile din memoria programului sunt executate într-un singur nivel în timp ce o instrucțiune este executată, urmatoarea este preadusa de la memoria de program. Acest concept permite executarea instrucțiunilor la fiecare ciclu de ceas. Memoria de program este o memorie flash reprogramabilă.

Cel mai accesat registru conține 32×8 biți, scopul este de a accesa registrele într-un singur ciclu de ceas .Acest singur timp de acces se datorează unitați ALU (Aithmetic Logic Unit). Într-o tipică unitate ALU operația are loc astfel: operanzi

sunt scoși din registru se efectuează operația si rezultatul este introdus în regiștri toate acestea într-un singur ciclu de ceas.

Șase din cele 32 de registre pot fi folosite ca trei registre de 16 biți cu acess indirect la informații, permitând astfel calcularea eficienta a adresei.Una dintre aceste adrese poate fi folosita pentru (tabele de cautare ), a cauta tabele, în memoria flash. Aceste noi funcții adaugate registrelor sunt la al 16 bit X, Y si Z descris mai tarziu in aceasta parte.

ALU efectuează (suportă) operații aritmetice și logice între registre sau între o constantă și un registru. După efectuarea unei operații aritmetice registrul afisează rezultatul operației.

Programul furnizează sărituri condiționate, necondiționate și apelări de instricțiuni capabile să acceseze tot spațiul de adresă. Majoritatea instruțunilor AVR sunt formate dintr-un cuvant 16 biti). Fiecare memorie de program conție o instrucține de 16 sau 32 de biți.

Spațiul memoriei flash de program este împarțit în două secțiuni, secțiunea BOOT și secțiune de aplicare a programelor. Secțiunea BOOT are biți speciali pentru protecția la scriere și citire/scriere. Instrucțiunea SPM cu ajutorul căreia se scrie în memoria flash de aplicații trebuie sa fie în secțiunea BOOT.

În timpul întreruperileor sau a apelări subrutinelor, adresa de întoarcere este conținuta pe Stack. Stack-ul este evectiv alocat în înformațiile generale SRAM și în consecință mărimea Stack-ului este limitată doar de marimea totală a SRAM și de uzura ei. Toți utilizatori de program trebuie să inițializeze SP(Stack Pointer) înainte ca subrutina sau întreruperea să fie executata. Stack Pointer-ul se poate citi/scrie în spațiul de I/O. Informațiile din SRAM pot fi accesate cu ușurința prin cele cinci moduri diferite de adresare suportate de arhitectura AVR.

Spațiile de memorie în arhitectura AVR sunt liniare și normale.

Modulele întreruperilor au registrele de control în spațiul I/O și în Status Register se afla bitul de întreupere globală. Toate întreruperile au prioritate în funcție de locul în tabelul de vectori de întrerupere ai întreruperilor lor. Cu cat este mai jos situat în tabel vectorul întreruperi cu atât acea întrerupere are prioritate mai mare. Prioritatea mai mare o are întreruperea cu vectorul cel mai slab plasat in tabel.

Spațiul de memorie I/O conține 64 de arese pentru funcțiuni periferice ale CPU ca: controlul registrelor, indicatorul SPI, sau alte funcții de I/O. Memoria I/O poate fi accesată direct sau indirect .

Cap. IV STRUCTURA SOFTWARE

4.1 Raționamentul de comandă

Comanda minirobotului se va face dupa urmatorul algoritm:

1.Pornim minirobotul;

2.Se citesc valorile de la senzori;

3.Se verifica daca exista un obstacol in fata;

4.In cazul in care sa intalneste un obstacol se va reliza manevra de evitare a acestui obstacol prin partea stanga, daca nu prin partea dreapta pana cand acel obstacol este depășit.In cazul in care nici nu obstacol nu va fi detectat roverul isi va continua miscarea fara a face nici o comanda de evitare.

4.2 Programarea minirobotului.

Microcontrolerul care echipează robotul, ATMEL ATmega16PI face parte din generațiile recente ale producătorului american și suportă programarea pe o platform standardizată pentru microcontrolerele AVR RISC pe 8 biți, folosind limbajul de programare C. Ca soft enumerăm AVR Studio pentru programarea microcontrolerului și un compilator CAVR 1 AVR Studio: program de simulare, soft dezvoltat de Corporația Atmel. Acest soft ruleaza sub Microsoft Windows95 și Microsoft Windows NT. Windows XP SP2 este recomandat acum.Fișierul compilat este de tip HEX și este coborît în memoria placii de baza cu ajutorul unei interfete USB ce va realize conectarea pc-ului cu placa de dezvoltare.

Instalarea AVR Studio

trebuie acceptați termenii de licență impuși de producator.

După instalarea și deschiderea programului va apare fereastra principală AVR

Studio care arată precum în figura de mai jos.În stânga sus se găsește fișierele și librăriile care sunt apelate în programul construit în C. În fereastra principală este scris programul C, iar dedesubt se află fereastra de execuție care arată starea proceselor care includ rezultatul compilat precum și erorile de compilație a fișierului HEX precum și alte mesaje de avertizare.Deasupra se află bara de meniuri

Pașii de dezvoltare a unui program C în AVR Studio sunt:

• Scrierea programului cu editorul text AVR Studio V4.0

• Compilarea codului C în codul de asamblare pentru microcontroller

• Downloadarea codului în memoria program a microcontrolerului

• Rularea programului de catre microcontroler.

De asemenea este necesar ca după instalarea softului fișerele librărie să fie

copiate separat într-un dosar pentru a fii apelate mai apoi de program.

Crearea programului C în AVR Studio

Din Project se selectează Configuration Options unde la iconul General se determină următoarele date astfel: dispozitiv atmega16 și frecvența de 16000000 Hz. Pentru apelarea librăriilor se selectează iconul Include Directories și se accesează folderul în care sunt localizate.

Link with These Objects.Se apasă butonul OK pentru terminare

Se scrie programul în fereastra principală și se compilează la menu Build opțiunea Build sau se apasă tasta F7.Dacă programul conține erori ne va apărea fereastra BUILD OUTPUT care conține numărul de erori și avertismente.Se repară erorile și mai apoi se compilează prin comanda TOOL →AVR Prog…

Este necesar ca pentru rularea programului robotul sa fie legat la pc prin cablul USB și comutatorul power să fie activ.

Programul comandă robotul prin intermediul comenzilor de la telecomanda. Aceastra transmite comenzile cu ajutorul semnalului IR recever-ului IR de pe placa de dezvoltare. Dupa care sunt trimise la microcontroller pentru a fi procesate in comenzi pe care acesta le va da celor 2 motoare. In functie de valorile citie de cei 3 senzori IR programul decide care va fi rupa pe care o va alege minirobotul pentru a depasi obstacolul depistat.

#include "mega16.h"

#include "serial.h"

#include "motor.h"

#include "LCD_control.h"

#include "timer.h"

#include "analogic.h"

#include "buzzer.h"

#include "in_out.h"

#include "compiller_specific.h"

#define GLOBAL_MAIN

#include "main.h"

stop_watch_2B time_main;

void main(void)

{

init_serial();

init_timer();

init_motor();

init_analogic();

init_buzz();

init_in_out();

#asm("sei");

stop_watch2B_set(&time_main, 1000);

run_mode = RUN_WITH_PC;

start_buzz(100); // sa bazie si el 100 ms la start

while(1)

{ analogic_task();

motor_task();

buzz_task();

in_out_task();

if(run_mode == RUN_WITH_PC)

{

if( input_up & 0x01 )

{ input_up &= ~0x01;

run_mode = RUN_ALONE;

LED4_ON();

}

else serial_task();

} else

if(run_mode == RUN_ALONE)

{

if( input_up & 0x01 )

{ input_up &= ~0x01;

run_mode = RUN_WITH_PC;

LED4_OFF();

clear_LCD();

}

else

{

test_LCD();

}

}

if(stop_watch2B_tst(&time_main) == TRUE) // periodic la 1 sec

{ stop_watch2B_set(&time_main, 1000);

}

} // end while(1) // se termina prima bucla While

}

#include <avr/io.h>

#include <util/delay.h>

#include "motor.h"

//Valorile de prag pentru declansarea senzorului

#define RTHRES 195

#define CTHRES 275

#define LTHRES 195

//Functie pentru initierea modulului ADC(Analog to Digital Convertor)

void InitADC()

{

ADMUX=(1<<REFS0); // Pentru Aref=AVcc;

ADCSRA=(1<<ADEN)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);

//Rrescalar div factor =128

}

//Functie pentru citirea canalului ADC

//Argument: Numar Canal intre 0-7

//Return Value : intre 0-1023

uint16_t ReadADC(uint8_t ch)

{

//Select ADC Channel ch must be 0-7

ch=ch&0b00000111;

ADMUX&=0b11100000;

ADMUX|=ch;

//Inceput Conversie singulara

ADCSRA|=(1<<ADSC);

//Asteapta terminarea conversei

while(!(ADCSRA & (1<<ADIF)));

//Clear ADIF by writing one to it

//Note you may be wondering why we have write one to clear it

//This is standard way of clearing bits in io as said in datasheets.

//The code writes '1' but it result in setting bit to '0' !!!

ADCSRA|=(1<<ADIF);

return(ADC);

}

/*Functie de asteptare

Argument: NONE

Return Value : NONE

*/

void Wait()

{

uint8_t i;

for(i=0;i<10;i++)

_delay_loop_2(0);

}

void main()

{

//Initializare motor subsystem

MotorInit();

//Init ADCs

InitADC();

//Asteapta

Wait();

//Start miscare inainte

MotorA(MOTOR_CW,255); //Motor A (right motor) moves Clockwise

MotorB(MOTOR_CW,255); //Motor B (left motor) moves Clockwise

while(1)

{

//Variabila pentru stocarea valorilor senzorilor

uint16_t sensor_l,sensor_c,sensor_r;

//Citeste valori senzori

sensor_r=ReadADC(0);//Right Sensor

sensor_c=ReadADC(1);//Center Sensor

sensor_l=ReadADC(2);//Left Sensor

if(sensor_c > CTHRES)

{

//Start Rotating Left

MotorA(MOTOR_CW,255); //Motor A (right motor) moves Clockwise

MotorB(MOTOR_CW,255); //Motor B (left motor) moves Clockwise

//Now Rotate till Path is NOT Clear

while((sensor_r >(RTHRES-10)) || (sensor_c>(CTHRES-10)))

{

//Read Sensor Values

sensor_r=ReadADC(0);//Right Sensor

sensor_c=ReadADC(1);//Center Sensor

_delay_loop_2(30000);

}

//Now Path is Clear So Move Forword

MotorA(MOTOR_CW,255); //Motor A (right motor) moves Clockwise

MotorB(MOTOR_CCW,255); //Motor B (left motor) moves Counter Clockwise

}

if(sensor_r > RTHRES)

{

//Start Rotating Left

MotorA(MOTOR_CW,255); //Motor A (right motor) moves Clockwise

MotorB(MOTOR_CCW,255); //Motor B (left motor) moves Counter Clockwise

//Now Rotate Until Path is Clear

while(sensor_r >(RTHRES-10))

{

//Read Sensor Values

sensor_r=ReadADC(0);//Right Sensor

_delay_loop_2(30000);

}

//Now Path is Clear So Move Forword

MotorA(MOTOR_CW,255); //Motor A (right motor) moves Clockwise

MotorB(MOTOR_CW,255); //Motor B (left motor) moves Clockwise

}

if(sensor_l > LTHRES)

{

//Start Rotating Right

MotorA(MOTOR_CCW,255); //Motor A (right motor) moves Counter Clockwise

MotorB(MOTOR_CCW,255); //Motor B (left motor) moves Clockwise

//Rotestepana cand calea e libera

while(sensor_l >(LTHRES-10))

{

//Read Sensor Values

sensor_l=ReadADC(2);//Left Sensor

_delay_loop_2(30000);

}

//Now Path is Clear So Move Forword

MotorA(MOTOR_CW,255); //Motor A (right motor) moves Clockwise

MotorB(MOTOR_CW,255); //Motor B (left motor) moves Clockwise

}

_delay_loop_2(0);

}

}

Capitolul V. FIABILITATEA SISTEMULUI PROIECTAT

Evitarea defectării, realizată încă din faza de proiectare a instalației, presupune eliminarea sau cel puțin limitarea funcționării anormale, prin utilizarea de componente cu fiabilitate ridicată, alegerea unor regimuri de lucru cu solicitare redusă a componentelor etc. Cu toate acestea, experiența a demonstrat că defectările apar inevitabil, fie din cauza solicitărilor sistemului, fie din cauza îmbătrânirii în timp a componentelor.

Toleranța la defectări este o caracteristică structurală a sistemului care, prin arhitectura configurată, face posibilă funcționarea sa, chiar în condițiile apariției unor defecte. Realizarea toleranței la defectări este posibilă prin multiplicarea componentei hardware și/sau software, astfel încât funcțiile sistemului să nu fie afectate; în plus, este necesar ca detectarea și localizarea defectelor să fie afișată unui operator uman.

5.1. Definirea noțiunii și a indicatorilor de fiabilitate

Modelul matematic al fiabilității.

Reprezentarea proceselor de defectare și evaluarea fiabilității sistemului se realizează utilizând metodele statisticii matematice și teoriei probabilităților.

Fiabilitatea sau siguranța în funcționare reprezintă probabilitatea ca un produs să îndeplinească fără întrerupere o funcție precizată, în condiții date, pentru o anumită perioadă de timp. La abordarea analizei fiabilității unui sistem tehnic oarecare trebuie să se țină seama de etapele de desfășurare a analizei, etape ce sunt precizate prin structura din figura 6.1, unde s-au notat cu:

S – sistemul analizat fiabilistic;

Mf – modelul funcțional;

MF – modelul de fiabilitate;

DF – date de fiabilitate;

FS – fiabilitatea sistemului analizat.

Fig. 33 – Etapele analizei fiabilității

Pentru a analiza dinamica oricărui astfel de sistem, este necesar să se considere toate stările implicate din punct de vedere funcțional. Această considerare conduce la noțiunea de răspuns funcțional: stare de sistem, la nivel macroscopic, definită prin mărimi specifice sau parametri funcționali.

Această necesitate conduce la considerarea răspunsului sistemului,definit prin starea acestuia când se efectuează o anumită comandă (se cere realizarea uneia sau mai multor funcții). Acest răspuns poate fi precizat prin intermediul unor caracteristici funcționale: durată, deplasare, stare a unui element, amplitudinea, frecvența sau faza unui semnal etc.

Din punct de vedere funcțional, pentru toate răspunsurile posibile ale unui astfel de sistem, se poate face următoarea clasificare generală:

Răspunsuri corecte (în concordanță cu procesul):

– răspunsul ideal (I) este un răspuns optim, având o funcție de transfer egală cu unitatea;

– răspunsul perfect (P) are o funcție de transfer subunitară, însă cu valori ce se găsesc în domeniul de eroare specific măsurării sau controlului în sistem;

– răspunsul admisibil (A) are, de asemenea, o funcție de transfer subunitară, dar nu mai mică decât limita admisibilă pentru o funcționare considerată corectă.

Răspunsuri necorecte (în neconcordanță cu procesul):

– răspunsul eronat (E) are, de asemenea, o funcție de transfer subunitară, cu valori ce se găsesc sub limita ce corespunde unei funcționări corecte, fără a crea posibilitatea apariției unor evenimente grave în proces;

– răspunsul fals (F) se deosebește de răspunsul eronat numai prin faptul că poate crea posibilitatea apariției unor evenimente grave în proces (apariția lui trebuie evitată).

Pentru realizarea cu maximă eficiență a funcțiilor de protecție, în cadrul sistemelor cu mare răspundere funcțională, când este posibil în mod rațional, răspunsurile false sunt transformate în răspunsuri eronate.

Pe durata de existență a oricărei componente, în timpul funcționării echipamentului care o include, are loc un proces de uzură datorat, în primul rând, proceselor fizice și chimice care determină, inevitabil, o variație a parametrilor funcționali. Aceste procese au loc și în timpul când echipamentul nu funcționează propriu-zis, fiind în regim de așteptare; deteriorarea este permanentă, chiar și în condiții de depozitare sau conservare, evident, cu intensitate mai mică decât pe durata funcționării.

Prin urmare, deteriorarea componentelor se produce inevitabil, în general, cu viteze de variație diferite, din momentul ieșirii lor din procesul de fabricație până în momentul în care devin inutilizabile; toată această durată de existență, prin analogie cu organismele vii, se numește durată de viață.

În condiții reale de utilizare, componentele din structura echipamentelor sunt supuse unui ansamblu de solicitări. Pentru componentele electrice și electronice, ale echipamentelor pentru dirijarea circulației și navigației, principalele tipuri de

solicitări sunt electrice, termice și mecanice (șocuri, vibrații etc.). Prin urmare, solicitarea reală este complexă și constă în aplicarea unor energii, dintre care cel puțin una este utilă în regimul de funcționare a echipamentului respectiv.

Dar, în afară de energii, componentele sunt supuse și unor influențe ale materialelor care există în mediul ambiant: aer, vapori de apă, substanțe corozive etc. Prin pătrunderea acestora în masa componentelor se pot produce modificări ale

unor proprietăți fizice utile; ca și în cazul energiilor, aceste solicitări se manifestă printr-un proces de uzură (deteriorare).

Indicatorii statistici și indicatorii probabilistici ai fiabilității echipamentelor.

Analiza deteriorării pe baza proprietăților și proceselor fizice și chimice ale componentelor este extrem de laborioasă, iar evaluarea fiabilității pe această cale comportă un volum de încercări experimentale și de calcul excesiv de mare. Pentru acest motiv se recurge la o tratare utilizând metodele statisticii matematice si teoriei probabilităților. Astfel a apărut, și până în prezent s-a generalizat, conceptul probabilistic al fiabilității. În cadrul acestui concept se consideră defectările ca fiind evenimente a căror apariție se determină cantitativ, făra să intereseze cauzele singulare ale producerii lor. Dispărând legătura dintre procesele fizice si chimice (cauză) și deteriorare (efect), dispare și caracterul determinist al defectărilor. Caracterul aleatoriu rezultat, prin aceasta, este justificat și de numărul ridicat al elementelor de același tip ce există în electronică, domeniu în care s-au inițiat și s-au realizat cele mai avansate studii de fiabilitate.

Dacă se înregistrează numărul de defectări produse în unitatea de timp Δt (oră, zi, lună, an etc.), se poate trasa histograma frecvenței statistice de repartiție a defectărilor, a cărei expresie este:

unde Δn(t)/Δt este numărul de componente care s-au defectat în unitatea de timp, iar N este numărul total de componente supuse la încercare.

Reprezentarea grafică a acestei funcții statistice (ce are dimensiunea unei frecvențe) este redată prin linii continue unde ordonata poate fi marcată, de exemplu, în procente, iar abscisa în unități de timp convenabil alese.

Echivalentul statistic al probabilității de defectare, care se mai numește și proporția defectărilor, se determină prin însumarea valorilor frecvenței de repartiție a defectărilor într-un anumit interval de timp [0, t]:

unde s-a notat cu n numărul de componente care s-au defectat în intervalul de timp [0, t] considerat; se observă că acest parametru este adimensional.

Rata (intensitatea) statistică de defectare reprezintă o altă funcție și are dimensiunea t-1(ca și frecvența de repartiție a defectărilor, cu care se află în strânsă dependență). Spre deosebire de funcția f*(t), intensitatea de defectare se definește prin raportul dintre numărul de elemente defectate în unitatea de timp și numărul de elemente rămase în stare de funcționare (valide), la începutul intervalului de timp examinat.

Echivalentul statistic al probabilității de funcționare (funcției de fiabilitate) se obține cu ajutorul raportului dintre frecvența de repartiție a defectărilor și rata de defectare:

Prin analogie cu F*(t), acest parametru exprimă “proporția nedefectărilor” și, deasemenea, nu are dimensiuni fizice.

Media statistică a timpului de funcționare se obține cu ajutorul funcției f*(t):

unde ti – ti-1 = Δt = const. și reprezintă suma produselor dintre toate valorile timpului de apariție a defectărilor și frecvența de defectare, corespunzătoare acestor valori.

În afară de număr de ore (unități de timp) toți acești indicatori pot fi exprimați și prin număr de acționări, cicluri de funcționare, kilometri parcurși etc. (mărimi care sunt în relație directă cu timpul).

Valorile nominale ale parametrului de calcul λ0 , pentru fiecare tip de componentă a echipamentului (rezistor, diodă, tranzistor, circuit integrat etc.), se obțin îndeosebi prin:

încercări de fiabilitate (normale sau accelerate);

date statistice privind comportarea în exploatare (pentru componentele respective);

5.2 Calcul estimative de fiabilitate.

Pentru calculul de fiabilitate se utilizează tabelul de mai jos, care redă limitele domeniilor de valori pentru intensitatea (rata de defectare) nominală (ƛ0). Pentru conexiuni clasice cu conductoare metalice, monofilare sau lițate, se consideră că intensitatea de defectare este practic nulă; influența lor fiabilistă este inclusă prin capete la suduri cu fludor, conectori etc.

Se consideră β=1(echipament interior în încăperi amenajate unde temperatura, umiditatea și ceilalți factori climatici sunt specifici operatorilor umani)

~=0.1

Circuitul motorului:

Circuitul surselor de alimentare de 5 V:

Circuitul senzorilor de detectie :

5.3 Prețul estimativ al relizării practice.

Lista cu componentele utilizate pentru relizarea acestui proiect respective pretul componentelor sunt prezentate in tabelul urmator:

Pretul de achizitie al componentelor este de 323.21 RON/105 USD

DICȚIONAR EXPLICATIV DE TERMENI ȘI ABREVIERI

1.ATMS-sisteme avansate de management al traficului;

2.ATIS-sisteme avansate de informare a călătorilor;

3.AVCS-sisteme avansate de control al vehiculelor;

4.APTS-sisteme avansate pentru transportul public;

5.CVO-sisteme de operare pentru vehicule comerciale;

6.AICC-detectarea autonomă a accidentelor;

7.NODS-sisteme de detecție a obstacolelor apropiate;

8.PLC-controlere programabile logice;

9.PID- derivat integral proporțional;

10.PAD-asistență digitală personală;

11.VCD-video compact disc;

12.IO-input output;

13.RAM/ROM-memorie cu acces aleator/memorie read-only;

14.UC/MCU-microcontrolere;

15.GPS-sistem global pentru comunicații mobile;

16.EPROM- memorie read only programabilă și anulabilă;

17.EEROM-memorie read only programabilă electrică;

18.UART-receptor/transmițător asincron universal;

19.IR-senzor cu infraroșu;

20.LDR-rezistor dependent de lumină;

21.PC-calculator personal;

22.SPI-interfață serială periferică;

23.PWM-puls cu modulație;

24.ALU-unitate logică aritmetică;

25.Vcc-alimentare;

26.GND-masă;

27.Vout-ieșire;

28.LCD-afișor cu cristale lichide;

29.RATB-regia autonomă de transport;

30.JST- Japan Solderless Terminal.

BIBLIOGRAFIE

1. Iulian Badescu, Curs ATMEGA16, Curs Microcontrolere.

2. Mircea Nițulescu,[1998], Roboți mobili, Editura SITECH Craiova.

3. Gâlmeanu, C., Contribuții la sinteza roboților mobili cu 3 grade de mobilitate,

4 .Mihăiță Ardeleanu, Roboți industriali mobili, Curs.

5.Valerica Cimpoca,Aparatura optoelectronică, Curs.

6.Catalog pentru componente optoelectronice ,Băneasa SA,București

7.Inițiere în limbajul C, Damian Costea.

8.Vasile M. Catunenu, Tehnologie electronică, Editura Didactică și pedagogică, București 1981

9.Lucian Ciobanu,Elemente de proiectare a sistemelor flexibile de fabricație și a roboților industriali, Editura BIT,Iași 1997.

10 Prof. dr. ing. Sergiu Nedevschi,Percepția senzorială,modelarea și reprezentarea modelului lumii pentru sisteme de asistare la conducere.

11. Ing. Dana Granciu,Utilizarea vederii stereo și omnidirecționale pentru

evitarea obstacolelor de către un robot de cercetare.

12.www.inex.co.th

13.www.inexglobal.com

14.www.extremeelectronics.com

15..www.datasheet.com

16. www.google.com

17. www.microchip.com

18. www.atmega16.com

BIBLIOGRAFIE

1. Iulian Badescu, Curs ATMEGA16, Curs Microcontrolere.

2. Mircea Nițulescu,[1998], Roboți mobili, Editura SITECH Craiova.

3. Gâlmeanu, C., Contribuții la sinteza roboților mobili cu 3 grade de mobilitate,

4 .Mihăiță Ardeleanu, Roboți industriali mobili, Curs.

5.Valerica Cimpoca,Aparatura optoelectronică, Curs.

6.Catalog pentru componente optoelectronice ,Băneasa SA,București

7.Inițiere în limbajul C, Damian Costea.

8.Vasile M. Catunenu, Tehnologie electronică, Editura Didactică și pedagogică, București 1981

9.Lucian Ciobanu,Elemente de proiectare a sistemelor flexibile de fabricație și a roboților industriali, Editura BIT,Iași 1997.

10 Prof. dr. ing. Sergiu Nedevschi,Percepția senzorială,modelarea și reprezentarea modelului lumii pentru sisteme de asistare la conducere.

11. Ing. Dana Granciu,Utilizarea vederii stereo și omnidirecționale pentru

evitarea obstacolelor de către un robot de cercetare.

12.www.inex.co.th

13.www.inexglobal.com

14.www.extremeelectronics.com

15..www.datasheet.com

16. www.google.com

17. www.microchip.com

18. www.atmega16.com

Similar Posts