- Motor fără curent continuu pentru mașini RC
- Materiale necesare
- Joystick RF pentru mașină RC folosind Arduino
- Diagrama circuitului auto Arduino RC
- Fabricarea PCB-ului pentru mașina RC Arduino
- Asamblarea PCB-ului
- Roți de imprimare 3D și suport motor
- Programarea Arduino
- Funcționarea mașinii RC Arduino
Mașinile RC sunt întotdeauna distractive pentru a juca, eu personal sunt un mare fan al acestor Mașini cu telecomandă și am jucat (încă o fac) pe larg cu ele. Cele mai multe dintre aceste mașini de azi oferă un cuplu imens să se ocupe de terenuri accidentate, dar este ceva care a fost întotdeauna rămas, viteza sa !!.. Deci, în acest proiect, vom construi un cu totul alt tip de RC masina folosind Arduino, principalele Obiectivul acestei mașini este de a atinge viteza maximă, de aceea am decis să încerc motorul DC fără coroană pentru o mașină RC. Aceste motoare sunt utilizate în mod normal în drone și sunt evaluate pentru 39000 RPM care ar trebui să fie mai mult decât suficient pentru a ne potoli setea de viteză. Mașina va fi alimentată cu o baterie mică de litiu și poate fi controlată de la distanță folosind modulul RF nRF24L01. Alternativ, dacă sunteți în căutarea a ceva simplu, puteți verifica, de asemenea, acest proiect simplu de robot RF și Raspberry Pi Bluetooth Car.
Motor fără curent continuu pentru mașini RC
Motorul fără curent continuu utilizat în acest proiect este prezentat în imaginea de mai jos. Le puteți găsi cu ușurință, deoarece sunt utilizate pe scară largă în mini-drone. Căutați doar motorul magnetic fără corzi 8520 și le veți găsi.
Acum, există anumite dezavantaje ale utilizării motoarelor de curent continuu pentru o mașină RC. Primul lucru este că oferă un cuplu de pornire foarte mic, prin urmare, mașina noastră RC ar trebui să fie cât mai ușoară posibil. Acesta este motivul pentru care am decis să construiesc întreaga mașină deasupra unui PCB folosind componente SMD și reduc dimensiunea plăcii pe cât posibil. A doua problemă este viteza sa mare, 39000 RPM (RPM ale arborelui) este greu de manevrat, așa că avem nevoie de un circuit de control al vitezei pe partea Arduino, pe care l-am construit folosind un MOSFET. Al treilea lucru este că aceste motoare vor fi alimentate de o singură baterie litiu-polimer cu o tensiune de funcționare cuprinsă între 3,6V și 4,2V, așa că trebuie să proiectăm circuitul nostru pentru a funcționa pe 3,3V. Acesta este motivul pentru care am folosit un Arduino Pro mini de 3,3Vca creierul mașinii noastre RC. Odată rezolvate aceste probleme, să ne uităm la materialele necesare construirii acestui proiect.
Materiale necesare
- Arduino Pro Mini de 3,3 V
- Arduino Nano
- NRF24L01 - 2buc
- Modulul Joystick
- SI2302 MOSFET
- 1N5819 Diodă
- Coreless BLDC Motors
- AMS1117-3.3V
- Baterie litiu polimer
- Rezistoare, condensatoare,
- Conectarea firelor
Joystick RF pentru mașină RC folosind Arduino
După cum sa menționat mai devreme, mașina RC va fi controlată de la distanță folosind un joystick RF. Acest joystick va fi, de asemenea, construit folosind un Arduino împreună cu un modul RF nRF24L01, am folosit și modulul Joystick pentru a ne controla RC-ul în direcția necesară. Dacă sunteți complet nou în aceste două module, puteți lua în considerare citirea articolelor Interfacing Arduino cu nRF24L01 și Interfacing Joystick cu Arduino pentru a afla cum funcționează și cum să le utilizați. Pentru a vă construi joystick-ul la distanță Arduino RF, puteți urma schema de circuite de mai jos.
Circuitul Joystick RF poate fi alimentat utilizând portul USB al plăcii nano. Modulul nRF24L01 funcționează numai pe 3.3V, prin urmare am folosit pinul de 3.3V pe Arduino. Am construit circuitul pe o placă de calcul și arată ca mai jos, puteți crea și un PCB pentru acest lucru, dacă este necesar.
Codul Arduino pentru circuitul de RF Joystick este destul de simplu, trebuie să citească valoarea X și Y valoarea de joystick nostru si trimite - l la masina RC prin nRF24L01. Programul complet pentru acest circuit poate fi găsit în partea de jos a acestei pagini. Nu vom intra în explicația acestui lucru, deoarece am discutat-o deja în legătura de proiect de interfață partajată mai sus.
Diagrama circuitului auto Arduino RC
Schema completă a circuitului pentru mașina noastră Arduino cu telecomandă este prezentată mai jos. Diagrama de circuit include, de asemenea, o opțiune de a adăuga două module IR TCRT5000 la mașina noastră. Acest lucru a fost planificat pentru a permite mașinii noastre RC să funcționeze ca un robot de urmărire a liniei, astfel încât să poată funcționa singur, fără a fi controlat extern. Cu toate acestea, de dragul acestui proiect nu ne vom concentra asupra acestuia, rămâneți la curent cu un alt tutorial de proiect în care vom încerca să construim „Cel mai rapid robot de urmărire a liniei”. Am combinat ambele circuite pe un singur PCB pentru ușurința construcției, puteți ignora senzorul IR și secțiunea Op-amp pentru acest proiect.
(…)Mașina RC va fi alimentată de bateria Lipo conectată la terminalul P1. AMS117-3.3V este folosit pentru a reglementa 3.3V pentru nRF24L01 noastră și noastre pro-mini-board. De asemenea, putem alimenta placa Arduino direct pe pinul brut, dar regulatorul de tensiune de la 3.3V de pe pro mini nu va putea furniza suficient curent modulelor noastre RF, prin urmare am folosit un regulator de tensiune extern.
Pentru a conduce cele două motoare BLDC, am folosit două MOSFET-uri SI2302. Este important să vă asigurați că aceste MOSFET-uri pot fi conduse de 3,3V. Dacă nu găsiți exact același număr de piesă, puteți căuta MOSFET-uri echivalente cu caracteristicile de transfer de mai jos
Motoarele pot consuma un curent de vârf de până la 7A (continuu a fost testat pentru a fi 3A cu sarcină), prin urmare curentul de scurgere MOSFET ar trebui să fie de 7A sau mai mult și ar trebui să pornească complet la 3,3V. După cum puteți vedea aici, MOSFET-ul pe care l-am selectat poate oferi 10A chiar și la 2,25 V, deci este o alegere ideală.
Fabricarea PCB-ului pentru mașina RC Arduino
Partea amuzantă a construirii acestui proiect a fost dezvoltarea PCB. PCB-urile de aici nu numai că formează circuitul, ci acționează și ca un șasiu pentru mașina noastră, așa că am planificat o mașină care să aibă forma cu opțiuni pentru a ne monta cu ușurință motoarele. Puteți încerca, de asemenea, să vă proiectați propriul PCB folosind circuitul de mai sus sau puteți utiliza designul meu PCB care arată așa mai jos odată finalizat.
După cum puteți vedea, am proiectat PCB-ul pentru a monta cu ușurință bateria, motorul și alte componente. Puteți descărca fișierul Gerber pentru acest PCB de pe link. Odată ce sunteți gata cu fișierul Gerber, este timpul să îl fabricați. Pentru a obține PCB-urile dvs. ușor de realizat de PCBGOGO, urmați pașii de mai jos
Pasul 1: intrați pe www.pcbgogo.com, înscrieți-vă dacă este prima dată. Apoi, în fila Prototip PCB introduceți dimensiunile PCB-ului, numărul de straturi și numărul de PCB de care aveți nevoie. PCB-ul meu are 80cm × 80cm, deci fila arată așa mai jos.
Pasul 2: Continuați făcând clic pe butonul Cotați acum . Veți fi direcționat către o pagină unde să setați câțiva parametri suplimentari, dacă este necesar, cum ar fi materialul utilizat pentru spațierea pistelor etc. Dar, în general, valorile implicite vor funcționa bine. Singurul lucru pe care trebuie să-l luăm în considerare aici este prețul și timpul. După cum puteți vedea, timpul de construire este de numai 2-3 zile și costă doar 5 USD pentru PSB-ul nostru. Apoi puteți selecta o metodă de expediere preferată pe baza cerințelor dvs.
Pasul 3: ultimul pas este să încărcați fișierul Gerber și să continuați plata. Pentru a vă asigura că procesul este ușor, PCBGOGO verifică dacă fișierul dvs. Gerber este valid înainte de a continua plata. În acest fel, vă puteți asigura că PCB-ul dvs. este prietenos cu fabricarea și vă va ajunge la fel de angajat.
Asamblarea PCB-ului
După ce a fost comandată placa, a ajuns la mine după câteva zile, deși curierul într-o cutie bine ambalată bine etichetat și ca întotdeauna calitatea PCB-ului a fost minunată. Îți împărtășesc câteva imagini cu tablele de mai jos pentru ca tu să le judeci.
Mi-am pornit tija de lipit și am început să asamblez placa. Deoarece amprentele, tampoanele, via-urile și serigrafia sunt perfecte pentru forma și dimensiunea potrivită, nu am avut nicio problemă la asamblarea plăcii. Placa era gata în doar 10 minute de la momentul despachetării cutiei.
Câteva imagini ale plăcii după lipire sunt prezentate mai jos.
Roți de imprimare 3D și suport motor
Așa cum ați fi putut observa în imaginea de mai sus, trebuie să 3D montăm motorul și roțile pentru robot. Dacă ați utilizat fișierul nostru PCB Gerber partajat mai sus, atunci puteți utiliza un model 3D descărcându-l de pe acest link.
Am folosit Cura pentru a-mi tăia modelele și le-am tipărit folosind Tevo Terantuala fără suporturi și umplutură de 0% pentru reducerea greutății. Puteți modifica setarea în funcție de imprimanta noastră. Deoarece motoarele se rotesc foarte repede, mi s-a părut greu să proiectez o roată care să se potrivească bine și strânsă pe arborele motorului. Prin urmare, am decis să folosesc lamele dronei în interiorul roții, după cum puteți vedea mai jos
Am găsit că acest lucru este mai fiabil și mai robust, totuși, experimentați cu diferite modele de roți și spuneți-mi în secțiunea de comentarii ce a funcționat pentru dvs.
Programarea Arduino
Programul complet (atât Arduino nano, cât și pro mini) pentru acest proiect poate fi găsit în partea de jos a acestei pagini. Explicația programului dvs. RC este după cum urmează
Începem programul prin includerea fișierului antet necesar. Rețineți că modulul nRF24l01 necesită adăugarea unei biblioteci la IDE-ul dvs. Arduino, puteți descărca Biblioteca RF24 de pe Github folosind acest link. În afară de asta, am definit deja viteza minimă și viteza maximă pentru robotul nostru. Intervalul minim și maxim sunt de la 0 la 1024, respectiv.
#define min_speed 200 #define max_speed 800 #include
Apoi, în interiorul funcției de configurare, inițializăm modulul nostru nRF24L01. Am folosit cele 115 benzi, deoarece nu este aglomerat și a configurat modulul să funcționeze cu putere redusă, puteți juca și cu aceste setări.
void setup () {Serial.begin (9600); myRadio.begin (); myRadio.setChannel (115); // 115 benzi deasupra semnalelor WIFI myRadio.setPALevel (RF24_PA_MIN); // MIN putere scăzută furie myRadio.setDataRate (RF24_250KBPS); // Viteza minimă}
În continuare, în funcția de buclă principală, vom executa doar funcția ReadData cu care vom citi constant valoarea trimisă de la modulul nostru joystick Transmitter. Rețineți că adresa țevii menționată în program ar trebui să fie aceeași cu cea menționată în programul emițătorului. De asemenea, am tipărit valoarea pe care o primim în scopuri de depanare. Odată ce valoarea este citită cu succes, vom executa funcția Control Car pentru a controla mașina RC pe baza valorii primite de la
modulul Rf.
void ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Ce pipă de citit, 40 biți Adresă myRadio.startListening (); // Opriți Transminting și începeți Reveicing if (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.print ("\ nPrimit:"); Serial.println (data.msg); primit = data.msg; Control_Car (); }}
În interiorul funcției Control Car, vom controla motoarele conectate la pinii PWM utilizând funcția de scriere analogică. În programul nostru de transmițător, am convertit valorile analogice de la pinul A0 și A1 de la Nano la 1 la 10, 11 la 20, 21 la 30 și 31 la 40 pentru controlul mașinii în înainte, înapoi, în stânga și, respectiv, în dreapta. Programul de mai jos este utilizat pentru a controla robotul în direcția înainte
if (primit> = 1 && primit <= 10) // Mutare înainte {int PWM_Value = hartă (primit, 1, 10, min_speed, max_speed); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, PWM_Value); }
În mod similar, putem scrie și alte trei funcții pentru controlul invers, stânga și dreapta așa cum se arată mai jos.
if (primit> = 11 && primit <= 20) // Break {int PWM_Value = map (primit, 11, 20, min_speed, max_speed); analogWrite (R_MR, 0); analogWrite (L_MR, 0); } if (primit> = 21 && primit <= 30) // Virați la stânga {int PWM_Value = map (primit, 21, 30, min_speed, max_speed); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, 0); } if (primit> = 31 && primit <= 40) // Virați la dreapta {int PWM_Value = hartă (primit, 31, 40, min_speed, max_speed); analogWrite (R_MR, 0); analogWrite (L_MR, PWM_Value); }
Funcționarea mașinii RC Arduino
După ce ați terminat codul, încărcați-l pe pro-mini-bord. Scoateți bateria și placa dvs. prin modulul FTDI pentru testare. Lansați codul, deschideți bateria serial și ar trebui să primiți valoarea de la modulul Joystick al transmițătorului. Conectați-vă bateria și motoarele ar trebui, de asemenea, să înceapă să se rotească.
Funcționarea completă a proiectului poate fi găsită în videoclipul legat în partea de jos a acestei pagini. Dacă aveți întrebări, lăsați-le în secțiunea de comentarii. De asemenea, puteți utiliza forumurile noastre pentru a obține răspunsuri rapide la celelalte întrebări tehnice.