Universitatea
POLITEHNICA din Bucureşti
Facultatea de Automatică şi
Calculatoare
Catedra de Calculatoare
http://www.csit-sun.pub.ro
CALCULATOARE NUMERICE
Proiect de semestru – anul III
Prof. Îndrumător:
As. Dr. Ing. Decebal Popescu
Studenţi: Bulancea Cristina 332CC
Tecuceanu Mihai 333CC
Bucureşti 2005
Tema proiectului: Proiectarea si implementarea robotului
multifunctional A.D.A.M.
Abstract: Scopul
acestui proiect este realizarea unui robot programabil autonom care sa poata
naviga in interiorul unei camere fara asistenta omului, cu sarcina de a culege
diverse informatii din mediul inconjurator.
Abstract:
The purpose of this project is to build an autonomuos programmable robot which
can navigate inside a room without human asistance, with the task of collecting
information about the surounding environment.
C U P R I N S
1. Tema proiectului si specificarea cerintelor.
2. Etape preliminare in dezvoltarea proiectului
3.2 Sursele stabilizate de alimentare
3.3 Senzorii de temperatura si luminozitate
4. Prezentarea rezultatelor obtinute.
5. Concluzii si dezvoltari viitoare
1.
Tema proiectului si specificarea cerintelor.
Tema proiectului este realizarea unui robot multifunctional programabil autonom. In acest scop s-a utilizat kit-ul Carpert Rover produs de firma Lynxmotion, de la care s-a folosit partea mecanica. Subansamblul de comanda si prelucare a datelor a fost construit in jurul unui microcontroller Atmega128 produs de firma Atmel.
In jurul unitatii de comanda au fost adaugati o serie de senzori: temperatura, luminozitate si infrarosu reflexiv. De asemenea unitatea de comanda a fost prevazuta cu un afisaj LCD pe care se pot vizualiza diferiti parametri. Comunicatia cu alte echipamente se poate face cu ajutorul unei interfete RS232C. Pentru situatii in care se doreste comanda manuala, robotul a fost prevazut cu o telecomanda radio cu patru canale. Prin aceasta operatorul uman poate prelua controlul miscarilor efectuate de robot sau poate interveni in prelucrarea fluxului de date furnizat de senzori.
In urma implementarii functionalitatilor mentionate mai sus s-a obtinut o platforma mobila robusta capabila sa opereze fara interventia unui operator uman si sa culeaga o serie de parametri din mediul inconjurator. Posibilitatea de programare
“in system” a unitatii de comanda confera o foarte mare versatilitate, aplicatiile la care poate fi supusa platforma fiind limitate doar de capabilitatile soft-ului si de imaginatia programatorului. Dintre posibilele aplicatii specificam: navigarea si culegerea de date din medii ostile sau greu accesibile omului sau cartografierea unei incinte inchise (camera, retea de canalizare sau de aerisire etc.).
2.
Etape preliminare in dezvoltarea proiectului
In
faza initiala proiectul a beneficiat de platforma mobila Carpet Rover,
comercializata sub forma de kit de firma Lynxmotion.
De la acest kit s-au folosit cele doua servomotoare, rotile si suportul pentru instrumentatie. Pentru testarea diferitelor subansamble s-a folosit mediul de dezvoltare STK300 produs de Atmel. Pe acest mediu au fost implementate functiile de baza precum si o parte din functiile secundare prezente in varianta finala a proiectului.
Primul pas l-a constituit implementarea comenzii celor doua servomotoare cu ajutorul facilitatii de PWM (Pulse Width Modulation) a Timer/Counter0 din cadrul microcontroller-ului. Rezultatul acestei actiuni a fost executia de catre robot a miscarilor de baza: fata, spate, stanga, dreapta. Aceste miscari erau controlate de catre utilizator prin intermediul unor taste.
Urmatorul pas in dezvoltarea aplicatiei a fost realizarea unui mod prin care utilizatorul sa poata controla miscarile robotului de la distanta. Acest lucru s-a conturat sub forma unei telecomenzi radio in banda de 433MHz cu patru canale independente prin care se pot transmite comenzi robotului pe o raza de aproximativ 300 de metri. Robotul se putea misca acum in orice directie fara nici un cablu intre el si utilizator.
In acest stadiu al lucrarii s-a inceput proiectarea si testatea diferitilor senzori care urmau sa fie inclusi in platforma, testarea interfetei seriale si a comunicatiei cu calculatorul.
Din motive de spatiu s-a renuntat la mediul de dezvoltare STK300 si s-a apelat la o solutie mai specializata si compacta – integrarea unei noi placi cu rolul de unitate centrala.
3. Descriere structurala a
blocurilor functionale cu specificarea schemelor si organigramelor utilizate.
In cadrul acestei sectiuni a lucrarii se vor prezenta blocurile si unitatile componente ale platformei mobile precum si o descriere detaliata a acestora.
In diagrama de mai sus au fost figurate principalele module din constituenta platformei mobile precum si fluxul de comenzi si date stabilit intre ele.
Unitatea de comanda primeste date de la senzorii de lumina si temperatura precum si de la senzorii de proximitate. Aceste date pot fi listate pe afisajul LCD sau pot fi prelucrate pentru a lua decizii in privinta miscarii. Miscarea platformei se face prin comanda celor doua servomotoare de catre unitatea de comanda, in functie de valorile furnizate de senzori sau de comenzile primite de la receptorul de telecomanda. Interfata seriala permite comunicarea cu orice tip de echipament dotat cu acelasi tip de interfata, inclusiv calculatorul.
Unitatea de comanda a fost construita in jurul microcontrollerului Atmega128.
Acest microcontroller cu arhitectura RISC are urmatoarele caracteristici:
n Tensiune de alimentare intre 2.75 si
5.5V
n memorie de program de 128 kilo octeti
n o frecventa de ceas de pana la 16MHz
n memorie EEPROM interna 4 kilo octeti
n 5 porturi digitale I\O
n CAD 10 biti cu 8 canale multiplexate
n 4 Timer\Counter-e cu PWM si ceas de timp real
n 2 interfete seriale
Chip-ul este programat cu ajutorul unui ISP (In-System Programmer), care
permite descarcarea facila a softului din calculator in memoria de program a microcontrollerului. Conectarea placii de UC la ISP se face prin conectorul de mai jos.
Ceasul de timp real este luat prin divizarea frecventei de 32768Hz furnizate de un oscilator cu cuart.
Schema unitatii de comanda este anexata la sfarsitul documentului.
3.2 Sursele
stabilizate de alimentare
Montajul foloseste doua tensiuni de alimentare, de 5V si 12V furnizate de doua surse stabilizate de tensiune cu integratele 7805 si 7812.
Fig 6. Sursele stabilizate de 5 si 12 volti
3.3 Senzorii
de temperatura si luminozitate
Pentru masurarea temperaturii s-a folosit senzorul integrat LM35 care furnizeaza la iesire o tensiune direct proportionala cu temperatura acestuia. Aceasta tensiune este apoi amplificata de catre operationalul LM324 cu un factor de 11 si furnizata la una din intrarile convertorului analog-digital.
Fig 7. Senzorul de temperatura.
Senzorul de luminozitate consta dintr-un fototranzistor care are tensiunea colector-emitor direct proportionala cu iluminarea. Aceasta tensiune este si ea furnizata la una din intrarile CAD-ului.
Fig 8. Senzorul de temperatura si de luminozitate.
Senzorii de proximitate sunt de tip reflexiv si functioneaza in spectrul infrarosu. S-au construit doi senzori de acest tip si ei constituie “ochii” robotului, permitandu-i acestuia sa determine prezenta unui obstacol din fata sa.
Fig 9.Senzorii de proximitate.
Principiul de functionare al acestor senzori este urmatorul: fiecare senzor este format dintr-un emitator si un receptor in infrarosu. Emitatorul este un LED IR care emite un tren de impusuri in infrarosu la o frecventa de aproximativ 120Hz, data de oscilatorul format cu timer-ul 555. Acest tren de impulsuri este emis in fata robotului pe tot parcursul deplasarii acesuia. In momentul in care in fata apare un obstacol, fascicolul de radiatie emis de LED este reflectat de catre obstacol inapoi pe receptorul format dintr-o fotodioda. Trenul de impulsuri receptionat de fotodioda este amplificat de amplificatorul operational LM358, integrat de grupul R2,C3 si pus la intrarea comparatorului format tot dintr-un LM358. In cazul depasirii pragului de tensiune setat din potentiometrul R5, comparatorul va bascula semnaland astfel detectia obstacolului.
Fig10. Senzor de proximitate -- EmitatorulIR.
Fig11. Senzor de proximitate -- ReceptorulIR.
Telecomanda radio foloseste doua module de emisie/receptie integrate cu frecventa de 433MHz. Pentru a putea folosi patru canale de date independente pe aceeasi frecventa s-au folosit integratele UM3758-084. Aceste circuite functioneaza in regim de encoder\decoder si sunt folosite si in telecomenzile pentru alarmele auto.
Selectia regimului de functionare (encoder sau decoder) se face de la pinul MODE prin legarea acestuia la masa, respectiv la +5V. Comunicatia radio este codata pentru a evita interferentele si parazitii proveniti de la alte echipamente radio. Codarea se face prin legarea la masa sau la 5V a pinilor A1-A8, atat la receptor cat si la emitator. In cazul validarii codului de emisie, receptorul basculeaza iesirile de date D1-D4 corespunzator cu starea acestor pini la emitator.
Fig12.Emitator telecomanda..
Fig13.Receptor telecomanda..
Este un afisaj ASCII de patru linii a cate 20 de caractere si permite afisarea datelor furnizate de catre unitatea de comanda in urma prelucrarii valorilor date de senzori – temperatura, luminozitate, distanta obstacol, etc
Fig14.Afisajul LCD..
Permite trecerea de la nivelele logice tip TTL furnizate de USART-ul microcontrollerului la nivelele logice folosite de interfata seriala a unui calculator.
Fig15.Adaptor RS232C..
4. Prezentarea rezultatelor
obtinute.
In urma realizarii si asamblarii unitatilor descrise la punctul anterior, partea hardware a proiectului a fost considerata incheiata, rezultatul fiind platforma mobila in starea ei finala de dezvoltare.
Fig16.Robotul ADAM in varianta finala..
A urmat scrierea soft-ului si programarea robotului, pentru a testa satisfacerea conditiilor propuse la demararea proiectului. Aceste conditii au fost in mare parte indeplinite, robotul putandu-se orienta si naviga autonom cu ajutorul datelor furnizate de cei doi senzori de proximitate iar valorile temperaturii si luminozitatii sunt masurate constant si afisate pe ecranul LCD.
5.
Concluzii si dezvoltari viitoare
Robotul multifunctional ADAM este o platforma versatila, care permite dezvoltatea de aplicatii variate, interfatarea cu o serie intreaga de echipamente dotate cu un port serial, masurarea unor parametri in locuri greu accesibile sau medii toxice.
O dezvoltare viitoare a platformei are in vedere interfatarea cu un E-box produs firma Microsoft si legarea acestuia la o camera web. In urma acestei interfatari, platforma ar castiga capabilitatea de-a fotografia sau de a recunoaste forma sau culoarea anumitor obiecte din mediu.
De asemenea, pentru aprecierea calitativa a distantei dintre robot si un obstacol, platforma va fi dotata cu un sonar, reducandu-se astfel riscul unei coliziuni.