Orodha ya maudhui:
- Hatua ya 1: Orodha ya Vipengele
- Hatua ya 2: Kukusanyika
- Hatua ya 3:
- Hatua ya 4: Ifuatayo, Kwa Kutumia Njia Ile Ile Nilipata Roll Servo. Sehemu Hizi Zimeundwa Ili Kufaa kwa urahisi MG995 Servos
- Hatua ya 5: Ifuatayo, Kwa Kutumia Njia Ile Ile Nilipata Roll Servo. Sehemu Hizi Zimeundwa Ili Kufaa kwa urahisi MG995 Servos
- Hatua ya 6: Uunganisho
- Hatua ya 7: Uunganisho na Mdhibiti wa Voltage 7805 IC
- Hatua ya 8: Usimbuaji
- Hatua ya 9: Wakati Vipengele vyote vimeunganishwa, muonekano wake unafanana na Picha hii
- Hatua ya 10: Sasa Ingiza Vitu vyote vya Msingi Ndani ya Chombo cha Chakula
- Hatua ya 11: Wakati waya zote na Vipengele vimewekwa ndani ya Chakula Na Kisha Kutumika Bunduki ya Gundi kwenye Msingi wa Bodi ya Povu
- Hatua ya 12: Hitimisho
Video: Udhibiti wa Mwendo Gimbal: Hatua 12
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:48
Halo kila mtu, Jina langu ni Harji Nagi. Hivi sasa ni mwanafunzi wa mwaka wa pili kusoma uhandisi wa elektroniki na mawasiliano kutoka Taasisi ya Teknolojia ya Pranveer Singh, Kanpur (UP). Ninapenda sana roboti, arduino, Akili ya bandia na elektroniki za Analog.
Neno "gimbal" linafafanuliwa kama msaada uliopitishwa ambao unaruhusu kuzunguka kwa kitu chochote katika mhimili mmoja. Kwa hivyo gimbal ya mhimili tatu inaruhusu kitu chochote kilichowekwa kwenye gimbal kuwa huru na harakati ya yule anayeshikilia gimbal. Gimbal inaamuru harakati ya kitu, sio yule aliyebeba.
Inayo motors 3 MG996R servo kwa udhibiti wa axis 3, na msingi ambao sensor ya MPU6050, Arduino na betri itawekwa. Inatumika kuweka kamera imetulia bila vibration. Gimbal ya mhimili 3 inahakikisha kuwa mwendo wa kamera umetulia hata ikiwa anayeshikilia anakwenda juu na chini, kushoto na kulia, mbele na nyuma. Hii ndio tunayoita kama miayo, lami, na utulivu wa roll.
Hatua ya 1: Orodha ya Vipengele
Orodha ya vifaa ni:
1) Arduino Uno
2) 8V, 1.5 Amp Battery ya kuwezesha Arduino Uno
3) Mdhibiti wa Voltage 7805 Ic au unaweza kutumia conveter ya bibi
4) MPU 6050
5) 3 * (MG995 SERVO Motors)
6) waya za jumper
Vifaa Vingine:
1) chuma cha chuma
2) Bunduki ya Gundi
3) Mashine ya kuchimba
4) Chakula Je
Badala ya kutumia mkate wa mkate nimetumia bodi ndogo ya mafuta ya coustom kwa unganisho la basi nzuri na hasi
Hatua ya 2: Kukusanyika
Povu, bodi ya povu, au bodi ya povu inayokabiliwa na karatasi ni nyenzo nyepesi na iliyokatwa kwa urahisi inayotumiwa kwa kupandisha gari la Servo na kutengeneza mifano ya kiwango.
Kwanza nilifanya mabano ya umbo la L ya DIY kupandisha servo motor kwa msaada wa bodi ya povu.
Hatua ya 3:
Kukusanya gimbal ilikuwa rahisi sana. Nilianza na kusanikisha Yaw servo, sensor ya MPU 6050 na swichi ya ON-OFF. Kutumia bolts na karanga niliihifadhi kwa msingi
Hatua ya 4: Ifuatayo, Kwa Kutumia Njia Ile Ile Nilipata Roll Servo. Sehemu Hizi Zimeundwa Ili Kufaa kwa urahisi MG995 Servos
Hatua ya 5: Ifuatayo, Kwa Kutumia Njia Ile Ile Nilipata Roll Servo. Sehemu Hizi Zimeundwa Ili Kufaa kwa urahisi MG995 Servos
Hatua ya 6: Uunganisho
Katika mchoro wa mzunguko unaweza kutumia kibadilishaji cha buck au 7805 Voltage mdhibiti IC kubadilisha 8V kuwa 5 V. Mdhibiti mdogo ambaye amepewa mchoro wa mzunguko ni Arduino Nano unaweza pia kutumia Arduino Uno, Arduino Mega.
Pini za SCL na SDA za MPU 6050 zimeunganishwa na pini ya Arduino Analog A5 na A4. (Pini ya SCL na SDA inaweza kutofautiana kwa hivyo angalia hati ya data kwa pini za SCl na SDA kwa microcontroller nyingine)
Hatua ya 7: Uunganisho na Mdhibiti wa Voltage 7805 IC
Mchoro huu wa mzunguko ni wa unganisho la 7805 ya mdhibiti wa voltage ic, unganisha betri ya 8v huko Vin na utapata voltage ya 5v.
Hatua ya 8: Usimbuaji
Lazima ujumuishe maktaba zifuatazo:
1) # pamoja naBofya Hapa pakua faili ya zip
2) # pamoja naBofya Hapa kupakua faili ya zip
Baada ya kupakua faili ya zip, ongeza maktaba ya zip kwenye mchoro wa arduino
Kwa Kanuni
/*
DIY Gimbal - MPU6050 Arduino Mafunzo ya Msimbo kulingana na mfano wa MPU6050_DMP6 kutoka kwa maktaba ya i2cdevlib na Jeff Rowberg: Faili //h kwa madarasa yote mawili lazima iwe katika njia ya mradi wako # pamoja na "I2Cdev.h" # pamoja na "MPU6050_6Axis_MotionApps20.h" // # ni pamoja na "MPU6050.h" // sio lazima ikiwa unatumia MotionApps ni pamoja na faili / / Maktaba ya waya ya Arduino inahitajika ikiwa utekelezaji wa I2Cdev I2CDEV_ARDUINO_WIRE // unatumika katika I2Cdev.h # kama I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE #include "Wire.h" # endif #include // darasa default anwani ya I2C ni 0x68 // maalum I2 imepitishwa kama kigezo hapa // AD0 low = 0x68 (chaguo-msingi kwa kuzuka kwa SparkFun na bodi ya tathmini ya InvenSense) // AD0 high = 0x69 MPU6050 mpu; // MPU6050 mpu (0x69); // <- tumia kwa AD0 juu // Fafanua motors 3 za servo Servo servo0; Servo servo1; Servo servo2; kuelea sahihi; int j = 0; #fafanua OUTPUT_READABLE_YAWPITCHROLL #fasili INTERRUPT_PIN 2 // tumia pini 2 kwenye Arduino Uno & bodi nyingi bool blinkState = uongo; // Udhibiti wa MPU / vars za hadhi bool dmpReady = uwongo; // weka kweli ikiwa init ya DMP ilifanikiwa uint8_t mpuIntStatus; // inashikilia hali halisi ya usumbufu kutoka kwa MPU uint8_t devStatus; // hali ya kurudi baada ya kila operesheni ya kifaa (0 = mafanikio,! 0 = kosa) uint16_t packetSize; // ukubwa wa pakiti ya DMP inayotarajiwa (chaguo-msingi ni ka 42) uint16_t fifoCount; // hesabu ya ka zote zilizo katika FIFO uint8_t fifoBuffer [64]; // bafa ya kuhifadhi FIFO // mwelekeo / vars za mwendo Quaternion q; // [w, x, y, z] chombo cha quaternion VectorInt16 aa; // [x, y, z] vipimo vya sensorer vya accel VectorInt16 aaReal; // [x, y, z] vipimo visivyo na mvuto vya sensorer VectorInt16 aaWorld; // [x, y, z] vipimo vya sensorer vya sura ya ulimwengu VectorFloat mvuto; // [x, y, z] vector ya mvuto kuelea euler [3]; // [psi, theta, phi] Euler angle chombo kuelea ypr [3]; // [yaw, lami, roll] yaw / lami / roll chombo na mvuto vector // muundo wa pakiti ya onyesho la boti la InvenSense uint8_t teapotPacket [14] = {'$', 0x02, 0, 0, 0, 0, 0, 0, 0, 0, 0x00, 0x00, '\ r', '\ n'}; // ============================================== ========== =========================================== bool tete mpuInterrupt = uongo; // inaonyesha ikiwa pini ya kukatiza ya MPU imepita batili dmpDataReady () {mpuInterrupt = kweli; } // ============================================= =========== =============================== jiunge na basi ya I2C (maktaba ya I2Cdev haifanyi hivi kiotomatiki) #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin (); Wire.setClock (400000); // saa ya I2C ya 400kHz. Toa maoni kwenye mstari huu ikiwa na shida ya mkusanyiko #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire:: kuanzisha (400, kweli);. wakati (! Serial); // subiri hesabu ya Leonardo, wengine wanaendelea mara moja // kuanzisha kifaa //Serial.println(F ("Kuanzisha vifaa vya I2C…")); mpu kuanzisha (); pinMode (INTERRUPT_PIN, INPUT); devStatus = mpu.dmp Anzisha (); // usambazaji wa gyro yako mwenyewe hapa, iliyopunguzwa kwa unyeti wa dakika mpu.setXGyroOffset (17); mpu.setYGyroOffset (-69); mpu.setZGyroOffset (27); mpu.setZAccelOffset (1551); // Chaguo-msingi cha kiwanda cha 1688 kwa chip yangu ya majaribio // hakikisha imefanya kazi (inarudi 0 ikiwa ni hivyo) ikiwa (devStatus == 0) {// washa DMP, sasa ikiwa iko tayari // Serial.println (F ("Inawasha) DMP … ")); mpu.setDMPEnabled (kweli); ambatishaKukatiza (digitalPinToInterrupt (INTERRUPT_PIN), dmpDataReady, RISING); mpuIntStatus = mpu.getIntStatus (); // weka bendera yetu iliyo tayari ya DMP kwa hivyo kitanzi kuu () kazi inajua ni sawa kuitumia //Serial.println(F ("DMP tayari! Inangojea usumbufu wa kwanza…")); dmpReady = kweli; // pata ukubwa wa pakiti ya DMP inayotarajiwa kwa pakiti ya kulinganisha baadayeSize = mpu.dmpGetFIFOPacketSize (); } mwingine {// KOSA! // 1 = mzigo wa kumbukumbu ya awali umeshindwa // 2 = sasisho za usanidi wa DMP zimeshindwa // (ikiwa itaenda kuvunjika, kawaida nambari itakuwa 1) // Serial.print (F ("Uanzishaji wa DMP umeshindwa (nambari")); //Serial.print(devStatus); //Serial.println (F (")")); } // Fafanua pini ambazo motors 3 za servo zimeunganishwa servo0. ambatisha (10); kiambatisho cha servo1 (9); kiambatisho cha servo2 (8); } // ============================================= ================= // === MKUU WA PROGRAMU == = = ======================================== kitanzi batili () {/ / ikiwa programu imeshindwa, usijaribu kufanya chochote ikiwa (! dmpReady) inarudi; // subiri usumbufu wa MPU au pakiti (za) zaidi zinapatikana wakati (! mpuInterrupt && fifoCount <packetSize) {if (mpuInterrupt && fifoCount
= 1024) {
// kuweka upya ili tuweze kuendelea safi mpu.resetFIFO (); fifoCount = mpu.getFIFOCount (); Serial.println (F ("FIFO kufurika!")); // vinginevyo, angalia kukatizwa kwa data ya DMP tayari (hii inapaswa kutokea mara kwa mara)} mwingine ikiwa (mpuIntStatus & _BV (MPU6050_INTERRUPT_DMP_INT_BIT)) {// subiri urefu sahihi wa data, inapaswa kuwa subira fupi SANA wakati (pakiti ya fifoCount 1 inapatikana / / (hii inatuwezesha kusoma mara moja zaidi bila kusubiri usumbufu) fifoCount - = pakitiSize;.dmpGetYawPitchRoll (ypr, & q, & gravity); // Yaw, Pitch, Roll values - Radians to degrees ypr [0] = ypr [0] * 180 / M_PI; ypr [1] = ypr [1] * 180 / M_PI; ypr [2] = ypr [2] * 180 / M_PI; // Ruka masomo 300 (mchakato wa kujipima) ikiwa (j <= 300) {correct = ypr [0]; // Yaw huanza kwa thamani ya nasibu, kwa hivyo sisi nasa thamani ya mwisho baada ya usomaji 300 j ++;} // Baada ya usomaji mwingine 300 {ypr [0] = ypr [0] - sahihi; Yaw 0 digrii es // Ramani maadili ya sensa ya MPU6050 kutoka -90 hadi 90 hadi maadili yanayofaa kwa udhibiti wa servo kutoka 0 hadi 180 int servo0Value = ramani (ypr [0], -90, 90, 0, 180); int servo1Value = ramani (ypr [1], -90, 90, 0, 180); int servo2Value = ramani (ypr [2], -90, 90, 180, 0); // Dhibiti servos kulingana na mwelekeo wa MPU6050 servo0. Andika (servo0Value); andika (servo1Value); andika (servo2Value); } # mwisho}}
Mwishowe kutumia kazi ya kuandika, tunatuma maadili haya kwa servos kama ishara za kudhibiti. Kwa kweli, unaweza kuzima servo ya Yaw ikiwa unataka utulivu tu kwa mhimili wa X na Y, na utumie jukwaa hili kama gimbal ya kamera
Hatua ya 9: Wakati Vipengele vyote vimeunganishwa, muonekano wake unafanana na Picha hii
Hatua ya 10: Sasa Ingiza Vitu vyote vya Msingi Ndani ya Chombo cha Chakula
Hatua ya 11: Wakati waya zote na Vipengele vimewekwa ndani ya Chakula Na Kisha Kutumika Bunduki ya Gundi kwenye Msingi wa Bodi ya Povu
Hatua ya 12: Hitimisho
Tafadhali kumbuka hii mbali na gimbal nzuri ya kamera. Harakati sio laini kwa sababu servos hizi hazikusudiwa kusudi kama hilo. Gimbals halisi ya kamera hutumia aina maalum ya motor BLDC kupata harakati laini. Kwa hivyo, fikiria mradi huu tu kwa madhumuni ya kielimu.
Hiyo itakuwa yote kwa mafunzo haya, natumaini umeifurahia na kujifunza kitu kipya. Jisikie huru kuuliza swali lolote katika sehemu ya maoni hapa chini na usisahau kuangalia makusanyo yangu ya mradi
Ilipendekeza:
Vipande vya LED vya mwendo wa mwendo wa mwendo: Hatua 8 (na Picha)
Mwendo Reactive Surfboard Vipande vya LED: Hivi karibuni, mimi na marafiki wengine tuligundua kutumia mto. Kuishi Munich tuna bahati ya kuwa na mawimbi matatu ya mto yanayoweza kutiririka kati ya eneo maarufu la mawimbi ya Eisbach. Ubaya wa kutumia mto ni kwamba ni ya kulevya na kwa hivyo mimi hupata wakati wa kufanya
Mwendo-ulioamilishwa na Mwendo-ulioamilishwa Taa ya LED: 4 Hatua
Mwendo wa Kuendesha-Mwendo-ulioamilishwa Taa ya LED: Ikiwa ungependa kuweka taa mahali pengine ambayo haitoi wired ndani, hii inaweza kuwa kile unahitaji
Mwendo wa mwendo wa jua: Maandiko ya Haptic Prosthetic: Hatua 5
Moonwalk: Maoni ya Haptic Prosthetic: Maelezo: Moonwalk ni kifaa bandia kisicho na shinikizo kwa watu walio na hisia dhaifu za kugusa (dalili kama za ugonjwa wa neva). Mwendo wa mwezi ulibuniwa kusaidia watu binafsi kupokea maoni yanayofaa wakati miguu yao inapowasiliana
Mwendo wa Kudhibitiwa kwa Mwendo: Hatua 7 (na Picha)
Timelapse inayodhibitiwa na mwendo: Ukomo wa wakati ni mzuri! Wanatusaidia kutazama ulimwengu unaotembea polepole ambao tunaweza kusahau kufahamu uzuri wake. Lakini wakati mwingine video thabiti ya wakati wa kurudi nyuma inaweza kuchosha au kuna mambo mengi yanayotokea karibu kwamba pembe moja tu sio
Jacket ya Usalama Mlimani: Jacket ya Mwendo ya Usikivu wa Mwendo: Hatua 11 (na Picha)
Jacket ya Usalama Mlimani: Jacket ya Mwendo ya Usikivu wa Mwendo: Uboreshaji wa umeme mwepesi na unaoweza kuvaliwa unafungua uwezekano mpya wa kuleta teknolojia katika nchi ya nyuma na kuitumia kuongeza usalama wa wale wanaochunguza. Kwa mradi huu, nilitumia uzoefu wangu mwenyewe na ushauri wa nje