Kazalo:
- Korak: Stvari, ki jih boste morda potrebovali …
- 2. korak: Povežite strojno opremo
- 3. korak: Programirajte Arduino
- 4. korak: Namestite programsko opremo
- 5. korak: Uporabite vmesniški program
- 6. korak: Bodite ustvarjalni
Video: Serijski krmilnik na osnovi Arduino: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:09
To je preprost serijski krmilnik za več servomotorjev na osnovi Arduina. (tudi moj prvi pouk:))
Večina dela pri tem je nastala zaradi pridobivanja programske opreme za pogovor z arduinom in izdelave protokola za prenos podatkov. Kar zadeva strojno opremo, sem uporabil le dva servomotorja (tukaj standardni servomotor Parallax.) Sparkfun Arduino ProtoShield in Arduino Duemilanove z ATMEGA328, vendar lahko večino teh delov zamenjamo s podobnimi elementi. Ta projekt sem si zamislil kot del sistema RC, vendar je vzpostavitev komunikacije vzela veliko časa. Če ima kdo kakšne izboljšave, ideje ali hrošče, naj komentira. EDIT: To sem napisal pred časom, pred kratkim sem ga objavil.
Korak: Stvari, ki jih boste morda potrebovali …
Za izgradnjo tega boste potrebovali nekaj stvari. 1. Arduino plošča (po vaši izbiri) 2. dva (ali en) servo pogon 3. mostične žice 4. Visual Studio 2008 Express - povezava (neobvezno) 5. Arduino IDE - povezava Oprostite oboževalcem Linuxa in Applea, moj program deluje samo na windows zaenkrat, vendar lahko še vedno ročno pošiljate serijske ukaze na arduino, ne da bi spremenili kodo.
2. korak: Povežite strojno opremo
V tem koraku ni nič zapletenega: samo en servo priključite na pin 9, drugega pa na pin 10.
3. korak: Programirajte Arduino
zdaj lahko skico naložite na arduino.
Tu je preprosta razčlenitev kode: #include Servo myservo; // ustvarite servo objekt za krmiljenje servo Servo myservo1; int incomingByte = 0, datacount = 0, števec = 0, pripravljen = 0; // za dohodne serijske podatke char char [10]; const char verify [8] = "ma11hew"; ukaz char [3]; void setup () {myservo.attach (9); myservo1.attach (10); Serial.begin (38400); // odpre serijska vrata, nastavi hitrost prenosa podatkov Serial.println ("Hi Arduino Here!"); // dodano za pomoč pri identifikaciji serijskih vrat To samo nastavi serijska vrata in servomotorje. int i; za (i = 0; i <180; i ++) {myservo.write (i); zamuda (15); } myservo.write (5); za (i = 0; i <180; i ++) {myservo1.write (i); zamuda (15); } myservo1.write (5); } Enostavno pometanje za preverjanje pravilnega delovanja servomotorjev. void loop () {ready = 0; števec = 0; while (1 == 1) {if (Serial.read ()! = preveri [števec]) {break; } if (števec == 6) {zakasnitev (20); ukaz [0] = Serial.read (); ukaz [1] = Serial.read (); // if (Serial.read () == ((ukaz [1] * 12) % 8)) // {ready = 1; //} Serial.println ("shranjen ukaz"); } števec ++; zamuda (2); } s tem se v serijskem vmesnem pomnilniku preveri pravilen niz za pooblastitev, nato za ukaz zgrabi dva bajta. komentirana izjava if dopušča improvizirano kontrolno vsoto, vendar bi otežila ročno povezovanje. ready lahko nastavite na 0, zato ukazi ne bodo razčlenjeni, na primer v primeru poškodovanih podatkov. // iskanje po ukazih if (ready == 1) {if (command [0] == 'T') {command [0] = 0; Serial.print ("krmiljenje plina na zatiču 9 do:"); Serial.println (zemljevid (ukaz [1], 32, 126, 2, 180), DEC); myservo.write (zemljevid (ukaz [1], 32, 126, 2, 180)); } if (ukaz [0] == 'S') {ukaz [0] = 0; Serial.print ("krmiljenje plina na zatiču 10 do:"); Serial.println (zemljevid (ukaz [1], 32, 126, 2, 180), DEC); myservo1.write (zemljevid (ukaz [1], 32, 126, 2, 180)); }}} preostala koda je iskanje ukazov za veljavne ukaze (T ali S.), če se ujema z naslednjim bajtom in ga pošlje na servo. več na zemljevidu (ukaz [1], 32, 126, 2, 180) pozneje … tukaj je koda razširljiva za vse, kar boste morda potrebovali (npr. luči, motorji, IR itd.), ta koda bi morala delovati brez spremembe.
4. korak: Namestite programsko opremo
Namestitev tega namestitvenega programa nsis imam na dva načina: spodaj prenesite samorazpakirajoči namestitveni program in ga zaženite. Med namestitvijo boste imeli možnost namestiti vire. binarni paket namestitvenega programa namesti jedro c ++ dlls, tako da ga je mogoče zagnati v računalniku brez že nameščenega vizualnega c ++. Ko namestitveni program dokonča, ga lahko zaženete na namizju ali v meniju Start. zip way (nepreverjeno): Prenesite in zaženite, to bi moralo delovati. mogoče. (Arhiv zip ima isto strukturo map, ki jo je ustvaril namestitveni program, brez virov. Nimam računalnika brez vizualnega studia, da bi ga preizkusil, da morda ne bo deloval.)
5. korak: Uporabite vmesniški program
Za uporabo programa najprej izberite hitrost prenosa, opredeljeno v skici arduino. Nespremenjena skica je privzeto nastavljena na 38400 baud, vendar jo lahko spremenite tako, da ustreza vašim potrebam za stvari, kot je počasnejša radijska povezava. opomba: hitrosti prenosa, višje od 38400, niso bile zelo stabilne, mislim, da je to zato, ker se uart napolni, preden je mogoče obdelati podatke. Nato izberite vrata COM, ki jih želite uporabiti. program je privzeto nastavljen na COM4, ne pozabite ga spremeniti, sicer se bo program zrušil. Na koncu kliknite odpri. Če je vse v redu, bo program odprl izbrana serijska vrata pri izbrani hitrosti prenosa. V nasprotnem primeru se bo program verjetno zrušil z neobdelano izjemo. preverite, ali so vrata pravilna, in poskusite znova. Za pošiljanje neposrednih ukazov arduinu uporabite polja z besedilom. "Zemljevid (ukaz [1], 32, 126, 2, 180)" spreminja vseh 94 možnih ukazov, * presledek * do ~, ki jih arduino v ASCII lahko bere na 2 do 180 za servo. kateri koli bajt, manjši od ASCII 32 (presledek) ali nad 126 (~), je privzeto nastavljen na 63 (?) Sledilne vrstice zagotavljajo vmesnik za neposredne ukaze. vsak korak postopoma pošilja serijski ukaz arduinu.
6. korak: Bodite ustvarjalni
Pomislite na kul stvari, ki jih lahko naredite s tem. Nekaj idej: 1. Daljinski plin za avto. 2. Nosilec za 3D kamero 3. podvodni rover Lepo se imejte !!
Priporočena:
[Wearable Mouse] Krmilnik nosljive miške na osnovi Bluetooth za Windows 10 in Linux: 5 korakov
[Wearable Mouse] Krmilnik nosljive miške na osnovi Bluetooth za Windows 10 in Linux: naredil sem krmilnik miške na osnovi Bluetooth, s katerim lahko upravljate kazalec miške in izvajate operacije, povezane z računalniško miško, ne da bi se dotaknili površin. Elektronsko vezje, ki je vdelano v rokavico, lahko uporabite za sledenje h
Serijski prehod UDP/IP za Arduino na osnovi ščita ESP8266: 8 korakov
Zaporedni prehod UDP/IP za Arduino, ki temelji na ESP8266 Shield: že leta 2016 sem objavil ta navodila z navodili »Kako narediti lasten prehod Wifi za povezavo vašega Arduina z omrežjem IP«. Ker sem naredil nekaj izboljšav kode in še vedno uporabljam to rešitev. Kljub temu je zdaj nekaj ščitov ESP8266 t
Arduino DIY krmilnik za igre - Arduino PS2 krmilnik iger - Predvajanje Tekkena z igralno ploščo Arduino DIY: 7 korakov
Arduino DIY krmilnik za igre | Arduino PS2 krmilnik iger | Igranje Tekken z igralno ploščo DIY Arduino: Pozdravljeni, igranje iger je vedno zabavno, vendar je igranje s svojim lastnim krmilnikom iger po meri bolj zabavno. Zato bomo v tem navodilu naredili krmilnik za igre z uporabo arduino pro micro
Robotski krmilnik ROS na osnovi Matlaba: 9 korakov
Robotski krmilnik ROS s sedežem v Matlabu: Že kot otrok sem vedno sanjal, da bom Iron Man, in to še vedno počnem. Iron Man je eden tistih likov, ki so realno možni in preprosto povem, da si nekoč želim postati Iron Man, čeprav se mi ljudje smejijo ali pravijo, da je to nemogoče
Kapacitivni dotik z Evive (krmilnik na osnovi Arduino): 6 korakov (s slikami)
Kapacitivni dotik z Evive (krmilnik na osnovi Arduino): Ali veste, kako deluje zaslon na dotik vašega pametnega telefona? Pametni telefon ima pod steklenim zaslonom vrsto senzorjev na dotik. Danes temelji na kapacitivni tehnologiji zaznavanja dotika in celo nežen dotik zlahka zazna. Kapacitivni dotik se zazna