Sisällysluettelo:

Arduino -pohjainen sarjaservo -ohjain: 6 vaihetta
Arduino -pohjainen sarjaservo -ohjain: 6 vaihetta

Video: Arduino -pohjainen sarjaservo -ohjain: 6 vaihetta

Video: Arduino -pohjainen sarjaservo -ohjain: 6 vaihetta
Video: Kuinka ohjata servomoottoria | Outseal Arduino PLC 2024, Marraskuu
Anonim
Arduino -pohjainen sarjaservo -ohjain
Arduino -pohjainen sarjaservo -ohjain
Arduino -pohjainen sarjaservo -ohjain
Arduino -pohjainen sarjaservo -ohjain

Tämä on yksinkertainen sarjaohjain useille servoille, jotka perustuvat Arduinoon. (myös ensimmäinen ohjeeni:))

Suurin osa tästä työstä tuli ohjelmiston saamisesta puhumaan arduinon kanssa ja protokollan tekemisestä tietojen siirtämiseksi. Mitä tulee laitteistoon, käytin vain kahta servoa (Parallax -vakio -servo täällä.) Sparkfun Arduino ProtoShield ja Arduino Duemilanove, jossa ATMEGA328, mutta useimmat näistä osista voidaan korvata vastaavilla tuotteilla. Ajattelin tämän projektin osana RC -järjestelmää, mutta viestinnän luominen vei paljon aikaa. Jos jollain on parannuksia, ideoita tai vikoja, kommentoikaa. EDIT: Kirjoitin tämän jonkin aikaa sitten, sain sen julkaistua äskettäin.

Vaihe 1: Asioita, joita saatat tarvita…

Asioita, joita saatat tarvita…
Asioita, joita saatat tarvita…
Asioita, joita saatat tarvita…
Asioita, joita saatat tarvita…

Jotkut asiat sinun täytyy rakentaa tämä. 1. Arduino -kortti (valitset) 2. kaksi (tai yksi) servoa 3. hyppyjohdot 4. Visual Studio 2008 Express - linkki (valinnainen) 5. Arduino IDE - linkki Anteeksi Linux- ja Apple -fanit, ohjelmani toimii vain Windows toistaiseksi, mutta voit silti lähettää manuaalisesti sarjakomentoja arduinoon muuttamatta koodia.

Vaihe 2: Yhdistä laitteisto

Liitä laitteisto
Liitä laitteisto

Mikään ei ole kovin monimutkaista tähän vaiheeseen. Kytke vain yksi servo nastaan 9 ja toinen nastaan 10.

Vaihe 3: Ohjelmoi Arduino

Ohjelmoi Arduino
Ohjelmoi Arduino

nyt voit ladata luonnoksen arduinoon.

Tässä on yksinkertainen erittely koodista: #include Servo myservo; // luoda servo -objekti hallita servoa Servo myservo1; int saapuvaByte = 0, dataluku = 0, laskuri = 0, valmis = 0; // saapuville sarjatiedoille char data [10]; const char tarkistaa [8] = "ma11hew"; char -komento [3]; void setup () {myservo.attach (9); myservo1.attach (10); Sarja.alku (38400); // avaa sarjaportin, asettaa tiedonsiirtonopeuden Serial.println ("Hei Arduino Here!"); // lisätään sarjaportin tunnistamiseksi Tämä määrittää vain sarjaportin ja servot. int i; for (i = 0; i <180; i ++) {myservo.write (i); viive (15); } myservo.write (5); for (i = 0; i <180; i ++) {myservo1.write (i); viive (15); } myservo1.write (5); } Yksinkertainen pyyhkäisyliike varmistaaksesi, että servot toimivat oikein. tyhjä silmukka () {valmis = 0; laskuri = 0; while (1 == 1) {if (Serial.read ()! = tarkista [laskuri]) {break; } jos (laskuri == 6) {viive (20); komento [0] = Serial.read (); komento [1] = Serial.read (); // jos (Serial.read () == ((komento [1] * 12) % 8)) // {valmis = 1; //} Serial.println ("tallennettu komento"); } laskuri ++; viive (2); } tämä tarkistaa sarjapuskurin oikean valtuutusmerkkijonon ja nappaa sitten kaksi tavua komennolle. kommentoi, jos lausunto sallii väliaikaisen tarkistussumman, mutta vaikeuttaisi manuaalista liitäntää. ready voidaan asettaa arvoon 0, joten komentoja ei jäsennä, kuten vioittuneiden tietojen tapauksessa. // etsi komennoista if (ready == 1) {if (command [0] == 'T') {command [0] = 0; Serial.print ("kaasun säätö nastassa 9:"); Serial.println (kartta (komento [1], 32, 126, 2, 180), DEC); myservo.write (kartta (komento [1], 32, 126, 2, 180)); } if (komento [0] == 'S') {komento [0] = 0; Serial.print ("kaasun säätö nastassa 10 -:"); Serial.println (kartta (komento [1], 32, 126, 2, 180), DEC); myservo1.write (kartta (komento [1], 32, 126, 2, 180)); }}} muu koodi on etsiä komennolla kelvolliset komennot (T tai S.), jos jompikumpi niistä vastaa seuraavan tavun ja lähettää sen servolle. lisää kartalla (komento [1], 32, 126, 2, 180) myöhemmin… koodi on laajennettavissa kaikkeen muuhun mitä tarvitset (esim. valot, moottorit, infrapuna jne.) Tämän koodin pitäisi toimia hyvin ilman muutoksia.

Vaihe 4: Asenna ohjelmisto

Asenna ohjelmisto
Asenna ohjelmisto

Minulla on kaksi tapaa asentaa tämä… nsis -asennusohjelma: Lataa alla oleva itsepuraava asennusohjelma ja suorita se. Sinulla on mahdollisuus asentaa lähteitä asennuksen aikana. asennusohjelman binaaripaketti asentaa ydin c ++ dll: t, jotta se voidaan ajaa tietokoneella ilman, että visual c ++ on jo asennettu. Kun asennusohjelma on valmis, voit suorittaa sen työpöydältä tai Käynnistä -valikosta. zip -tapa (vahvistamaton): Lataa ja suorita, sen pitäisi toimia. voi olla. (Zip -arkistossa on sama asentajan luoma kansiorakenne ilman lähteitä. Minulla ei ole konetta ilman Visual Studiota, jotta voisin testata sitä, joten se ei ehkä toimi.)

Vaihe 5: Käytä käyttöliittymäohjelmaa

Käytä käyttöliittymäohjelmaa
Käytä käyttöliittymäohjelmaa
Käytä käyttöliittymäohjelmaa
Käytä käyttöliittymäohjelmaa

Jos haluat käyttää ohjelmaa, valitse ensin arduino -luonnoksessa määritelty siirtonopeus. Muokkaamattoman luonnoksen oletusarvo on 38400 baudia, mutta se voidaan muuttaa tarpeidesi mukaan, kuten hitaampi radioyhteys. Huomaa: yli 38400: n baudinopeudet eivät ole olleet kovin vakaita, mielestäni tämä johtuu siitä, että uart täyttyy ennen kuin tietoja voidaan käsitellä. Valitse seuraavaksi käytettävä COM -portti. ohjelman oletusarvo on COM4, muista vaihtaa se tai ohjelma kaatuu. Napsauta lopuksi auki. Jos kaikki meni hyvin, ohjelma avaa valitun sarjaportin valitulla baudinopeudella. Jos ei, ohjelma todennäköisesti kaatuu käsittelemättömällä poikkeuksella. varmista, että portti on oikea ja yritä uudelleen. Käytä tekstiruutuja suoran komennon lähettämiseen arduinoon. "Kartta (komento [1], 32, 126, 2, 180)" skaalaa kaikki 94 mahdollista komentoa, * välilyönti * - ~, jotka arduino voi lukea ASCII: ssa 2-180 servolle. mikä tahansa tavu, joka on pienempi kuin ASCII 32 (välilyönti) tai yli 126 (~), on oletusarvoisesti 63 (?). jokainen vaihe lähettää sarjakomennon arduinoon asteittain.

Vaihe 6: Ole luova

Ole luova!
Ole luova!
Ole luova!
Ole luova!

Ajattele hienoja asioita, joita voit tehdä tällä. Muutamia ideoita: 1. Kaukosäädin autolle. 2. 3D -kamerateline 3. vedenalainen rover Hauskaa !!

Suositeltava: