Innholdsfortegnelse:

UChip - Enkel skisse til fjernkontrollmotorer og/eller servoer via 2,4 GHz radio Tx -Rx !: 3 trinn
UChip - Enkel skisse til fjernkontrollmotorer og/eller servoer via 2,4 GHz radio Tx -Rx !: 3 trinn

Video: UChip - Enkel skisse til fjernkontrollmotorer og/eller servoer via 2,4 GHz radio Tx -Rx !: 3 trinn

Video: UChip - Enkel skisse til fjernkontrollmotorer og/eller servoer via 2,4 GHz radio Tx -Rx !: 3 trinn
Video: Основы горизонтально масштабируемых вычислений Джеймса Каффа 2024, November
Anonim
Image
Image
UChip - Enkel skisse til fjernkontrollmotorer og/eller servoer via 2,4 GHz radio Tx -Rx!
UChip - Enkel skisse til fjernkontrollmotorer og/eller servoer via 2,4 GHz radio Tx -Rx!
UChip - Enkel skisse til fjernkontrollmotorer og/eller servoer via 2,4 GHz radio Tx -Rx!
UChip - Enkel skisse til fjernkontrollmotorer og/eller servoer via 2,4 GHz radio Tx -Rx!

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

Kabling
Kabling
Kabling
Kabling
Kabling
Kabling
Kabling
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

Programmering
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

Image
Image

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: