- Обязательные компоненты:
- Создание интерфейса для робота с помощью приложения RemoteXY:
- Принципиальная схема и пояснения:
- Пояснение к коду:
- Как запустить:
В этой статье мы собираемся управлять автомобилем-роботом с помощью датчика G на мобильном телефоне, и вы сможете перемещать робота, просто наклоняя телефон. Мы также будем использовать приложение Arduino и RemoteXY для этого робота, управляемого G- сенсором. Приложение RemoteXY используется для создания интерфейса в смартфоне для управления роботом. Мы добавим джойстик в интерфейс, чтобы роботом можно было управлять с помощью джойстика, а также наклоняя телефон.
G-сенсор или датчик силы тяжести - это в основном акселерометр в смартфоне, который используется для управления ориентацией экрана телефона. Акселерометр определяет направления силы тяжести по осям X, Y и Z и поворачивает экран в соответствии с выравниванием телефона. В наши дни более чувствительный и точный датчик гироскопа используется в мобильных телефонах для определения ориентации экрана. В нашем проекте автомобиль-робот будет двигаться в соответствии с направлением, в котором наклоняется телефон, например, когда мы наклоняем телефон вперед, машина будет двигаться вперед, а мы наклоним ее вниз, а затем машина будет двигаться назад. Это то же самое, что когда мы играем в автомобильные игры на мобильном устройстве, они также используют датчик G для соответствующего перемещения автомобиля. Посмотрите видео в конце, а также ознакомьтесь с другими нашими проектами робототехники здесь.
Обязательные компоненты:
- Двухколесное шасси автомобиля-робота
- Arduino UNO
- Контроллер двигателя L298N
- Модуль Bluetooth HC-06 (HC-05 тоже подойдет)
- Источник питания или элементы
- Соединительные провода
Создание интерфейса для робота с помощью приложения RemoteXY:
Чтобы создать интерфейс для управления автомобилем-роботом с помощью приложения RemoteXY, вам необходимо перейти по следующей ссылке
remotexy.com/en/editor/ Веб-страница будет выглядеть так
Затем с левой стороны экрана возьмите кнопку переключения и джойстик и поместите их в мобильный интерфейс. Кнопка включит свет на контакте 13, который внутренне подключен к Arduino, и джойстик будет перемещать машину-робот. Веб-страница после установки переключателя и джойстика будет выглядеть следующим образом.
Затем нам нужно будет разместить кнопку включения / выключения G-сенсора вместе с джойстиком, чтобы мы могли перемещать автомобиль-робот, наклоняя телефон влево, вправо, вверх и вниз. Используя эту кнопку, мы можем включать и отключать датчик G, когда датчик G отключен. Автомобилем можно управлять, перемещая джойстик. Итак, чтобы разместить кнопку включения / выключения датчика G, нажмите на джойстик, который вы разместили в интерфейсе, и с левой стороны будет раздел свойств, в конце будет опция для размещения кнопки датчика G рядом с джойстиком, так что поместите кнопку G-сенсора где угодно. Веб-страница после этого будет выглядеть так.
После этого нажмите кнопку «Получить исходный код» и сохраните его на свой компьютер. Загрузите библиотеку отсюда и сохраните ее в папке библиотеки Arduino. Скомпилируйте загруженный код, чтобы убедиться в отсутствии ошибок. Это не код, который будет запускать робота, но он поможет в использовании приложения с Arduino. Загрузите приложение отсюда или перейдите в Play Store и загрузите оттуда приложение RemoteXY для своего смартфона Android.
Принципиальная схема и пояснения:
Прежде всего, мы подключим контроллер мотора L298N к Arduino. Подключите контакты ENA и ENB контроллера мотора к контактам 12 и 11 Arduino соответственно. Эти два контакта предназначены для ШИМ-управления двигателем. Используя эти штифты, мы можем увеличивать или уменьшать скорость автомобиля. Затем подключите IN1, IN2, IN3 и IN4 к контактам 10, 9, 8 и 7 Arduino соответственно. Эти штифты будут вращать двигатели в обоих направлениях (по и против часовой стрелки).
Для питания двигателя подключите положительный и отрицательный полюсы аккумулятора к 12 В и заземлению контроллера мотора. Затем подключите 5 В и заземление контроллера мотора к плате Arduino Vin и заземлению.
Затем мы подключим модуль Bluetooth HC-06 к ардуино. Если у вас есть HC-05, то тоже подойдет. Подключите VCC и заземление модуля Bluetooth к 5V и заземлению Arduino. Затем подключите контакт TX модуля Bluetooth к контакту 2 Arduino, а контакт RX - к контакту 3 Arduino. Также проверьте управляемую Bluetooth игрушечную машинку с использованием Arduino, чтобы узнать больше об использовании Bluetooth с Arduino.
Пояснение к коду:
Полный код Arduino для этой мобильной управляемой машины-робота приведен ниже в разделе «Код», здесь мы поймем, как работает этот код.
Прежде всего, мы включили библиотеки для Software Serial и RemoteXY. Библиотека RemoteXY поможет нам в настройке приложения с Arduino, через которое мы будем управлять автомобилем-роботом. После этого мы определили контакты для модуля Bluetooth, TX от модуля Bluetooth подключен к контакту 2 Arduino, который является контактом RX Arduino, а RX из модуля Bluetooth подключен к контакту 3 Arduino, который является выводом TX Arduino и устанавливает скорость передачи модуля Bluetooth на 9600.
#define REMOTEXY_MODE__SOFTWARESERIAL #include
Следующий код увеличивает или уменьшает скорость двигателя. Когда джойстик будет в центре, скорость будет равна нулю, а когда он будет в прямом направлении, скорость увеличится с нуля до 100. Скорость будет уменьшаться от 0 до -100, когда автомобиль будет двигаться в обратное направление. Автомобиль также можно перемещать с определенной скоростью, это можно сделать, подав сигнал ШИМ. Сигнал ШИМ будет подан на двигатели в соответствии с вращением джойстика.
если (motor_speed> 100) motor_speed = 100; если (motor_speed <-100) motor_speed = -100; если (motor_speed> 0) {digitalWrite (указатель, ВЫСОКИЙ); digitalWrite (указатель, LOW); analogWrite (указатель, motor_speed * 2,55); } else if (motor_speed <0) {digitalWrite (указатель, LOW); digitalWrite (указатель, ВЫСОКИЙ); analogWrite (указатель, (-motor_speed) * 2,55); } else {digitalWrite (указатель, LOW); digitalWrite (указатель, LOW); analogWrite (указатель, 0); }
В следующем коде мы определили функцию, которая будет вызываться всякий раз, когда мы перемещаем джойстик в приложении. Когда мы включим переключатель в приложении, логическая 1 будет передана на вывод 13 Arduino, который включает вывод светодиода. При движении машины-робота вперед и назад будет вызвана функция Speed .
недействительный цикл () {RemoteXY_Handler (); digitalWrite (ledpin, (RemoteXY.switch_1 == 0)? LOW: HIGH); Скорость (first_motor, RemoteXY.joystick_1_y - RemoteXY.joystick_1_x); Скорость (второй_мотор, RemoteXY.joystick_1_y + RemoteXY.joystick_1_x); }
Как запустить:
Добавьте библиотеку RemoteXY в библиотеки Arduino и загрузите код в Arduino IDE. Затем загрузите приложение на свой мобильный телефон и включите Bluetooth. Интерфейс приложения будет выглядеть так
Затем зайдите в Bluetooth и включите там Bluetooth. После включения он покажет вам устройства Bluetooth. Выберите там свой модуль Bluetooth HC-06, он перенесет вас в интерфейс, откуда вы сможете управлять автомобилем-роботом.
Вот как мы можем использовать датчик гравитации внутри нашего мобильного телефона для перемещения робота. Вы можете продолжить эксперименты и найти более интересное использование датчика G для управления внешними объектами, подключив между ними микроконтроллер (например, Arduino).