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

Роботизированная машина, управляемая веб-страницей Node.js (беспроводная связь)

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

Arduino UNO
× 1
Драйверы двигателя SparkFun Dual H-Bridge L298
× 1
Модуль Bluetooth HC-05
× 1
Перемычки (общие)
× 1
Батарея, 9 В
× 2
Двигатель постоянного тока, 12 В
× 2

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

Идея проекта

Node.js - один из лучших вариантов для приложений реального времени. Ранее я работал над некоторыми приложениями реального времени, использующими сокеты, поэтому, придерживаясь той же концепции, я решил создать несколько проектов Интернета вещей с сервером Node.js для самообучения.

Этот мой ровер связывается с моим сервером Node.js через Bluetooth, а во внешнем интерфейсе я отправляю команды на сервер с помощью сокетов.

Цель проекта

Для изучения и реализации беспроводной связи между сервером узла и оборудованием (которым в данном случае является наш ровер), а также для удаленного управления ровером с помощью мобильной веб-страницы, обслуживаемой сервером узла с помощью сокетов.

Предпосылка

Вам необходимо иметь базовые знания об узлах, программировании сокетов и работе драйвера двигателя L298.

Требования

  • 1 Arduino Uno
  • 1 драйвер двигателя L298
  • Модуль Bluetooth HC-05
  • Проволочные перемычки
  • 2 батареи - 9 вольт каждая
  • 2 мотор-редуктора (6-9 вольт)
  • 2 совместимых колеса
  • Шасси
  • Компьютер с установленным Node.js для нашего сервера.

Шаг 1. Сборка вездехода

Сборка Rover не так уж и сложна, вы можете приобрести «комплект шасси с 2 колесами», который легко доступен в Интернете и поставляется со всеми сборочными единицами.

Наши Arduino Uno и драйвер двигателя L298 встроены в наш Rover, оба из которых питаются от двух 9-вольтных батарей отдельно.

Arduino Uno, в свою очередь, будет питать модуль Bluetooth HC-05, который будет связываться с нашим сервером.

Принципиальная схема

Как показано выше на принципиальной схеме, драйвер двигателя L298 питается от батареи 9 В, два выхода управления двигателем подключены к двигателю A и двигателю B, и, поскольку двигатель не имеет полярности, вы можете подключить к нему любую клемму, но убедитесь, что оба двигателя вращаются в одном направлении. Не снимайте перемычку регулятора 5 В.

Примечание : Если вы запитаете L298 напряжением более 12 В, встроенный регулятор напряжения 5 В будет поврежден.

Arduino Uno также питается от батареи 9 В, положительная клемма которой подключена к выводу Vin Arduino, а отрицательная клемма - к общей земле. Arduino, в свою очередь, будет питать модуль Bluetooth, поэтому подключите вывод Vcc HC-05 к 5V Arduino, а GND - к земле.

Для последовательной связи между HC-05 и Arduino подключите вывод TXD HC-05 к выводу RX Arduino, а вывод RXD HC-05 к выводу TX Arduino.

Теперь для управления модулем L298 вы можете соединить выводы EN1 и EN2 с любым выводом PWM Arduino. Затем подключите входной контакт -1, 2, 3, 4 L298 к любому цифровому контакту Arduino.

Передача данных

Как показано выше, это схема, показывающая передачу сигналов.

1. Пользователь получит доступ к веб-странице, обслуживаемой сервером узла. URL-адрес будет IP-адресом с используемым номером порта, например, «192.XXX.XXX.129:8080».

2. Когда пользователь нажимает кнопку на веб-странице, сервер запускает требуемую функцию. Это общение происходит благодаря сокетам.

3. Узловой сервер, подключенный к модулю HC-05 через Bluetooth, отправит необходимые данные в модуль HC-05.

4. HC-05 будет передавать данные в Arduino UNO через последовательную связь.

5. Arduino UNO, в свою очередь, будет управлять модулем L298.

Шаг 2. Настройка сервера

Для нашего сервера нам нужно установить Node.js. Установите любую стабильную версию узла, моя - версия 11.15. Нам необходимо установить следующие пакеты -

  • узел-гипс
  • экспресс
  • узел-bluetooth
  • socket.io
  • ejs

Примечание. Установка "node-gyp" может быть сложной задачей, поскольку он не поддерживает некоторые последние версии Node, поэтому лучше установить версию 11.15 Node.

Теперь нам нужно прослушивать события с веб-страницы, как только событие запускается при взаимодействии с веб-страницей, страница испускает требуемую функцию, которую необходимо выполнить на нашем сервере Node. Сервер, в свою очередь, прослушает это сообщение и выполнит нужную функцию (в нашем случае отправит данные в Bluetooth).

Итак, создайте сервер и веб-страницу, используя такие пакеты, как «express» и «EJS». Создайте веб-страницу с элементами управления, которые вам нужны, и настройте для нее соединения сокетов, создав сервер сокетов, вы можете обратиться к этой документации.

Для настройки Bluetooth обратитесь к этой документации. При каждом нажатии любой кнопки управления в модуль HC-05 отправляется сообщение.

Вот моя простая веб-страница -

Шаг 3. Код Arduino

Поскольку Bluetooth будет взаимодействовать с Arduino-Uno с помощью последовательной связи, мы отправим некоторую «строку» в качестве команды и дополнительную букву, которая скажет нам завершить и захватить строку.

Например:для движения вперед Bluetooth будет передавать «forwardT», а в конце Arduino, как только мы встретим букву «T», мы узнаем, что последовательная связь завершена.

И с помощью этой входящей строковой команды мы настроим драйвер L298 для движения вперед, назад, влево, вправо, изменения скорости и т. Д.

Найдите прикрепленный код Arduino.

Шаг 4 - Окончательный результат

Улучшения и перспективы на будущее

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

Следующая версия

Посмотрите мой следующий проект «Ровер с голосовым управлением с помощью мобильных устройств»

Код

  • Код Arduino Node Rover
Код Arduino Node Rover Arduino
 const int en1 =9; const int en2 =3; const int inp1 =2; const int inp2 =4; const int inp3 =7; const int inp4 =8; char charRead; String inputString =""; установка void () {Serial.begin (9600); pinMode (en1, ВЫХОД); pinMode (en2, ВЫХОД); pinMode (inp1, ВЫХОД); pinMode (inp2, ВЫХОД); pinMode (inp3, ВЫХОД); pinMode (inp4, OUTPUT);} void loop () {// поместите сюда ваш основной код для повторного запуска:if (Serial.available ()) {charRead =Serial.read (); если (charRead! ='T') {inputString + =charRead; } else {if (inputString =="forward") {// Чтобы переместить вперед digitalWrite (inp1, HIGH); digitalWrite (inp2, LOW); digitalWrite (inp3, HIGH); digitalWrite (inp4, LOW); } else if (inputString =="backward") {// Чтобы переместиться назад digitalWrite (inp1, LOW); digitalWrite (inp2, HIGH); digitalWrite (inp3, LOW); digitalWrite (inp4, HIGH); } else if (inputString =="fleft") {// Для перемещения влево digitalWrite (inp1, HIGH); digitalWrite (inp2, LOW); digitalWrite (inp3, LOW); digitalWrite (inp4, LOW); } else if (inputString =="испуг") {// Для перемещения вправо digitalWrite (inp1, LOW); digitalWrite (inp2, LOW); digitalWrite (inp3, HIGH); digitalWrite (inp4, LOW); } else if (inputString =="bleft") {// Чтобы переместиться назад влево digitalWrite (inp1, LOW); digitalWrite (inp2, LOW); digitalWrite (inp3, LOW); digitalWrite (inp4, HIGH); } else if (inputString =="bright") {// Вернуться вправо digitalWrite (inp1, LOW); digitalWrite (inp2, HIGH); digitalWrite (inp3, LOW); digitalWrite (inp4, LOW); } else if (inputString =="break") {// Чтобы остановить analogWrite (en1, 50); analogWrite (en2, 50); задержка (550); digitalWrite (inp1, LOW); digitalWrite (inp2, LOW); digitalWrite (inp3, LOW); digitalWrite (inp4, LOW); analogWrite (en1, 150); analogWrite (en2, 150); } else if (inputString =="maxspeed") {// Максимальная скорость analogWrite (en1, 250); analogWrite (en2, 250); } else if (inputString =="medspeed") {// Средняя скорость analogWrite (en1, 180); analogWrite (en2, 180); } else if (inputString =="lowspeed") {// Низкая скорость analogWrite (en1, 90); analogWrite (en2, 90); } else {// Остановить digitalWrite (inp1, LOW); digitalWrite (inp2, LOW); digitalWrite (inp3, LOW); digitalWrite (inp4, LOW); } inputString =""; }}} 

Схема


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

  1. Создание беспроводного роботизированного автомобиля с использованием ИК-датчиков
  2. Эффективная технология веб-сервера для микроконтроллеров с ограниченными ресурсами
  3. Как установить защищенный встроенный веб-сервер на устройство Wi-Fi стоимостью 3 доллара
  4. Получить влажность / температуру из Интернета
  5. Вентилятор с регулируемой температурой
  6. Солнечный свет подъездной дороги к узлу беспроводного датчика MSP430
  7. Raspberry Pi 4 как веб-сервер [Создать собственный веб-сайт]
  8. Превратите свой радиоуправляемый автомобиль в радиоуправляемый автомобиль с Bluetooth
  9. Радиоуправляемая машина с джойстиком
  10. Радиоуправляемый автомобиль с Wi-Fi - Qi включен