Upload
nguyen-van-thuong
View
228
Download
5
Embed Size (px)
Citation preview
Thit k mch theo yu cu: Nguyn c Lnh ST:[email protected] yahoo: sky_pro88- tng v l do s dng:Sn Robot nm 2013 nh cc bn thy c rt t line v hu ht l line cong nn vic d ng theo line s lm tc robot gim ng k. (ci ny l do phng n chy, i mnh s dng th tng ring mt nn vic chy theo ng thng k theo cc ring l nhanh nht). Nn yu cu c t ra l Robot chy thng c theo 1 ng gi nh. quay chnh xc gc m t nh hng n yu t bn ngoi.
-Ti sao lGyrom ko phi l la bn s:theo nh cc bn bit th la bn s nh hng nhiu vo kim loi c t tnh. m sn nm 2013 dng vin hon ton bng st nn kh nng nh hng bi sn thi u rt cao.
-u im ca Gyro:+Quay vi gc chnh xc+t ph thuc yu t bn ngoi+Kh r. Module GY521 ti mt s ni bn c 200k thi.+Thut ton lp trnh kh n gin.+Chun giao tip I2C
-Nhc im:+D tri im gc. Nhng chng tri n th chy ht trn vn c th c chnh xc cao.+Mnh hay gp trng hp b treo chip do vic c Gyro phi thc hin trong ngt timer. Mnh li dng mt s ngt na nn hay xy ra trng hp xung t ngt. @@. Sau ny mnh hn ch x l s liu trong ngt timer nn cng khc phc c li nhng vn khng dm chc l ht li.
-Hnh nh thc t:
-Hm InitMPU6050:ti liu hng dn ca PNlab n gin hn. ci ny mnh tm hiu khi cha c ti liu ting vit m da ch yu vo cc code v ti liu ca cc trang my bay m hnh ca nc ngoi nn lng nhng. @@.
M: void init_sensor_Gyro_MPU6050(void) { delay_ms(10); i2c_writereg(MPU6050_ADD,0x6b,0x80); //reset device, reset cam bien delay_ms(5); i2c_writereg(MPU6050_ADD,0x6b,0x00); //cam bien hoat dong i2c_writereg(MPU6050_ADD,0x19,0x00); //Sample Rate Divider = 0; cai nay minh khong hieu lam. @@ i2c_writereg(MPU6050_ADD,0x1a,0x00); //Configuration; i2c_writereg(MPU6050_ADD,0x1b,0x10); //Gyroscope Configuration; 0-8-10-18 ; do phan giai Gyro la 1000do/s i2c_writereg(MPU6050_ADD,0x6a,0x00); //User Control; Con MPU6050 co kha nang lam master //cua 1 so con c chuan truyen I2C khac, o day khong dung nen khong config i2c_writereg(MPU6050_ADD,0x37,0x02); } -Hm ly gi tr trong timer: do con ny tr v gi tr l vn tc gc nn ta tin hnh thc hin php tch phn c gi tr gc do phi a vic tnh ton vo ngt timer.
M:// Timer2 overflow interrupt service routineinterrupt [TIM2_OVF] void timer2_ovf_isr(void){// Reinitialize Timer2 value TCNT2=0x60; gyroADC[2]=-read_gyro_Z(); goc=goc + ((float)gyroADC[2]+12.34)*0.0595/3.28; //GY-521 // [a] [b] [c] // 00 0 250 131 // 08 1 500 65.5 // 10 2 1000 32.8 // 18 3 2000 16.4 }Mt s ch trong chng trnh:+ [a]:l h s chng tri. mi cm bin s c mt gi tr khc nhau. tm h s ny, cc bn cho hin th gi tr ADC c c ca trc Z ln LCD khi cm bin NG YN hon ton. [a]=-(gi tr c c). ADC ca trc Z l s nguyn 16 bit c du. c chnh xc cao th ta p kiu qua s thc tnh ton. V d nh trn, khi hin th ADC Z th gi tr s dao ng xung quanh gi tr -12. c th l 11-14 nhng gi tr -12 s hin th nhiu nht. Cc bn thay [a] vo v cho hin th gi tr gc khi CB NG YN. cc bn s thy tuy khng di chuyn cm bin nhng gi tr gc vn tng hoc gim. gi bc tinh chnh s thuc v cc bn c gi tr 12,34 nh ca mnh. mi cm bin mi a im khc nhau s c 1 gi tr khc nhau nh. Cc bn c th thc hin c Gyro ly mu 100 ln khi CB ng yn ri chia ra cng c gi tr ny. Cc trang nc ngoi thng lm th. Song mnh thy mi lc mi khc nn vn p dng phng php th cng. @@
+[ b ]:thi gian ly mu. Tu vo gi tr timer ca cc bn. Sau khi chng tri xong th vic tip theo ca cc bn l m bo quay ng gc. a cm bin ln b mt phng hon ton, quay 1 gc m cc bn c th xc nh c chnh xc gc quay, i chiu vi gi tr gc hin th trn LCD. Cc bn tin hnh tinh chnh b c gi tr gc chnh xc. Tng hoc gim mt lng rt nh.
+[c]: phn gii ca cm bin khi bn config. [c] chnh xc l s bt trn mt n v vn tc. nh trn config th mnh chn kh nng lm vic ca cm bin l 1000 /s nn c=32.8. tuy nhin t chnh xc cao hn th mnh chn c=3.28. l s bt trn 0,1 n v vn tc. Do thay v ta quay 1 gc 90 th gi tr gc tr v l 900.
Quan trng nht y vn l vic chng tri. cc bn chng tri tt c th 3 pht thi u ch tri 3 l cng. sai s cho php c.
file nh km ca mnh c 2 file nn. file GY521mpu_6050.rar l mnh ly t trang PNLab. file cn li l mnh dng lm th vin chun ca mnh. vit bng Codevision
Cch kt ni v g t cm bin trn Robot:-Nh hnh cm bin th cc bn ch cn quan tm n 4 chn u tin ca cm bin l:GND, VCC, SDA, SCL.+GND v VCC l 2 chn ngun ca cm bin. p l 5V. MPU6050 ch hot ng in p 3v3. tuy nhin trn module GY521 chuyn i in p nn mnh khng phi lo vn ny.+SDA v SCL th cc bn kt ni theo chun I2C nh cc thit b I2C khc.
-G t trn Robot. y mnh ch dng trc Z xc nh gc quay do sn nm ny ko c mt phng nghing. vi cc sn c gc nghing th cc bn phi tnh thm c trc X v Y c chnh xc. Khi cc bn dng trc Z th cm bin nm phng sao cho hng trc Z trn cm bin hng ln trn. c gng cng hng ln trn cng tt trnh sai s. nn g khung robot hn ch xe dch nht. trnh xa cc ng c, cun dy v cc thit b ny c t trng v nhiu ln ln bus I2C ca mnh. CB th khng b nhiu nhng Bus truyn rt d nh hng. c th g lun ln trn mch. Nhng lc ny th phi g mch c nh hon ton.
Gp thm cho cc bn. Nu cc bn dng cho my bay m hnh th c th dng module GY86. gi by gi kh r. nm ngoi mnh mua l 1200k. hin gi cn 700k PNLab v 500k thegioiic. Module ny tch hp MPU6050(Gyro, Acc, Nhit ), HMC5883L(Mag hay la bn s) v MS5611 (CB p sut). Khi dng module ny cc bn nn ch con la bn. v giao tip vi n, cc bn phi giao tip vi con MPU6050 nh mnh gii thch trn. con MPU6050 s lm master v con HMC5883L lm slaver ca con ny. Cch giao tip cc bn c th tham kho code mnh di y.