- Компоненти, необхідні для Arduino RC Boat
- Модулі радіочастотного передавача та приймача 433 МГц
- РЧ-передавач 433 МГц
- Блок-схема передавача човна Arduino RC
- Принципова схема пульта дистанційного керування Arduino RC (передавач)
- Побудова схеми передавача RC BOAT
- Будівництво корпусу передавача човнів Arduino
- Модуль приймача 433 МГц
- Блок-схема приймача човна Arduino RC
- Принципова схема приймача катерів Arduino RC
- Побудова приймальної схеми Arduino RC Boat
- Створення RC-BOAT
- Двигуни та гвинти для повітряного човна Arduino
- Робота човна Arduino RC
- Програмування Arduino RC Boat
У цьому проекті ми побудуємо Arduino Air-Boat з дистанційним управлінням, яким можна управляти бездротово за допомогою РЧ-радіомодулів 433 МГц. Ми будемо керувати цим човном за допомогою саморобного пульта дистанційного керування, побудувавши власний передавач 433 МГц та модуль приймача. У випадку пристроїв з дистанційним управлінням або зв’язку між двома пристроями ми маємо багато варіантів, таких як ІЧ, Bluetooth, Інтернет, ВЧ і т. Д. У порівнянні з ІЧ-зв'язком, радіозв'язок має деякі переваги, такі як більший діапазон, і це не робить вимагають прямого зору зв'язку між передавачем і приймачем. Крім того, ці модулі можуть здійснювати два способи зв'язку, тобто вони можуть передавати і приймати одночасно. Тож, використовуючи цей 433 МГц RF модуль, давайте побудуємо Arduino RC Boat у цьому посібнику.
Раніше ми побудували безліч проектів з дистанційним управлінням, використовуючи ці RF-модулі 433 МГц, або для управління роботом, як цей робот, керований РФ, або для програм автоматизації дому для управління побутовою технікою, що використовують RF. Окрім використання RF-модулів, ми також раніше побудували автомобіль Raspberry Pi з контролем Bluetooth та мобільний телефон DTMF, керований роботом Arduino. Ви також можете перевірити ці проекти, якщо вам цікаво.
Компоненти, необхідні для Arduino RC Boat
- 433 МГц передавач і приймач
- Arduino (будь-який Arduino, щоб зменшити розмір, який я використовую проміні)
- HT12E та HT12D
- Кнопки - 4Ні
- Резистори - 1 мегаом, 47 кОм
- L293d Драйвер двигуна
- 9 В акумулятор (я використовую 7,4-вольтовий акумулятор) - 2Ні
- 7805 регулятор - 2Ні
- Двигуни постійного струму - 2 Ні
- Моторний лист або пропелери (я використовую саморобні пропелери) - 2Ні
- .1uf конденсатор - 2Ні
- Звичайна друкована плата
Модулі радіочастотного передавача та приймача 433 МГц
Такі типи RF-модулів дуже популярні серед виробників. Через їх низьку вартість та простоту у підключенні. Ці модулі найкраще підходять для будь-яких форм комунікаційних проектів короткого радіусу дії. Ці модулі є RF модулями типу ASK (Amplitude Shift Keying), амплітудно-маніпуляційний зсув (ASK) - це форма амплітудної модуляції, яка представляє цифрові дані як варіації амплітуди несучої хвилі. У системі ASK двійковий символ 1 представлений передачею несучої хвилі з фіксованою амплітудою та фіксованою частотою протягом бітової тривалості T секунд. Якщо значення сигналу дорівнює 1, тоді несучий сигнал буде переданий; в іншому випадку буде передано значення сигналу 0. Це означає, що вони зазвичай не отримують енергію при передачі логічного "нуля". Це низьке споживання енергії робить їх дуже корисними в проектах, що працюють від акумуляторів.
РЧ-передавач 433 МГц
Цей тип модулів надзвичайно малий і постачається з 3-контактними VCC, землею та даними. Деякі інші модулі мають додатковий антенний штифт. Робоча напруга модуля передавача становить 3В-12В, і цей модуль не має жодних регульованих компонентів. Однією з головних переваг цього модуля є низьке споживання струму, він вимагає майже нульового струму для передачі біта нуля.
Блок-схема передавача човна Arduino RC
На наведеній вище блок-схемі є чотири кнопки (кнопки управління), ці кнопки призначені для управління напрямком човна. У нас їх чотири для руху вперед, назад, ліворуч та праворуч. За допомогою кнопок ми отримуємо логіку управління човном, але не можемо безпосередньо підключитися до кодера, тому ми використовували Arduino. Ви можете подумати, чому я використовував Arduino тут, це просто тому, що нам потрібно одночасно витягнути два паралельних входи даних кодера для руху вперед і назад, чого неможливо досягти лише за допомогою кнопок. Потім кодер кодує паралельні дані, що надходять, до послідовних виходів. Тоді ми можемо передавати ці послідовні дані за допомогою радіочастотного передавача.
Принципова схема пульта дистанційного керування Arduino RC (передавач)
У наведеній вище схемі ви можете бачити одну сторону всіх чотирьох кнопок, підключених до чотирьох цифрових штифтів Arduino (D6-D9), і всі чотири інші сторони, підключені до землі. Тобто, коли ми натискаємо кнопку, відповідні цифрові штифти отримують низьку логіку. Чотири паралельних входи кодера HT12E підключені до ще чотирьох цифрових виводів Arduino (D2-D5). Тож за допомогою Arduino ми можемо визначити введення кодера.
А говорити про кодер HT12E - це 12-бітний кодер і паралельний вхідно-послідовний кодер виводу. З 12 бітів 8 біти - це адресні біти, які можна використовувати для управління кількома приймачами. Висновки A0-A7 - це вводи адреси. У цьому проекті ми контролюємо лише один приймач, тому ми не хочемо змінювати його адресу, тому я підключив усі контактні адреси до землі. Якщо ви хочете керувати різними приймачами за допомогою одного передавача, ви можете використовувати тут перемикачі dip. AD8-AD11 - це входи керуючого біта. Ці входи будуть керувати виходами D0-D3 декодера HT12D. Нам потрібно підключити генератор для зв'язку, і частота генератора повинна бути 3 кГцдля роботи 5В. Тоді значення резистора складе 1,1 МОм для 5В. Потім я підключив вихід HT12E до модуля передавача. Ми вже згадували, модуль передавача Arduino і RF, обидва ці пристрої працюють на високовольтній напрузі 5 В, вб'ють його, тому, щоб уникнути цього, я додав 7805, регулятор напруги. Тепер ми можемо підключити (Vcc) 6-12вольт батареї будь-якого типу до входу.
Побудова схеми передавача RC BOAT
Я припаяв кожен компонент на загальній друкованій платі. Пам’ятайте, що ми працюємо над проектом ВЧ, тому існує багато шансів для різних типів перешкод, тому підключайте всі компоненти якомога тісніше. Краще використовувати жіночі штифтові заголовки для Arduino та модуль передавача. Крім того, спробуйте спаяти все на мідних прокладках, замість того, щоб використовувати зайві дроти. Нарешті, підключіть невеликий провід до модуля передавача, що допоможе збільшити загальний діапазон. Перш ніж підключати Arduino та модуль передавача, перевірте напругу на виході lm7805.
На зображенні вище показано вид зверху закінченої схеми передавача RC Boat, а знизу - схеми завершеної схеми RC Boat Transmitter.
Будівництво корпусу передавача човнів Arduino
Для пульта потрібне гідне тіло. Цей крок стосується ваших ідей, ви можете створити віддалене тіло зі своїми ідеями. Я пояснюю, як я це зробив. Для виготовлення віддаленого корпусу я вибираю листи МДФ 4 мм, ви також можете вибрати фанеру, пінопластовий лист або картон, тоді я вирізав два шматки довжиною 10 см і шириною 5 см. Потім я позначив місця для кнопок. Я розмістив кнопки напряму на лівій стороні та кнопки вперед, назад на правій. З іншого боку аркуша я підключив кнопки до основної передавальної схеми. Пам'ятайте, що звичайна кнопка має 4 штифти, що складають два штифти для кожної сторони. Приєднайте один штифт до Arduino, а інший штифт до землі. Якщо вас це плутає, перевірте це мультиметром або перевірте таблицю даних.
Після підключення всіх цих речей я помістив схему управління між двома плитами МДФ і затягнув довгим болтом (якщо потрібно, зверніться до зображень нижче). Ще раз створити гарне тіло - це все про ваші ідеї.
Модуль приймача 433 МГц
Цей приймач також дуже крихітний і постачається з 4 висновками VCC, заземленими, а два середніх висновка - це дані. Робоча напруга цього модуля становить 5 В. Як і модуль передавача, це також модуль низької потужності. Деякі модулі мають додатковий антенний штифт, але в моєму випадку цього немає.
Блок-схема приймача човна Arduino RC
Наведена блок-схема описує роботу схеми радіочастотного приймача. По-перше, ми можемо приймати передані сигнали за допомогою модуля радіочастотного приймача. Вихідні дані цього приймача - це послідовні дані. Але ми не можемо нічим керувати за допомогою цих послідовних даних, тому ми підключили вихід до декодера. Декодер декодує послідовні дані до наших вихідних паралельних даних. У цьому розділі нам не потрібні мікроконтролери, ми можемо безпосередньо підключити виходи до драйвера двигуна.
Принципова схема приймача катерів Arduino RC
HT12D є 12-бітний декодер, який представляє собою послідовне введення-паралельний вихід декодера. Вхідний штифт HT12D буде підключений до приймача, який має послідовний вихід. Серед 12-бітових 8-бітових (A0-A7) є адресними бітами, і HT12D декодує вхідні дані, лише якщо вони відповідають поточній адресі. D8-D11 - вихідні біти. Щоб поєднати цю схему з ланцюгом передавача, я підключив усі контактні адреси до землі. Дані з модуля мають послідовний тип, і декодер декодує ці послідовні дані до вихідних паралельних даних, і ми виходимо через D8-D11. Щоб відповідати частоті коливань, слід підключити резистор 33-56k до висновків генератора. Світлодіод на 17-му штифті вказує на дійсну передачу, він світиться лише після того, як приймач підключений до передавача. Вхідна напруга приймача також становить 6-12 вольт.
Для управління двигунами я використовував мікросхему L293D, я вибрав цю мікросхему, оскільки для зменшення розміру та ваги ця мікросхема найкраще підходить для управління двома двигунами в двох напрямках. L293D має 16 висновків, на діаграмі нижче показані розпіновки.
1, 9 штифти - це контактний штифт, ми підключаємо це до 5 в, щоб увімкнути двигуни 1А, 2А, 3А і 4А - це керуючі штифти. Двигун повернеться вправо, якщо штифт 1А опуститься низько, а 2А - високим, а двигун повернеться вліво, якщо 1А опуститься низько і 2А високий. Отже, ми підключили ці штирі до вихідного ps декодера. 1Y, 2Y, 3Y та 4Y - це штирі підключення двигуна. Vcc2 - це вивід напруги двигуна, якщо ви використовуєте двигун високої напруги, тоді ви підключаєте цей висновок до відповідного джерела напруги.
Побудова приймальної схеми Arduino RC Boat
Перш ніж будувати схему приймача, слід пам’ятати деякі важливі речі. Важливим є розмір і вага, оскільки після побудови схеми нам потрібно закріпити її на човні. Тож якщо вага збільшується, це вплине на плавучість і рух.
Так само, як і в ланцюзі передавача, припаяйте кожен компонент до невеликої загальної друкованої плати і спробуйте використовувати мінімум проводів. Я підключив штифт 8 драйвера двигуна до 5 В, оскільки використовую двигуни 5 В.
Створення RC-BOAT
Я спробував різні матеріали для побудови корпусу човна. І я отримав кращий результат із термокольцевим листом. Тому я вирішив побудувати тіло за допомогою термокола. Спочатку я взяв термоколес товщиною 3 см і розмістив зверху схему приймача, потім позначив форму човна термоколом і вирізав. Отже, це мій спосіб побудувати човен, ви можете будувати відповідно до своїх ідей.
Двигуни та гвинти для повітряного човна Arduino
Ще раз вага має значення. Отже, вибір правильного двигуна важливий, я вибираю нормальні двигуни постійного струму типу 520 вольт, тип n20, малий та невагомий. Щоб уникнути радіочастотних перешкод слід підключити 0,1 мкФ конденсатор паралельно входам двигуна.
Що стосується гвинтів, то я зробив гвинти, використовуючи пластикові листи. Ви можете придбати гвинти в магазині, а можна і власні, і ті, і інші будуть працювати чудово. Для побудови гвинтів спочатку я взяв невеликий пластиковий лист, вирізав з нього два маленькі шматочки і за допомогою тепла свічки згинаю їх. Нарешті, я поклав у його центр невеликий отвір для мотора і закріпив на моторі, що це.
Робота човна Arduino RC
Цей човен має два двигуни, що дозволяє називати його лівим і правим. Якщо двигун також рухається за годинниковою стрілкою (положення пропелера також залежить), пропеллер всмоктує повітря спереду і витягує назад. Це генерує опір вперед.
Рух вперед: якщо і лівий, і правий двигуни обертаються за годинниковою стрілкою, це буде рухатися вперед
Рух назад: якщо і лівий, і правий двигуни обертаються проти годинникової стрілки (тобто пропелер всмоктує повітря із задньої сторони і вихлоп на передню сторону), це буде робити рух
Рух ліворуч: якщо обертається лише правий двигун, тобто човен, отримуйте лише тягу з правої сторони, що призведе до переміщення човна в ліву сторону
Правий рух: Якщо обертається лише лівий мотор, тобто човен отримує лише опору з лівого боку, що змусить човен рухатися вправо.
Ми підключили вхід драйвера двигуна до чотирьох вихідних бітів декодера (D8-D11). ми можемо управляти цими 4 виходами, підключивши AD8-AD11 до землі, що є кнопками на пульті дистанційного керування. Наприклад, якщо ми підключимо AD8 до землі, яка активує D8. Отже, таким чином ми можемо керувати двома двигунами у двох напрямках, використовуючи ці 4 виходи. Але ми не можемо керувати двома двигунами лише однією кнопкою (це потрібно для руху вперед і назад), тому ми використовували Arduino. За допомогою Arduino ми можемо вибрати вхідні штифти даних як своє бажання.
Програмування Arduino RC Boat
Програмування цього човна дуже просте, оскільки нам потрібне лише деяке логічне перемикання. І ми можемо досягти всього за допомогою основних функцій Arduino. Повну програму цього проекту можна знайти внизу цієї сторінки. Пояснення вашої програми таке
Ми запускаємо програму, визначаючи цілі числа для чотирьох кнопок введення та шпильки входів декодера.
int f_button = 9; int b_button = 8; int l_button = 7; int r_button = 6; int m1 = 2; int m2 = 3; int m3 = 4; int m4 = 5;
У розділі налаштування я визначив режими контактів. Тобто кнопки підключені до цифрових виводів, тому ці висновки повинні визначатись як вхідні, і нам потрібно отримати вихід для входу декодера, тому ми повинні визначити ці висновки як вихідні.
pinMode (f_button, INPUT_PULLUP); pinMode (b_button, INPUT_PULLUP); pinMode (l_button, INPUT_PULLUP); pinMode (r_button, INPUT_PULLUP); pinMode (m1, ВИХІД); pinMode (м2, ВИХІД); pinMode (м3, ВИХІД); pinMode (m4, ВИХІД);
Далі у функції основного циклу ми прочитаємо стан кнопки, використовуючи функцію цифрового читання Arduino. Якщо статус штифта стає низьким, це означає, що на відповідний штифт натиснуто, тоді ми виконаємо умови наступним чином -
if (digitalRead (f_button) == LOW)
Це означає, що натиснута кнопка вперед
{ digitalWrite (m1, LOW); digitalWrite (м3, НИЗЬКИЙ); digitalWrite (м2, ВИСОКО); digitalWrite (m4, HIGH); }
Це призведе до виведення m1 і m2 датчика, що активує обидва двигуни з боку приймача. Так само для руху назад
{ digitalWrite (m1, HIGH); digitalWrite (м3, ВИСОКО); digitalWrite (м2, НИЗЬКИЙ); digitalWrite (m4, LOW); }
Для руху вліво
{ digitalWrite (m1, LOW); digitalWrite (м3, ВИСОКО); digitalWrite (м2, ВИСОКО); digitalWrite (m4, HIGH); }
Для правильного руху
{ digitalWrite (m1, HIGH); digitalWrite (м3, НИЗЬКИЙ); digitalWrite (м2, ВИСОКО); digitalWrite (m4, HIGH); }
Після складання коду завантажте його на свою плату Arduino.
Усунення несправностей: Помістіть човен на водну поверхню і перевірте, чи рухається він правильно, якщо не спробувати змінити полярність двигунів та гвинтів. Також спробуйте збалансувати вагу.
Повну роботу над проектом можна знайти у відео, на яке посилається внизу цієї сторінки. Якщо у вас виникли запитання, залиште їх у розділі коментарів.