- Coreless DC Motor para sa Mga Kotse ng RC
- Mga Materyal na Kinakailangan
- RF Joystick para sa RC car gamit ang Arduino
- Arduino RC Car Circuit Diagram
- Fabricating PCB para sa Arduino RC Car
- Pag-iipon ng PCB
- Mga 3D Wheel Wheels at Motor Mount
- Programming ang Arduino
- Paggawa ng Arduino RC Car
Ang mga kotseng RC ay palaging masaya upang makipaglaro, personal akong isang tagahanga ng mga remote-control na Mga Kotse at naglaro (pa rin) sa kanila nang malawakan. Karamihan sa mga kotseng ito ngayon ay nagbibigay ng isang malaking metalikang kuwintas upang hawakan ang magaspang na mga terrain, ngunit may isang bagay na palaging nahuhuli, ang Bilis nito !!.. Kaya, sa proyektong ito, magtatayo kami ng isang ganap na magkakaibang uri ng RC car gamit ang Arduino, ang pangunahing layunin ng kotseng ito ay upang makamit ang maximum na bilis, kaya't nagpasya akong subukan ang walang ingat DC motor para sa isang RC kotse. Ang mga motor na ito ay karaniwang ginagamit sa mga drone at na-rate para sa 39000 RPM na dapat ay higit sa sapat upang mapatas ang aming bilis na uhaw. Ang kotse ay pinapagana ng isang maliit na baterya ng lithium at maaaring makontrol nang malayuan gamit ang nRF24L01 RF module. Bilang kahalili, kung naghahanap ka para sa isang bagay na simple, maaari mo ring suriin ang mga proyektong Simple RF Robot at Raspberry Pi Bluetooth Car na ito.
Coreless DC Motor para sa Mga Kotse ng RC
Ang coreless DC motor na ginagamit sa proyektong ito ay ipinapakita sa larawan sa ibaba. Madali mong mahahanap ang mga ito dahil malawak silang gumagamit ng mga mini drone. Hanapin lamang ang 8520 Magnetic Micro Coreless Motor at mahahanap mo ang mga ito.
Ngayon, may ilang mga drawbacks sa paggamit ng DC motors para sa isang RC car. Ang unang bagay ay nagbibigay sila ng napakababang panimulang metalikang kuwintas mula dito ang aming RC kotse ay dapat na kasing magaan hangga't maaari. Ito ang dahilan kung bakit napagpasyahan kong itayo ang buong kotse sa tuktok ng isang PCB gamit ang mga sangkap ng SMD at binabawasan ang laki ng board hangga't maaari. Ang pangalawang problema ay ang mataas na bilis nito, 39000 RPM (RPM ng baras) ay mahirap hawakan, kaya kailangan namin ng isang circuit ng kontrol sa bilis sa panig ng Arduino, na binuo namin gamit ang isang MOSFET. Ang pangatlong bagay ay ang mga motor na ito ay tatakbo ng isang solong lithium-polymer na baterya na may operating boltahe sa pagitan ng 3.6V hanggang 4.2V, kaya kailangan nating idisenyo ang aming circuit upang gumana sa 3.3V. Ito ang dahilan kung bakit gumamit kami ng isang 3.3V Arduino Pro minibilang utak ng aming kotseng RC. Sa mga problemang ito na pinagsunod-sunod, tingnan natin ang mga materyales na kinakailangan upang mabuo ang proyektong ito.
Mga Materyal na Kinakailangan
- 3.3V Arduino Pro Mini
- Arduino Nano
- NRF24L01 - 2pcs
- Module ng Joystick
- SI2302 MOSFET
- 1N5819 Diode
- Coreless BLDC Motors
- AMS1117-3.3V
- Baterya ng Lithium Polymer
- Mga Resistor, Capacitor,
- Mga kumokonekta na mga wire
RF Joystick para sa RC car gamit ang Arduino
Tulad ng nabanggit kanina, ang kotseng RC ay makokontrol nang malayuan gamit ang isang RF Joystick. Itatayo din ang Joystick na ito gamit ang isang Arduino kasama ang isang nRF24L01 RF module, ginamit din namin ang module ng Joystick upang makontrol ang aming RC sa kinakailangang direksyon. Kung ganap kang bago sa dalawang modyul na ito, maaari mong isaalang-alang ang pagbabasa ng Interfacing Arduino na may nRF24L01 at Interfacing Joystick na may Arduino na mga artikulo upang malaman kung paano ito gumagana at kung paano gamitin ang mga ito. Upang maitayo ang iyong Arduino RF Remote Joystick maaari mong sundin ang nasa ibaba Circuit Diagram.
Ang RF Joystick circuit ay maaaring pinalakas gamit ang USB port ng nano board. Ang nRF24L01 module ay nagpapatakbo lamang sa 3.3V, samakatuwid ay ginamit namin ang 3.3V pin sa Arduino. Naitayo ko ang circuit sa isang breadboard at mukhang sa ibaba, maaari ka ring lumikha ng isang PCB para dito kung kinakailangan.
Ang Arduino Code para sa RF Joystick circuit ay medyo simple, kailangan naming basahin ang halagang X at Y na halaga mula sa aming Joystick at ipadala ito sa RC car sa pamamagitan ng nRF24L01. Ang kumpletong programa para sa circuit na ito ay matatagpuan sa ilalim ng pahinang ito. Hindi namin makukuha ang paliwanag tungkol doon dahil napag-usapan na namin ito sa nakagaganyak na link ng proyekto na ibinahagi sa itaas.
Arduino RC Car Circuit Diagram
Ang kumpletong diagram ng circuit para sa aming Remote na kinokontrol na Arduino Car ay ipinapakita sa ibaba. Nagsasama rin ang diagram ng circuit ng isang pagpipilian upang magdagdag ng dalawang mga module ng TCRT5000 IR sa aming sasakyan. Plano nito upang paganahin ang aming kotse na RC upang gumana bilang isang sumusunod na linya ng robot upang maaari itong gumana nang mag-isa nang hindi kontrolado ng panlabas. Gayunpaman, alang-alang sa proyektong ito hindi kami mag-focus dito, manatiling nakatutok para sa isa pang tutorial ng proyekto kung saan susubukan naming buuin ang "Pinakamabilis na Pagsusunod sa Robot na Robot". Pinagsama ko ang parehong mga circuit sa isang solong PCB para sa kadalian ng pagbuo, maaari mong balewalain ang IR sensor at seksyon ng Op-amp para sa proyektong ito.
Ang kotseng RC ay papatakbo ng Lipo Battery na konektado sa terminal P1. Ang AMS117-3.3V ay ginagamit upang kontrolin 3.3V para sa aming nRF24L01 at ang aming pro-mini-board. Maaari din nating mai-power ang board ng Arduino nang direkta sa hilaw na pin ngunit ang on-board na 3.3V voltage regulator sa pro mini ay hindi makakapagbigay ng sapat na kasalukuyang sa aming mga RF module, kaya't gumamit kami ng isang panlabas na regulator ng boltahe.
Upang himukin ang aming dalawang motor na BLDC, gumamit kami ng dalawang SI2302 MOSFET. Ito ay mahalaga upang matiyak na ang mga MOSFETS na ito ay maaaring hinihimok ng 3.3V. Kung hindi mo mahanap ang eksaktong parehong numero ng bahagi, maaari kang maghanap para sa mga katumbas na MOSFET na may mga katangian sa paglipat sa ibaba
Ang mga motor ay maaaring ubusin ang kasalukuyang kasalukuyang kasing taas ng 7A (tuloy-tuloy na nasubok na 3A na may karga), samakatuwid ang MOSFET na kasalukuyang alisan ng tubig ay dapat na 7A o higit pa at dapat itong ganap na mag-on sa 3.3V. Tulad ng nakikita mo dito ang MOSFET na napili namin ay maaaring magbigay ng 10A kahit na sa 2.25V kaya't ito ay isang perpektong pagpipilian.
Fabricating PCB para sa Arduino RC Car
Ang kasiya-siyang bahagi sa pagbuo ng proyektong ito ay ang PCB Development. Ang PCB dito ay hindi lamang bumubuo ng circuit ngunit gumaganap din bilang isang Chassis para sa aming Kotse, kaya pinlano namin ang isang kotse na naghahanap ng hugis para dito na may mga pagpipilian upang madaling mai-mount ang aming mga motor. Maaari mo ring subukan ang pagdidisenyo ng iyong sariling PCB gamit ang circuit sa itaas o maaari mong gamitin ang aking disenyo ng PCB na mukhang ganito sa ibaba nang makumpleto.
Tulad ng nakikita mong dinisenyo ko ang PCB upang madaling mai-mount ang baterya, motor, at iba pang mga sangkap. Maaari mong i-download ang Gerber file para sa PCB na ito mula sa link. Kapag handa ka na sa Gerber file, oras na upang ito ay gawa-gawa. Upang makuha ang iyong mga PCB na madaling gawin ng PCBGOGO sundin ang mga hakbang sa ibaba
Hakbang 1: Pumasok sa www.pcbgogo.com, mag-sign up kung ito ang iyong unang pagkakataon. Pagkatapos, sa tab na PCB Prototype ipasok ang mga sukat ng iyong PCB, ang bilang ng mga layer at ang bilang ng PCB na kailangan mo. Ang aking PCB ay 80cm × 80cm kaya ganito ang nakikita sa tab.
Hakbang 2: Magpatuloy sa pamamagitan ng pag-click sa pindutan ng Quote Now . Dadalhin ka sa isang pahina kung saan magtatakda ng ilang karagdagang mga parameter kung kinakailangan tulad ng materyal na ginamit na spacing ng track atbp. Ngunit karamihan sa mga default na halaga ay gagana nang maayos. Ang tanging bagay lamang na dapat nating isaalang-alang dito ay ang presyo at oras. Tulad ng nakikita mo na ang Build Time ay 2-3 araw lamang at nagkakahalaga lamang ito ng $ 5 para sa aming PSB. Maaari mong piliin ang isang ginustong paraan ng pagpapadala batay sa iyong mga kinakailangan.
Hakbang 3: Ang pangwakas na hakbang ay i-upload ang Gerber file at magpatuloy sa pagbabayad. Upang matiyak na ang proseso ay maayos Ang pag-verify ng PCBGOGO kung ang iyong Gerber file ay wasto bago magpatuloy sa pagbabayad. Sa ganitong paraan makasisiguro ka na ang iyong PCB ay katha na gawa at maaabot ka bilang nakatuon.
Pag-iipon ng PCB
Matapos ang order ng board, naabot ito sa akin makalipas ang ilang araw kahit na ang courier sa isang maayos na naka-label na kahon na naka-pack na maayos at tulad ng palaging ang kalidad ng PCB ay kahanga-hanga. Nagbabahagi ako ng ilang mga larawan ng mga board sa ibaba upang husgahan mo.
Binuksan ko ang aking soldering rod at nagsimulang tipunin ang Lupon. Dahil ang mga Footprint, pad, vias, at silkscreen ay perpekto ng tamang hugis at sukat, wala akong problema sa pag-iipon ng board. Ang board ay handa na sa 10 minuto lamang mula sa oras ng pag-unpack ng kahon.
Ang ilang mga larawan ng board pagkatapos ng paghihinang ay ipinapakita sa ibaba.
Mga 3D Wheel Wheels at Motor Mount
Tulad ng napansin mo sa larawan sa itaas, kailangan naming i-3D ang aming motor na mount at gulong para sa robot. Kung nagamit mo ang aming PCB Gerber file na ibinahagi sa itaas, maaari mo ring gamitin ang isang 3D na modelo sa pamamagitan ng pag-download nito mula sa link ng thingiverse na ito.
Ginamit ko ang Cura upang ihiwa ang aking mga modelo at nai-print ang mga ito gamit ang Tevo Terantuala na walang mga suporta at 0% infill para sa pagbawas ng timbang. Maaari mong baguhin ang setting na naaangkop para sa aming printer. Dahil ang mga motor ay napakabilis na umiikot, nakita kong matigas na magdisenyo ng isang gulong na magkakasya sa masikip at masikip sa shaft ng motor. Samakatuwid nagpasya akong gamitin ang mga drone blades sa loob ng gulong tulad ng nakikita mo sa ibaba
Natagpuan ko ito na mas maaasahan at matatag, subalit, mag-eksperimento sa iba't ibang mga disenyo ng gulong at ipaalam sa akin sa seksyon ng komento kung ano ang gumana para sa iyo.
Programming ang Arduino
Ang kumpletong programa (parehong Arduino nano at pro mini) para sa proyektong ito ay matatagpuan sa ilalim ng pahinang ito. Ang paliwanag ng iyong programa sa RC ay ang mga sumusunod
Sinisimula namin ang programa sa pamamagitan ng pagsasama ng kinakailangang file ng header. Tandaan na, ang module na nRF24l01 ay nangangailangan ng isang library na maidaragdag sa iyong Arduino IDE, maaari mong i-download ang RF24 Library mula sa Github gamit ang link na ito. Bukod sa na, natukoy na namin ang minimum na bilis at maximum na bilis para sa aming robot. Ang minimum at maximum na saklaw ay 0 hanggang 1024 ayon sa pagkakabanggit.
#define min_speed 200 # tukuyin ang max_speed 800 # isama
Pagkatapos sa loob ng pag-andar ng pag-setup, sinisimulan namin ang aming nRF24L01 module. Ginamit namin ang 115 banda dahil hindi ito masikip at naitakda ang module upang gumana nang may mababang lakas, maaari mo ring i-play sa mga setting na ito.
void setup () {Serial.begin (9600); myRadio.begin (); myRadio.setChannel (115); // 115 band sa itaas ng WIFI signal myRadio.setPALevel (RF24_PA_MIN); // MIN power low rage myRadio.setDataRate (RF24_250KBPS); // Minimum na bilis}
Susunod sa pangunahing pag-andar ng loop, isasagawa lamang namin ang pagpapaandar ng ReadData kung saan patuloy naming binabasa ang halagang ipinadala mula sa aming module ng joystick ng Transmitter. Tandaan na ang address ng tubo na nabanggit sa programa ay dapat na kapareho ng nabanggit sa programa ng transmitter. Na-print din namin ang halagang natanggap namin para sa mga layunin ng pag-debug. Kapag matagumpay na nabasa ang halaga ay isasagawa namin ang pagpapaandar ng Control Car upang makontrol ang aming RC car batay sa halagang natanggap mula sa
Rf module.
walang bisa ang ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Aling tubo ang babasahin, 40 bit Address myRadio.startListening (); // Stop Transminting at simulan ang Reveicing kung (myRadio.available ()) {habang (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.print ("\ nTinanggap:"); Serial.println (data.msg); natanggap = data.msg; Control_Car (); }}
Sa loob ng pag-andar ng Control Car, makokontrol namin ang mga motor na konektado sa mga PWM na pin gamit ang pag-andar ng pagsulat ng analog. Sa aming programang transmitter binago namin ang mga halaga ng Analog mula A0 at A1 pin ng Nano hanggang 1 hanggang 10, 11 hanggang 20, 21 hanggang 30 at 31 hanggang 40 para sa pagkontrol sa kotse sa pasulong, baligtad, kaliwa at kanan ayon sa pagkakabanggit. Ang program sa ibaba ay ginagamit upang makontrol ang robot sa isang pasulong na direksyon
kung (natanggap> = 1 && natanggap <= 10) // Forward Forward {int PWM_Value = map (natanggap, 1, 10, min_speed, max_speed); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, PWM_Value); }
Katulad nito, maaari din kaming magsulat ng tatlong iba pang mga pag-andar para sa reverse, left, at right control tulad ng ipinakita sa ibaba.
kung (natanggap> = 11 && natanggap <= 20) // Break {int PWM_Value = mapa (natanggap, 11, 20, min_speed, max_speed); analogWrite (R_MR, 0); analogWrite (L_MR, 0); } kung (natanggap> = 21 && natanggap <= 30) // Lumiko sa kaliwa {int PWM_Value = mapa (natanggap, 21, 30, min_speed, max_speed); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, 0); } kung (natanggap> = 31 && natanggap <= 40) // Lumiko sa Kanan {int PWM_Value = mapa (natanggap, 31, 40, min_speed, max_speed); analogWrite (R_MR, 0); analogWrite (L_MR, PWM_Value); }
Paggawa ng Arduino RC Car
Pagkatapos mong magawa ang code, i-upload ito sa iyong pro-mini-board. Alisin ang baterya at ang iyong board sa pamamagitan ng module ng FTDI para sa pagsubok. Ilunsad ang iyong code, buksan ang serial baterya at dapat mong matanggap ang halaga mula sa iyong transmitter Joystick module. Ikonekta ang iyong baterya at ang iyong mga motor ay dapat ding magsimula upang paikutin.
Ang kumpletong pagtatrabaho ng proyekto ay matatagpuan sa video na naka-link sa ilalim ng pahinang ito. Kung mayroon kang anumang mga katanungan iwanan ang mga ito sa seksyon ng komento. Maaari mo ring gamitin ang aming mga forum upang makakuha ng mabilis na mga sagot para sa iyong iba pang mga teknikal na katanungan.