Indholdsfortegnelse:

UChip - Enkel skitse til fjernbetjeningsmotorer og/eller servoer via 2,4 GHz radio Tx -Rx !: 3 trin
UChip - Enkel skitse til fjernbetjeningsmotorer og/eller servoer via 2,4 GHz radio Tx -Rx !: 3 trin

Video: UChip - Enkel skitse til fjernbetjeningsmotorer og/eller servoer via 2,4 GHz radio Tx -Rx !: 3 trin

Video: UChip - Enkel skitse til fjernbetjeningsmotorer og/eller servoer via 2,4 GHz radio Tx -Rx !: 3 trin
Video: How to control Servo Motor using ESP32 with Arduino ESP32 Servo library 2024, Juli
Anonim
Image
Image
UChip - Enkel skitse til fjernbetjeningsmotorer og/eller servoer via 2,4 GHz radio Tx -Rx!
UChip - Enkel skitse til fjernbetjeningsmotorer og/eller servoer via 2,4 GHz radio Tx -Rx!
UChip - Enkel skitse til fjernbetjeningsmotorer og/eller servoer via 2,4 GHz radio Tx -Rx!
UChip - Enkel skitse til fjernbetjeningsmotorer og/eller servoer via 2,4 GHz radio Tx -Rx!

Jeg kan virkelig godt lide RC -verdenen. Brug af et RC -legetøj giver dig følelsen af, at du har kontrol over noget ekstraordinært, på trods af at det er en lille båd, bil eller drone!

Det er dog ikke let at tilpasse dit legetøj og få dem til at gøre, hvad du vil have det skal gøre. Normalt er du tvunget til at bruge standardsenderindstillingerne eller de specielt designede kombinationer af kontakter og knapper.

Det er ret svært at få styr på alt, som du virkelig vil, hovedsageligt fordi RC-verdenen kræver en ganske dyb viden om programmering på hardware-niveau for at få det bedste ud af det.

Jeg prøvede mange platforme og opsætninger, men det kostede altid en kæmpe indsats for at blive fortrolig nok med koden, inden jeg foretog en reel tilpasning til mit RC -legetøj.

Det, jeg manglede, er en simpel skitse, som jeg kunne indlæse ved hjælp af Arduino IDE, og som let ville give mig mulighed for at oversætte de værdier, der kommer ud fra Radio RX (receiver) til den ønskede Motor/Servo -kontrol.

Derfor er det her, hvad jeg skabte efter at have spillet lidt med uChip og Arduino IDE: En simpel skitse til fjernbetjening af motorer og/eller servoer via 2,4 GHz Radio Tx-Rx!

Materialeliste

1 x uChip: Arduino IDE -kompatibelt bord

1 xTx-Rx radiosystem: ethvert radiosystem med cPPM-modtager er godt (min kombination er en gammel Spectrum DX7 Tx + Orange R614XN cPPM Rx), sørg for at følge den korrekte bindingsprocedure for at binde Tx og Rx.

1 x batteri: Batterier med høj afladning er nødvendige ved håndtering af motorer og servoer.

Motorer/servoer: i overensstemmelse med dine behov

Elektroniske komponenter til at drive motorer/servoer: enkle modstande, MOSFET'er og dioder giver dig mulighed for at opnå køreformålet.

Trin 1: Ledningsføring

Ledninger
Ledninger
Ledninger
Ledninger
Ledninger
Ledninger
Ledninger
Ledninger

Kør komponenterne sammen som beskrevet i skemaet.

Rx er forbundet direkte til uChip og kræver ingen eksterne komponenter. Hvis du bruger en anden modtager, skal du kontrollere, om du har brug for en niveauskifter eller ej. Sørg for at slutte cPPM -signalet til uChip PIN_9 (hvilket er PORTA19, hvis du vil tilpasse koden til et andet SAMD21 -kort).

De resterende ledninger er nødvendige for at drive motoren og/eller servoen. Den vedlagte skematik repræsenterer det grundlæggende kredsløb for at beskytte uChip mod pigge/overskridelser, der normalt opstår ved kørsel af induktive belastninger. Nøglekomponenten for at bevare uChip -sikkerheden er Zener -dioden på 5,1 V (D1 i skematisk), som du skal sætte parallelt med VEXT (uChip pin 16) og GND (uChip pin 8). Alternativt kan du i stedet for at bruge Zener -dioden vælge det valgfrie kredsløb repræsenteret af D2, C1 og C2, hvilket forhindrer omvendte pigge til at beskadige uChip -komponenter.

Du kan køre så mange motorer/servoer, som du har brug for, ved blot at replikere skematikken og ændre betjeningsstifterne (du kan bruge en hvilken som helst pin undtagen strømstifterne (PIN_8 og PIN_16) og cPPM -stiften (PIN_9)). Husk, at mens du kun har brug for et beskyttelseskredsløb, der er repræsenteret af Zener -dioden (eller komponenterne til det valgfrie kredsløb), skal de elektriske komponenter, der er relateret til motor/servokørsel, replikeres lige så mange gange som antallet af motorer/ servoer du har tænkt dig at køre.

Da jeg ville køre mindst 2 motorer og 2 servoer, lavede jeg et lille printkort, som implementerede det beskrevne kredsløb, og som du kan se på billedet. Den første prototype blev dog lavet på et proto-board ved hjælp af flyvende tråde.

Således behøver du ikke nogen lodde-/PCB -designfærdigheder for at gennemføre dette enkle projekt:)

Trin 2: Programmering

Programmering
Programmering

Her er magien! Det er her tingene bliver interessante.

Hvis du byggede kredsløbet beskrevet i den foregående skematisk, kan du blot indlæse skitsen "DriveMotorAndServo.ino", og alt skulle fungere.

Se på koden og tjek, hvordan den fungerer.

I begyndelsen er der få #define, der bruges til at definere:

- nummerkanalerne på Rx (6Ch med Orange 614XN)

- benene, hvor motorer/servoer er fastgjort

- Max og min brugt til servoen og motorerne

- Maks og min bruges til radiokanalers rækkevidde

Derefter er der variabeldeklarationsafsnittet, hvor motorer/servos variabler er deklareret.

Hvis du kører mere end den ene motor og den ene servo, der er tilsluttet som beskrevet i det foregående skema, skal du ændre skitsen og tilføje koden, der håndterer de ekstra motorer/servoer, du har vedhæftet. Du skal tilføje så mange Servo, servo_value og motor_value som mange servoer/motorer, du bruger.

Inden for variabeldeklarationsafsnittet er der også nogle flygtige variabler, der bruges til Capture Compare af cPPM -signalet. ÆNDRE IKKE disse varianter!

Det, du skal gøre næste gang, er i loop () -funktionen. Her kan du beslutte, hvad du vil bruge værdien af de indgående kanaler.

I mit tilfælde sluttede jeg den indgående værdi direkte til motoren og servoen, men du er mere end velkommen til at ændre den i overensstemmelse med dine behov! I videoen og billederne, der er knyttet til denne vejledning, tilsluttede jeg 2 motorer og 2 servoer, men der kunne være 3, 4, 5, … op til de maksimalt tilgængelige gratis ben (13 i tilfælde af uChip).

Du kan finde den fangede kanalværdi i ch [index] -matrixen, hvis "indeks" går fra 0 til NUM_CH - 1. Hver kanal svarer til en stick/switch/knop på din radio. Det er op til dig at forstå hvad-er-hvad:)

Endelig implementerede jeg nogle fejlfindingsfunktioner for at gøre det lettere at forstå, hvad der sker. Kommenter/kommenter #define DEBUG for at udskrive kanalernes værdi på den native SerialUSB.

TIP: Der er mere kode under loop () -funktionen. Denne del af koden er nødvendig for at indstille uChip power pins, håndtere de afbrydelser, der genereres af capture -sammenligningsfunktionen, indstille timerne og fejlfindingsformålet. Hvis du føler dig modig nok til at lege med registre, er du velkommen til at ændre det!

Edit: Opdateret skitse, rettet en fejl i kortlægningsfunktionen.

Trin 3: Spil, kør, løb, flyv

Image
Image

Sørg for at binde Tx- og Rx -systemet korrekt. Tænd for den ved at tilslutte batteriet. Kontroller, at alt fungerer. Du kan udvide funktionaliteterne eller ændre funktionen for hver kanal, som du vil, for nu har du fuld kontrol over din fremtidige RC -model.

Byg nu din tilpassede RC -model!

PS: da binding kan være ret kedelig at gøre, planlægger jeg snart at frigive en skitse, der gør det muligt at binde dit Tx-Rx-system uden at skulle gøre det manuelt. Følg med for opdateringer!

Anbefalede: