Documente Academic
Documente Profesional
Documente Cultură
PROIECTARE CU MICROPROCESOARE
Masinuta teleghidata controlata cu PIC. Tehnologia de evitare a obstacolelor PIC Radio-Controlled Rover. The Obstacle Avoidance Technology
Rezumat
Proiectul este o aplicatie simpla a controlului prin microprocesor, care realizeaza doua deziderate: 1) controlul radio al unei masinute pentru a urma un traseu dat 2) o masinuta care urmareste conturul unui mediu (camera). Capacitatea de radiocomanda ofera posibilitatea unui control de la distanta, iar posibilitatea de a integra unitatea de comanda pe masinuta (rover) permite explorarea autonoma a mediului, sau putem alege un compromis intre cele doua (ex. Mars Sojourner). Proiectul poate fi extins pentru a transforma masinuta intr-un robot pentru inspectia unui teren, care sa detecteze mine, sa cartografieze conturul unei cladiri sau sa inregistreze diversi parametri din mediu. Cea mai importanta aplicatie a proiectului este implementarea unui sistem de pilot asistat sau pilot automat la autoturisme, care sa utilizeze si detectia indicatoarelor rutiere si semafoarelor folosind camera video, laser si zone active si integrarea cu GPS. Elementele de inteligenta artificiala (algoritmi de planificare, pentru depasiri, ocoliri, parcari, euristici pentru adaptarea vitezei la conditiile de drum si conditiile de trafic.
Abstract
The project is a simple application of microprocessor control, serving two main functions: 1) radio-controlling a rover, in order to follow a predetermined path 2) a rover which travels along the marrgins of its environment (room) The projec can be used for the remote control, the possibility of exploring the environment in an autonomous fashion, or a balance between the two aforementioned possibilities (e.g. Mars Sojourner). The project can be expanded to transform the rover in a robot used for the detection of landmines, mapping a building, or record various parameters of the environment. The most important use of the project is in the design of an automatic or assisted automotive driving system, comprising road signs and semapore detection using a video camera, lasers and active image areas, as well as GPS integration. Artificial Intelligence elements (such as planning algorithms, for turns, parking, euristics for speed regulation according to traffic conditions and road conditions, etc. 2
Cuprins
Rezumat ........................................................................................................................ 2 Abstract......................................................................................................................... 2 Cuprins ......................................................................................................................... 3 Platforma hardware. ..................................................................................................... 4 Interconectarea cicuitelor masinutei si senzorilor cu PIC-ul. Intrari si iesiri. .............. 8 Principalele module functionale ale roverului.............................................................. 9 Concluzii privind partea hardware ............................................................................... 9 Logica de comanda..................................................................................................... 10 Sectiuni importante ale programului de control ......................................................... 11 Concluzii privind desfasurarea proiectului................................................................. 14 Extinderi viitoare si posibile imbuntatatiri ale proiectului. IA................................... 15 Bibliografie................................................................................................................. 15 Anexa A Principalele caracteristici ale detectorului de proximitate in infrarosu GP2D12 .................................................................................................. 16 Anexa B Poze ale proiectului finalizat ................................................................. 17 Anexa C Costuri realizare montaj.......................................................................... 19
Cunostinte necesare realizare montaj: - Limbaj de asamblare pentru PIC16F628A - Cunostinte de baza de electronica si functionarea tranzistorului bipolar - Posibilitatea de a realiza placile de montaj prin tehnica coroziva, in regie proprie sau pe baza de comanda.
Platforma hardware.
Platforma hardware este alcatuita din urmatoarele module principale: a. PIC b. Masinuta (rover) c. Senzori Microprocesorul RISC PIC 16F628A realizeaza procesarea informatiilor de la senzorii de proximitate, precum si comanda motoarelor roverului. Roverul a fost achizitionat sub forma de masinuta teleghidata (27 MHz) de jucarie, astfel incat telecomanda acesteia este legata la PIC. Senzorii de proximitate de pe rover transmit informatia la PIC utilizand circuitele de la o alta masinuta teleghidata (40 MHz). Am recurs la acest montaj pentru a avea o mecanica performanta a masinutei, dificil de realizat in lipsa unui atelier mecanic si a diferitelor piese pentru cutia de viteze/sasiu. Am utilizat circuitele de radiocomanda din masinutele achizitionate pentru a scurta timpul de dezvoltare al aplicatiei si a evita proiectarea unor montaje radio proprii, expuse inerentelor probleme de executie si testare.
PIC Placuta cu PIC-ul a fost realizata conform indicatiilor din laborator, si a fost tiparita la o imprimanta laser pe folie tip press-n-peel. Cu ajutorul fierului de calcat am transferat montajul pe placa din textolit, pe care am corodat-o intr-o solutie de clorura ferica industriala incalzita la 40-50 de grade Celsius. Pentru a accelera corodarea, am construit un montaj care a agitat solutia de clorura ferica din cuva timp de aproximativ 10 minute. Tonerul ramas a fost inlaturat folosind o solutie de acetona (di-metil-cetona). A urmat executarea orificiilor din placa, montarea componentelor electronice, si plasarea montajului intr-o cutie din plastic ABS (pentru interior) pentru a conferi montajului un aspect comercial.
Alimentarea se realizeaza printr-un stabilizator de 5V (LM7805), curentul fiind preluat de la o baterie de 9V. Am montat un comutator si un LED verde, martor pentru alimentarea montajului.
Rover. Radiocomanda rover. Telecomanda roverului a fost conectata la porturile RB0, RB1, RB2, RB3 pentru a realiza comanda roverului pentru inainte/inapoi, si pozitionarea rotilor din fata pentru stanga/dreapta. La iesirea de 1 logic (5V) pe unul din acesti pini (dar nu simultan pentru fata/spate, stanga/dreapta), un tranzistor bipolar NPN (BC547) comuta si realizeaza conexiunea EC care cupleaza butoanele respective din telecomanda la masa montajului. Exista LED-uri martor vizibile in afara carcasei montajului.
Partea de receptie comenzi de pe rover este cea originala. Sunt folosite 6 baterii AA (R6, 1.5 V).
Receptorul senzorilor. Radiocomanda senzorilor. Componenta de transmisie informatii senzori de pe rover este cuplata la senzorii de proximitate in infrarosu (modulati) Sharp GP2D12. Acesti senzori analogici ofera un voltaj de iesire intre 0.4 V si 2.7 V, invers proportional cu distanta fata de obstacol (intre 10 cm si 80 cm). Am limitat precizia senzorilor la aproximativ 40-50 cm datorita cuplarii lor in baza unor tranzistoare bipolare cu siliciu, NPN (BC547 sau BC170), care se deschid la aproximativ 0.7V. La comutarea tranzistoarelor, prin jonctiunea EC se realizeaza cuplarea butoanelor din telecomanda (senzorul stanga nu poate fi activ simultan cu senzorul dreapta, motiv pentru care roverul functioneaza corespunzator pentru un culoar instantaneu mai lat decat [ latimea roverului + 2 x ( distanta detectie ] = 1.00 m (20%)
Receptorul pentru senzori conectat la PIC furnizeaza 4 iesiri de cca 3V (din care utilizam 3). Cu ajutorul senzorilor comand bazele de la 3 tranzistoare bipolare cu siliciu, NPN (BC547), cu cate o rezistenta de protectie. Deoarece montajul este inversor (cu rezistenta de pull-up), se furnizeaza 1 logic (5V) in lipsa unei informatii de la senzor, iar un obstacol declanseaza starea de 0 logic (aproximativ 0.2V, tensiunea jonctiunii EC).
S=senzor de proximitate modulat in infrarosu; C=unghiul mort de langa senzor (extrema minima de sensibilitate); B=zona de sensibilitate a senzorului; A= extrema maxima de sensibilitate.
A - tranzistoarele de comanda ale telecomenzii roverului B telecomanda originala a roverului (27 MHz) C alimentare (baterie 9V) D placa de comanda cu PIC 16F628A E interfata seriala pentru programare PIC F receptor radio senzori (original) (40 MHz) G tranzistoarele inversoare care transmit la PIC informatia de la senzori
A - senzor analogic de proximitate in infrarosu Sharp GP2D12 B tranzistor NPN pentru comutarea butoanelor transmitatorului la detectia obstacolelor C transmitator (original, 40 MHz) D Alimentare 6V pentru transmitator si senzori E alimentare rover (dedesubt) 9 V, (6 acumulatori NiMH pentru curent/putere marita)
Logica de comanda
10
Limbajul natural tradus in pseudocod conduce la urmatorul flow al codului: START ; MOVFW PORTA ; citesc de pe portA ; if (FATA) { if (DR) {virajst; goto START; } ; if (ST) {virajdr; goto START; } ; virajst; goto START } ; if(DR) { fata; goto START } ; if(ST) { fata; goto START } ; virajdr; goto START GOTO START Algoritmul prezinta doua trasaturi importante: - evita obstacolele, iar in cazul unui obstacol frontal, vireaza stanga - daca nu gaseste obstacole, componenta de urmarire a conturului vireaza inainte si la dreapta Programul ASM utilizat realizeaza echilibrul dintre aceste doua tendinte, pentru a pastra roverul pe un traseu sigur si dezirabil
Stabilirea unui traseu (itinerar/harta) tine de implementarea aleasa Traseul poate fi optional stocat intr-o zona rezervata de memorie sau intro memorie EEPROM externa. ;MAP======================== ;CALL FATA ;CALL FATA ;CALL FATA ;CALL VIRAJDR ;CALL SPATE ;CALL VIRAJDR ;CALL FATA ;CALL FATA ;CALL FATA ;MAP======================== Diferite deplasari (exemple) STANGA_MICI ; viraj pe loc CALL SPATE CALL VIRAJST GOTO START DREAPTA_MICI ; viraj pe loc CALL SPATE CALL VIRAJDR GOTO START Rutina Delay (pot exista implementari si cu intreruperi , nu neaparat secventiale ca in lucrarea de fata) ;rutina delay ==================================================== DELAY NOP movlw d'250' ;delay 250 ms (4 MHz clock) ; MIHAI : 20 movwf count1 d1 movlw 0xC7 movwf counta movlw 0x01 movwf countb Delay_0 decfsz counta, f goto $+2 decfsz countb, f goto Delay_0 decfsz count1 ,f goto d1 clrw RETURN ;rutina delay ==================================================== 12
Algoritmul de evitare a obstacolelor & urmarire a conturului. Inteligenta reactiva. MOVFW PORTA ; citesc de pe portA MOVWF valoare ;algo minune ----------------------------BTFSS valoare, 2 CALL TRATARE_FATA ; {...} include goto START NOP BTFSS valoare, 0 CALL AVANS_MIC ; include goto START NOP BTFSS valoare, 1 CALL AVANS_MIC ; include goto START NOP CALL AVANS_DR2 ;algo minune ----------------------------;BTFSS valoare, 0 ; senzor 1 - DR ;BTFSS valoare, 1 ; senzor 2 - ST ;BTFSS valoare, 2 ; senzor 3 - FATA ;CALL STD_SCURT; delayul pasilor GOTO START ;tratare alg minune ------------------------------------TRATARE_FATA BTFSS valoare, 0 ; dr CALL STANGA_MICI ; prin miscarea si in spate incerc sa fac virajele mai 'pe loc' NOP BTFSS valoare, 1 ; st CALL DREAPTA_MICI NOP CALL STANGA_MICI ; componenta care evita peretele frontal prin ocolirea prin stanga
13
14
Bibliografie
1) 2) 3) 4) http://www.solarbotics.net/library/circuits/sensors_prox.html http://www.seattlerobotics.org/encoder/200112/richk.htm http://www.acroname.com/robotics/info/articles/sharp/sharp.html http://swis.epfl.ch/Backup_Caltech/CORO/Projects/Flocking/ab_flocking. htm 5) http://www-robotics.usc.edu/~ikelly/mbots.html 6) Curs Inteligenta Artificiala, An III, UPB, Prof. Adina Magda Florea
15
16
Anexa B
17
18
Anexa C
Tehnica press-n-peel (foaie, clorura ferica, acetona) Montaj PIC Cutie ABS pentru PIC Cutie ABS pentru control rover Tranzistoare bipolare (10 buc), leduri, etc Masinute si telecomenzi Baterii Senzori Sharp GP2D12 (achizitie SUA curier) 3 buc TOTAL Buget utilizat (inclusiv pierderi, si piese neutilizate) Eficienta utilizare buget alocat
200.000 300.000 200.000 400.000 100.000 1.000.000 300.000 2.000.000 4.500.000 6.000.000 75%
19