Innholdsfortegnelse:
Video: UChip - Enkel skisse til fjernkontrollmotorer og/eller servoer via 2,4 GHz radio Tx -Rx !: 3 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:22
Jeg liker RC -verden. Å bruke en RC -leke gir deg følelsen av at du har kontroll over noe ekstraordinært, til tross for at det er en liten båt, bil eller drone!
Det er imidlertid ikke lett å tilpasse lekene dine og få dem til å gjøre hva du vil at de skal gjøre. Vanligvis er du tvunget til å bruke standard senderinnstillinger eller de spesialdesignede kombinasjonene av brytere og knapper.
Det er ganske vanskelig å få kontroll over alt du virkelig vil, hovedsakelig fordi RC-verden krever ganske dyp kunnskap om programmering på maskinvarenivå for å få det beste ut av det.
Jeg prøvde mange plattformer og oppsett, men det kostet alltid en stor innsats for å bli komfortabel nok med koden før jeg gjorde noen reelle tilpasninger til RC -leken min.
Det jeg manglet er en enkel skisse som jeg kunne laste inn ved hjelp av Arduino IDE, og som lett ville tillate meg å oversette verdiene som kommer ut fra Radio RX (mottaker) til ønsket Motor/Servo -kontroll.
Derfor er det det jeg skapte etter å ha spilt litt med uChip og Arduino IDE: En enkel skisse til fjernkontroll av motorer og/eller servoer via 2,4 GHz radio Tx-Rx!
Stykklister
1 x uChip: Arduino IDE -kompatibelt brett
1 xTx-Rx radiosystem: ethvert radiosystem med cPPM-mottaker er bra (kombinasjonen min er en gammel Spectrum DX7 Tx + Orange R614XN cPPM Rx), sørg for at du følger riktig bindingsprosedyre for å binde Tx og Rx.
1 x batteri: Batterier med høy utladning er nødvendige når det gjelder motorer og servoer.
Motorer/servoer: i henhold til dine behov
Elektroniske komponenter for å drive motorer/servoer: enkle motstander, MOSFET -er og dioder lar deg oppnå kjøreformålet.
Trinn 1: Kabling
Koble komponentene sammen som beskrevet i skjemaet.
Rx er koblet direkte til uChip og krever ingen eksterne komponenter. Hvis du bruker en annen mottaker, må du kontrollere om du trenger en nivåskifter eller ikke. Sørg for å koble cPPM -signalet til uChip PIN_9 (som er PORTA19 hvis du vil tilpasse koden til et annet SAMD21 -kort).
De resterende ledningene er nødvendige for å drive motoren og/eller servoen. Den vedlagte skjematikken representerer grunnkretsen for å beskytte uChip mot pigger/overskytinger som vanligvis oppstår når du kjører induktive laster. Nøkkelkomponenten for å bevare uChip -sikkerheten er Zener -strømdioden på 5.1V (D1 i skjematisk) som du må sette parallelt med VEXT (uChip pin 16) og GND (uChip pin 8). Alternativt, i stedet for å bruke Zener -dioden, kan du velge den valgfrie kretsen representert av D2, C1 og C2, noe som forhindrer revers spikes for å skade uChip -komponenter.
Du kan kjøre så mange motorer/servoer du trenger ved ganske enkelt å kopiere skjemaet og endre kontrollpinnene (du kan bruke hvilken som helst pinne bortsett fra strømpinnene (PIN_8 og PIN_16) og cPPM -pinnen (PIN_9)). Husk at mens du bare trenger en beskyttelseskrets som er representert av Zener -dioden (eller komponentene for den valgfrie kretsen), må de elektriske komponentene knyttet til motor/servokjøring replikeres like mange ganger som antall motorer/ servoer du har tenkt å kjøre.
Siden jeg ønsket å kjøre minst 2 motorer og 2 servoer, laget jeg en liten PCB som implementerte den beskrevne kretsen og som du kan se på bildet. Den første prototypen ble imidlertid laget på et proto-board ved hjelp av flygende ledninger.
Dermed trenger du ikke noen lodde-/PCB -designferdigheter for å gjennomføre dette enkle prosjektet:)
Trinn 2: Programmering
Her er magien! Det er her ting blir interessante.
Hvis du bygde kretsen beskrevet i forrige skjema, kan du ganske enkelt laste inn skissen "DriveMotorAndServo.ino", og alt skal fungere.
Ta en titt på koden og sjekk hvordan den fungerer.
I begynnelsen er det få #define som brukes til å definere:
- tallkanalene til Rx (6Ch med Orange 614XN)
- pinnene der motorer/servoer er festet
- Maks og min brukt for servoen og motorene
- Maks og min brukt for radiokanalers rekkevidde
Deretter er det variabeldeklarasjonsdelen der motorene/servovariablene deklareres.
Hvis du kjører mer enn den ene motoren og den ene servoen som er festet som beskrevet i forrige skjema, må du endre skissen og legge til koden som håndterer tilleggsmotorene/servoene du har festet. Du må legge til så mange Servo, servo_value og motor_value som mange servoer/motorer du bruker.
Innenfor variabeldeklarasjonsdelen er det også noen flyktige variabler som brukes for Capture Compare av cPPM -signalet. IKKE FORANDR DISSE VARIABLENE!
Det du må gjøre neste gang er i loop () -funksjonen. Her kan du bestemme hva du vil bruke verdien av innkommende kanaler.
I mitt tilfelle koblet jeg den innkommende verdien direkte til motoren og servoen, men du er mer enn velkommen til å endre den i henhold til dine behov! I videoen og bildene som er lenket til i denne opplæringen, koblet jeg til 2 motorer og 2 servoer, men det kan være 3, 4, 5, … opp til maksimalt tilgjengelige ledige pinner (13 i tilfelle uChip).
Du kan finne den fangede kanalverdien i ch [index] -matrisen, hvis "indeks" går fra 0 til NUM_CH - 1. Hver kanal tilsvarer en pinne/bryter/knapp på radioen din. Det er opp til deg å forstå hva-er-hva:)
Til slutt implementerte jeg noen feilsøkingsfunksjoner for å gjøre det lettere å forstå hva som skjer. Kommenter/kommenter #define DEBUG for å skrive ut på den opprinnelige SerialUSB -kanalens verdi.
TIPS: Det er mer kode under loop () -funksjonen. Denne delen av koden er nødvendig for å sette uChip -strømpinner, håndtere avbruddene som genereres av fangstsammenligningsfunksjonen, angi tidtakere og feilsøkingsformål. Hvis du føler deg modig nok til å leke med registre, kan du endre det!
Edit: Oppdatert skisse, fikset en feil i kartfunksjonen.
Trinn 3: Spill, kjør, løp, fly
Sørg for at du binder Tx- og Rx -systemet riktig. Slå på den ved å koble til batteriet. Kontroller at alt fungerer. Du kan utvide funksjonaliteten eller endre funksjonen til hver kanal som du vil, for nå har du full kontroll over din fremtidige RC -modell.
Bygg nå din tilpassede RC -modell!
PS: Siden binding kan være ganske kjedelig å gjøre, planlegger jeg snart å gi ut en skisse som gjør det mulig å binde Tx-Rx-systemet ditt uten å måtte gjøre det manuelt. Følg med for oppdateringer!
Anbefalt:
Komme i gang med STM32f767zi Cube IDE og laste opp tilpasset skisse: 3 trinn
Komme i gang med STM32f767zi Cube IDE og laste opp tilpasset skisse: KJØP (klikk på testen for å kjøpe/besøk websiden) STM32F767ZISUPPORTED SOFTWARE · STM32CUBE IDE · KEIL MDK ARM µVISION · EWARM IAR EMBEDDED WORKBENCH · ARDUIN brukes til å programmere STM mikrokontrollere
Legge til WiFi AutoConnect -funksjonen i en eksisterende skisse: 3 trinn
Legge til WiFi AutoConnect -funksjonen i en eksisterende skisse: I et nylig innlegg lærte vi om AutoConnect -funksjonen for ESP32/ESP8266 -kortene, og et av spørsmålene som ble stilt var om å legge den til eksisterende skisser. I dette innlegget lærer vi hvordan du gjør nettopp det, og vi vil bruke nettverkstidsprosjektet
Kontroller opptil 4 servoer ved hjelp av en smarttelefon eller hvilken som helst enhet med lydutgang: 3 trinn
Kontroller opptil 4 servoer ved hjelp av en smarttelefon eller hvilken som helst enhet med lydutgang: Her presenterer jeg en enkel elektronisk montasje for å kontrollere opptil fire servoer med hvilken som helst enhet som kan lese en lydfil
Lage en skalert plan fra en skisse: 10 trinn (med bilder)
Lage en skalert tegning fra en skisse: Lag en skalert blå utskrift for å hjelpe 3D -konstruksjonen av en 2D -skisse
Konvertering RC -sender til 2,4 GHz med hvilken som helst modul: 5 trinn
Konvertering RC -sender til 2,4 GHz med hvilken som helst modul: Hei !! Beklager min engelsk jeg er en italiensk fyr. Med denne opplæringen kan du konvertere hvilken som helst radio med et ppm signal i fm (40MHz 35MHz 72MHz) i 2,4GHz på hvilken som helst modul. Jeg har konvertert min jr-MX-12. Denne senderen er uten den eksterne modulen, Tx