Orodha ya maudhui:
- Hatua ya 1: Vitu utakavyohitaji: -
- Hatua ya 2: Kutengeneza Silaha: -
- Hatua ya 3: Kufanya Uunganisho: -
- Hatua ya 4: Kuandika: -
- Hatua ya 5: Upimaji: -
Video: Rahisi na Smart Smart Robotic kutumia Arduino !!!: Hatua 5 (na Picha)
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:52
Katika hii kufundisha nitakuwa nikifanya mkono rahisi wa roboti. Hiyo itadhibitiwa kwa kutumia mkono mkuu. Mkono kukumbuka hatua na kucheza katika mlolongo. Wazo sio mpya nilipata Wazo kutoka kwa "mkono mdogo wa roboti - na Stoerpeak" Nilitaka kuifanya hii kwa muda mrefu, lakini wakati huo nilikuwa kabisa noob na sikuwa na ujuzi juu ya programu. Sasa mwishowe ninajenga moja, Kuiweka rahisi, ya bei rahisi na kushiriki nanyi nyote.
Basi lets kuanza….
Hatua ya 1: Vitu utakavyohitaji: -
Hapa kuna orodha ya vitu utakavyohitaji: -
1. Servo motors x 5 Unganisha kwa US: - https://amzn.to/2OxbSH7Link kwa Uropa: -
2. Potentiometers x 5 (nimetumia 100k.) Kiungo kwa US: - https://amzn.to/2ROjhDMLink kwa Uropa: -
3. Arduino UNO. (Unaweza kutumia Arduino Nano pia) Kiungo cha Amerika: - https://amzn.to/2DBbENWLink kwa Uropa: -
4. Bodi ya mkate. (Ninashauri hii kit) Kiungo kwa Marekani: - https://amzn.to/2Dy86w4Wasiliana na Ulaya: -
5. Betri. (hiari, ninatumia adapta ya 5v)
6. Kadibodi / Mbao / Bodi ya jua / akriliki ni nini kinachopatikana au rahisi kupatikana.
Na utahitaji pia Arduino IDE iliyosanikishwa.
Hatua ya 2: Kutengeneza Silaha: -
Hapa nimetumia vijiti vya Popsicle kutengeneza mkono. Unaweza kutumia nyenzo zozote ambazo hupatikana kwako. Na unaweza kujaribu miundo tofauti ya mitambo kutengeneza mkono bora zaidi. muundo wangu sio thabiti sana.
Nilitumia mkanda wa pande mbili kushika servos kwenye fimbo ya Popsicle na kuzifunga kwa kutumia vis.
Kwa mkono wa Mwalimu niliunganisha potentiometers kwa vijiti vya popsicle na nikatengeneza mkono.
Akimaanisha picha zitakupa Wazo bora.
Nimeweka kila kitu kwenye bodi ya turubai ya ukubwa wa A4 inayotumiwa kama msingi.
Hatua ya 3: Kufanya Uunganisho: -
Katika hatua hii tutafanya viunganisho vyote muhimu, Rejea picha zilizo hapo juu.
- Kwanza unganisha servos zote sambamba na usambazaji wa umeme (waya mwekundu kwenda na waya mweusi au mweusi kwa Gnd)
- Ifuatayo unganisha waya za ishara yaani waya wa Njano au wa Chungwa kwa pini ya PWM ya arduino.
- Sasa unganisha potentiometers na + 5v na Gnd ya arduino kwa usawa.
- Unganisha kituo cha katikati na pini ya Analog ya ardunio.
Hapa Pini za Dijiti 3, 5, 6, 9 & 10 hutumiwa kudhibiti servos
Pini za Analog A0 hadi A4 hutumiwa kwa Ingizo kutoka kwa Potentiometers.
Servo iliyounganishwa na pini 3 itadhibitiwa na potentiometer iliyounganishwa na A0
Servo iliyounganishwa na kubandika 5 itadhibitiwa na sufuria kwenye A1, na kadhalika….
Kumbuka: - Ingawa Servos haijawezeshwa na arduino, Hakikisha unganisha Gnd ya servos na arduino au sivyo mkono ambao haufanyi kazi.
Hatua ya 4: Kuandika: -
Mantiki ya nambari hii ni rahisi sana maadili ya potentiometers huhifadhiwa katika safu rekodi hizo zinapitishwa kwa kutumia kitanzi na servos hufanya hatua kulingana na maadili. Unaweza kuangalia mafunzo haya niliyotumia kwa kumbukumbu "Arduino Potentiometer Servo Control & Memory"
Nambari: - (Faili inayoweza kupakuliwa iliyoambatanishwa.)
Kwanza tutatangaza anuwai zote muhimu ulimwenguni ili tuweze kuzitumia wakati wote wa programu. Hakuna ufafanuzi maalum unahitajika kwa hii
# pamoja
// Vitu vya Servo Servo Servo_0; Servo Servo_1; Servo Servo_2; Servo Servo_3; Servo Servo_4; // Vitu vya Potentiometer int Pot_0; int Pot_1; int Pot_2; int Pot_3; int Pot_4; // Kubadilika kuhifadhi Nafasi ya Servo int Servo_0_Pos; int Servo_1_Pos; int Servo_2_Pos; int Servo_3_Pos; int Servo_4_Pos; // Kubadilika kuhifadhi maadili ya msimamo uliopita Int Prev_0_Pos; int Prev_1_Pos; int Prev_2_Pos; int Prev_3_Pos; int Prev_4_Pos; // Kubadilika kuhifadhi maadili ya nafasi ya sasa ndani ya Current_0_Pos; int Current_1_Pos; int Current_2_Pos; int Current_3_Pos; int Current_4_Pos; int Servo_Position; // Duka la pembe int Servo_Namba; // Maduka hakuna ya Uhifadhi wa servo int [600]; // Safu ya kuhifadhi data (Kuongeza ukubwa wa safu kutatumia kumbukumbu zaidi) int Index = 0; // Faharisi ya safu huanza kutoka nafasi ya 0 data char = 0; // kutofautisha kuhifadhi data kutoka kwa uingizaji wa serial.
Sasa tutaandika kazi ya usanidi, ambapo tunaweka pini na kazi zao. Hii ndio kazi kuu inayofanya kwanza
kuanzisha batili ()
{Serial.begin (9600); // Kwa mawasiliano ya serial kati ya arduino na IDE. // Vitu vya Servo vimeambatanishwa na pini za PWM. Ambatisha Servo_0 (3); Ambatisha Servo_1 (5); Ambatisha Servo_2 (6); Ambatisha Servo_3 (9); Unganisha Servo_4 (10); // Servos zimewekwa kwenye nafasi 100 wakati wa kuanzisha. Andika Servo_0 (100); Andika (100). Andika Servo_2 (100); Andika Servo_3 (100); Andika Servo_4 (100); Serial.println ("Bonyeza 'R' Kurekodi na 'P' kucheza"); }
Sasa inabidi tusome maadili ya potentiometers kutumia pini za Kuingiza Analog na uziweke ramani kudhibiti servos. Kwa hili tutafafanua kazi na tutaipe jina la Map_Pot ();, unaweza kutaja kitu chochote unachotaka ni kazi iliyofafanuliwa na mtumiaji
Utupu Map_Pot ()
{/ * Servos huzunguka kwa digrii 180 lakini kuitumia kwa mipaka sio wazo nzuri kwani inafanya buzz ya servos kuendelea ambayo inakera kwa hivyo tunazuia servo kusonga kati ya: 1-179 * / Pot_0 = analogRead (A0); // Soma pembejeo kutoka kwenye sufuria na uihifadhi kwenye Pot_0 inayobadilika. Servo_0_Pos = ramani (Pot_0, 0, 1023, 1, 179); // Ramani servos kulingana na thamani kati ya 0 hadi 1023 Servo_0.write (Servo_0_Pos); // Hamisha servo kwenye nafasi hiyo. Pot_1 = AnalogSoma (A1); Servo_1_Pos = ramani (Pot_1, 0, 1023, 1, 179); Andika Servo_1 (Servo_1_Pos); Pot_2 = AnalogSoma (A2); Servo_2_Pos = ramani (Pot_2, 0, 1023, 1, 179); Andika Servo_2 (Servo_2_Pos); Pot_3 = AnalogSoma (A3); Servo_3_Pos = ramani (Pot_3, 0, 1023, 1, 179); Andika Servo_3 (Servo_3_Pos); Pot_4 = AnalogSoma (A4); Servo_4_Pos = ramani (Pot_4, 0, 1023, 1, 179); Andika Servo_4 (Servo_4_Pos); }
Sasa tutaandika kazi ya kitanzi:
kitanzi batili ()
{Ramani_Pot (); // Wito wa kazi kusoma maadili ya sufuria wakati (Serial.available ()> 0) {data = Serial.read (); ikiwa (data == 'R') Serial.println ("Kurekodi kunasogeza…"); ikiwa (data == 'P') Serial.println ("Inacheza Moves Recorded…"); } ikiwa (data == 'R') // Ikiwa 'R' imeingizwa, anza kurekodi. {// Hifadhi dhamana katika Prev_0_Pos inayobadilika = Servo_0_Pos; Prev_1_Pos = Servo_1_Pos; Prev_2_Pos = Servo_2_Pos; Prev_3_Pos = Servo_3_Pos; Prev_4_Pos = Servo_4_Pos; Ramani_Pot (); // Kazi ya Ramani ilikumbuka kwa kulinganisha ikiwa (abs (Prev_0_Pos == Servo_0_Pos)) // thamani kamili inapatikana kwa kulinganisha {Servo_0.write (Servo_0_Pos); // Ikiwa maadili yanayolingana na servo yamewekwa tena ikiwa (Current_0_Pos! = Servo_0_Pos) // Ikiwa maadili hayalingani na {Storage [Index] = Servo_0_Pos + 0; // Thamani imeongezwa kwa safu ya Index ++; // Thamani ya kiashiria imeongezwa na 1} Sasa_0_Pos = Servo_0_Pos; } / * Vivyo hivyo kulinganisha thamani hufanywa kwa servos zote, + 100 huongezwa kila kwa kuingia kama thamani tofauti. * / if (abs (Prev_1_Pos == Servo_1_Pos)) {Servo_1.write (Servo_1_Pos); ikiwa (Current_1_Pos! = Servo_1_Pos) {Storage [Index] = Servo_1_Pos + 100; Kiashiria ++; } Sasa_1_Pos = Servo_1_Pos; } ikiwa (abs (Prev_2_Pos == Servo_2_Pos)) {Servo_2.write (Servo_2_Pos); ikiwa (Sasa_2_Pos! = Servo_2_Pos) {Uhifadhi [Index] = Servo_2_Pos + 200; Kiashiria ++; } Sasa_2_Pos = Servo_2_Pos; } ikiwa (abs (Prev_3_Pos == Servo_3_Pos)) {Servo_3.write (Servo_3_Pos); ikiwa (Sasa_3_Pos! = Servo_3_Pos) {Uhifadhi [Index] = Servo_3_Pos + 300; Kiashiria ++; } Sasa_3_Pos = Servo_3_Pos; } ikiwa (abs (Prev_4_Pos == Servo_4_Pos)) {Servo_4.write (Servo_4_Pos); ikiwa (Sasa_4_Pos! = Servo_4_Pos) {Uhifadhi [Index] = Servo_4_Pos + 400; Kiashiria ++; } Sasa_4_Pos = Servo_4_Pos; } / * Thamani zimechapishwa kwenye mfuatiliaji wa serial, '\ t' ni ya kuonyesha maadili katika muundo wa tabular * / Serial.print (Servo_0_Pos); Serial.print ("\ t"); Printa ya serial (Servo_1_Pos); Serial.print ("\ t"); Printa ya serial (Servo_2_Pos); Serial.print ("\ t"); Printa ya serial (Servo_3_Pos); Serial.print ("\ t"); Serial.println (Servo_4_Pos); Serial.print ("Index ="); Serial.println (Kielelezo); kuchelewesha (50); } ikiwa (data == 'P') // IF 'P' imeingizwa, Anza kucheza hatua zilizorekodiwa. {for (int i = 0; i <Index; i ++) // Vuka safu kwa kutumia kitanzi {Servo_Number = Storage / 100; // Inapata idadi ya servo Servo_Position = Uhifadhi % 100; // Inapata nafasi ya kubadili servo (Servo_Number) {kesi 0: Servo_0.write (Servo_Position); kuvunja; kesi 1: Servo_1.write (Servo_Position); kuvunja; kesi 2: Servo_2.write (Servo_Position); kuvunja; kesi 3: Servo_3.write (Servo_Position); kuvunja; kesi 4: Servo_4.write (Servo_Position); kuvunja; } kuchelewa (50); }}}
Mara tu msimbo uko tayari, Sasa pakia kwenye ubao wa arduino
Mkono wa Smart uko tayari kufanya kazi. Kazi bado si laini kama ile iliyotengenezwa na Stoerpeak.
Ikiwa unaweza kufanya nambari iwe bora au uwe na maoni yoyote kwangu tafadhali nijulishe katika sehemu ya maoni.
Kwa kuwa imesemwa, Wacha tuendelee kupima….
Hatua ya 5: Upimaji: -
Baada ya kupakia nambari kwenye bodi kwa mafanikio, Fungua 'Serial Monitor' unaweza kuipata katika chaguo la Zana. Wakati mfuatiliaji wa serial unapoanza arduino itaweka upya. Sasa unaweza kudhibiti mkono wa roboti ukitumia mkono mkuu. Lakini hakuna kinachorekodiwa.
Kuanza kurekodi, Ingiza 'R' katika kifuatilia sasa unaweza kutekeleza hatua unazotaka kurekodi.
Baada ya hatua kufanywa lazima uingize 'P' ili kucheza hatua zilizorekodiwa. Servos itaendelea kufanya harakati ilimradi bodi haijawekwa upya.
Ilipendekeza:
Taa za Kombe la Povu la DIY - Rahisi na ya bei rahisi Mapambo ya Diwali Kutumia Vikombe vya Povu: Hatua 4
Taa za Kombe la Povu la DIY | Wazo rahisi na la bei rahisi la Diwali la Kutumia Vikombe vya Povu: Katika chapisho hili, tutazungumza juu ya mradi wa Sherehe za Diwali kwenye bajeti. Natumai utapenda mafunzo haya
Njia ya bei rahisi na rahisi ya Tin ya PCB yako Kutumia Chuma cha Soldering: 6 Hatua
Njia ya bei rahisi na rahisi ya Tin ya PCB yako Kutumia Chuma cha Soldering: Wakati nilikuwa mwanzilishi katika uchapishaji wa PCB, na kutengenezea mimi kila wakati nilikuwa na shida kwamba solder haibaki mahali pazuri, au athari za shaba zinavunjika, pata vioksidishaji na zingine nyingi. . Lakini nilifahamiana na mbinu nyingi na hacks na mmoja wao
Kutumia Kijijini Kina waya bila kutumia 2.4Ghz NRF24L01 Module Na Arduino - Nrf24l01 4 Channel / 6 Kituo cha Mpokeaji wa Kituo cha Quadcopter - Helikopta ya Rc - Ndege ya Rc Kutumia Arduino: Hatua 5 (na Picha)
Kutumia Kijijini Kina waya bila kutumia 2.4Ghz NRF24L01 Module Na Arduino | Nrf24l01 4 Channel / 6 Channel Transmitter kipokeaji cha Quadcopter | Helikopta ya Rc | Ndege ya Rc Kutumia Arduino: Kuendesha gari la Rc | Quadcopter | Drone | Ndege ya RC | Boti ya RC, siku zote tunahitaji kipokezi na mtumaji, tuseme kwa RC QUADCOPTER tunahitaji kipitishaji na mpokeaji wa kituo 6 na aina hiyo ya TX na RX ni ya gharama kubwa sana, kwa hivyo tutafanya moja kwenye yetu
DIY MusiLED, Muziki uliosawazishwa LEDs na Bonyeza mara moja Windows & Linux Maombi (32-bit & 64-bit). Rahisi kujirudia, Rahisi Kutumia, Rahisi kwa Port: 3 Hatua
DIY MusiLED, Muziki uliosawazishwa LEDs na Bonyeza mara moja Windows & Linux Maombi (32-bit & 64-bit). Rahisi kujirudia, Rahisi Kutumia, Rahisi Bandari. Mradi huu utakusaidia kuunganisha LEDs 18 (6 Nyekundu + 6 Bluu + 6 Njano) kwa Bodi yako ya Arduino na uchanganue ishara za wakati halisi wa Kompyuta yako na uzipeleke kwa taa za taa kuziwasha kulingana na athari za kipigo (Mtego, Kofia ya Juu, Kick)
Njia Rahisi / rahisi / Sio ngumu ya Kufanya Watu / wanadamu / wanyama / roboti ionekane kama Wana Maoni ya baridi / mkali wa joto (Rangi ya Chaguo lako) Kutumia GIMP: Hatua 4
Njia Rahisi / rahisi / Sio ngumu Kufanya Watu / wanadamu / wanyama / roboti ionekane kama Wana Maono ya joto / mkali wa joto (Rangi ya Chaguo lako) Kutumia GIMP: Soma … kichwa