Sadržaj:

Serijski servo kontroler zasnovan na Arduinu: 6 koraka
Serijski servo kontroler zasnovan na Arduinu: 6 koraka

Video: Serijski servo kontroler zasnovan na Arduinu: 6 koraka

Video: Serijski servo kontroler zasnovan na Arduinu: 6 koraka
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Decembar
Anonim
Serijski servo kontroler zasnovan na Arduinu
Serijski servo kontroler zasnovan na Arduinu
Serijski servo kontroler zasnovan na Arduinu
Serijski servo kontroler zasnovan na Arduinu

Ovo je jednostavan serijski kontroler za više servo servera zasnovanih na Arduinu. (i moje prvo uputstvo:))

Većina posla u ovome dolazi od dobijanja softvera za razgovor s arduinom i izrade protokola za prijenos podataka. Što se tiče hardverskog aspekta, sve što sam koristio su dva serva (ovdje standardni Parallax servo.) Sparkfun Arduino ProtoShield i Arduino Duemilanove sa ATMEGA328, ali većina ovih dijelova može se zamijeniti sličnim stavkama. Zamišljao sam ovaj projekt kao dio RC sistema, ali postavljanje komunikacije oduzelo je puno vremena. Ako neko ima poboljšanja, ideje ili greške, neka komentira. EDIT: Ovo sam napisao maloprije, nedavno sam to trebao objaviti.

Korak 1: Stvari koje će vam možda trebati …

Stvari koje će vam možda trebati…
Stvari koje će vam možda trebati…
Stvari koje će vam možda trebati…
Stvari koje će vam možda trebati…

Neke stvari će vam trebati da ovo izgradite. 1. Arduino ploča (po vašem izboru) 2. dva (ili jedan) servo upravljač 3. kratkospojne žice 4. Visual Studio 2008 Express - veza (opcionalno) 5. Arduino IDE - veza Nažalost, ljubitelji Linuxa i Applea, moj program radi samo na windows za sada, ali i dalje možete ručno slati serijske naredbe na arduino bez promjene koda.

Korak 2: Povežite hardver

Povežite hardver
Povežite hardver

U ovom koraku nema ništa složeno. Samo povežite jedan servo na pin 9, a drugi na pin 10.

Korak 3: Programirajte Arduino

Programirajte Arduino
Programirajte Arduino

sada možete postaviti skicu na arduino.

Evo jednostavne analize koda: #include Servo myservo; // kreiranje servo objekta za upravljanje servo Servo myservo1; int incomingByte = 0, broj podataka = 0, brojač = 0, spreman = 0; // za dolazne serijske podatke char podataka [10]; const char verify [8] = "ma11hew"; naredba char [3]; void setup () {myservo.attach (9); myservo1.attach (10); Serial.begin (38400); // otvara serijski port, postavlja brzinu prijenosa podataka Serial.println ("Zdravo Arduino ovdje!"); // dodano za pomoć pri identifikaciji serijskog porta Ovim se samo postavljaju serijski port i servo upravljači. int i; za (i = 0; i <180; i ++) {myservo.write (i); kašnjenje (15); } myservo.write (5); za (i = 0; i <180; i ++) {myservo1.write (i); kašnjenje (15); } myservo1.write (5); } Jednostavno pomeranje za proveru ispravnosti servo pogona. void loop () {spreman = 0; brojač = 0; while (1 == 1) {if (Serial.read ()! = verify [brojač]) {break; } if (brojač == 6) {odgoda (20); naredba [0] = Serial.read (); naredba [1] = Serial.read (); // if (Serial.read () == ((naredba [1] * 12) % 8)) // {spreman = 1; //} Serial.println ("spremljena naredba"); } counter ++; kašnjenje (2); } ovo provjerava da li serijski bafer ima ispravan autorizacijski niz, a zatim zgrabi dva bajta za naredbu. komentirana izjava if dopušta improvizirani kontrolni zbroj, ali bi otežalo ručno povezivanje. ready se može postaviti na 0 pa naredbe neće biti raščlanjene, na primjer u slučaju oštećenih podataka. // pretražujemo naredbe if (ready == 1) {if (command [0] == 'T') {command [0] = 0; Serial.print ("kontrola gasa na pinu 9 do:"); Serial.println (mapa (naredba [1], 32, 126, 2, 180), DEC); myservo.write (map (naredba [1], 32, 126, 2, 180)); } if (naredba [0] == 'S') {naredba [0] = 0; Serial.print ("kontrola gasa na pinu 10 do:"); Serial.println (mapa (naredba [1], 32, 126, 2, 180), DEC); myservo1.write (map (naredba [1], 32, 126, 2, 180)); }}} ostatak koda je traženje naredbi za važeće naredbe (T ili S.) ako se podudaraju, uzima sljedeći bajt i šalje ga na servo. više na karti (naredba [1], 32, 126, 2, 180) kasnije … kod se ovdje može proširiti za sve što vam zatreba (npr. svjetla, motori, IC, itd.) ovaj kôd bi trebao dobro funkcionirati bez modifikacije.

Korak 4: Instalirajte softver

Instalirajte softver
Instalirajte softver

Imam dva načina da instaliram ovaj … nsis instalacijski program: Preuzmite samoraspakirajući instalacijski program ispod i pokrenite ga. Imat ćete mogućnost instaliranja izvora tokom instalacije. binarni paket za instalaciju instalira core c ++ dlls tako da se može pokrenuti na računaru bez već instaliranog vizuelnog c ++. Kada instalacijski program završi, možete ga pokrenuti sa radne površine ili izbornika Start. zip način (neprovjeren): Preuzmite i pokrenite, trebalo bi raditi. možda. (Zip arhiva ima istu strukturu fascikli koju je kreirao instalater, bez izvora. Nemam mašinu bez vizuelnog studija na kojoj bi je testirala kako ne bi radila.)

Korak 5: Koristite program za sučelje

Koristite Interface Program
Koristite Interface Program
Koristite Interface Program
Koristite Interface Program

Za korištenje programa prvo odaberite brzinu prijenosa definiranu u arduino skici. Nepromijenjena skica je zadana na 38400 baud, ali se može promijeniti prema vašim potrebama za stvari poput sporije radio veze. napomena: brzine prijenosa veće od 38400 nisu bile baš stabilne, mislim da je to zato što se uart napuni prije nego što se podaci mogu obraditi. Zatim odaberite COM port koji ćete koristiti. program prema zadanim postavkama na COM4 svakako ga promijenite ili će se program srušiti. Na kraju kliknite Otvori. Ako je sve prošlo u redu, program će otvoriti odabrani serijski port odabranom brzinom prijenosa. U protivnom će se program vjerojatno srušiti s neobrađenim izuzetkom. provjerite je li port ispravan i pokušajte ponovo. Koristite tekstne okvire za slanje izravnih naredbi arduinu. "Karta (naredba [1], 32, 126, 2, 180)" skalira svih 94 moguće naredbe, * razmak * do ~, koje arduino u ASCII -u može čitati na 2 do 180 za servo. bilo koji bajt manji od ASCII 32 (razmak) ili veći od 126 (~) prema zadanim postavkama je 63 (?) Trake za praćenje pružaju interfejs za direktnu komandu. svaki korak postepeno šalje serijsku naredbu arduinu.

Korak 6: Budite kreativni

Budite kreativni!
Budite kreativni!
Budite kreativni!
Budite kreativni!

Smislite neke kul stvari koje možete napraviti s ovim. Neke ideje: 1. Daljinski gas za automobil. 2. Nosač 3D kamere 3. Podvodni rover Zabavite se !!

Preporučuje se: