Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Робот для предотвращения препятствий, контролируемый Bluetooth

Компоненты и расходные материалы

Arduino Nano R3
× 1
Драйверы двигателя SparkFun Dual H-Bridge L298
× 1
Ультразвуковой датчик - HC-SR04 (общий)
× 1
Модуль Bluetooth HC-05
× 1
Общий анод, рассеянный RGB
× 1
Преобразователь логического уровня SparkFun - двунаправленный
× 1
Резистор 330 Ом
× 1
Макет (общий)
× 1
Блок питания макетной платы SparkFun 5 В / 3,3 В
× 1
Двигатель постоянного тока, 12 В
× 2
Провода перемычки "папа / мама"
× 1

Приложения и онлайн-сервисы

IDE Arduino
Arduino BlueControl
Доступно в Playstore.

Об этом проекте

В проекте используется мобильный телефон для связи с роботом по bluetooth. Я всегда хотел построить робота и управлять им с помощью мобильного телефона. После более чем 12-летнего перерыва я взялся за создание робота и управление им. Это также мой первый проект в Arduino Project Hub. Электроника и робототехника - одно из моих любимых увлечений, поэтому я взял на себя задачу создать робота во время изоляции из-за Covid19.

Робот улавливает сигналы Bluetooth, передаваемые с мобильного телефона. Он использует модуль Bluetooth HC-05 для распознавания командных сигналов с мобильного телефона и управления роботом. Я использовал приложение ArduinoBlueControl для управления роботом.

Сердце робота - это Arduino Nano. Он принимает сигналы от модуля HC-05 по последовательной связи и управляет двигателями через модуль драйвера двигателя L298N для движения в прямом, обратном, левом и правом направлениях.

Следует соблюдать осторожность при соединении контактов TX и RX модуля HC-05 с Arduino Nano. Для этого используется преобразователь логического уровня.

Робот использует модуль ультразвукового датчика HC SR-04 для обнаружения препятствий на своем пути. Обнаружив какое-либо препятствие во время движения вперед, робот останавливается. Светодиод RGB показывает состояние робота.

Робот собран на двухколесной базе, состоящей из двух мотор-редукторов. Схема собрана на макетной плате с блоком питания (3,3 В и 5 В). Arduino Nano не может управлять двигателями напрямую из-за гораздо более высоких требований к току двигателей. Поэтому модуль драйвера двигателя L298N используется для управления двигателями. Сигналы PWM от Arduino Nano используются для управления скоростью двигателей через выводы ENA и ENB модуля драйвера двигателя L298N.

Вот короткое видео о работе робота:

Надеюсь, вам понравился мой робот для предотвращения препятствий, управляемый Bluetooth. Этот робот может быть модифицирован и расширен для использования в домашней автоматизации, транспортных средствах для предотвращения препятствий в цехах и т. Д. И во многих других областях.

Код

  • Код Robot_Arduino, управляемый Bluetooth.
Код Robot_Arduino, управляемый Bluetooth. C / C ++
 / * Робот для предотвращения препятствий, управляемый Bluetooth. Подготовил:Алок Талукдар Дата:09.05.2020 * / # include  // Для использования любого вывода на Arduino для последовательной связи. // Определение цифровых выводов для двигателя L298 модуль управления. # define IN1 5 // для правого двигателя # define IN2 4 // для правого двигателя # define IN3 3 // для левого двигателя #define IN4 2 // для левого двигателя #define ENA 9 // Разрешить A для управления ШИМ правого двигателя # определить ENB 10 // Включить B для управления ШИМ левого двигателя // Определить цифровые выводы для управления светодиодом RGB # определить красный светодиод 8 # определить зеленый светодиод A0 # определить синий светодиод 11 // Настроить модуль ультразвукового датчика HC-SR04const int trigPin =6; // Вывод TRIG подключен к выводу D6 Arduino Nanoconst int echoPin =7; // Вывод ECHO подключен к выводу D7 Arduino Nanoint i, j, k =0; длительность плавания, расстояние; // переменные для измерения расстояния // Настройка модуля Bluetooth HC05 SoftwareSerial mySerial (12,13); // (12 -> RX, 13 -> TX) Строковые данные; // переменные для управления Bluetooth int btVal; void setup () {// поместите сюда свой установочный код, чтобы запустить его один раз:pinMode (trigPin, OUTPUT); // Настроить вывод D6 для передачи ультразвуковых импульсов pinMode (echoPin, INPUT); // Настраиваем вывод D7 на прием ультразвуковых импульсов mySerial.begin (9600); // Настроить программный последовательный порт на скорости передачи 9600 pinMode (IN1, OUTPUT); // Настройте IN1 - IN4 как ВЫХОД для управления двигателями pinMode (IN2, OUTPUT); pinMode (IN3, ВЫХОД); pinMode (IN4, ВЫХОД); pinMode (ENA, ВЫХОД); pinMode (ENB, ВЫХОД); pinMode (красный светодиод, ВЫХОД); pinMode (синий светодиод, ВЫХОД); pinMode (зеленый светодиод, ВЫХОД); digitalWrite (IN1, LOW); // Настраиваем статус IN1 - IN4 как LOW digitalWrite (IN2, LOW); digitalWrite (IN3, LOW); digitalWrite (IN4, LOW); analogWrite (красный светодиод, 255); // Выключаем светодиоды. Светодиод RGB является обычным анодным типом. digitalWrite (синий светодиод, ВЫСОКИЙ); digitalWrite (greenLED, HIGH);} void loop () {// поместите сюда ваш основной код для повторного запуска:while (mySerial.available ()) {data =mySerial.readStringUntil ('\ n'); } btVal =(data.toInt ()); переключатель (btVal) {случай 1:вперед (); digitalWrite (зеленый светодиод, НИЗКИЙ); analogWrite (красный светодиод, 255); digitalWrite (синий светодиод, ВЫСОКИЙ); dist (); ломать; случай 2:обратный (); digitalWrite (зеленый светодиод, ВЫСОКИЙ); analogWrite (красный светодиод, 255); digitalWrite (синий светодиод, НИЗКИЙ); ломать; case 3:left (); ломать; case 4:right (); ломать; случай 5:stoprobot (); digitalWrite (зеленый светодиод, ВЫСОКИЙ); analogWrite (красный светодиод, 0); digitalWrite (синий светодиод, ВЫСОКИЙ); ломать; по умолчанию:digitalWrite (greenLED, HIGH); analogWrite (красный светодиод, 255); digitalWrite (синий светодиод, ВЫСОКИЙ); ломать; } if (mySerial.available () <0) {//Serial.println( "Нет данных Bluetooth"); }} // объявления функции управления двигателем void forward () {for (i =0; i <=100; i ++) {analogWrite (ENA, i); analogWrite (ENB, i); digitalWrite (IN1, HIGH); digitalWrite (IN2, LOW); digitalWrite (IN3, LOW); digitalWrite (IN4, HIGH); }} void reverse () {для (j =0; j <=100; j ++) {analogWrite (ENA, j); analogWrite (ENB, j); digitalWrite (IN1, LOW); digitalWrite (IN2, HIGH); digitalWrite (IN3, HIGH); digitalWrite (IN4, LOW); }} void left () {analogWrite (ENA, 127); analogWrite (ENB, 0); digitalWrite (IN1, HIGH); digitalWrite (IN2, LOW); digitalWrite (IN3, HIGH); digitalWrite (IN4, HIGH); } void right () {analogWrite (ENA, 0); analogWrite (ENB, 127); digitalWrite (IN1, HIGH); digitalWrite (IN2, HIGH); digitalWrite (IN3, LOW); digitalWrite (IN4, HIGH); } void stoprobot () {analogWrite (ENA, 0); analogWrite (ENB, 0); digitalWrite (IN1, LOW); digitalWrite (IN2, LOW); digitalWrite (IN3, LOW); digitalWrite (IN4, LOW); } void dist () {digitalWrite (trigPin, LOW); // для отправки импульса через вывод TRIG HC-SR04 delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); duration =pulseIn (echoPin, HIGH); // считываем длительность импульса distance =(duration * 0.0343) / 2; // измеряем расстояние в см. Скорость звука составляет 340 м / с или 0,0343 см / мкс if (distance <20) // если расстояние <20 см, STOP robot {stoprobot (); digitalWrite (зеленый светодиод, ВЫСОКИЙ); analogWrite (красный светодиод, 0); digitalWrite (синий светодиод, ВЫСОКИЙ); } задержка (1000); } 

Схема

Принципиальная схема робота.

Производственный процесс

  1. Мобильный робот с функцией обхода препятствий на основе обзора
  2. Робот Raspberry Pi, управляемый через Bluetooth
  3. Создайте своего робота для видеостриминга, управляемого через Интернет, с помощью Arduino и Raspberry Pi
  4. Робот, управляемый жестами, использующий Raspberry Pi
  5. РОБОТ МАЛИНЫ PI WIFI, УПРАВЛЯЕМЫЙ С СМАРТ-ТЕЛЕФОНА ANDROID
  6. Windows 10 IoT Core:робот, управляемый речью
  7. Робот, управляемый Wi-Fi и использующий Raspberry Pi
  8. ROObockey:робот для уличного хоккея с дистанционным управлением и прицеливанием
  9. Избегание препятствий с помощью искусственного интеллекта
  10. Робот, управляемый речью