- Безмоторний двигун постійного струму для RC автомобілів
- Необхідні матеріали
- RF джойстик для RC автомобіля з використанням Arduino
- Електрична схема автомобіля Arduino RC
- Виготовлення друкованої плати для автомобіля Arduino RC
- Складання друкованої плати
- Колеса для 3D-друку та кріплення для двигуна
- Програмування Arduino
- Працює Arduino RC Car
З RC-автомобілями завжди весело грати, я особисто є великим шанувальником цих автомобілів з дистанційним управлінням, і я багато з ними грав (досі). Більшість з цих автомобілів сьогодні забезпечують величезний крутний момент для роботи з пересіченою місцевістю, але є щось, що завжди відставало, його швидкість !!.. Отже, у цьому проекті ми побудуємо абсолютно інший тип RC-автомобіля з використанням Arduino, головного Мета цього автомобіля - досягти максимальної швидкості, тому я вирішив спробувати бездротовий двигун постійного струму для RC-автомобіля. Ці двигуни зазвичай використовуються в безпілотниках і розраховані на 39000 об / хв що має бути більш ніж достатнім для втамування швидкої спраги. Автомобіль буде живитися від невеликої літієвої батареї, і ним можна буде дистанційно керувати за допомогою RF-модуля nRF24L01. Крім того, якщо ви шукаєте щось просте, ви також можете перевірити цей проект Простий RF-робот та Raspberry Pi Bluetooth Car.
Безмоторний двигун постійного струму для RC автомобілів
Тигельний двигун постійного струму, який використовується в цьому проекті показаний на малюнку нижче. Ви можете їх легко знайти, оскільки вони широко використовуються в міні-безпілотниках. Просто знайдіть 8520 магнітний мікромоторний безжильний двигун, і ви знайдете їх.
Зараз є певні недоліки використання двигунів постійного струму для автомобілів RC. Перше, що вони забезпечують дуже низький пусковий момент, отже наш RC-автомобіль повинен бути якомога легшим. Ось чому я вирішив побудувати весь автомобіль на друкованій платі з використанням SMD-компонентів і максимально зменшив розмір плати. Друга проблема полягає в його високій швидкості, 39000 об / хв (об / хв вала) важко впоратися, тому нам потрібна схема регулювання швидкості на стороні Arduino, яку ми побудували за допомогою MOSFET. Третя річ - ці двигуни будуть живитись від однієї літій-полімерної батареї з робочою напругою від 3,6 В до 4,2 В, тому ми повинні розробити нашу схему для роботи на 3,3 В. Ось чому ми використовували 3,3 В Arduino Pro miniяк мозок нашого автомобіля RC. Розібравши ці проблеми, давайте розглянемо матеріали, необхідні для побудови цього проекту.
Необхідні матеріали
- 3,3 В Arduino Pro Mini
- Arduino Nano
- NRF24L01 - 2шт
- Модуль джойстика
- SI2302 MOSFET
- 1N5819 Діод
- Двигуни BLDC без ядра
- AMS1117-3.3V
- Літій-полімерна батарея
- Резистори, конденсатори,
- Підключення проводів
RF джойстик для RC автомобіля з використанням Arduino
Як вже згадувалося раніше, RC-автомобілем буде керувати дистанційно за допомогою RF-джойстика. Цей джойстик також буде побудований з використанням Arduino разом з RF-модулем nRF24L01, ми також використовували модуль джойстика для управління нашим RC у необхідному напрямку. Якщо ви абсолютно не знайомі з цими двома модулями, ви можете прочитати статті «Взаємодія Arduino з nRF24L01» та «Взаємозв’язок джойстика» з Arduino, щоб дізнатися, як вони працюють та як ними користуватися. Для побудови віддаленого джойстика Arduino RF ви можете слідувати наведеній нижче схемі.
Схема RF джойстика може живитися за допомогою USB-порту нано-плати. Модуль nRF24L01 працює лише на напрузі 3,3 В, отже, ми використовували 3,3 В контакт на Arduino. Я побудував схему на макетній панелі, і вона виглядає як нижче, ви також можете створити для цього друковану плату, якщо потрібно.
Код Arduino для RF джойстика досить простий, нам потрібно прочитати значення X і значення Y з нашого джойстика і відправити його в автомобіль RC через nRF24L01. Повну програму для цієї схеми можна знайти внизу цієї сторінки. Ми не будемо вникати в пояснення цього, оскільки ми вже обговорювали це у посиланні на проект взаємодії, наведеному вище.
Електрична схема автомобіля Arduino RC
Повна електрична схема нашого автомобіля Arduino з дистанційним управлінням наведена нижче. Схема також включає можливість додавання двох ІК-модулів TCRT5000 до нашого автомобіля. Це було заплановано, щоб наш RC-автомобіль працював як робот, що слідує за лінією, щоб він міг працювати самостійно, не контролюючись зовні. Однак заради цього проекту ми не будемо концентруватися на ньому, слідкуйте за іншим навчальним посібником проекту, в якому ми спробуємо створити “Найшвидшого робота-послідовника лінії”. Я об'єднав обидві схеми на одній друкованій платі для зручності побудови, ви можете ігнорувати ІЧ-датчик та розділ підсилювача для цього проекту.
UАвтомобіль RC буде живитися від акумулятора Lipo, підключеного до терміналу P1. AMS117-3.3V використовується для регулювання 3.3V для нашого NRF24L01 і нашої про-міні-плату. Ми також можемо живити плату Arduino безпосередньо на вихідному штифті, але вбудований регулятор напруги 3,3 В на mini не зможе подавати достатньо струму на наші RF-модулі, отже, ми використовували зовнішній регулятор напруги.
Для керування нашим двома BLDC-двигунами ми використали два МОП-транзистори SI2302. Важливо переконатися, що ці МОП-транзистори можуть рухатися на 3,3 В. Якщо ви не можете знайти точний номер деталі, ви можете шукати еквівалентні MOSFET з наведеними нижче характеристиками передачі
Двигуни можуть споживати піковий струм до 7А (постійний тест був перевірений на 3А з навантаженням), отже, струм стоку MOSFET повинен бути 7А або більше, і він повинен повністю ввімкнутися при 3,3В. Як ви можете бачити тут, вибраний нами МОП-транзистор може забезпечити 10А навіть при напрузі 2,25 В, що є ідеальним вибором.
Виготовлення друкованої плати для автомобіля Arduino RC
Цікавою частиною побудови цього проекту стала розробка друкованих плат. Тут друкована плата не тільки формує ланцюг, але й виконує роль шасі для нашого автомобіля, тому ми запланували автомобіль, який шукає форму, з варіантами для легкого монтажу наших двигунів. Ви також можете спробувати розробити власну друковану плату, використовуючи схему вище, або ви можете використовувати мою конструкцію друкованої плати, яка виглядає так, як показано нижче, після завершення.
Як бачите, я розробив друковану плату для легкого кріплення акумулятора, двигуна та інших компонентів. Ви можете завантажити файл Gerber для цієї друкованої плати за посиланням. Після того, як ви готові до файлу Gerber, настав час його сфабрикувати. Щоб легко отримати ваші друковані плати за допомогою PCBGOGO, виконайте наведені нижче дії
Крок 1: Зайдіть на www.pcbgogo.com, підпишіться, якщо це ваш перший раз. Потім на вкладці «Прототип друкованої плати» введіть розміри вашої друкованої плати, кількість шарів та кількість необхідної вам друкованої плати. Моя друкована плата становить 80 см × 80 см, тому вкладка виглядає так, як показано нижче.
Крок 2: Продовжуйте, натискаючи кнопку Quote Now . Ви потрапите на сторінку, де за необхідності можна встановити кілька додаткових параметрів, наприклад, використовуваний матеріал інтервал доріжок тощо. Але в основному значення за замовчуванням будуть працювати нормально. Єдине, що ми маємо тут врахувати, це ціна та час. Як бачите, час побудови складає всього 2-3 дні, а коштує лише 5 доларів для нашого PSB. Потім ви можете вибрати бажаний спосіб доставки, виходячи з ваших вимог.
Крок 3: Останнім кроком є завантаження файлу Gerber і продовження платежу. Щоб переконатися, що процес безперебійний, PCBGOGO перевіряє, чи справжній ваш файл Gerber, перш ніж продовжувати оплату. Таким чином ви можете бути впевнені, що ваша друкована плата є зручною для виготовлення і зв’яжеться з вами як докладена.
Складання друкованої плати
Після того, як плату замовили, вона дійшла до мене через кілька днів, хоча кур’єр у акуратно поміченій добре упакованій коробці, як і завжди, якість друкованої плати була надзвичайною. Я ділюсь кількома фотографіями дощок нижче, щоб ви могли судити.
Я включив паяльний стрижень і почав збирати дошку. Оскільки сліди ніг, прокладки, шовковий екран ідеально підходять для правильної форми та розміру, у мене не було проблем зі складанням дошки. Дошка була готова всього за 10 хвилин з моменту розпакування коробки.
Кілька фотографій дошки після пайки показані нижче.
Колеса для 3D-друку та кріплення для двигуна
Як ви могли помітити на наведеному малюнку, нам потрібно зробити 3D наше кріплення двигуна та колеса для робота. Якщо ви використовували наш файл друкованої плати Gerber, наведений вище, ви могли б також використовувати 3D-модель, завантаживши її за цим посиланням.
Я використовував Cura для нарізки своїх моделей та друкував їх за допомогою Tevo Terantuala без опор та 0% заповнення для зменшення ваги. Ви можете змінити налаштування, як підходить для нашого принтера. Оскільки двигуни обертаються дуже швидко, мені здалося важким розробити колесо, яке щільно і щільно прилягатиме до вала двигуна. Тому я вирішив використовувати лопаті дрона всередині колеса, як ви можете бачити нижче
Я виявив, що це більш надійно і міцно, проте експериментуйте з різними конструкціями коліс і повідомте мені в розділі коментарів, що вам підходило.
Програмування Arduino
Повну програму (як Arduino nano, так і pro mini) для цього проекту можна знайти внизу цієї сторінки. Пояснення вашої програми RC таке
Ми запускаємо програму, включаючи необхідний файл заголовка. Зверніть увагу, що модуль nRF24l01 вимагає додавання бібліотеки до вашої IDE Arduino, ви можете завантажити бібліотеку 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, за допомогою якої ми будемо постійно читати значення, надіслане з нашого модуля джойстика Transmitter. Зверніть увагу, що адреса трубопроводу, згаданий у програмі, повинен бути таким самим, як вказаний у програмі передавача. Ми також надрукували значення, яке ми отримуємо для налагодження. Після успішного зчитування значення ми виконаємо функцію Control Car для управління нашим автомобілем RC на основі значення, отриманого від
модуля Rf.
void ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Який конвеєр прочитати, 40 біт Адреса myRadio.startListening (); // Зупинити передачу та розпочати перевірку, якщо (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.print ("\ nОтримано:"); Serial.println (data.msg); отримано = data.msg; Control_Car (); }}
Усередині функції Control Car ми будемо керувати двигунами, підключеними до ШІМ-контактів, за допомогою функції аналогового запису. У нашій програмі передавача ми перетворили аналогові значення зі штифтів 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 для тестування. Запустіть свій код, відкрийте послідовну батарею, і ви отримаєте значення від модуля джойстика вашого передавача. Підключіть акумулятор, і ваші двигуни також повинні почати обертатися.
Повну роботу над проектом можна знайти у відео, на яке посилається внизу цієї сторінки. Якщо у вас виникли запитання, залиште їх у розділі коментарів. Ви також можете скористатися нашими форумами, щоб швидко отримати відповіді на інші технічні питання.