Innehållsförteckning:
- Steg 1: Saker du kan behöva …
- Steg 2: Anslut maskinvaran
- Steg 3: Programmera Arduino
- Steg 4: Installera programvara
- Steg 5: Använd gränssnittsprogrammet
- Steg 6: Bli kreativ
Video: Arduino -baserad seriell servokontroller: 6 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:47
Detta är en enkel seriell styrenhet för flera servon baserad på Arduino. (min första instruerbara också:))
Det mesta av arbetet i detta kom från att få programvaran att prata med arduino och skapa ett protokoll för att data ska överföras. När det gäller hårdvaruaspekten var allt jag använde två servon (Parallax standard servo här.) En Sparkfun Arduino ProtoShield och en Arduino Duemilanove med ATMEGA328, men de flesta av dessa delar kan ersättas med liknande föremål. Jag tänkte på det här projektet som en del av ett RC -system, men att konfigurera kommunikationen tog mycket tid. Om någon har några förbättringar, idéer eller buggar får du gärna kommentera. EDIT: Jag skrev det här för ett tag sedan, fick precis publicera det nyligen.
Steg 1: Saker du kan behöva …
Vissa saker du behöver för att bygga detta. 1. Arduino -kort (du väljer) 2. två (eller en) servon 3. bygelkablar 4. Visual Studio 2008 Express - länk (tillval) 5. Arduino IDE - länk Tyvärr Linux- och Apple -fans, mitt program körs bara på windows för tillfället, men du kan fortfarande manuellt skicka seriella kommandon till arduino utan att ändra koden.
Steg 2: Anslut maskinvaran
Inget särskilt komplicerat för detta steg. Anslut bara en servo till stift 9 och den andra till stift 10.
Steg 3: Programmera Arduino
nu kan du ladda upp skissen på arduino.
Här är en enkel uppdelning av koden: #include Servo myservo; // skapa servoobjekt för att styra en servoservo myservo1; int incomingByte = 0, datakonto = 0, räknare = 0, redo = 0; // för inkommande seriedata char data [10]; const char verifiera [8] = "ma11hew"; char kommando [3]; void setup () {myservo.attach (9); myservo1.attach (10); Serial.begin (38400); // öppnar seriell port, ställer in datahastighet Serial.println ("Hej Arduino här!"); // läggs till för att identifiera den seriella porten. Detta ställer bara in serieporten och servon. int i; för (i = 0; i <180; i ++) {myservo.write (i); fördröjning (15); } myservo.write (5); för (i = 0; i <180; i ++) {myservo1.write (i); fördröjning (15); } myservo1.write (5); } Enkel svepande rörelse för att verifiera att servon fungerar korrekt. void loop () {ready = 0; räknare = 0; medan (1 == 1) {if (Serial.read ()! = verifiera [räknare]) {break; } if (räknare == 6) {fördröjning (20); kommando [0] = Serial.read (); kommando [1] = Serial.read (); // if (Serial.read () == ((kommando [1] * 12) % 8)) // {ready = 1; //} Serial.println ("sparat kommando"); } räknare ++; fördröjning (2); } detta kontrollerar den seriella bufferten efter rätt auktorisationssträng och tar sedan två byte för kommandot. kommenterade if -uttalandet möjliggör en provisorisk kontrollsumma men skulle göra manuellt gränssnitt svårt. ready kan ställas in på 0 så att kommandon inte tolkas, till exempel vid skadad data. // söka igenom kommandon if (ready == 1) {if (command [0] == 'T') {command [0] = 0; Serial.print ("gasreglage på stift 9 till:"); Serial.println (map (kommando [1], 32, 126, 2, 180), DEC); myservo.write (karta (kommando [1], 32, 126, 2, 180)); } if (kommando [0] == 'S') {kommando [0] = 0; Serial.print ("gasreglage på stift 10 till:"); Serial.println (map (kommando [1], 32, 126, 2, 180), DEC); myservo1.write (karta (kommando [1], 32, 126, 2, 180)); }}} resten av koden är att söka kommando efter giltiga kommandon (T eller S.) om en av matchningarna tar nästa byte och skickar den till servon. mer på kartan (kommando [1], 32, 126, 2, 180) senare … koden här är utbyggbar för vad du än behöver (t.ex. lampor, motorer, IR, etc.) den här koden borde fungera bra utan ändringar.
Steg 4: Installera programvara
Jag har två sätt att installera detta … nsis -installationsprogram: Ladda ner det självutdragande installationsprogrammet nedan och kör det. Du kommer att ha möjlighet att installera källor under installationen. installationsprogrammets binära paket installerar core c ++ dll så att det kan köras på en dator utan att visuellt c ++ redan är installerat. När installationsprogrammet är klart kan du köra det från skrivbordet eller startmenyn. zip -sätt (ej verifierat): Ladda ner och kör, det borde fungera. kanske. (Zip -arkivet har samma mappstruktur som skapats av installationsprogrammet, utan källor. Jag har inte en maskin utan visuell studio för att testa den så det kanske inte fungerar.)
Steg 5: Använd gränssnittsprogrammet
För att använda programmet, välj först den överföringshastighet som definieras i arduino -skissen. Den omodifierade skissen är som standard 38400 baud men kan ändras för att passa dina behov för saker som en långsammare radiolänk. notera: överföringshastigheter högre än 38400 har inte varit särskilt stabila, jag tror att det beror på att uart fylls innan data kan bearbetas. Välj sedan den COM -port som ska användas. programmet som standard är COM4, var noga med att ändra det annars kraschar programmet. Slutligen, klicka på öppna. Om allt gick bra öppnar programmet den valda serieporten med vald baudhastighet. Om inte kommer programmet troligtvis att krascha med ett obehandlat undantag. se till att porten är korrekt och försök igen. Använd textrutorna för att skicka direktkommandon till arduinoen. "Kartan (kommando [1], 32, 126, 2, 180)" skalar alla 94 möjliga kommandon, * mellanslag * till ~, läsbara av arduino i ASCII till 2 till 180 för servon. vilken byte som är mindre än ASCII 32 (mellanslag) eller över 126 (~) är som standard 63 (?) Spårstängerna tillhandahåller ett eaiser -gränssnitt för direktkommandon. varje steg skickar ett seriellt kommando till arduino stegvis.
Steg 6: Bli kreativ
Tänk på coola saker att göra med detta. Några idéer: 1. Fjärrgasreglage för en bil. 2. 3D -kamerafäste 3. undervattensrover Ha kul !!
Rekommenderad:
Ta bort en servokontroller: 5 steg (med bilder)
Ta bort en servostyrning: Servomotorer är jättekul när du enkelt vill koppla en växelmotor till en mikrokontroller. Men ibland vill du ha en trevlig liten växelmotor och vill inte bry dig om styrkretsar för att driva den. Vid sådana här tillfällen är det
Arduino seriell kommunikation: 5 steg
Arduino seriell kommunikation: Många Arduino -projekt är beroende av att överföra data mellan flera Arduinos. Oavsett om du är en hobbyist som bygger en RC -bil, ett RC -flygplan eller designar en väderstation med en fjärrkontroll, måste du veta hur du på ett tillförlitligt sätt överför serier
Fristående Arduino 3.3V W / extern 8 MHz klocka programmeras från Arduino Uno via ICSP / ISP (med seriell övervakning!): 4 steg
Fristående Arduino 3.3V W / Extern 8 MHz -klocka som programmeras från Arduino Uno via ICSP / ISP (med seriell övervakning!): Mål: Att bygga en fristående Arduino som körs på 3.3V från en 8 MHz extern klocka. För att programmera den via ISP (även känd som ICSP, seriell programmering i krets) från en Arduino Uno (körs på 5V) För att redigera bootloader-filen och bränna
Seriell UDP/IP -gateway för Arduino Baserat på ESP8266 Shield: 8 steg
Seriell UDP/IP -gateway för Arduino Baserat på ESP8266 Shield: Jag publicerade redan 2016 denna instruerbara " Hur man gör din egen Wifi -gateway för att ansluta din Arduino till IP -nätverk ". Eftersom jag gjorde några kodförbättringar och jag fortfarande använder den här lösningen. Ändå finns det nu några ESP8266 -sköldar
Arduino knappsats seriell bildskärmstest: 6 steg
Arduino -knappsats Serial Monitor Test: Detta är en mycket enkel handledning för Arduino Serial Monitor Test Om du gillar den här instruerbara prenumerationen på min kanal https://www.youtube.com/ZenoModiff