UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO 000 Maribor, Smetanova ul. 7 Študij. leto: 008/009 Datum:..008 Uvodni seminar Mobilni robot za sledenje po črti Izvajalci: Bogdan Urbancl Boris Perkovič Robert Rudaš
KAZALO:. ZGRADBA ROBOTA IN NJEGOVI SESTAVNI DELI..... Mikrokrmilnik..... Motorji..... Senzorji....4. Napajanje in izdelava vezja....5. Ohišje.... VEZALNA SHEMA...4. Vezana shema...4. Vezje...5. UPORABLJENI ELEMENTI...6 4. PROGRAM V MIKROKRMILNIKU...6 UNI-Mehatronika 008/09
. ZGRADBA ROBOTA IN NJEGOVI SESTAVNI DELI.. Mikrokrmilnik Za izdelavo robota je bil uporabljen mikrokrmilnik PIC 6F876 v 8 pinskem DIL ohišju. Kontroliranje pogonskih motorjev (Futaba S00) je izvedeno s pulzno širinsko modulacijo (PVM). V ta namen so uporabljeni namenski izhodi na mikrokrmilniku (pin in ), sam mikrokrmilnik pa deluje na frekvenci 4 Mhz za nastavitev ms dolgih pulzov pri katerih sta pogonska motorja v mirovanju pri krmiljenju s PVM (pri višjih frekvencah to ne gre). Programiranje mikrokrmilnika je potekalo v C programskem jeziku v MikroC debagerju in ploščo za programiranje PIC mikrokrmilnikov, EasyPIC4... Motorji Za pogon robota sta uporabljena servomotorja Futaba S00, ki ju je potrebno nekoliko predelati za uporabo v robotu. Na spletu je podrobno opisanih več različnih modifikacij, pri katerih se delno modificira elektronika in zobniki. Odločili smo se, da ohranimo celotno elektroniko motorja. Motorja smo modificirali tako, da smo oba potenciometra nastavila na enako vrednost in nato odščipnili le "vrh" potenciometra, ki je preko zobnikov skrbel za ugotavljanje položaja motorja. Odščipnili smo tudi blokado na zobnikih, ki je onemogočala polno vrtenje. UNI-Mehatronika 008/09
.. Senzorji Za zaznavanje črne črte sta uporabljena senzorja CNY70. Ti senzorji so sestavljeni iz IR diode z valovno dolžino 950 nm in fototranzistorja, ki se v primeru odboja odzove in odda signal. Sposobni so zaznavati odboj na oddaljenosti prib. mm. Prvotna ideja so bili trije senzorji, a se je po manjših testih izkazalo, da srednji ne prinaša bistvenih uporabnih informacij. Ugotovilo se je, da bi bila najprimernejša uporaba dveh senzorjev..4. Napajanje in izdelava vezja Za napajanje smo se odločili, da uporabimo 9V baterijo. Ker za napajanje mikrokrmilnika rabimo napajalno napetost 5V, smo uporabili stabilizator LM940. Za motorja je deklarirano, da se napajata z največ 6V, kar pomeni, da bi lahko uporabili napetost iz stabilizatorja LM940, vendar da smo pridobili na moči in hitrosti smo uporabili še en stabilizator LM7806, ki nam daje napetosti na motorju 6V. Za boljše glajenje napetosti je poleg tega še nekaj dodatnih kondenzatorjev (elektrolitskih in keramičnih). Shema in načrt za tiskano vezje sta bila narisana v programu ORCAD..5. Ohišje Za ohišje robota smo uporabili pokrov parapetnega kanala primerne velikosti, na katerega sta prilepljena oba motorja. Na zgornji strani pa sta pritrjena vezje in baterija. Kolesa so sestavljena iz zlepljenih cd-jev na vsaki strani in po obodu prevlečena z gumo proti zdrsavanju. UNI-Mehatronika 008/09
. VEZALNA SHEMA IN VEZJE. Vezana shema BAT 9V U LM940 IC PIC6F876 S Stikalo +5V R 680 0 6 IN OUT D R 0k VDD RB5 MCLR/VPP/THV RC5/SDO 6 RA0/AN0 RC6/TX/CK 7 LED R 680 D 4 RA/AN C + C C + C4 5 00u 0n 00n 470u 5 RA/AN/VREF- RB4 6 RA/AN/VREF+ LED C5 7p 7 RA4/T0CKI 9 RA5/SS/AN4 RB OSC/CLKIN RC0/TOSO/TCKI R4 R5 0 OPTO CNY70 Y 47k C6 7p 4MHz 4 U LM7806 0 RC/SCK/SCL +6V OSC/CLKOUT RC4/SDI/SDA 5 +5V 4 IN OUT RB7/PGD 8 R6 RB6/PGC 7 47k 4 RB C7 + C8 RB/PGM RB0/INT 00n 470u CNY70 G N D G N D S 9 G N D R C 7 / R X / D T GND 8 8 RC/TOSI/CCP RC/CCP R7 0 OPTO 4 Tipka R8 0k +5V +6V JP HEADER JP +6V HEADER UNI-Mehatronika 4 008/09
. Vezje UNI-Mehatronika 5 008/09
. SPISEK ELEKTRIČNIH ELEMENTOV C = 00 uf C = 0nF C = C7 = 00 nf C4 = C8 = 470 uf C5 = C6 = 7 pf R = R = 680 Ω R = R8 = 0 kω R5 = R7 = 0 Ω R4 = R6 = 47 kω x CNY70 senzo x 4 pin konektor ( senzorja) stabilizator LM940 (5V) x pin konektor (motorja) stabilizator LM7806 (6V) PIC 6F876 8 pin podnožje 8 pin x tipka kristal 4Mhz x stikalo x LED (rdeča in zelena) BAT 9V 4. PROGRAM V MIKROKRMILNIKU unsigned int i; void stop() CCPCON=0b000000; CCPRL =0x00; CCPCON=0b000000; CCPRL =0x00; void naprej() CCPCON=0b; CCPRL =0x7D; CCPCON=0b; CCPRL =0x00; void levo() CCPCON=0b; CCPRL =0x00; CCPCON=0b00; CCPRL =0x00; void desno() CCPCON=0b00; CCPRL =0x7D; CCPCON=0b; CCPRL =0x7D; // desni servo // stop // levi servo // stop // desni servo // naprej // levi servo // naprej // desni servo // naprej // levi servo // stop // desni servo // stop // levi servo // naprej UNI-Mehatronika 6 008/09
void main(void) // ******* Inicializacija registrov vhodno/izhodnih vmesnikov ******* ADCON=0x06; // ne uporabljamo analognih vhodov (000000) TRISA=0x0; // vsi pini porta A so izhodni, razen RA4 (0000000) TRISB=0b000000; // pini porta B so izhodni, RB in RB0 sta vhoda (senzor) TRISC=0b0000000; // vsi pini porta c so izhodni, RC7 je vhod PORTC=0; // izhode porta C postavi na 0 INTCON=0; // prekinitev ne bomo uporabljali TCON=0b00000; // predelilnik na 6X PR=55; // periodni register na 55 (perioda je dolga 4,096ms) // ******* Jedro programa ******* PORTB.F4=; // zelena LED dioda PORTB.F5=; // rdeca LED dioda Delay_s(); // zacetna zakasnitev sekund PORTB.F4=0; PORTB.F5=0; Delay_s(); while () PORTB.F4=; PORTB.F5=; if(portc.f7==0) while () // signalizacija za pripravljenost robota // neskoncna zanka // pogoj caka na signal tipke // neskoncna zanka if(portb.f0==0 && PORTB.F==) // pogoj za LEVO PORTB.F4=; PORTB.F5=0; levo(); // vklop zelene LED diode // izklop rdece LED diode // klic funkcije levo if(portb.f0== && PORTB.F==0) // pogoj za DESNO PORTB.F4=0; // izklop zelene LED diode PORTB.F5=; // vklop rdeče LED diode desno(); // klic funkcije desno if(portb.f0== && PORTB.F==) // pogoj za STOP PORTB.F4=; // vklop zelene LED diode PORTB.F5=; // vklop rdeče LED diode stop(); // klic funkcije stop if(portb.f0==0 && PORTB.F==0) // pogoj za NAPREJ PORTB.F4=0; // izklop zelene LED diode PORTB.F5=0; // izklop rdece LED diode naprej(); // klic funkcije naprej UNI-Mehatronika 7 008/09