Innholdsfortegnelse:
- Trinn 1: Ting du kan trenge …
- Trinn 2: Koble til maskinvaren
- Trinn 3: Programmer Arduino
- Trinn 4: Installer programvare
- Trinn 5: Bruk grensesnittprogrammet
- Trinn 6: Bli kreativ
Video: Arduino -basert seriell servokontroller: 6 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:26
Dette er en enkel seriell kontroller for flere servoer basert på Arduino. (min første instruerbare også:))
Det meste av arbeidet i dette kom fra å få programvaren til å snakke med arduinoen og lage en protokoll for dataene som skal overføres. Når det gjelder maskinvareaspektet, så brukte jeg bare to servoer (Parallax standard servo her.) En Sparkfun Arduino ProtoShield og en Arduino Duemilanove med ATMEGA328, men de fleste av disse delene kan erstattes med lignende varer. Jeg tenkte på dette prosjektet som en del av et RC -system, men det tok mye tid å sette opp kommunikasjonen. Hvis noen har forbedringer, ideer eller feil, er du velkommen til å kommentere. EDIT: Jeg skrev dette for en stund siden, kom nettopp til å publisere det nylig.
Trinn 1: Ting du kan trenge …
Noen ting du trenger for å bygge dette. 1. Arduino -kort (du velger) 2. to (eller en) servoer 3. jumper -ledninger 4. Visual Studio 2008 Express - lenke (valgfritt) 5. Arduino IDE - link Beklager Linux og Apple -fans, programmet mitt kjører bare på windows for nå, men du kan fortsatt manuelt sende serielle kommandoer til arduinoen uten å endre koden.
Trinn 2: Koble til maskinvaren
Ingenting er veldig komplisert til dette trinnet. Bare koble den ene servoen til pinne 9 og den andre til pinne 10.
Trinn 3: Programmer Arduino
nå kan du laste opp skissen til arduinoen.
Her er en enkel oversikt over koden: #include Servo myservo; // lage servoobjekt for å kontrollere en servo Servo myservo1; int incomingByte = 0, datakonto = 0, teller = 0, klar = 0; // for innkommende serielle data char data [10]; const char verifisere [8] = "ma11hew"; røyekommando [3]; ugyldig oppsett () {myservo.attach (9); myservo1.attach (10); Serial.begin (38400); // åpner seriell port, angir datahastighet Serial.println ("Hei Arduino Here!"); // lagt til for å identifisere den serielle porten Dette setter bare opp serieporten 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 feiebevegelse for å kontrollere at servoene fungerer som de skal. void loop () {ready = 0; teller = 0; mens (1 == 1) {if (Serial.read ()! = verifiser [teller]) {pause; } if (teller == 6) {forsinkelse (20); kommando [0] = Serial.read (); kommando [1] = Serial.read (); // hvis (Serial.read () == ((kommando [1] * 12) % 8)) // {ready = 1; //} Serial.println ("lagret kommando"); } teller ++; forsinkelse (2); } dette sjekker den serielle bufferen for den riktige autorisasjonsstrengen, og tar deretter to byte for kommandoen. kommenterte hvis uttalelsen gir mulighet for en provisorisk kontrollsum, men det ville gjøre det vanskelig å manuelt grensesnitt. ready kan settes til 0, slik at kommandoer ikke blir analysert, for eksempel ved ødelagte data. // søk gjennom kommandoer if (ready == 1) {if (command [0] == 'T') {command [0] = 0; Serial.print ("gassregulering på pinne 9 til:"); Serial.println (map (kommando [1], 32, 126, 2, 180), DEC); myservo.write (kart (kommando [1], 32, 126, 2, 180)); } hvis (kommando [0] == 'S') {kommando [0] = 0; Serial.print ("gassregulering på pinne 10 til:"); Serial.println (kart (kommando [1], 32, 126, 2, 180), DEC); myservo1.write (kart (kommando [1], 32, 126, 2, 180)); }}}} resten av koden er å søke i kommandoen etter gyldige kommandoer (T eller S.) hvis en av kampene tar den neste byten og sender den til servoen. mer på kartet (kommando [1], 32, 126, 2, 180) senere … koden her kan utvides for alt annet du måtte trenge (f.eks. lys, motorer, IR, etc.). Denne koden skal fungere fint uten modifikasjoner.
Trinn 4: Installer programvare
Jeg har to måter å installere dette … nsis installasjonsprogrammet: Last ned det selvutpakkende installasjonsprogrammet nedenfor og kjør det. Du får muligheten til å installere kilder under installasjonen. installatørens binære pakke installerer kjerne c ++ dller slik at den kan kjøres på en datamaskin uten at visuell c ++ allerede er installert. Når installasjonsprogrammet er ferdig, kan du kjøre det fra skrivebordet eller startmenyen. zip -måte (ubekreftet): Last ned og kjør, det skal fungere. kan være. (ZIP -arkivet har den samme mappestrukturen som er opprettet av installasjonsprogrammet, uten kilder. Jeg har ikke en maskin uten visuelt studio for å teste den, så det fungerer kanskje ikke.)
Trinn 5: Bruk grensesnittprogrammet
For å bruke programmet, velg først overføringshastigheten som er definert i arduino -skissen. Den umodifiserte skissen er som standard 38400 baud, men kan endres for å passe dine behov for ting som en tregere radiokobling. Merk: overføringshastigheter høyere enn 38400 har ikke vært veldig stabile, jeg tror dette er fordi uart fylles opp før dataene kan behandles. Velg deretter COM -porten du vil bruke. Programmet som standard på COM4. Sørg for å endre det, ellers krasjer programmet. Til slutt klikker du på Åpne. Hvis alt gikk bra, åpner programmet den valgte serielle porten med valgt baudhastighet. Hvis ikke vil programmet trolig krasje med et ubehandlet unntak. Kontroller at porten er riktig, og prøv igjen. Bruk tekstboksene til å sende inn direkte kommandoer til arduinoen. "Kartet (kommando [1], 32, 126, 2, 180)" skalerer alle de 94 mulige kommandoene, * mellomrom * til ~, som kan leses av arduinoen i ASCII til 2 til 180 for servoen. enhver byte mindre enn ASCII 32 (mellomrom) eller over 126 (~) er som standard 63 (?) Sporstengene gir et eaiser -grensesnitt for direkte kommandoer. hvert trinn sender en seriell kommando til arduinoen trinnvis.
Trinn 6: Bli kreativ
Tenk på kule ting å lage med dette. Noen ideer: 1. Fjernkontroll for en bil. 2. 3D -kamerafeste 3. undervannsrover Ha det gøy !!
Anbefalt:
Fjern en servokontroller: 5 trinn (med bilder)
Fjern en servokontroller: Servomotorer er veldig morsomme når du enkelt vil koble en girmotor til en mikrokontroller. Noen ganger vil du imidlertid ha en fin liten girmotor, og du vil ikke bli plaget med kontrollkretser for å kjøre den. Til tider som dette er det
Arduino seriell kommunikasjon: 5 trinn
Arduino seriell kommunikasjon: Mange Arduino -prosjekter er avhengige av å overføre data mellom flere Arduinos. Om du er en hobbyist som bygger en RC -bil, et RC -fly eller designer en værstasjon med en ekstern skjerm, må du vite hvordan du kan overfør serier
Frittstående Arduino 3.3V W / ekstern 8 MHz klokke som programmeres fra Arduino Uno gjennom ICSP / ISP (med seriell overvåking!): 4 trinn
Frittstående Arduino 3.3V W / ekstern 8 MHz -klokke som programmeres fra Arduino Uno gjennom ICSP / ISP (med seriell overvåking!): Mål: Å bygge en frittstående Arduino som kjører på 3.3V fra en 8 MHz ekstern klokke. For å programmere den via ISP (også kjent som ICSP, seriell programmering i krets) fra en Arduino Uno (kjører på 5V) For å redigere bootloader-filen og brenne
Arduino tastatur seriell monitor test: 6 trinn
Arduino tastatur Seriell monitor test: Dette er en veldig enkel opplæring av Arduino Serial Monitor Test Hvis du liker denne instruksjonsboken, vennligst abonner på min kanal https://www.youtube.com/ZenoModiff
Arduino seriell skjerm i Tinkercad: 7 trinn (med bilder)
Arduino Serial Monitor i Tinkercad: Å holde styr på alt som skjer i programmet ditt kan være en oppoverbakke. Den serielle skjermen er en måte å lytte til hva som skjer i koden din ved å rapportere tilbake til datamaskinen via USB -kabelen. I Tinkercad Circuits -simulatoren, seriell