Orodha ya maudhui:

Arduino Msingi Servo Mdhibiti: 6 Hatua
Arduino Msingi Servo Mdhibiti: 6 Hatua

Video: Arduino Msingi Servo Mdhibiti: 6 Hatua

Video: Arduino Msingi Servo Mdhibiti: 6 Hatua
Video: Управление 16 серводвигателями с использованием модуля PCA9685 и Arduino V2 2024, Novemba
Anonim
Arduino Msingi Serial Servo Mdhibiti
Arduino Msingi Serial Servo Mdhibiti
Arduino Msingi Serial Servo Mdhibiti
Arduino Msingi Serial Servo Mdhibiti

Huyu ni mtawala rahisi wa serial kwa servos nyingi kulingana na Arduino. (yangu ya kwanza kufundishwa pia:))

Kazi nyingi katika hii zilitokana na kupata programu ya kuzungumza na arduino na kufanya itifaki ya data kupitishwa. Kwa upande wa vifaa ambavyo nilitumia ni servos mbili (Parallax standard servo hapa.) Sparkfun Arduino ProtoShield na Arduino Duemilanove iliyo na ATMEGA328, lakini sehemu hizi nyingi zinaweza kubadilishwa na vitu sawa. Nilifikiria mradi huu kama sehemu ya mfumo wa RC, lakini kuanzisha mawasiliano ilichukua muda mwingi. Ikiwa mtu yeyote ana maboresho yoyote, maoni, au mende tafadhali jisikie huru kutoa maoni. BONYEZA: Niliandika hii muda mfupi uliopita, nimeanza kuichapisha hivi karibuni.

Hatua ya 1: Vitu Unavyoweza Kuhitaji…

Vitu Unavyoweza Kuhitaji…
Vitu Unavyoweza Kuhitaji…
Vitu Unavyoweza Kuhitaji…
Vitu Unavyoweza Kuhitaji…

Vitu vingine utahitaji kujenga hii. 1. Bodi ya Arduino (unachagua) 2. servos mbili (au moja) 3. waya za kuruka 4. Studio ya Visual 2008 Express - kiungo (hiari) windows kwa sasa, lakini bado unaweza kutuma amri za serial kwa arduino bila kubadilisha nambari.

Hatua ya 2: Unganisha vifaa

Unganisha vifaa
Unganisha vifaa

Hakuna kitu ngumu sana kwa hatua hii. Unganisha servo moja kwa kubandika 9 na nyingine kubandika 10.

Hatua ya 3: Panga Arduino

Mpango wa Arduino
Mpango wa Arduino

sasa unaweza kupakia mchoro kwenye arduino.

Hapa kuna uharibifu rahisi wa nambari: # pamoja na Servo myservo; // tengeneza kitu cha servo kudhibiti servo Servo myservo1; int incomingByte = 0, hesabu = 0, counter = 0, tayari = 0; // kwa data zinazoingia za data ya serial [10]; const char kuthibitisha [8] = "ma11hew"; char amri [3]; kuanzisha batili () {myservo.attach (9); myservo1.ambatanisha (10); Serial. Kuanza (38400); // inafungua bandari ya serial, huweka kiwango cha data Serial.println ("Hi Arduino Hapa!"); // imeongezwa kusaidia kutambua bandari ya serial Hii inaweka tu bandari ya serial na servos. int i; kwa (i = 0; i <180; i ++) {myservo.write (i); kuchelewesha (15); } myservo.andika (5); kwa (i = 0; i <180; i ++) {myservo1.write (i); kuchelewesha (15); } myservo1.andika (5); } Harakati rahisi ya kufagia ili kudhibitisha servos hufanya kazi kwa usahihi. kitanzi batili () {ready = 0; kaunta = 0; wakati (1 == 1) {ikiwa (Serial.read ()! = thibitisha [counter]) {break; } ikiwa (counter == 6) {kuchelewesha (20); amri [0] = Serial.read (); amri [1] = Serial.read (); // if (Serial.read () == ((amri [1] * 12)% 8)) // {ready = 1; //} Serial.println ("amri iliyohifadhiwa"); } kaunta ++; kuchelewesha (2); } hii inakagua bafa ya serial kwa kamba sahihi ya idhini kisha inachukua ka mbili kwa amri. maoni kama taarifa inaruhusu checksum ya muda lakini itafanya mwingiliano wa mwingiliano kuwa mgumu. tayari inaweza kuwekwa kwa 0 kwa hivyo amri hazitagawanywa kama vile katika hali ya data iliyoharibiwa. // tafuta kupitia amri ikiwa (tayari == 1) {if (command [0] == 'T') {command [0] = 0; Serial.print ("kudhibiti kaba kwenye pini 9 hadi:"); Serial.println (ramani (amri [1], 32, 126, 2, 180), DEC); kuandika. ramani (ramani (amri [1], 32, 126, 2, 180)); } ikiwa (amri [0] == 'S') {amri [0] = 0; Serial.print ("kudhibiti kaba kwenye pini 10 hadi:"); Serial.println (ramani (amri [1], 32, 126, 2, 180), DEC); myservo1.andika (ramani (amri [1], 32, 126, 2, 180)); }}} msimbo uliobaki ni kutafuta amri kwa amri halali (T au S.) ikiwa inalingana inachukua baiti inayofuata na kuipeleka kwa servo. zaidi kwenye ramani (amri [1], 32, 126, 2, 180) baadaye… nambari hapa inaweza kupanuliwa kwa chochote kingine unachohitaji (kwa mfano taa, motors, IR, n.k.) nambari hii inapaswa kufanya kazi vizuri bila marekebisho.

Hatua ya 4: Sakinisha Programu

Sakinisha Programu
Sakinisha Programu

Nina njia mbili za kusanikisha hii … kisanidi cha nsis: Pakua kisakinishi cha kujitolea hapa chini na uifanye. Utakuwa na chaguo la kusanikisha vyanzo wakati wa usakinishaji. kifurushi cha binary cha kisakinishi kinasakinisha dlls za msingi c ++ ili iweze kuendeshwa kwenye kompyuta bila c ++ ya kuona iliyowekwa tayari. Mara kisakinishaji kitakapomalizika unaweza kukiendesha kutoka kwa eneo-kazi au kuanza menyu. zip njia (haijathibitishwa): Pakua na uendeshe, inapaswa kufanya kazi. labda. (Hifadhi ya zip ina muundo sawa wa folda iliyoundwa na kisakinishi, bila vyanzo. Sina mashine bila studio ya kuijaribu ili iweze isifanye kazi.)

Hatua ya 5: Tumia Programu ya Maingiliano

Tumia Programu ya Maingiliano
Tumia Programu ya Maingiliano
Tumia Programu ya Maingiliano
Tumia Programu ya Maingiliano

Kutumia programu kwanza chagua kiwango cha baud kilichofafanuliwa kwenye mchoro wa arduino. Mchoro ambao haujabadilishwa kuwa baud ya 38400 lakini inaweza kubadilishwa ili kukidhi mahitaji yako kwa vitu kama kiungo cha redio polepole. Kumbuka: viwango vya baud vya juu kuliko 38400 havijakaa sana, nadhani hii ni kwa sababu uart inajaza kabla data haijashughulikiwa. Ifuatayo, chagua bandari ya COM ya kutumia. chaguo-msingi la programu kwa COM4 hakikisha kuibadilisha au programu itaanguka. Mwishowe, bonyeza wazi. Ikiwa yote yameenda vizuri mpango utafungua bandari ya serial iliyochaguliwa kwa kiwango cha baud kilichochaguliwa. Ikiwa sivyo mpango labda utaanguka na ubaguzi ambao haujashughulikiwa. hakikisha bandari ni sahihi na ujaribu tena. Tumia visanduku vya maandishi kuwasilisha maagizo ya moja kwa moja kwa arduino. "Ramani (amri [1], 32, 126, 2, 180)" hupima amri zote 94 zinazowezekana, * nafasi * kupitia ~, inayosomeka na arduino katika ASCII hadi 2 hadi 180 kwa servo. baiti yoyote chini ya ASCII 32 (nafasi) au zaidi ya chaguo-msingi 126 (~) hadi 63 (?) Vizuizi vya wimbo hutoa kiolesura cha macho kwa amri za moja kwa moja. kila hatua hutuma amri ya serial kwa arduino kwa kuongezeka.

Hatua ya 6: Pata Ubunifu

Pata Ubunifu!
Pata Ubunifu!
Pata Ubunifu!
Pata Ubunifu!

Fikiria mambo mazuri ya kufanya na hii. Mawazo kadhaa: 1. Kaba ya mbali kwa gari. 2. 3D camera mount 3. rover underwater Furahiya !!

Ilipendekeza: