Taula de continguts:

UChip: esbós senzill per a motors i / o servidors de control remot mitjançant ràdio Tx-Rx a 2,4 GHz !: 3 passos
UChip: esbós senzill per a motors i / o servidors de control remot mitjançant ràdio Tx-Rx a 2,4 GHz !: 3 passos

Vídeo: UChip: esbós senzill per a motors i / o servidors de control remot mitjançant ràdio Tx-Rx a 2,4 GHz !: 3 passos

Vídeo: UChip: esbós senzill per a motors i / o servidors de control remot mitjançant ràdio Tx-Rx a 2,4 GHz !: 3 passos
Vídeo: La Educación Prohibida - Película Completa HD Oficial 2024, Juliol
Anonim
Image
Image
UChip: esbós senzill per a motors i / o servidors de control remot mitjançant ràdio Tx-Rx a 2,4 GHz
UChip: esbós senzill per a motors i / o servidors de control remot mitjançant ràdio Tx-Rx a 2,4 GHz
UChip: esbós senzill de motors i / o servidors de control remot mitjançant ràdio Tx-Rx a 2,4 GHz
UChip: esbós senzill de motors i / o servidors de control remot mitjançant ràdio Tx-Rx a 2,4 GHz

M'agrada molt el món de la RC. L’ús d’una joguina RC us dóna la sensació que teniu el control d’alguna cosa extraordinària, tot i ser un vaixell petit, un cotxe o un dron.

Tot i això, no és fàcil personalitzar les vostres joguines i fer-les fer el que vulgueu. Normalment, esteu obligat a utilitzar la configuració predeterminada del transmissor o les combinacions dissenyades específicament d’interruptors i comandaments.

Arribar a controlar tot el que realment voleu és bastant difícil, principalment perquè el món de la RC requereix un coneixement profund de la programació a nivell de maquinari per treure-li el millor partit.

He provat moltes plataformes i configuracions, però sempre ha costat un gran esforç per aconseguir prou comoditat amb el codi abans de fer una personalització real de la meva joguina RC.

El que em faltava és un simple esbós que podia carregar amb l’IDE Arduino i que em permetria fàcilment traduir els valors que surten del RX de Ràdio (receptor) al control de motor / servo desitjat.

Per tant, aquí és el que vaig crear després de jugar una mica amb uChip i Arduino IDE: un simple esbós per controlar a distància motors i / o servos a través de la ràdio Tx-Rx a 2,4 GHz.

Factura de materials

1 x uChip: placa compatible Arduino IDE

1 sistema de ràdio xTx-Rx: qualsevol sistema de ràdio amb receptor cPPM és bo (el meu combo és un vell Spectrum DX7 Tx + Orange R614XN cPPM Rx), assegureu-vos de seguir el procediment d’enquadernació correcte per enllaçar Tx i Rx.

1 x bateria: són necessàries bateries de gran descàrrega quan es tracta de motors i servos.

Motors / Servos: segons les vostres necessitats

Components electrònics per accionar els motors / servos: les resistències simples, els MOSFET i els díodes us permeten assolir el propòsit de conduir.

Pas 1: cablejat

Cablejat
Cablejat
Cablejat
Cablejat
Cablejat
Cablejat
Cablejat
Cablejat

Connecteu els components junts tal com es descriu als esquemes.

El Rx està connectat directament a uChip i no requereix cap component extern. En cas que utilitzeu un receptor diferent, verifiqueu si necessiteu un canvi de nivell o no. Assegureu-vos de connectar el senyal cPPM a uChip PIN_9 (que és PORTA19 en cas que vulgueu adaptar el codi a una altra placa SAMD21).

El cablejat restant és necessari per accionar el motor i / o el servo. L'esquema adjunt representa el circuit bàsic per protegir uChip contra pics / desbordaments que solen produir-se quan es condueixen càrregues inductives. El component clau per preservar la seguretat de uChip és el díode Zener de potència de 5,1V (D1 a l’esquema) que heu de posar en paral·lel al VEXT (uChip pin 16) i GND (uChip pin 8). Alternativament, en lloc d’utilitzar el díode Zener, podeu optar pels circuits opcionals representats per D2, C1 i C2, que impedeixen que els pics inversos danyin els components de l’uChip.

Podeu conduir tants motors / servos com necessiteu simplement reproduint l’esquema i canviant els pins de control (podeu utilitzar qualsevol pin excepte els pins d’alimentació (PIN_8 i PIN_16) i el pin cPPM (PIN_9)). Tingueu en compte que, tot i que només necessiteu un circuit de protecció que estigui representat pel díode Zener (o els components del circuit opcional), els components elèctrics relacionats amb la conducció del motor / servo han de ser replicats tantes vegades com el nombre de motors / servos que voleu conduir.

Com que volia conduir almenys 2 motors i 2 servos, vaig fer un petit PCB que implementava els circuits descrits i que podeu veure a la imatge. No obstant això, el primer prototip es va fer en un proto-tauler amb cables voladors.

Per tant, no necessiteu cap habilitat de soldadura / disseny de PCB per implementar aquest senzill projecte:)

Pas 2: programació

Programació
Programació

Aquí teniu la màgia! Aquí és on les coses es posen interessants.

En cas que hagueu construït el circuit descrit a l'esquema anterior, només podeu carregar l'esbós "DriveMotorAndServo.ino" i tot hauria de funcionar.

Mireu el codi i comproveu el seu funcionament.

Al principi, hi ha poques #define per definir:

- el nombre de canals del Rx (6Ch amb el Orange 614XN)

- els passadors on s’uneixen motors / servos

- Màxims i mínims utilitzats per al servo i els motors

- Màxims i mínims que s’utilitzen per al rang de canals de ràdio

A continuació, hi ha la secció de declaració de variables on es declaren les variables de motors / servos.

En cas que conduïu més d’un motor i un servo connectat tal com es descriu a l’esquema anterior, heu de modificar l’esbós i afegir el codi que gestiona els motors / servos addicionals que heu connectat. Cal afegir tants Servo, servo_value i motor_value tants servos / motors que utilitzeu.

Dins de la secció de declaració de variables també hi ha algunes variables volàtils que s’utilitzen per a la comparació de captures del senyal cPPM. NO CANVIEU AQUESTES VARIABLES!

El que heu de fer a continuació és a la funció loop (). Aquí podeu decidir quin ús cal fer del valor dels canals entrants.

En el meu cas, he connectat el valor entrant directament al motor i al servo, però us agradarà canviar-lo segons les vostres necessitats. Al vídeo i les imatges enllaçades en aquest tutorial he connectat 2 motors i 2 servos, però hi podrien haver 3, 4, 5, … fins al màxim de pins lliures disponibles (13 en cas d'uChip).

Podeu trobar el valor del canal capturat dins de la matriu ch [index], l '"índex" del qual va de 0 a NUM_CH - 1. Cada canal correspon a un pal / commutador / pom de la ràdio. Depèn de vosaltres entendre què és què:)

Finalment, he implementat algunes funcions de depuració per tal de facilitar la comprensió del que està passant. Comenteu / descomenteu el #define DEBUG per imprimir el valor dels canals al SerialUSB natiu.

CONSELL: hi ha més codi a sota de la funció loop (). Aquesta part del codi és necessària per establir pins d'alimentació uChip, gestionar les interrupcions generades per la funció de comparació de captures, definir els temporitzadors i el propòsit de depuració. En cas que us sentiu prou valent per jugar amb els registres, no dubteu a modificar-lo.

Edició: esbós actualitzat, es va corregir un error a la funció de mapatge.

Pas 3: Juga, condueix, corre, vola

Image
Image

Assegureu-vos que enllaceu correctament el sistema Tx i Rx. Enceneu-lo connectant la bateria. Verifiqueu que tot funcioni. Podeu ampliar les funcionalitats o canviar la funció de cada canal com vulgueu, perquè ara teniu el control total del vostre futur model de RC.

Ara, creeu el vostre model de RC personalitzat.

P. S.: ja que l'enllaç pot ser molt avorrit de fer, penso llançar aviat un esbós que permeti enllaçar el vostre sistema Tx-Rx sense haver de fer-ho manualment. Estigueu atents a les actualitzacions.

Recomanat: