- Motor CC sense cor per a cotxes RC
- Materials necessaris
- Joystick RF per a cotxes RC amb Arduino
- Diagrama del circuit del cotxe RC Arduino
- Fabricació de PCB per a cotxes RC Arduino
- Muntatge del PCB
- Rodes d'impressió 3D i muntatge del motor
- Programació de l'Arduino
- Funcionament d'Arduino RC Car
Els cotxes RC sempre són divertits de jugar, personalment sóc un gran fan d’aquests cotxes teledirigits i he jugat (encara ho faig) amb ells. La majoria d'aquests cotxes d'avui en dia ofereixen un enorme parell de manejar terrenys aspres, però hi ha una cosa que sempre estava quedant, la seva velocitat !!.. Per tant, en aquest projecte, construirem un tipus totalment diferent de cotxe de RC usant Arduino, el principal L'objectiu d'aquest cotxe és aconseguir la màxima velocitat, de manera que vaig decidir provar el motor CC sense cor per a un cotxe RC. Aquests motors s’utilitzen normalment en drons i tenen una potència de 39.000 RPM que hauria de ser més que suficient per calmar la nostra set de velocitat. El cotxe s’alimentarà amb una petita bateria de liti i es pot controlar remotament mitjançant el mòdul RF nRF24L01. Com a alternativa, si busqueu alguna cosa senzilla, també podeu consultar aquests projectes de cotxes Bluetooth de robot RF senzills i Raspberry Pi.
Motor CC sense cor per a cotxes RC
El motor CC sense cor que s’utilitza en aquest projecte es mostra a la imatge següent. Els podeu trobar fàcilment, ja que s’utilitzen àmpliament en mini drons. Només cal que busqueu un motor sense cor magnètic 8520 i en trobareu.

Ara, hi ha certs inconvenients en l’ús de motors de corrent continu per a un cotxe RC. El primer és que proporcionen un parell d’arrencada molt baix, per tant, el nostre cotxe RC hauria de ser el més lleuger possible. És per això que vaig decidir construir tot el cotxe sobre un PCB amb components SMD i reduir la mida de la placa al màxim. El segon problema és la seva alta velocitat, 39000 RPM (RPM de l’eix) és difícil de manejar, de manera que necessitem un circuit de control de velocitat al costat d’Arduino, que vam construir amb un MOSFET. La tercera cosa és que aquests motors seran alimentats per una única bateria de liti-polímer amb una tensió de funcionament entre 3,6 V i 4,2 V, de manera que hem de dissenyar el nostre circuit per funcionar a 3,3 V. Per això hem utilitzat un Arduino Pro mini de 3,3Vcom el cervell del nostre cotxe RC. Amb aquests problemes solucionats, vegem els materials necessaris per construir aquest projecte.
Materials necessaris
- Arduino Pro Mini de 3,3 V
- Arduino Nano
- NRF24L01 - 2 unitats
- Mòdul Joystick
- MOSFET SI2302
- 1N5819 Diodo
- Motors BLDC sense cor
- AMS1117-3.3V
- Bateria de polímer de liti
- Resistències, condensadors,
- Connexió de cables
Joystick RF per a cotxes RC amb Arduino
Com es va esmentar anteriorment, el cotxe RC es controlarà remotament mitjançant un joystick RF. Aquest Joystick també es construirà mitjançant un Arduino juntament amb un mòdul RF nRF24L01, també hem utilitzat el mòdul Joystick per controlar el nostre RC en la direcció requerida. Si sou completament nou en aquests dos mòduls, podeu plantejar la lectura d’articles Interfacing Arduino amb nRF24L01 i Interfacing Joystick amb Arduino per conèixer com funcionen i com s’utilitzen. Per construir el vostre joystick remot Arduino RF, podeu seguir el diagrama de circuits següent.

El circuit del joystick RF es pot alimentar mitjançant el port USB de la placa nano. El mòdul nRF24L01 només funciona a 3,3 V, per tant hem utilitzat el pin de 3,3 V a Arduino. He construït el circuit en una taula de treball i sembla que a continuació, també podeu crear un PCB si cal.

El codi Arduino per al circuit del joystick RF és bastant senzill, hem de llegir el valor X i el valor Y del nostre joystick i enviar-lo al cotxe RC a través del nRF24L01. El programa complet d’aquest circuit es troba al final d’aquesta pàgina. No entrarem en l'explicació d'això, ja que ja ho hem comentat a l'enllaç del projecte d'interfície compartit anteriorment.
Diagrama del circuit del cotxe RC Arduino
A continuació es mostra el diagrama complet del circuit del nostre cotxe Arduino controlat a distància. El diagrama del circuit també inclou una opció per afegir dos mòduls IR TCRT5000 al nostre cotxe. Això estava previst per permetre que el nostre cotxe RC funcionés com un robot de seguiment de línia perquè pugui funcionar tot sol sense ser controlat externament. No obstant això, pel bé d’aquest projecte no ens centrarem en ell, estigueu atents a un altre tutorial de projecte en el qual intentarem construir el “robot de seguiment de línia més ràpid”. He combinat tots dos circuits en una sola PCB per facilitar la construcció; podeu ignorar el sensor IR i la secció d'amplificador operatiu per a aquest projecte.

El cotxe RC funcionarà amb la bateria Lipo connectada a la terminal P1. L’ AMS117-3.3V s’utilitza per regular 3.3V per a la nostra nRF24L01 i la nostra mini-placa pro. També podem alimentar la placa Arduino directament al pin brut, però el regulador de voltatge incorporat de 3,3V del pro mini no podrà subministrar prou corrent als nostres mòduls de RF, per tant hem utilitzat un regulador de voltatge extern.

Per conduir els nostres dos motors BLDC, hem utilitzat dos MOSFET SI2302. És important assegurar-se que aquests MOSFETS puguin ser impulsats per 3,3 V. Si no trobeu el mateix número de peça, podeu cercar MOSFET equivalents amb les característiques de transferència següents

Els motors poden consumir una intensitat màxima de fins a 7A (es va comprovar que el corrent continu era de 3A amb càrrega), per tant, el corrent de drenatge MOSFET hauria de ser de 7A o més i s’hauria d’encendre completament a 3,3V. Com podeu veure aquí, el MOSFET que hem seleccionat pot proporcionar 10A fins i tot a 2,25 V, de manera que és una opció ideal.
Fabricació de PCB per a cotxes RC Arduino
La part divertida de l’edifici d’aquest projecte va ser el desenvolupament de PCB. Les PCB aquí no només formen el circuit, sinó que també actuen com a xassís per al nostre cotxe, de manera que vam planejar un cotxe que tenia forma amb opcions per muntar fàcilment els nostres motors. També podeu provar de dissenyar el vostre propi PCB mitjançant el circuit anterior o podeu fer servir el meu disseny de PCB que s’assembla a continuació un cop finalitzat.

Com podeu veure, he dissenyat el PCB per muntar fàcilment la bateria, el motor i altres components. Podeu descarregar el fitxer Gerber d’aquest PCB des de l’enllaç. Quan estigueu llest amb el fitxer Gerber, és hora de fabricar-lo. Per obtenir PCB fàcilment mitjançant PCBGOGO, seguiu els passos següents
Pas 1: accediu a www.pcbgogo.com, inscriviu-vos si és la primera vegada. A continuació, a la pestanya Prototip de PCB introduïu les dimensions del PCB, el nombre de capes i el nombre de PCB que necessiteu. El meu PCB fa 80 cm × 80 cm, de manera que la pestanya té l'aspecte següent.

Pas 2: continueu fent clic al botó Cita ara . Se us dirigirà a una pàgina on establireu uns quants paràmetres addicionals si cal, com ara el material utilitzat entre espais, etc. Però la majoria dels valors per defecte funcionaran bé. L’únic que hem de tenir en compte aquí és el preu i el temps. Com podeu veure, el temps de construcció és de només 2-3 dies i només costa 5 dòlars per al nostre PSB. A continuació, podeu seleccionar un mètode d’enviament preferit en funció dels vostres requisits.

Pas 3: l'últim pas és carregar el fitxer Gerber i procedir al pagament. Per assegurar-se que el procés sigui fluït, PCBGOGO verifica si el fitxer Gerber és vàlid abans de procedir al pagament. D'aquesta manera, podeu assegurar-vos que el vostre PCB sigui amigable amb la fabricació i us arribi com a compromès.
Muntatge del PCB
Després d’ordenar el tauler, em va arribar després d’uns dies, tot i que el missatger estava en una caixa ben empaquetada i perfectament etiquetada i, com sempre, la qualitat del PCB era impressionant. Comparteixo unes quantes imatges dels taulers següents perquè en jutgeu.

Vaig engegar la barra de soldar i vaig començar a muntar el tauler. Com que les petjades, els coixinets, les vies i la serigrafia són perfectes per a la forma i la mida adequades, no he tingut cap problema en muntar el tauler. El tauler estava llest en només 10 minuts des del moment de desembalar la caixa.
A continuació es mostren algunes imatges del tauler després de la soldadura.

Rodes d'impressió 3D i muntatge del motor
Com podríeu haver observat a la imatge anterior, necessitem 3D per a la nostra muntura del motor i les nostres rodes per al robot. Si heu utilitzat el fitxer PCB Gerber compartit anteriorment, és possible que també utilitzeu un model 3D descarregant-lo des d’aquest enllaç thingiverse.

He utilitzat Cura per tallar els meus models i els he imprès amb Tevo Terantuala sense suports i un 0% d’ompliment per reduir pes. Podeu modificar la configuració adequada per a la nostra impressora. Com que els motors giren molt ràpidament, em va semblar difícil dissenyar una roda que s’ajustés perfectament a l’eix del motor. Per tant, vaig decidir utilitzar les fulles del dron dins de la roda com podeu veure a continuació

Em va semblar més fiable i robust, però experimenteu amb diferents dissenys de rodes i feu-me saber a la secció de comentaris què us va funcionar.
Programació de l'Arduino
El programa complet (tant Arduino nano com pro mini) d’aquest projecte es troba a la part inferior d’aquesta pàgina. L’explicació del vostre programa de RC és la següent
Comencem el programa incloent el fitxer de capçalera requerit. Tingueu en compte que, el mòdul nRF24l01 requereix que s’afegeixi una biblioteca al vostre IDE Arduino; podeu descarregar la biblioteca RF24 de Github mitjançant aquest enllaç. A part d’això, ja hem definit la velocitat mínima i màxima per al nostre robot. L'interval mínim i màxim són de 0 a 1024 respectivament.
#define min_speed 200 #define max_speed 800 #include
A continuació, dins de la funció de configuració, inicialitzem el mòdul nRF24L01. Hem utilitzat les 115 bandes, ja que no està saturat i ha configurat el mòdul perquè funcioni amb poca potència; també podeu jugar amb aquests paràmetres.
configuració nul·la () {Serial.begin (9600); myRadio.begin (); myRadio.setChannel (115); // 115 bandes per sobre dels senyals WIFI myRadio.setPALevel (RF24_PA_MIN); // MIN potència ràbia baixa myRadio.setDataRate (RF24_250KBPS); // Velocitat mínima}
A continuació, a la funció de bucle principal, només executarem la funció ReadData amb la qual llegirem constantment el valor enviat des del mòdul del joystick del transmissor. Tingueu en compte que l’adreça de la canonada esmentada al programa ha de ser la mateixa que l’esmentada al programa del transmissor. També hem imprès el valor que rebem a efectes de depuració. Una vegada que el valor es llegeixi correctament, executarem la funció Control Car per controlar el nostre cotxe RC en funció del valor rebut del
mòdul Rf.
void ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Quina canalització de lectura, 40 bits Adreça myRadio.startListening (); // Atureu la transmissió i comenceu a tornar a visualitzar si (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.print ("\ nRecibit:"); Serial.println (data.msg); rebut = data.msg; Control_Car (); }}
Dins de la funció Control Car, controlarem els motors connectats als pins PWM mitjançant la funció d’escriptura analògica. Al nostre programa de transmissors hem convertit els valors analògics del pin A0 i A1 de Nano a 1 a 10, 11 a 20, 21 a 30 i 31 a 40 per controlar el cotxe cap endavant, enrere, esquerre i dret respectivament. El programa següent s’utilitza per controlar el robot en direcció endavant
if (rebut> = 1 && rebut <= 10) // Avança {int PWM_Value = mapa (rebut, 1, 10, velocitat_min, velocitat_ max); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, PWM_Value); }
De la mateixa manera, també podem escriure tres funcions més per al control invers, esquerre i dret com es mostra a continuació.
if (rebut> = 11 && rebut <= 20) // Trenca {int PWM_Value = mapa (rebut, 11, 20, velocitat_min, velocitat_màx); analogWrite (R_MR, 0); analogWrite (L_MR, 0); } if (rebut> = 21 && rebut <= 30) // Gireu a l'esquerra {int PWM_Value = mapa (rebut, 21, 30, velocitat_min, velocitat_màx); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, 0); } if (rebut> = 31 && rebut <= 40) // Gireu a la dreta {int PWM_Value = mapa (rebut, 31, 40, min_speed, max_speed); analogWrite (R_MR, 0); analogWrite (L_MR, PWM_Value); }
Funcionament d'Arduino RC Car
Un cop hàgiu acabat el codi, pengeu-lo al vostre mini-tauler professional. Traieu la bateria i la placa mitjançant el mòdul FTDI per provar-les. Inicieu el codi, obriu la bateria en sèrie i hauríeu de rebre el valor del mòdul Joystick del vostre transmissor. Connecteu la bateria i els motors també haurien de començar a girar.

El funcionament complet del projecte es pot trobar al vídeo enllaçat al final d'aquesta pàgina. Si teniu alguna pregunta, deixeu-los a la secció de comentaris. També podeu utilitzar els nostres fòrums per obtenir respostes ràpides a les vostres altres preguntes tècniques.
