Operácie

Kráčajúci mobilný robot

Z SensorWiki

Verzia z 12:52, 16. december 2008, ktorú vytvoril Jukos (diskusia | príspevky) (Senzorový subsystém - fotoelektrické snímače (fotorezistor))

Pohonný subsystém

Obr. 1. Pohľad na modelárske servo

Ako pohonný subsystém som zvolil modelársky servopohon, (ďalej servo) lebo je pomerne lacný a spoľahlivý. Štandardné typy poskytujú krútiaci moment okolo 30Ncm/4,8V prípadne až 40Ncm/6V Servo obsahuje jednosmerný motor prevodovku a z výstupným hriadeľom spriahnutý miniatúrny potenciometer, použitý ako senzor uhlu natočenia, pre regulačný obvod polohy. U menších a lacnejších serv je potenciometer pripojený priamo na výstupný hriadeľ. U serv vyšších kategórii je pripojený cez zvláštny prevod (tzv. nepriamy náhon), ktorý veľmi dobre chráni pred prenosom vibrácii. Požadovaná hodnota natočenia výstupneho hriadeľa je vo forme PWM signálu s úrovňou TTL (pulse wide modulation – puzne šírkova modulácia).

PWM signal je taký, ktorý ma konštantnú amplitúdu a mení sa len šírka impluzu. Na riadenie seva je potrebná perióda 20ms a šírka impluzu v rozpätí od 1 až 2 ms. Šírka impulzu 1ms zodpovedá maximálnemu ľavému natočeniu a 2 ms maximálnemu pravému natočeniu výstupneho hriadeľa. Stredná poloha hriadeľa je pri šírke impulzu 1,5 ms. Rozsah uhlu natočenia býva u väčšiny servomotorov 90°. Poloha výstupného hriadeľa je mimo tento rozsah mechanicky aretovaná v prevodovke. Prevodový pomer určuje pomer medzi rýchlosťou a ťahom serva. Bežné je, že sa serva vyrábajú vo dvojiciach, ktoré majú rovnaký motor a elektroniku, ale líšia sa prevodmi - napr. serva Hitec HS-625 a HS-645 Jedno znich ponúka vyšší krutiaci moment pri nižšej rýchlosti, druhé má zvýšenu rýchlosť na úkor momentu. Prevody sú najčastejšie plastové, pre väčšie zaťaženie a väčšiu spoľahlivosť sa používajú kovové.

Obr.2. Bloková schéma vnútornej elektroniky

Zjednodušené zapojenie vnútornej elektroniky serva je uvedené na obr. 2. Na vstup serva sa periodicky privádza riadiaci implulz, ktorý spustí monostabilný klopný obvod. Ten vygeneruje impulz o dĺžke zodpovedajúcej momentálnej polohe serva, ale opačnej polarity než je vstupný riadiaci impulz. Tieto dva impulzy sa porovnajú a výsledkom je rozdielový impulz, ktorý po zosilnení cez mostíkový snímač spôsobí roztočenie elektromotora jedným alebo druhým smerom. Elektromotor cez prevodovku otáča výstupným hriadeľom a súčasne i potenciometrom, ktorý pôsobí ako spätná väzba polohy do monostabilného klopného obvodu. Smer otáčania je taký, že impulz generovaný monostabilným klopným obvodom sa svojou dĺžkou približuje dĺžke vstupného riadiaceho impulzu, až sú obidva impulzy rovnako dlhé, elektromotor sa zastaví. Servo dosiahlo polohu, ktorá zodpovedá momentálne prijímanému riadiacemu impulzu.

Odkazy:


Zdrojový kód:

/*
  Microcontroller: ATmega32 
  XTAL Frequency: 12.00 MHz
  program generuje fazovo frekvencne korigovany PWM signal na pinoch PD4 a PD5
  vyuziva k tomu timer1 perioda PWM je 20ms (f=50Hz) definovane v registri ICR1
   sirka impulzu sa meni od od zavislovi cisla v komparacnych registroch OCR1A/OCR1B
*/
#include <avr/io.h>
#define F_CPU 12E6
#include <util/delay.h>
#define Rmotor OCR1A // vyvod PD5
#define Lmotor OCR1B // vyvod PD4

        //funcia na nastavenie I/O portov procesora
	void nastav_porty(void)            
		{
 			PORTA = 0b00000000; //
 			DDRA  = 0b00000000; // "0" is input  "1" is output
 			PORTB = 0b00000000; //
 			DDRB  = 0b00000000; //
 			PORTC = 0b00000000; //
 			DDRC  = 0b00000000; //
 			PORTD = 0b00000000; //
 			DDRD  = 0b00110000; //
		}
        
        //funkcia na nastavenie PWM 
	void nastav_timer1(void)
		{
 			TCCR1A = (1<<COM1A1)|(1<<COM1B1); // piny OC1A a OC1B nastavene ako PWM out
 			TCCR1B = (1<<WGM13)|(1<<CS11);    //fazovo a frekvencne kor.PWM; fosc/8;
			ICR1H= 0x3a;                      //nastavenie periody PWM 20ms (50hz) 15000cyklov
			ICR1L= 0x98;
		}

	int main(void)
	{	
		nastav_porty();
		nastav_timer1();
		Rmotor=750;   // sirka impulzu = 1ms
		Lmotor=1500;  // sirka impulzu = 2ms
		
                while(1)
		{			
			Rmotor=750;
			Lmotor=1500;
						
		}
	
	return 0;
	}

Priebeh vystupneho napatia na porte PD5(OCR1A)


Senzorový subsystém - fotoelektrické snímače (fotorezistor)

Princíp:

Obr.2. fotorezistor

Princíp fotorezistoru je založený na vnútornom fotoelektrickom jave: fotorezistor je vyrobený z polovodiča s vysokým elektrickým odporom. Ak fotón svetla dostatočne krátkej vlnovej dĺžky narazí do elektrónu vo valenčnom pásme atómu, odovzdá mu svoju energiu. Elektrón tak získa dostatok energie na prekonanie zakázaného pásma a preskočí z valenčného pásma do vodivostného. Tým opustí svoj atóm a pohybuje sa ako voľný elektrón v priestore kryštálovej mriežky. Na jeho mieste vznikla tzv. diera - voľné miesto s kladným nábojom. Takto vzniknuté voľné elektróny a diery vedú elektrický prúd a znižujú tak elektrický odpor osvetleného fotorezistoru.

Konštrukcia:

Na polovodičovú základňu (najčastejšie Sulfid kademnatý - CdS, kremík, germánium) sú z protiľahlých strán nanesené vrstvičky kovu v tvare hrabličiek, vodivo spojené s vývodmi fotorezistoru, tvoriace prechod kov - polovodič. Vplyvom osvetlenia sa mení elektrická vodivosť polovodiča medzi kovovými vrstvičkami.


Vlastnosti:

Obr.2. fotorezistor

Odpor fotorezistoru klesá v závislosti od intenzity osvetlenia približne exponenciálne, do istej miery je ale možné túto závislosť linearizovať.V závislosti od použitého materiálu je možné fotorezistorom detekovať široké spektrum vlnových dĺžok – od infračerveného žiarenia, cez viditeľné svetlo až po ultrafialové žiarenie

Výhody voči iným fotocitlivým súčiastkam:

dostatočná citlivosť (bežný CdS fotorezistor má v tme odpor rádu jednotiek MΩ, pri plnom osvetlení klesne na rádovo stovky Ω) nízke výrobné náklady jednoduché použitie v el. obvodoch možnosť použitia v obvodoch jednosmerného aj striedavého prúdu





.