Sisukord:

Arduino -põhine jadaservo kontroller: 6 sammu
Arduino -põhine jadaservo kontroller: 6 sammu

Video: Arduino -põhine jadaservo kontroller: 6 sammu

Video: Arduino -põhine jadaservo kontroller: 6 sammu
Video: Драйвер управления сервоприводами PCA9685: обзор и подключение к Arduino 2024, Juuli
Anonim
Arduino -põhine jadaservo kontroller
Arduino -põhine jadaservo kontroller
Arduino -põhine jadaservo kontroller
Arduino -põhine jadaservo kontroller

See on lihtne jadakontroller mitmele servole, mis põhinevad Arduino -l. (ka minu esimene juhendatav:))

Suurem osa tööst tuli sellest, et saada tarkvara arduinoga rääkima ja koostada protokoll andmete edastamiseks. Riistvara osas kasutasin ainult kahte servot (siin Parallaxi standardservo.) Sparkfun Arduino ProtoShield ja Arduino Duemilanove koos ATMEGA328 -ga, kuid enamiku neist osadest saab asendada sarnaste esemetega. Mõtlesin selle projekti välja RC -süsteemi osana, kuid kommunikatsiooni seadistamine võttis palju aega. Kui kellelgi on parandusi, ideid või vigu, palun kommenteerige. EDIT: Kirjutasin selle mõni aeg tagasi, alles hiljuti jõudsin selle avaldamiseni.

Samm: asjad, mida vajate…

Asjad, mida võite vajada…
Asjad, mida võite vajada…
Asjad, mida võite vajada…
Asjad, mida võite vajada…

Selle ehitamiseks on vaja mõningaid asju. 1. Arduino plaat (teie valite) 2. kaks (või üks) servot 3. hüppaja juhtmed 4. Visual Studio 2008 Express - link (valikuline) 5. Arduino IDE - link Vabandust Linuxi ja Apple'i fännid, minu programm töötab ainult aknad praegu, kuid saate siiski arduinole käsitsi jada käske saata ilma koodi muutmata.

Samm: ühendage riistvara

Ühendage riistvara
Ühendage riistvara

Selles etapis pole midagi väga keerulist. Lihtsalt ühendage üks servo tihvtiga 9 ja teine tihvtiga 10.

Samm: programmeerige Arduino

Programmeerige Arduino
Programmeerige Arduino

nüüd saate eskiisi arduinole üles laadida.

Siin on lihtne koodijaotus: #include Servo myservo; // servoobjekti loomine servo juhtimiseks Servo myservo1; int sissetulev bait = 0, andmete arv = 0, loendur = 0, valmis = 0; // sissetulevate jadaandmete kohta char andmed [10]; const char pārbaudīt [8] = "ma11hew"; char käsk [3]; tühine seadistus () {myservo.attach (9); myservo1.attach (10); Seriaalne algus (38400); // avab jadapordi, määrab andmeedastuskiiruse Serial.println ("Tere Arduino siin!"); // lisatud jadapordi tuvastamiseks See lihtsalt seab jadapordi ja servod. int i; jaoks (i = 0; i <180; i ++) {myservo.write (i); viivitus (15); } myservo.write (5); jaoks (i = 0; i <180; i ++) {myservo1.write (i); viivitus (15); } myservo1.write (5); } Lihtne pühkimine liigutuste abil, et kontrollida, kas servod töötavad õigesti. void loop () {valmis = 0; loendur = 0; while (1 == 1) {if (Serial.read ()! = verify [counter]) {break; } kui (loendur == 6) {viivitus (20); käsk [0] = Serial.read (); käsk [1] = Serial.read (); // kui (Serial.read () == ((käsk [1] * 12) % 8)) // {valmis = 1; //} Serial.println ("salvestatud käsk"); } loendur ++; viivitus (2); } see kontrollib jadapuhvris õige autoriseerimisstringi olemasolu ja seejärel võtab käsu jaoks kaks baiti. kommenteeris, kui avaldus lubab teha ajutise kontrollsumma, kuid raskendaks käsitsi liidestamist. valmis saab seada väärtusele 0, nii et käske ei analüüsita, näiteks rikutud andmete korral. // otsi käskudest if (ready == 1) {if (command [0] == 'T') {command [0] = 0; Serial.print ("gaasihoovastik nööpnõelal 9 kuni:"); Serial.println (kaart (käsk [1], 32, 126, 2, 180), DEC); myservo.write (kaart (käsk [1], 32, 126, 2, 180)); } if (käsk [0] == 'S') {käsk [0] = 0; Serial.print ("gaasihoovastik nööpnõelal 10 kuni:"); Serial.println (kaart (käsk [1], 32, 126, 2, 180), DEC); myservo1.write (kaart (käsk [1], 32, 126, 2, 180)); }}} ülejäänud kood on otsida käsust kehtivaid käske (T või S.), kui kumbki sobib, võtab järgmise baidi ja saadab selle servole. rohkem kaardil (käsk [1], 32, 126, 2, 180) hiljem … koodi saab laiendada mis tahes muu jaoks, mida vajate (nt tuled, mootorid, IR jne), see kood peaks hästi toimima ilma muudatusi.

Samm: installige tarkvara

Installige tarkvara
Installige tarkvara

Mul on kaks võimalust selle installimiseks … nsis installer: Laadige alla allpool olev isepõhine installer ja käivitage see. Installimise ajal saate allikaid installida. paigaldaja binaarpakett installib põhilised c ++ dll -id, nii et seda saab käivitada arvutis ilma visuaalset c ++ juba installimata. Kui installija on lõpetanud, saate selle käivitada töölaualt või menüüst Start. zip viis (kinnitamata): laadige alla ja käivitage, see peaks toimima. võib olla. (Zip -arhiivil on sama kaustastruktuur, mille on loonud installija, ilma allikateta. Mul pole masinat ilma visuaalse stuudioga, et seda testida, nii et see ei pruugi töötada.)

Samm: kasutage liideseprogrammi

Kasutage liidese programmi
Kasutage liidese programmi
Kasutage liidese programmi
Kasutage liidese programmi

Programmi kasutamiseks valige esmalt arduino visandis määratletud edastuskiirus. Modifitseerimata eskiis on vaikimisi 38400 baud, kuid seda saab muuta vastavalt teie vajadustele, näiteks aeglasema raadioside jaoks. märkus: üle 38400 edastuskiirus ei ole olnud väga stabiilne, arvan, et see on tingitud sellest, et uart täitub enne andmete töötlemist. Seejärel valige kasutatav COM -port. programm vaikimisi on COM4, muutke seda kindlasti või muidu jookseb programm kokku. Lõpuks klõpsake nuppu Ava. Kui kõik läks hästi, avab programm valitud jadapordi valitud andmeedastuskiirusega. Kui ei, siis programm tõenäoliselt jookseb kokku ilma käsitlemata erandiga. veenduge, et port oleks õige ja proovige uuesti. Kasutage tekstikaste, et esitada arduinole otsekäske. "Kaart (käsk [1], 32, 126, 2, 180)" skaleerib kõik 94 võimalikku käsku, * tühik * läbi ~, mida arduino ASCII -s saab lugeda servo jaoks 2 kuni 180. iga bait, mis on väiksem kui ASCII 32 (tühik) või üle 126 (~), on vaikimisi 63 (?) Rööbasteed pakuvad otsekäskude jaoks kõrvuliidest. iga samm saadab arduinole järk -järgult seeriakäsu.

6. samm: olge loominguline

Ole loominguline!
Ole loominguline!
Ole loominguline!
Ole loominguline!

Mõtle lahedaid asju, mida sellega teha. Mõned ideed: 1. Kauggaas auto jaoks. 2. 3D kaamera kinnitus 3. veealune rover Have fun !!

Soovitan: