Cuprins:

UChip - Schiță simplă pentru motoare și / sau servere de control de la distanță prin radio 2.4GHz Tx-Rx !: 3 pași
UChip - Schiță simplă pentru motoare și / sau servere de control de la distanță prin radio 2.4GHz Tx-Rx !: 3 pași

Video: UChip - Schiță simplă pentru motoare și / sau servere de control de la distanță prin radio 2.4GHz Tx-Rx !: 3 pași

Video: UChip - Schiță simplă pentru motoare și / sau servere de control de la distanță prin radio 2.4GHz Tx-Rx !: 3 pași
Video: Ce înseamna semnul tau din nastere 2024, Iulie
Anonim
Image
Image
UChip - Schiță simplă pentru motoare și / sau servere de telecomandă prin radio Tx-Rx de 2,4 GHz!
UChip - Schiță simplă pentru motoare și / sau servere de telecomandă prin radio Tx-Rx de 2,4 GHz!
UChip - Schiță simplă pentru motoare și / sau servere de telecomandă prin radio Tx-Rx de 2,4 GHz!
UChip - Schiță simplă pentru motoare și / sau servere de telecomandă prin radio Tx-Rx de 2,4 GHz!

Îmi place foarte mult lumea RC. Folosirea unei jucării RC vă oferă senzația că dețineți controlul a ceva extraordinar, în ciuda faptului că este o barcă mică, o mașină sau o dronă!

Cu toate acestea, nu este ușor să vă personalizați jucăriile și să le faceți să facă orice doriți să facă. De obicei, sunteți constrâns să utilizați setările implicite ale transmițătorului sau combinațiile special concepute de comutatoare și butoane.

A ajunge să controlați totul așa cum doriți este destul de greu, în principal pentru că lumea RC necesită o cunoaștere profundă a programării la nivel hardware pentru a obține cele mai bune rezultate din ea.

Am încercat multe platforme și configurări, dar a costat întotdeauna un efort uriaș pentru a mă simți suficient de confortabil cu codul înainte de a face o personalizare reală a jucăriei mele RC.

Îmi lipsea o schiță simplă pe care o puteam încărca folosind Arduino IDE și care mi-ar permite cu ușurință să traduc valorile care ies din Radio RX (receptor) în controlul Motor / Servo dorit.

Prin urmare, iată ce am creat după ce am jucat puțin cu uChip și Arduino IDE: O schiță simplă pentru a controla de la distanță Motoare și / sau Servo-uri prin 2.4GHz Radio Tx-Rx!

Proiect de lege de materiale

1 x uChip: placa compatibilă Arduino IDE

1 sistem radio xTx-Rx: orice sistem radio cu receptor cPPM este bun (combo-ul meu este un vechi Spectrum DX7 Tx + Orange R614XN cPPM Rx), asigurați-vă că urmați procedura corectă de legare pentru a lega Tx și Rx.

1 x Baterie: bateriile cu curent mare de descărcare sunt necesare atunci când se ocupă de motoare și servomotoare.

Motoare / Servo: conform nevoilor dumneavoastră

Componente electronice pentru acționarea motoarelor / servo-urilor: rezistențele simple, MOSFET-urile și diodele vă permit să realizați scopul conducerii.

Pasul 1: Cablare

Cablare
Cablare
Cablare
Cablare
Cablare
Cablare
Cablare
Cablare

Conectați componentele împreună așa cum este descris în schemă.

Rx este conectat direct la uChip și nu necesită componente externe. În cazul în care utilizați un receptor diferit, verificați dacă aveți nevoie de un schimbător de nivel sau nu. Asigurați-vă că conectați semnalul cPPM la uChip PIN_9 (care este PORTA19 în cazul în care doriți să adaptați codul la o altă placă SAMD21).

Cablajul rămas este necesar pentru a acționa motorul și / sau servo. Schema atașată reprezintă circuitul de bază pentru a proteja uChip de vârfuri / depășiri care apar de obicei la conducerea sarcinilor inductive. Componenta cheie pentru păstrarea siguranței uChip este dioda Zener de putere de 5.1V (D1 în schemă) pe care trebuie să o puneți în paralel cu VEXT (uChip pin 16) și GND (uChip pin 8). Alternativ, în loc să utilizați dioda Zener, puteți opta pentru circuitele opționale reprezentate de D2, C1 și C2, care previne vârfurile inverse pentru a deteriora componentele uChip.

Puteți conduce oricâte motoare / servouri aveți nevoie, pur și simplu replicând schema și schimbând pinii de control (puteți utiliza orice pin, cu excepția pinilor de alimentare (PIN_8 și PIN_16) și pinului cPPM (PIN_9)). Rețineți că, în timp ce aveți nevoie de un singur circuit de protecție care este reprezentat de dioda Zener (sau componentele pentru circuitele opționale), componentele electrice legate de motor / servo de acționare trebuie să fie reproduse de câte ori numărul de motoare / servouri pe care intenționați să le conduceți.

Din moment ce am vrut să conduc cel puțin 2 motoare și 2 servome, am făcut un mic PCB care a implementat circuitele descrise și pe care le puteți vedea pe imagine. Cu toate acestea, primul prototip a fost realizat pe o proto-placă folosind fire zburătoare.

Astfel, nu aveți nevoie de abilități de lipire / proiectare PCB pentru a implementa acest proiect simplu:)

Pasul 2: Programare

Programare
Programare

Iată magia! Aici lucrurile devin interesante.

În cazul în care ați construit circuitul descris în schema anterioară, puteți încărca pur și simplu schița „DriveMotorAndServo.ino” și totul ar trebui să funcționeze.

Aruncați o privire asupra codului și verificați cum funcționează.

La început sunt puține #define utilizate pentru a defini:

- numărul canalelor Rx (6Ch cu Orange 614XN)

- pinii la care sunt atașate motoarele / servomotoarele

- Max și min utilizate pentru servo și motoare

- Max și min utilizate pentru gama de canale radio

Apoi, există secțiunea de declarație a variabilelor în care sunt declarate variabilele motoare / servo.

În cazul în care conduceți mai mult decât motorul și servo-ul atașat, așa cum este descris în schema anterioară, trebuie să modificați schița și să adăugați codul care gestionează motoarele / servo-urile suplimentare pe care le-ați atașat. Trebuie să adăugați la fel de multe Servo, servo_value și motor_value câte servo / motoare utilizați.

În secțiunea de declarație a variabilelor există, de asemenea, câteva variabile volatile utilizate pentru compararea capturii semnalului cPPM. NU SCHIMBAȚI ACESTE VARIABILE!

Ce trebuie să faceți în continuare este în funcția loop (). Aici puteți decide ce utilizare să faceți din valoarea canalelor de intrare.

În cazul meu, am conectat valoarea de intrare direct la motor și servo, dar sunteți binevenit să o modificați în funcție de nevoile dvs.! În videoclipul și imaginile legate în acest tutorial am conectat 2 motoare și 2 servo-uri, dar ar putea exista 3, 4, 5, … până la pinii disponibili maximi disponibili (13 în cazul uChip).

Puteți găsi valoarea canalului capturat în matricea ch [index], al cărei „index” merge de la 0 la NUM_CH - 1. Fiecare canal corespunde unui stick / comutator / buton de pe radio. Depinde de tine să înțelegi ce-este-ce:)

În cele din urmă, am implementat câteva funcții de depanare pentru a ușura înțelegerea a ceea ce se întâmplă. Comentează / decomentează #define DEBUG pentru a imprima pe SerialUSB nativ valoarea canalelor.

SFAT: Există mai multe coduri sub funcția loop (). Această parte a codului este necesară pentru a seta pinii de alimentare uChip, pentru a gestiona întreruperile generate de caracteristica de comparare a capturii, pentru a seta temporizatoarele și scopul de depanare. În cazul în care vă simțiți suficient de curajos pentru a vă juca cu registre, nu ezitați să îl modificați!

Editare: schiță actualizată, remediată o eroare în funcția de mapare.

Pasul 3: Joacă, Conduce, Cursă, Zboară

Image
Image

Asigurați-vă că legați corect sistemul Tx și Rx. Porniți-l conectând bateria. Verificați dacă totul funcționează. Puteți extinde funcționalitățile sau puteți schimba funcția fiecărui canal după cum doriți, deoarece acum sunteți în control deplin asupra viitorului dvs. model RC.

Acum, construiește-ți modelul RC personalizat!

P. S.: deoarece legarea poate fi destul de plictisitoare de făcut, intenționez să lansez în curând o schiță care să permită legarea sistemului dvs. Tx-Rx fără a fi nevoie să o faceți manual. Rămâneți la curent pentru actualizări!

Recomandat: