- Необходим материал
- Bluetooth-модул HC-06
- Електрическа схема
- Конфигуриране на приложението Roboremo за управление на серво:
- Код и обяснение
- Работа на управление на серво мотора чрез Bluetooth:
Използването на серво мотор е често срещано в Robotics за прецизно управление. Тук, в този урок ще ви покажем как да използвате сервомотор безжично с Arduino UNO и устройство с Android чрез Bluetooth връзка. Вече контролирахме серво с Arduino, този път контролираме сервомотора с помощта на Arduino и Bluetooth.
Необходим материал
- Arduino UNO
- HC-05 или HC-06 Bluetooth модул
- Серво мотор
- Приложение Roboremo от Playstore
- Макет
- Свързващ проводник
Bluetooth-модул HC-06
Bluetooth може да работи в следните два режима:
- Команден режим
- Режим на работа
В командния режим ще можем да конфигурираме Bluetooth свойствата като името на Bluetooth сигнала, неговата парола, оперативната скорост на предаване и т.н. Работният режим е този, в който ще можем да изпращаме и получаваме данни между PIC Microcontroller и Bluetooth модула. Следователно в този урок ще се играем само с режима на работа. Командният режим ще бъде оставен на настройките по подразбиране. Името на устройството ще бъде HC-05 (използвам HC-06), а паролата ще бъде 0000 или 1234 и най-важното скоростта на предаване по подразбиране за всички Bluetooth модули ще бъде 9600.
Модулът работи на 5V захранване, а сигналните щифтове работят на 3.3V, поради което в самия модул има регулатор 3.3V Следователно не е нужно да се тревожим за това. От шестте щифта само четири ще бъдат използвани в работен режим. Таблицата на връзките с щифтове е показана по-долу
S.No | Закачете на HC-05 / HC-06 | Име на ПИН на MCU | ПИН номер в 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 | EN (Активиране) | 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 Store и го инсталирайте на вашия смартфон. След като го инсталирате, ще видите прозореца на приложението, както е показано на фигура1 и като кликнете върху бутона „Меню“ , ще видите прозореца, показан на фигура2 по-долу:
Стъпка 2: - След това кликнете върху бутона за свързване и ще видите прозореца, показан на фигура 3 по-долу, след което трябва да изберете „ Bluetooth RFCOMM“ и след това ще можете да свържете вашия Bluetooth-модул HC-06 с вашето приложение за Android „Roboremo“.
Стъпка 3: - След свързването на HC-06 Bluetooth модул се върна към figure2 прозорец и след това кликнете върху " редактиране на потребителския интерфейс " за създаване на потребителски интерфейс според вашите нужди.
Когато кликнете върху „редактиране на потребителския интерфейс“ , отново ще видите прозореца, показан на фигура1, след това щракнете навсякъде на екрана, ще видите прозореца на приложението, като фигура4 и изберете „ Бутон “, за да получите структурата на бутоните.
Стъпка 4: - След като изберете бутона, ще получите структура на бутона на екрана за редактиране. Можете да преоразмерите и преместите структурата навсякъде на екрана. Сега, за да зададете стойността, която да се изпраща при кликване чрез Bluetooth, вие сте „задали действие при натискане“ (както е показано на фигура 6) и въведете стойността, която искате да изпратите от този конкретен бутон. По този начин изпращаме „1“ за завъртане на серво, като натискаме бутона „Старт“ в приложението Roboremo за Android.
Можете да проверите всички стойности, изпратени при кликване върху различни бутони, в таблицата, дадена по-късно.
Стъпка 5: - Накрая имаме потребителски интерфейс за управление на сервомотора с помощта на смартфон.
Код и обяснение
Пълният код за сервомотор Arduino Control чрез Bluetooth е даден в края.
Arduino има библиотека за серво мотори и тя обработва всички свързани с ШИМ неща, за да завърти серво, просто трябва да въведете ъгъла, към който искате да се завъртите и има функция servo1.write (ъгъл); което ще завърти серво на желания ъгъл.
И така, тук започваме с дефиниране на библиотеката за серво мотор, а софтуерът Серийната библиотека се използва за дефиниране на Rx и Tx щифт.
#include
В кода по-долу инициализираме щифтовете Arduino за Rx и Tx, дефинирайки променливи за серво и други неща .
Серво myServo; int TxD = 11; int RxD = 10; int servoposition; 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); // стартиране на серийна комуникация при 9600bps bluetooth.begin (9600); }
При функция за празен цикъл , Arduino ще проверява през цялото време входящите стойности и ще завърти серво в съответствие с получената стойност от смарт телефон. Всички стойности ще бъдат получени чрез серийна комуникация.
Ако стойността е 0, сервомеханизмът ще се завърти до 0 градуса. По същия начин, ако изпратим 45, 90, 135 и 180 от приложението Bluetooth, сервомеханизмът ще се завърти съответно на ъгъл 45, 90, 135 и 180 градуса.
void loop () { if (bluetooth.available ()) { String value = bluetooth.readString (); servoposition = 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); ако (servopos == 180) {servopos = 0; почивка;}}}}
Работа на управление на серво мотора чрез 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 за безжично управление на серво. Това може да се използва в много приложения като колички за играчки, роботи и др.