Indholdsfortegnelse:
- Trin 1: Ting du måske har brug for …
- Trin 2: Tilslut hardware
- Trin 3: Programmer Arduino
- Trin 4: Installer software
- Trin 5: Brug grænsefladeprogrammet
- Trin 6: Bliv kreativ
Video: Arduino -baseret seriel servo -controller: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:31
Dette er en simpel seriel controller til flere servoer baseret på Arduino. (min første instruerbare også:))
Det meste af arbejdet i dette kom fra at få softwaren til at tale med arduinoen og lave en protokol for, at dataene skulle blive videregivet. Hvad angår hardware -aspektet, var alt, hvad jeg brugte, to servoer (Parallax standard servo her.) En Sparkfun Arduino ProtoShield og en Arduino Duemilanove med ATMEGA328, men de fleste af disse dele kan erstattes med lignende varer. Jeg tænkte på dette projekt som en del af et RC -system, men oprettelsen af kommunikationen tog meget tid. Hvis nogen har forbedringer, ideer eller fejl, er du velkommen til at kommentere. EDIT: Jeg skrev dette for et stykke tid siden, kom lige til at udgive det for nylig.
Trin 1: Ting du måske har brug for …
Nogle ting skal du bruge for at bygge dette. 1. Arduino board (du vælger) 2. to (eller en) servoer 3. jumperwires 4. Visual Studio 2008 Express - link (valgfrit) 5. Arduino IDE - link Beklager Linux og Apple fans, mit program kører kun på Windows nu, men du kan stadig manuelt sende serielle kommandoer til arduinoen uden at ændre koden.
Trin 2: Tilslut hardware
Intet meget komplekst til dette trin. Bare tilslut den ene servo til pin 9 og den anden til pin 10.
Trin 3: Programmer Arduino
nu kan du uploade skitsen på arduinoen.
Her er en simpel opdeling af koden: #include Servo myservo; // oprette servoobjekt for at styre en servo Servo myservo1; int incomingByte = 0, datakonto = 0, tæller = 0, klar = 0; // for indgående serielle data char data [10]; const char verificere [8] = "ma11hew"; char kommando [3]; ugyldig opsætning () {myservo.attach (9); myservo1.attach (10); Serial.begin (38400); // åbner seriel port, indstiller datahastighed Serial.println ("Hej Arduino her!"); // tilføjet for at hjælpe med at identificere den serielle port Dette konfigurerer bare den serielle port og servoer. int i; for (i = 0; i <180; i ++) {myservo.write (i); forsinkelse (15); } myservo.write (5); for (i = 0; i <180; i ++) {myservo1.write (i); forsinkelse (15); } myservo1.write (5); } Enkel fejebevægelse for at kontrollere, at servoerne fungerer korrekt. void loop () {ready = 0; tæller = 0; mens (1 == 1) {if (Serial.read ()! = verificer [tæller]) {pause; } hvis (tæller == 6) {forsinkelse (20); kommando [0] = Serial.read (); kommando [1] = Serial.read (); // hvis (Serial.read () == ((kommando [1] * 12) % 8)) // {ready = 1; //} Serial.println ("gemt kommando"); } tæller ++; forsinkelse (2); } dette kontrollerer den serielle buffer for den korrekte autorisationsstreng og tager derefter to bytes til kommandoen. kommenterede, hvis erklæringen giver mulighed for en midlertidig kontrolsum, men ville gøre manuel grænseflade vanskelig. ready kan indstilles til 0, så kommandoer vil ikke blive analyseret, f.eks. i tilfælde af beskadigede data. // søg gennem kommandoer hvis (klar == 1) {hvis (kommando [0] == 'T') {kommando [0] = 0; Serial.print ("gasregulering på pin 9 til:"); Serial.println (map (kommando [1], 32, 126, 2, 180), DEC); myservo.write (kort (kommando [1], 32, 126, 2, 180)); } hvis (kommando [0] == 'S') {kommando [0] = 0; Serial.print ("gasregulering på pin 10 til:"); Serial.println (map (kommando [1], 32, 126, 2, 180), DEC); myservo1.write (kort (kommando [1], 32, 126, 2, 180)); }}} resten af koden er at søge kommandoen efter gyldige kommandoer (T eller S.) hvis en af disse matcher den tager den næste byte og sender den til servoen. mere på kortet (kommando [1], 32, 126, 2, 180) senere … koden her kan udvides til alt hvad du måtte have brug for (f.eks. lys, motorer, IR osv.) Denne kode skulle fungere fint uden ændringer.
Trin 4: Installer software
Jeg har to måder at installere dette … nsis installationsprogram på: Download det selvudpakkende installationsprogram herunder og kør det. Du har mulighed for at installere kilder under installationen. installationsprogrammets binære pakke installerer core c ++ dll'er, så den kan køres på en computer, uden at visuel c ++ allerede er installeret. Når installationsprogrammet er færdigt, kan du køre det fra skrivebordet eller startmenuen. zip -vej (ubekræftet): Download og kør, det burde fungere. måske. (ZIP -arkivet har den samme mappestruktur oprettet af installationsprogrammet, uden kilder. Jeg har ikke en maskine uden visuelt studie til at teste det, så det virker muligvis ikke.)
Trin 5: Brug grænsefladeprogrammet
For at bruge programmet skal du først vælge den baudhastighed, der er defineret i arduino -skitsen. Den umodificerede skitse er som standard 38400 baud, men kan ændres, så den passer til dine behov for ting som f.eks. Et langsommere radioforbindelse. Bemærk: baudhastigheder højere end 38400 har ikke været særlig stabile, jeg tror, det skyldes, at uart fyldes op, før dataene kan behandles. Vælg derefter den COM -port, der skal bruges. programmet er som standard COM4, sørg for at ændre det, eller programmet vil gå ned. Klik til sidst på åben. Hvis alt gik godt, åbner programmet den valgte serielle port med den valgte baudhastighed. Hvis ikke, vil programmet sandsynligvis gå ned med en ubehandlet undtagelse. Sørg for, at porten er korrekt, og prøv igen. Brug tekstboksene til at indsende direkte kommandoer til arduinoen. "Kortet (kommando [1], 32, 126, 2, 180)" skalerer alle de 94 mulige kommandoer, * mellemrum * til ~, som kan læses af arduinoen i ASCII til 2 til 180 for servoen. enhver byte mindre end ASCII 32 (mellemrum) eller over 126 (~) er som standard 63 (?) Sporbjælkerne giver en eaiser -grænseflade til direkte kommandoer. hvert trin sender en seriel kommando til arduino trinvist.
Trin 6: Bliv kreativ
Tænk på fede ting at lave med dette. Nogle ideer: 1. Fjernregulering til en bil. 2. 3D -kameraholder 3. undervandsrover Hav det sjovt !!
Anbefalede:
Arduino seriel kommunikation: 5 trin
Arduino seriel kommunikation: Mange Arduino -projekter er afhængige af at overføre data mellem flere Arduinos. Uanset om du er en hobbyist, der bygger en RC -bil, et RC -fly eller designer en vejrstation med et fjernskærm, skal du vide, hvordan du pålideligt kan overfør serier
Standalone Arduino 3.3V W / eksternt 8 MHz ur, der programmeres fra Arduino Uno gennem ICSP / ISP (med seriel overvågning!): 4 trin
Standalone Arduino 3.3V W / eksternt 8 MHz ur, der programmeres fra Arduino Uno via ICSP / ISP (med seriel overvågning!): Mål: At bygge en selvstændig Arduino, der kører på 3.3V fra et 8 MHz eksternt ur. For at programmere den via ISP (også kendt som ICSP, seriel programmering i kredsløb) fra en Arduino Uno (kører ved 5V) For at redigere bootloader-filen og brænde
Arduino tastatur seriel monitor test: 6 trin
Arduino -tastatur Seriel monitor -test: Dette er en meget enkel vejledning til Arduino Serial Monitor -testHvis du kan lide denne instruerbare, kan du abonnere på min kanal https://www.youtube.com/ZenoModiff
Arduino seriel skærm i Tinkercad: 7 trin (med billeder)
Arduino Serial Monitor i Tinkercad: At holde styr på alt, hvad der foregår i dit program, kan være en op ad bakke. Den serielle skærm er en måde at lytte til, hvad der foregår i din kode ved at rapportere tilbage til computeren via USB -kablet. I Tinkercad Circuits -simulatoren seriel
Indkapsling af trin servomotor med seriel kontrol via Arduino ved hjælp af en 3D -printer - Pt4: 8 trin
Indkapsling af trin -servomotoren med seriel kontrol via Arduino ved hjælp af en 3D -printer - Pt4: I denne fjerde video i Motor Step -serien vil vi bruge det, vi tidligere har lært, til at bygge en stepper servomotor med kontrol via seriel kommunikation og reel positionsfeedback ved hjælp af en resistiv encoder overvåget af en Arduino. I