- Необхідний матеріал
- Модуль Bluetooth HC-06
- Кругова діаграма
- Налаштування програми Roboremo для управління сервоприводом:
- Код та пояснення
- Працює управління сервомотором за допомогою Bluetooth:
Використання серводвигуна часто зустрічається в робототехніці для точного управління. Тут, у цьому підручнику ми збираємося показати вам, як бездротово використовувати сервомотор з Arduino UNO та пристроєм Android через Bluetooth. Ми вже контролювали сервопривід за допомогою Arduino, цього разу ми контролюємо сервомотор за допомогою Arduino та Bluetooth.
Необхідний матеріал
- Arduino UNO
- Модуль Bluetooth HC-05 або HC-06
- Серводвигун
- Додаток Roboremo від Playstore
- Макет
- З'єднувальний провід
Модуль Bluetooth HC-06
Bluetooth може працювати в наступних двох режимах:
- Командний режим
- Режим роботи
У командному режимі ми зможемо налаштувати такі властивості Bluetooth, як назва сигналу Bluetooth, його пароль, операційна швидкість передачі даних тощо. Режим роботи - це той, в якому ми зможемо надсилати та отримувати дані між мікроконтролером PIC та модуль Bluetooth. Отже, у цьому підручнику ми будемо гратись лише з робочим режимом. Командний режим залишатиметься за замовчуванням. Назва пристрою буде HC-05 (я використовую HC-06), а пароль буде 0000 або 1234, а головне швидкість передачі даних за замовчуванням для всіх модулів Bluetooth буде 9600.
Модуль працює від джерела живлення 5 В, а сигнальні штирі працюють від 3,3 В, отже, регулятор 3,3 В присутній у самому модулі. Тому нам не потрібно про це турбуватися. З шести штифтів лише чотири будуть використовуватися в робочому режимі. Таблиця штифтових з'єднань показана нижче
С.Ні | Прикріпити на HC-05 / HC-06 | Закріпіть ім'я на MCU | Номер PIN-коду в PIC |
1 | Vcc | Vdd | 31 - й контактний |
2 | Vcc | Gnd | 32- й штифт |
3 | Tx | RC6 / Tx / CK | 25- й штифт |
4 | Rx | RC7 / Rx / DT | 26- й штифт |
5 | Держава | NC | NC |
6 | UK (Увімкнути) | NC | NC |
Перегляньте наші інші проекти, щоб дізнатись більше про модуль Bluetooth HC-05 з іншими мікроконтролерами:
- Іграшковий автомобіль, керований Bluetooth, за допомогою Arduino
- Система домашньої автоматизації, керована Bluetooth, за допомогою 8051
- Голосове управління підсвічуванням за допомогою Raspberry Pi
- FM-радіо, кероване смарт-телефоном за допомогою Arduino та обробки
- Взаємозв’язок модуля Bluetooth HC-06 з мікроконтролером PIC
Тут також перевірте всі проекти, пов’язані з Bluetooth.
Кругова діаграма
Схема цього проекту Arduino Bluetooth Servo Motor Control наведена нижче:
Налаштування програми Roboremo для управління сервоприводом:
Крок 1: - Завантажте додаток Roboremo з магазину Android Play і встановіть його на свій смартфон. Після його встановлення ви побачите вікно програми, як показано на малюнку1, і натиснувши кнопку «Меню», ви побачите вікно, показане на малюнку 2 нижче:
Крок 2: - Потім натисніть кнопку підключення, і ви побачите вікно, зображене на малюнку 3 нижче, тоді вам потрібно вибрати « Bluetooth RFCOMM», і тоді ви зможете підключити свій модуль Bluetooth HC-06 до вашого додатка для Android «Roboremo».
Крок 3: - Після підключення до модуля Bluetooth HC-06 поверніться до вікна figure2, а потім натисніть « редагувати інтерфейс » для створення користувальницького інтерфейсу відповідно до ваших потреб.
Після натискання на «редагувати інтерфейс користувача» ви знову побачите вікно, показане на малюнку 1, потім клацніть де завгодно на екрані, ви побачите вікно програми, як малюнок 4, і виберіть « Кнопка », щоб отримати структуру кнопки.
Крок 4: - Після вибору кнопки ви отримаєте структуру кнопок на екрані для редагування. Ви можете змінити розмір і перемістити структуру в будь-яке місце на екрані. Тепер, для встановлення значення, яке буде надіслано при натисканні через Bluetooth, ви встановили "дію натискання" (як показано на малюнку 6) і введіть значення, яке потрібно надіслати за допомогою цієї конкретної кнопки. Подібно, ми надсилаємо `` 1 '' для обертання сервоприводу, натискаючи кнопку `` Пуск '' у додатку Roboremo для Android.
Ви можете перевірити всі значення, надіслані натисканням різних кнопок, у таблиці, поданій пізніше.
Крок 5: - Нарешті, у нас є Інтерфейс користувача для управління сервомотором за допомогою смартфона.
Код та пояснення
Повний код сервомотора Arduino Control через Bluetooth наведено в кінці.
Arduino має бібліотеку для серводвигунів, і вона обробляє всі пов'язані з ШІМ функції для обертання сервоприводу, вам просто потрібно ввести кут, на який ви хочете повернутись, і є функція servo1.write (кут); який поверне сервопривід на потрібний кут.
Отже, ми починаємо з визначення бібліотеки для сервомотора, а програмне забезпечення Серійна бібліотека використовується для визначення штифтів Rx та Tx.
#включати
У наведеному нижче коді ми ініціалізуємо висновки Arduino для Rx та Tx, визначаючи змінні для сервоприводу та інших речей .
Сервопривід myServo; int TxD = 11; int RxD = 10; int сервопозиція; int servopos; int new1; SoftwareSerial bluetooth (TxD, RxD);
Тепер налаштуйте всі змінні та компоненти на початковий етап. Тут ми прикріпили сервопривід на 9- му штифті Arduino і зробили початкове положення сервоприводу до 0 градусів. Швидкість передачі даних для послідовного зв'язку та зв'язку Bluetooth також встановлена на 9600.
void setup () { int pos = 0; myServo.attach (9); myServo.write (0); Serial.begin (9600); // почати послідовний зв’язок зі швидкістю 9600 біт / с bluetooth.begin (9600); }
У функції void loop , Arduino буде весь час перевіряти вхідні значення та обертати сервопривід відповідно до отриманого значення від смарт-телефону. Всі значення будуть отримані за допомогою послідовного зв'язку.
Якщо значення дорівнює 0, сервопривід повернеться на 0 градусів. Подібним чином, якщо ми надішлемо 45, 90, 135 і 180 із програми Bluetooth, сервопривід повернеться відповідно на кут 45, 90, 135 та 180 градусів.
void loop () { if (bluetooth.available ()) { String value = bluetooth.readString (); сервопозиція = value.toInt (); if (value.toInt () == 0) { Serial.println (сервопозиція); myServo.write (0); } if (value.toInt () == 45) { Serial.println (сервопозиція); myServo.write (45); } if (value.toInt () == 90) { Serial.println (сервопозиція); myServo.write (90); } if (value.toInt () == 135) { Serial.println (сервопозиція); myServo.write (135); } if (value.toInt () == 180) { Serial.println (сервопозиція); myServo.write (180); }
Якщо ми надішлемо значення «1», натиснувши кнопку « Пуск », сервопривід буде обертатися безперервно, доки не буде натиснута кнопка зупинки . Тут ми направляємо «2» при натисканні стоп кнопки, яка буде читатися в Arduino і зламається той час як петлі і серво буде зупинений.
while (value.toInt () == 1) {if (bluetooth.available ()) {value = bluetooth.readString (); Serial.println (значення); if (value.toInt () == 2) {Serial.println ("РРР"); перерву; }} servopos ++; затримка (30); Serial.println (servopos); myServo.write (servopos); if (servopos == 180) {servopos = 0; break;}}}}
Працює управління сервомотором за допомогою Bluetooth:
У цьому проекті ми управляємо сервомотором за допомогою програми для Android «Roboremo». В інтерфейсі цієї програми ми створили 5 кнопок для управління сервомотором, як пояснювалося раніше. Робота кожної кнопки наведена в таблиці нижче:
S.No. |
Назва кнопки |
Вартість відправлення |
Опис |
1. |
Почніть |
1 |
Ця кнопка використовується для початку обертання сервоприводу від 0⁰ до 180⁰. |
2. |
Стій |
2 |
Ця кнопка використовується для зупинки сервоприводу в будь-якій точці. |
3. |
0⁰ |
0 |
Ця кнопка використовується для повороту сервоприводу на 0⁰. |
4. |
90⁰ |
90 |
Ця кнопка використовується для обертання сервоприводу на 90⁰. |
5. |
180⁰ |
180 |
Ця кнопка використовується для обертання сервоприводу на 180⁰. |
Отже, натисканням цих кнопок на вашому додатку для Android Roboremo дані передаватимуться через Bluetooth смартфона на модуль Bluetooth HC-06. З цього модуля HC-06 дані отримуються Arduino, і Arduino обертає сервопривід під кутом, визначеним у коді для конкретної кнопки. Ми також кодували для кутів 45 і 135, але через обмеження програми Roboremo ви можете створити лише 5 кнопок, тому ми пропустили дві кнопки.
Ось так ви можете надсилати дані зі смартфона на Arduino за допомогою Bluetooth для бездротового управління сервоприводом. Це може бути використано в багатьох додатках, таких як іграшкові автомобілі, роботи тощо.