Satura rādītājs:

Arduino bāzes seriālais servo kontrolieris: 6 soļi
Arduino bāzes seriālais servo kontrolieris: 6 soļi

Video: Arduino bāzes seriālais servo kontrolieris: 6 soļi

Video: Arduino bāzes seriālais servo kontrolieris: 6 soļi
Video: CS50 2013 - Week 9 2024, Novembris
Anonim
Arduino bāzes seriālais servo kontrolieris
Arduino bāzes seriālais servo kontrolieris
Arduino bāzes seriālais servo kontrolieris
Arduino bāzes seriālais servo kontrolieris

Šis ir vienkāršs sērijas kontrolieris vairākiem servos, pamatojoties uz Arduino. (arī mans pirmais pamācāmais:))

Lielāko daļu darba šajā jomā radīja programmatūras saruna ar arduino un protokola sastādīšana datu nodošanai. Attiecībā uz aparatūras aspektu viss, ko es izmantoju, bija divi servos (Parallax standarta servo šeit.) Sparkfun Arduino ProtoShield un Arduino Duemilanove ar ATMEGA328, taču lielāko daļu šo daļu var aizstāt ar līdzīgiem priekšmetiem. Es izdomāju šo projektu kā daļu no RC sistēmas, taču komunikācijas izveidošana aizņēma daudz laika. Ja kādam ir kādi uzlabojumi, idejas vai kļūdas, lūdzu, komentējiet. EDIT: Es to uzrakstīju pirms kāda laika, tikai nesen to publicēju.

Solis: lietas, kas jums var būt vajadzīgas…

Lietas, kas jums var būt vajadzīgas…
Lietas, kas jums var būt vajadzīgas…
Lietas, kas jums var būt vajadzīgas…
Lietas, kas jums var būt vajadzīgas…

Dažas lietas, kas jums būs nepieciešamas, lai to izveidotu. 1. Arduino tāfele (jūs izvēlaties) 2. divi (vai viens) servos 3. džemperu vadi 4. Visual Studio 2008 Express - saite (pēc izvēles) 5. Arduino IDE - saite Atvainojiet Linux un Apple cienītājus, mana programma darbojas tikai logi pagaidām, bet jūs joprojām varat manuāli nosūtīt sērijas komandas arduino, nemainot kodu.

2. darbība: pievienojiet aparatūru

Pievienojiet aparatūru
Pievienojiet aparatūru

Šim solim nav nekas ļoti sarežģīts. Vienkārši pievienojiet vienu servo pie tapas 9 un otru - pie tapas 10.

3. solis: ieprogrammējiet Arduino

Programmējiet Arduino
Programmējiet Arduino

tagad jūs varat augšupielādēt skici arduino.

Šeit ir vienkāršs koda sadalījums: #include Servo myservo; // izveidot servo objektu, lai kontrolētu servo Servo myservo1; int ienākošais baits = 0, datu skaits = 0, skaitītājs = 0, gatavs = 0; // par ienākošajiem sērijas datu char datiem [10]; const char pārbaudīt [8] = "ma11hew"; char komanda [3]; void setup () {myservo.attach (9); myservo1.attach (10); Sērijas sākums (38400); // atver seriālo portu, nosaka datu pārraides ātrumu Serial.println ("Hi Arduino Here!"); // pievienots, lai palīdzētu identificēt seriālo portu Tas tikai nosaka seriālo portu un servos. int i; par (i = 0; i <180; i ++) {myservo.write (i); kavēšanās (15); } myservo.write (5); par (i = 0; i <180; i ++) {myservo1.write (i); kavēšanās (15); } myservo1.write (5); } Vienkārša slaucīšanas kustība, lai pārbaudītu servo pareizu darbību. void loop () {gatavs = 0; skaitītājs = 0; while (1 == 1) {if (Serial.read ()! = pārbaudīt [skaitītājs]) {break; } ja (skaitītājs == 6) {kavēšanās (20); komanda [0] = Serial.read (); komanda [1] = Serial.read (); // ja (Serial.read () == ((komanda [1] * 12) % 8)) // {gatavs = 1; //} Serial.println ("saglabāta komanda"); } skaitītājs ++; kavēšanās (2); } tas pārbauda sērijas buferi, lai atrastu pareizo autorizācijas virkni, un pēc tam paņem divus baitus komandai. komentēja, ja paziņojums pieļauj pagaidu pārbaudes summu, bet apgrūtinātu manuālu saskarni. gatavs var iestatīt uz 0, tāpēc komandas netiks parsētas, piemēram, bojātu datu gadījumā. // meklēt, izmantojot komandas, ja (gatavs == 1) {ja (komanda [0] == 'T') {komanda [0] = 0; Serial.print ("droseļvārsta vadība uz 9. tapas līdz:"); Serial.println (karte (komanda [1], 32, 126, 2, 180), DEC); myservo.write (karte (komanda [1], 32, 126, 2, 180)); } ja (komanda [0] == 'S') {komanda [0] = 0; Serial.print ("droseļvārsta vadība uz tapas 10 līdz:"); Serial.println (karte (komanda [1], 32, 126, 2, 180), DEC); myservo1.write (karte (komanda [1], 32, 126, 2, 180)); }}} pārējais kods ir meklēt komandā derīgas komandas (T vai S.), ja abas atbilst, tas aizņem nākamo baitu un nosūta to uz servo. vairāk par karti (komanda [1], 32, 126, 2, 180) vēlāk … kodu šeit var paplašināt, lai iegūtu kaut ko citu, kas jums varētu būt nepieciešams (piemēram, gaismas, motori, IR utt.), šim kodam vajadzētu darboties labi bez modifikācijas.

4. solis: instalējiet programmatūru

Instalējiet programmatūru
Instalējiet programmatūru

Man ir divi veidi, kā instalēt šo … nsis installer: Lejupielādējiet zemāk esošo pašizpletes instalētāju un palaidiet to. Instalēšanas laikā jums būs iespēja instalēt avotus. instalētāja binārā pakotne instalē pamata c ++ dll, lai to varētu palaist datorā bez vizuālas c ++ instalēšanas. Kad instalētājs ir pabeidzis, varat to palaist no darbvirsmas vai izvēlnes Sākt. zip veids (nepārbaudīts): lejupielādējiet un palaidiet, tam vajadzētu darboties. var būt. (ZIP arhīvam ir tāda pati mapju struktūra, ko izveidoja instalētājs, bez avotiem. Man nav mašīnas bez vizuālās studijas, lai to pārbaudītu, tāpēc tas var nedarboties.)

5. darbība: izmantojiet interfeisa programmu

Izmantojiet saskarnes programmu
Izmantojiet saskarnes programmu
Izmantojiet saskarnes programmu
Izmantojiet saskarnes programmu

Lai izmantotu programmu, vispirms izvēlieties arduino skicē noteikto datu pārraides ātrumu. Nemodificētās skices noklusējuma vērtība ir 38400 baudi, taču to var mainīt atbilstoši jūsu vajadzībām, piemēram, lēnākam radio savienojumam. piezīme: pārsūtīšanas ātrums, kas lielāks par 38400, nav bijis ļoti stabils, es domāju, ka tas ir tāpēc, ka urāts piepildās, pirms datus var apstrādāt. Pēc tam atlasiet izmantojamo COM portu. pēc noklusējuma programma COM4, noteikti nomainiet to, pretējā gadījumā programma avarēs. Visbeidzot, noklikšķiniet uz Atvērt. Ja viss noritēja labi, programma atvērs izvēlēto seriālo portu ar izvēlēto pārraides ātrumu. Pretējā gadījumā programma, iespējams, avarēs ar neapstrādātu izņēmumu. pārliecinieties, vai ports ir pareizs, un mēģiniet vēlreiz. Izmantojiet tekstlodziņus, lai arduino iesniegtu tiešas komandas. "Karte (komanda [1], 32, 126, 2, 180)" mērogo visas 94 iespējamās komandas, * atstarpi * līdz ~, ko arduino var nolasīt ASCII, no 2 līdz 180 servo. jebkurš baits, kas mazāks par ASCII 32 (atstarpe) vai lielāks par 126 (~), pēc noklusējuma ir 63 (?) Ierakstu joslas nodrošina eaiser saskarni tiešām komandām. katrs solis pakāpeniski nosūta sērijas komandu arduino.

6. darbība: esiet radošs

Esiet radošs!
Esiet radošs!
Esiet radošs!
Esiet radošs!

Izdomājiet foršas lietas, ko ar to pagatavot. Dažas idejas: 1. Tālvadības droseļvārsts automašīnai. 2. 3D kameras stiprinājums 3. zemūdens roveris Have fun !!

Ieteicams: