- Мотор с постоянен ток за RC автомобили
- Необходими материали
- RF джойстик за RC автомобил, използващ Arduino
- Схема на кола на Arduino RC
- Изработване на печатни платки за Arduino RC Car
- Сглобяване на печатната платка
- Колела за 3D печат и моторно монтиране
- Програмиране на Arduino
- Работа на Arduino RC Car
С RC автомобилите винаги е забавно да се играе, аз лично съм голям фен на тези дистанционно управлявани автомобили и съм играл (все още го правя) много. Повечето от тези автомобили днес осигуряват огромен въртящ момент за справяне с неравни терени, но има нещо, което винаги е изоставало, неговата скорост !!.. Така че, в този проект, ние ще изградим съвсем различен тип RC автомобили, използвайки Arduino, основната целта на тази кола е да постигне максимална скорост, затова реших да изпробвам безмоторния DC двигател за RC кола. Тези двигатели обикновено се използват в безпилотни летателни апарати и са оценени на 39000 RPM което би трябвало да е повече от достатъчно за утоляване на скоростната ни жажда. Автомобилът ще се захранва с малка литиева батерия и може да се управлява дистанционно с помощта на RF модула nRF24L01. Като алтернатива, ако търсите нещо просто, можете също да проверите този проект за Simple RF Robot и Raspberry Pi Bluetooth Car.
Мотор с постоянен ток за RC автомобили
The без сърцевина, DC мотор, който се използва в този проект е показано на снимката по-долу. Можете да ги намерите лесно, тъй като те се използват широко в мини дронове. Просто потърсете 8520 Magnetic Micro Core Core Motor и ще ги намерите.
Сега има някои недостатъци при използването на двигатели с постоянен ток за RC кола. Първото нещо е, че те осигуряват много нисък стартов въртящ момент, поради което нашият RC автомобил трябва да бъде възможно най-лек. Ето защо реших да изградя цялата кола върху печатни платки, използвайки SMD компоненти и намалих максимално размера на платката. Вторият проблем е неговата висока скорост, 39000 RPM (RPM на вала) е трудна за работа, така че се нуждаем от верига за контрол на скоростта от страна на Arduino, която изградихме с помощта на MOSFET. Третото нещо е, че тези двигатели ще се захранват от единична литиево-полимерна батерия с работно напрежение между 3.6V до 4.2V, така че ние трябва да проектираме нашата схема да работи на 3.3V. Ето защо използвахме 3.3V Arduino Pro miniкато мозъка на нашия RC автомобил. С тези проблеми, подредени, нека разгледаме материалите, необходими за изграждането на този проект.
Необходими материали
- 3.3V Arduino Pro Mini
- Arduino Nano
- NRF24L01 - 2бр
- Модул на джойстика
- SI2302 MOSFET
- 1N5819 Диод
- Безмощни BLDC двигатели
- AMS1117-3.3V
- Литиево-полимерна батерия
- Резистори, кондензатори,
- Свързващи проводници
RF джойстик за RC автомобил, използващ Arduino
Както споменахме по-рано, RC автомобилът ще се управлява дистанционно с помощта на RF джойстик. Този Джойстик също ще бъде изграден с помощта на Arduino заедно с RF модул nRF24L01, ние също използвахме модула Джойстик, за да контролираме RC в необходимата посока. Ако сте напълно нови за тези два модула, можете да помислите за четене на Interfacing Arduino с nRF24L01 и Interfacing Joystick с Arduino статии, за да научите как работят и как да ги използвате. За да изградите своя дистанционен джойстик Arduino RF, можете да следвате схемата по-долу.
RF веригата на джойстика може да се захранва чрез USB порта на нано платката. Модулът nRF24L01 работи само на 3.3V, поради което използвахме 3.3V щифт на Arduino. Създадох схемата на макет и изглежда по-долу, можете да създадете и печатни платки за това, ако е необходимо.
В Arduino Кодекса за RF Joystick схема е доста проста, ние трябва да се чете стойността на X и Y стойност от нашия джойстик и да го изпрати на RC кола през nRF24L01. Пълната програма за тази схема може да бъде намерена в долната част на тази страница. Няма да навлизаме в обяснението на това, тъй като вече сме го обсъждали в споделената по-горе връзка за свързващ проект.
Схема на кола на Arduino RC
Пълната схема на нашата верига Arduino с дистанционно управление е показана по-долу. Схемата включва и опция за добавяне на два IR модула TCRT5000 към нашата кола. Това беше планирано, за да позволи на нашия RC автомобил да работи като робот, следващ линията, така че да може да работи самостоятелно, без да бъде контролиран отвън. Заради този проект обаче няма да се концентрираме върху него, останете нащрек за друг урок по проекта, в който ще се опитаме да изградим „Най-бързият робот за последователи на линии“. Комбинирах и двете схеми на една платка, за да улесним изграждането, можете да игнорирате IR сензора и раздела за усилвател за този проект.
RC автомобилът ще се захранва от Lipo батерията, свързана към терминал P1. В AMS117-3.3V се използва за регулиране на 3.3V за нашия nRF24L01 и ни про-мини-борда. Също така можем да захранваме платката Arduino директно върху суровия щифт, но вграденият 3.3V регулатор на напрежение на pro mini няма да може да подава достатъчно ток към нашите RF модули, поради което сме използвали външен регулатор на напрежение.
За да задвижваме нашия два BLDC мотора, използвахме два SI2302 MOSFET. Важно е да се уверите, че тези MOSFETS могат да бъдат задвижвани от 3.3V. Ако не можете да намерите точно същия номер на част, можете да потърсите еквивалентни MOSFET-та с долупосочените характеристики на трансфер
Двигателите могат да консумират пиков ток до 7A (непрекъснато е тествано да бъде 3A с товар), следователно изтичащият ток на MOSFET трябва да бъде 7A или повече и трябва да се включи напълно при 3.3V. Както можете да видите тук, избраният от нас MOSFET може да осигури 10A дори при 2.25V, така че е идеален избор.
Изработване на печатни платки за Arduino RC Car
Забавната част от изграждането на този проект беше разработката на печатни платки. ПХБ тук не само формира веригата, но също така действа като шаси за нашата кола, така че ние планирахме автомобил, който да изглежда във форма с опции за лесно монтиране на нашите двигатели. Можете също така да опитате да проектирате своя собствена платка, като използвате схемата по-горе, или можете да използвате моя дизайн на печатни платки, който изглежда така по-долу, след като бъде завършен.
Както можете да видите, аз съм проектирал печатната платка за лесно монтиране на батерията, мотора и други компоненти. Можете да изтеглите файла Gerber за тази PCB от връзката. След като сте готови с файла Gerber, е време да го изфабрикувате. За да направите лесно своите PCB чрез PCBGOGO, следвайте стъпките по-долу
Стъпка 1: Влезте в www.pcbgogo.com, регистрирайте се, ако за първи път. След това в раздела PCB Prototype въведете размерите на вашата PCB, броя на слоевете и броя на PCB, който ви е необходим. Моята PCB е 80cm × 80cm, така че раздела изглежда по-долу.
Стъпка 2: Продължете, като кликнете върху бутона Quote Now . Ще бъдете отведени на страница, където да зададете няколко допълнителни параметъра, ако е необходимо, като използвания материал на разстоянието между песните и т.н. Но най-вече стойностите по подразбиране ще работят добре. Единственото нещо, което трябва да имаме предвид тук, е цената и времето. Както можете да видите Времето за изграждане е само 2-3 дни и струва само $ 5 за нашия PSB. След това можете да изберете предпочитан метод за доставка въз основа на вашите изисквания.
Стъпка 3: Последната стъпка е да качите файла Gerber и да продължите с плащането. За да се увери, че процесът протича гладко, PCBGOGO проверява дали вашият файл Gerber е валиден, преди да продължи с плащането. По този начин можете да сте сигурни, че вашата PCB е удобна за изработка и ще се свърже с вас като ангажирана.
Сглобяване на печатната платка
След като платката беше поръчана, тя стигна до мен след няколко дни, макар че куриер в добре етикетирана добре опакована кутия и както винаги качеството на печатната платка беше страхотно. Споделям няколко снимки на дъските по-долу, за да прецените.
Включих поялника си и започнах да сглобявам дъската. Тъй като отпечатъците, подложките, виасите и коприненият екран са перфектни с правилната форма и размер, нямах проблем да сглобя дъската. Дъската беше готова само за 10 минути от момента на разопаковане на кутията.
Няколко снимки на дъската след запояване са показани по-долу.
Колела за 3D печат и моторно монтиране
Както може би сте забелязали на горната снимка, трябва да направим 3D нашия мотор и колелата за робота. Ако сте използвали нашия споделен по-горе файл PCB Gerber, тогава можете също да използвате 3D модел, като го изтеглите от тази връзка.
Използвах Cura, за да нарязвам моделите си и ги отпечатвам с Tevo Terantuala без опори и 0% пълнеж за намаляване на теглото. Можете да промените настройката, подходяща за нашия принтер. Тъй като двигателите се въртят много бързо, ми се стори трудно да проектирам колело, което да приляга плътно и плътно към вала на двигателя. Затова реших да използвам лопатките на дрона вътре в колелото, както можете да видите по-долу
Открих, че това е по-надеждно и стабилно, но експериментирайте с различни дизайни на колелата и ми кажете в раздела за коментари какво е работило за вас.
Програмиране на Arduino
Пълната програма (както Arduino nano, така и pro mini) за този проект може да бъде намерена в долната част на тази страница. Обяснението на вашата RC програма е както следва
Стартираме програмата, като включим необходимия заглавен файл. Имайте предвид, че модулът nRF24l01 изисква библиотека да бъде добавена към вашата Arduino IDE, можете да изтеглите RF24 библиотека от Github, като използвате тази връзка. Освен това вече сме определили минималната и максималната скорост за нашия робот. Минималният и максималният диапазон са съответно от 0 до 1024.
#define min_speed 200 #define max_speed 800 #include
След това във функцията за настройка инициализираме нашия модул nRF24L01. Използвахме 115 ленти, тъй като той не е претоварен и е настроил модула да работи с ниска мощност, можете също да играете с тези настройки.
void setup () {Serial.begin (9600); myRadio.begin (); myRadio.setChannel (115); // 115 лента над WIFI сигнали myRadio.setPALevel (RF24_PA_MIN); // МИН мощност ниско ярост myRadio.setDataRate (RF24_250KBPS); // Минимална скорост}
След това във функцията на главния цикъл ще изпълним само функцията ReadData, с която ще четем постоянно стойността, изпратена от модула на джойстика на предавателя. Обърнете внимание, че посоченият в програмата адрес на тръбата трябва да бъде същият като посочения в програмата на предавателя. Също така сме отпечатали стойността, която получаваме за целите на отстраняване на грешки. След като стойността бъде прочетена успешно, ние ще изпълним функцията Control Car, за да контролираме нашия RC автомобил въз основа на стойността, получена от
Rf модула.
void ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Коя тръба да чета, 40 битов Адрес myRadio.startListening (); // Спрете да предавате и започнете Reveicing ако (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.print ("\ nПолучен:"); Serial.println (data.msg); получено = data.msg; Control_Car (); }}
Вътре във функцията Control Car ще управляваме двигатели, свързани към PWM щифтовете, използвайки аналоговата функция за запис. В нашата програма на предавателя сме преобразували аналоговите стойности от A0 и A1 щифт на Nano в 1 до 10, 11 до 20, 21 до 30 и 31 до 40 за управление на автомобила съответно напред, назад, наляво и надясно. Програмата по-долу се използва за управление на робота в посока напред
if (получено> = 1 && получено <= 10) // Преместване напред {int PWM_Value = map (получено, 1, 10, min_speed, max_speed); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, PWM_Value); }
По същия начин можем да напишем още три функции за управление на заден ход, ляво и дясно, както е показано по-долу.
if (получено> = 11 && получено <= 20) // Прекъсване {int PWM_Value = map (получено, 11, 20, min_speed, max_speed); analogWrite (R_MR, 0); analogWrite (L_MR, 0); } if (получено> = 21 && получено <= 30) // Завийте наляво {int PWM_Value = map (получено, 21, 30, min_speed, max_speed); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, 0); } if (получено> = 31 && получено <= 40) // Завийте надясно {int PWM_Value = map (получено, 31, 40, min_speed, max_speed); analogWrite (R_MR, 0); analogWrite (L_MR, PWM_Value); }
Работа на Arduino RC Car
След като приключите с кода, качете го на вашата мини-платка. Извадете батерията и дъската чрез модула FTDI за тестване. Стартирайте кода си, отворете серийната батерия и трябва да получите стойността от модула на джойстика на вашия предавател. Свържете батерията и двигателите ви също трябва да започнат да се въртят.
Цялостната работа на проекта може да бъде намерена във видеото, свързано в долната част на тази страница. Ако имате някакви въпроси, оставете ги в раздела за коментари. Можете също да използвате нашите форуми, за да получите бързи отговори за другите си технически въпроси.