Turinys:
- 1 žingsnis: dalykų, kurių jums gali prireikti…
- 2 veiksmas: prijunkite aparatūrą
- 3 žingsnis: užprogramuokite „Arduino“
- 4 veiksmas: įdiekite programinę įrangą
- 5 veiksmas: naudokite sąsajos programą
- 6 žingsnis: būkite kūrybingi
Video: „Arduino“serijos servo valdiklis: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:51
Tai paprastas serijinis valdiklis, skirtas daugeliui servų, pagrįstų „Arduino“. (mano pirmas pamokymas taip pat:))
Didžioji darbo dalis buvo susijusi su programinės įrangos pokalbiu su arduino ir duomenų perdavimo protokolo sudarymu. Kalbant apie aparatūros aspektą, aš naudoju tik du servo įrenginius („Parallax“standartinis servo čia.) „Sparkfun Arduino ProtoShield“ir „Arduino Duemilanove“su ATMEGA328, tačiau daugumą šių dalių galima pakeisti panašiais elementais. Šį projektą sugalvojau kaip RC sistemos dalį, tačiau ryšio nustatymas užėmė daug laiko. Jei kas nors turi patobulinimų, idėjų ar klaidų, nedvejodami komentuokite. EDIT: Aš tai rašiau prieš kurį laiką, tik neseniai jį paskelbiau.
1 žingsnis: dalykų, kurių jums gali prireikti…
Kai kurie dalykai, kurių jums reikės norint jį sukurti. 1. „Arduino“plokštė (jūs pasirenkate) 2. du (arba vienas) servos 3. trumpieji laidai 4. „Visual Studio 2008 Express“- nuoroda (neprivaloma) 5. „Arduino IDE“- nuoroda Atsiprašome „Linux“ir „Apple“gerbėjų, mano programa veikia tik „Windows“, bet vis tiek galite rankiniu būdu siųsti serijines komandas „arduino“nekeisdami kodo.
2 veiksmas: prijunkite aparatūrą
Šiam žingsniui nėra nieko labai sudėtingo. Tiesiog prijunkite vieną servo prie 9 kaiščio ir kitą prie 10 kaiščio.
3 žingsnis: užprogramuokite „Arduino“
dabar galite įkelti eskizą į arduino.
Čia yra paprastas kodo suskirstymas: #include Servo myservo; // sukurti servo objektą servo valdymui Servo myservo1; int gaunamas baitas = 0, duomenų skaičius = 0, skaitiklis = 0, parengtas = 0; // gaunamiems serijiniams duomenims char duomenys [10]; const char patikrinti [8] = "ma11hew"; char komanda [3]; void setup () {myservo.attach (9); myservo1.attach (10); Serial.begin (38400); // atidaro serijinį prievadą, nustato duomenų greitį Serial.println ("Labas Arduino čia!"); // pridėta, kad padėtų nustatyti nuoseklųjį prievadą. Tai tik nustato serijinį prievadą ir servo. int i; (i = 0; i <180; i ++) {myservo.write (i); vėlavimas (15); } myservo.write (5); (i = 0; i <180; i ++) {myservo1.write (i); vėlavimas (15); } myservo1.write (5); } Paprastas šlifavimo judesys, siekiant patikrinti, ar tinkamai veikia servoservisai. tuštumos kilpa () {paruošta = 0; skaitiklis = 0; while (1 == 1) {if (Serial.read ()! = patikrinti [skaitiklis]) {break; } if (skaitiklis == 6) {delay (20); komanda [0] = Serial.read (); komanda [1] = Serial.read (); // jei (Serial.read () == ((komanda [1] * 12) % 8)) // {ready = 1; //} Serial.println ("išsaugota komanda"); } skaitiklis ++; uždelsimas (2); } tai patikrina, ar serijiniame buferyje yra teisinga autorizacijos eilutė, tada paima du komandos baitus. pakomentavo, jei teiginys leidžia atlikti laikiną kontrolinę sumą, tačiau apsunkintų rankinį sąsają. paruoštas gali būti nustatytas į 0, todėl komandos nebus analizuojamos, pavyzdžiui, sugadintų duomenų atveju. // ieškoti per komandas if (ready == 1) {if (command [0] == 'T') {command [0] = 0; Serial.print ("droselio valdymas 9 kaištyje iki:"); Serial.println (žemėlapis (komanda [1], 32, 126, 2, 180), DEC); myservo.write (žemėlapis (komanda [1], 32, 126, 2, 180)); } if (komanda [0] == 'S') {komanda [0] = 0; Serial.print ("droselio valdymas 10 kaiščio iki:"); Serial.println (žemėlapis (komanda [1], 32, 126, 2, 180), DEC); myservo1.write (žemėlapis (komanda [1], 32, 126, 2, 180)); }}} likusi kodo dalis yra ieškoti komandoje galiojančių komandų (T arba S.), jei kuri nors iš jų atitinka kitą baitą ir siunčia jį į servo. daugiau žemėlapyje (komanda [1], 32, 126, 2, 180) vėliau … čia esantį kodą galima išplėsti viskam, ko jums gali prireikti (pvz., žibintams, varikliams, IR ir pan.), šis kodas turėtų veikti gerai modifikacijas.
4 veiksmas: įdiekite programinę įrangą
Turiu du būdus, kaip įdiegti šią… nsis diegimo programą: Atsisiųskite žemiau esantį savaiminio diegimo diegimo programą ir paleiskite ją. Diegimo metu turėsite galimybę įdiegti šaltinius. diegimo diegimo paketas įdiegia pagrindinius „c ++“dll failus, kad jį būtų galima paleisti kompiuteryje, dar neįdiegus „visual c ++“. Baigę diegimo programą, galite ją paleisti iš darbalaukio arba meniu Pradėti. zip būdas (nepatvirtintas): atsisiųskite ir paleiskite, jis turėtų veikti. gal būt. (ZIP archyve yra ta pati aplanko struktūra, kurią sukūrė diegimo programa, be šaltinių. Neturiu mašinos be vizualinės studijos, kad galėčiau ją išbandyti, todėl ji gali neveikti.)
5 veiksmas: naudokite sąsajos programą
Norėdami naudoti programą, pirmiausia pasirinkite duomenų perdavimo spartą, apibrėžtą arduino eskize. Nemodifikuotas eskizas pagal numatytuosius nustatymus yra 38400 baudų, tačiau jį galima pakeisti pagal jūsų poreikius, pvz., Lėtesnį radijo ryšį. Pastaba: didesnis nei 38400 duomenų perdavimo greitis nebuvo labai stabilus, manau, taip yra todėl, kad uartas užpildomas prieš pradedant apdoroti duomenis. Tada pasirinkite norimą naudoti COM prievadą. programa pagal numatytuosius nustatymus yra COM4, būtinai ją pakeiskite, kitaip programa suges. Galiausiai spustelėkite atidaryti. Jei viskas klostėsi gerai, programa atidarys pasirinktą nuoseklųjį prievadą pasirinktu duomenų perdavimo greičiu. Jei ne, programa tikriausiai sudužs su neapdorota išimtimi. įsitikinkite, kad prievadas teisingas, ir bandykite dar kartą. Naudokite teksto laukelius, kad pateiktumėte tiesiogines komandas arduino. „Žemėlapis (komanda [1], 32, 126, 2, 180)“padidina visas 94 galimas komandas, * tarpo * per ~, kurias ASDII arduino gali nuskaityti nuo 2 iki 180 servo. bet kuris baitas, mažesnis nei ASCII 32 (tarpas) arba didesnis nei 126 (~), pagal numatytuosius nustatymus yra 63 (?) Takelių juostos suteikia eaiser sąsają tiesioginėms komandoms. kiekvienas žingsnis siunčia serijinę komandą arduino palaipsniui.
6 žingsnis: būkite kūrybingi
Pagalvokite apie šaunius dalykus, kuriuos galite padaryti su tuo. Keletas idėjų: 1. Nuotolinis automobilio droselis. 2. 3D kameros laikiklis 3. povandeninis roveris Smagiai !!
Rekomenduojamas:
„Arduino“pagrindu sukurtas „pasidaryk pats“žaidimų valdiklis - „Arduino PS2“žaidimų valdiklis - Žaidimas „Tekken“naudojant „pasidaryk pats“„Arduino“žaidimų pultą: 7 žingsniai
„Arduino“pagrindu sukurtas „pasidaryk pats“žaidimų valdiklis | „Arduino PS2“žaidimų valdiklis | Žaidimas „Tekken“naudojant „pasidaryk pats“„Arduino Gamepad“: Sveiki, vaikinai, žaisti žaidimus visada smagu, tačiau žaisti su savo „pasidaryk pats“žaidimo valdikliu yra smagiau. Taigi, mes padarysime žaidimų valdiklį naudodami „arduino pro micro“šioje instrukcijoje
„Arduino“serijos monitorius „Tinkercad“: 7 žingsniai (su nuotraukomis)
„Arduino“serijos monitorius „Tinkercad“: sekti viską, kas vyksta jūsų programoje, gali būti įkalnė. Serijinis monitorius yra būdas klausytis to, kas vyksta jūsų kode, pranešant kompiuteriui per USB kabelį. „Tinkercad Circuits“simuliatoriuje serijos
Gaukite „DS18B20“serijos numerį naudodami „Arduino“: 5 žingsniai
Gaukite „DS18B20“serijos numerį naudodami „Arduino“: tai trumpas vadovas, kaip gauti atskirus DS18B20 1 laidų temperatūros jutiklių serijos numerius. Tai patogu projektams, kuriems reikia kelių jutiklių. Jums reikalingi dalykai: „Arduino 5v“( UNO, „Mega“, „Pro Mini“ir kt.) - „Arduino UNO R3“- „AliExpre“
Kaip įkelti programą ar kodą į „Arduino Pro Mini“naudojant CH340 UART serijos keitiklio kabelį: 4 žingsniai
Kaip įkelti programą ar kodą į „Arduino Pro Mini“naudojant CH340 UART serijinio keitiklio kabelį: USB TTL nuoseklieji kabeliai yra įvairūs USB į nuoseklius keitiklio kabeliai, užtikrinantys ryšį tarp USB ir nuosekliųjų UART sąsajų. Galimi įvairūs kabeliai, siūlantys 5 voltų, 3,3 voltų arba vartotojo nurodytus signalo lygius
YABC - dar vienas „Blynk“valdiklis - „IoT“debesų temperatūros ir drėgmės valdiklis, ESP8266: 4 žingsniai
YABC - Dar vienas „Blynk“valdiklis - „IoT“debesų temperatūros ir drėgmės valdiklis, ESP8266: Sveiki, kūrėjai, neseniai pradėjau auginti grybus namuose, austrių grybus, bet jau turiu 3 kartus šių valdiklių namuose, kad galėčiau kontroliuoti savo namų alaus fermentacijos temperatūrą, žmona dabar taip pat daro šį „Kombucha“dalyką ir yra šilumos termostatas