Реклама ⓘ
Главная » Радиоуправление
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Реклама ⓘ

Wi-Fi робот с видеотрансляцией в реальном времени, обнаружением препятствий

В данной статье описывается проект изготовления робота-машинки, которой можно управлять с любого компьютера без проводов при помощи связи по Wi-Fi. Видео в реальном времени передается на компьютер при помощи этой же сети. Камера, с которой ведется трансляция, поворачивается на 360°. Также робот умеет обнаруживать препятствия и реагировать на свет.
Обычно роботы с дистанционным управлением используют радиосвязь,  которая затухает, дает помехи и имеет очень ограниченное рабочее расстояние. В этом проекте используется Wi-Fi стандарта 802.11g для отправки управляющих сигналов через TCP/IP протокол, который управляет потоком данных. Это дает бесперебойную и надежную передачу управляющих сигналов роботу.  Wi-Fi поддерживает высокую скорость передачи данных, что позволяет осуществить передачу высококачественного видеосигнала в реальном времени. Вращение камеры осуществляется путем установки её на редукторный двигатель, управляемый при помощи мостовой схемы. Обнаружение препятствий сделано при помощи ультразвуковых датчиков, которые работают по принципу эхолота. Реакция на свет добавлена роботу для гибкости его работы и сделана при помощи фоторезисторов.

Этот робот способен двигаться со скоростью 12 км/ч на расстояние до 200м от управляющего компьютера. Его аккумуляторные батареи дают 1,5 часа полноценной работы. Wi-Fi Link позволяет использовать точку доступа между роботом и компьютером, что позволяет увеличить рабочую дистанцию в несколько раз. Это может применяться в туннелях, трубопроводах и на охраняемых территориях, куда невозможно проникнуть из-за большого риска.

Wi-Fi робот с видеотрансляцией в реальном времени

Предполагаемая конструкция и особенности

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

Этот робот-машинка имеет следующие особенности:
- Беспроводное управление при помощи ноутбука по Wi-Fi сети.
- GUI разработанный в Visual Basic 6.0, через который можно управлять роботом.
- Функция обнаружения препятствий, благодаря которой робот, увидев препятствие, останавливается.
- Передача видео в реальном времени по Wi-Fi  на контролирующий ноутбук или компьютер.
- Поворот камеры на 360 градусов
- Реакция на свет, что позволяет включать подсветку в темноте.
- Встроенный звуковой сигнал.
- Возможность увеличения дальности связи с помощью точки доступа.

Наброски проекта

Этот рисунок дает краткий ответ на вопрос "КАК ЭТО РАБОТАЕТ?" Управляющий компьютер и роутер(роутер WRT серии) установленный на роботе связаны по TCP/IP. Маршрутизатор получает и отправляет управляющие сигналы и общается с микроконтроллером через последовательную связь. Камера подключена к роутеру и также установлена на роботе. В качестве камеры используется IP-камера, которая поворачивается на 360' по и против часовой стрелки.

Наброски проекта

Этот проект был разработан в несколько этапов:

   Создание Wi-Fi сети:
- Хак роутера (добавление последовательного порта).
- Обновление прошивки.
- Тестирование добавленного последовательного порта.
- Разработка сервера машинки (написание и установка в роутер).
- Разработка графического интерфейса пользователя (GUI).

   Обнаружение препятствий:
- Ультразвуковой метод.
- ИК-метод.

Реакция на свет.
Создание и настройка видеотрансляции.
Вращение камеры.
Создание источника питания.
Объединение модулей.
Тестирование расстояния, скорости и мощности.

Wi-Fi соединение

Для Wi-Fi сети мы использовали  Linksys WRT54GL v1.1. Этот роутер работает как сервер и взаимодействует с управляющим ноутбуком. Причиной использования данного роутера является то, что он очень легок для хака. Это роутер с открытыми исходниками, что позволяет работать со сторонними производителями и делать множественные хаки. Мы сделали на роутере последовательный порт, так что он может общаться с микроконтроллером, присутствующим на машинке.

Linksys WRT54GL

Как добавить последовательный порт к роутеру

Нам необходимо добавить последовательный порт, потому что роутер будет связан с микроконтроллером и будет общаться с ним по последовательной связи через него. Микроконтроллер получает последовательный сигнал от роутера и управляет схемой машины.

Linksys WRT54GL

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

Плата Linksys WRT54GL

Разборка:
Удалите гарантийную наклейку! Отвинтите две Wi-Fi антенны. Передняя синяя лицевая панель является отдельной частью корпуса и держится на защелках. Для того, чтобы отделить её, необходимо приложить некоторое усилие. Поместите пальцы на защелки синей панели, и удерживая черный корпус, нажмите на панель, чтобы разделить их.
После того, как корпус удален, отвинтите винты, крепящие плату к пластиковому дну, чтобы освободить её.

Пайка разъема JP2:
Найдите разъем JP2 на плате роутера. Его распиновка:

Pin 1: 3.3V Pin 2: 3.3V
Pin 3: Tx (ttyS1) Pin 4: Tx (ttyS0)
Pin 5: Rx (ttyS1) Pin 6: Rx (ttyS0)
Pin 7: NC Pin 8: NC
Pin 9: GND Pin 10: GND

Изменения в схемотехнике:
В роутере используются 3.3В/GND в качестве последовательных уровней сигнала. Нам нужно использовать конвертер уровней сигнала, который преобразует 3.3В/GND в +/-12В, стандартное для последовательной связи RS232 напряжение. Технически, в этом проекте правильно использовать микросхему MAX3232, но я использовал микросхемы MAX232 и MAX233 и они прекрасно работают. Вы можете использовать любую из этих 3 микросхем. MAX233 хорош тем, что не требует внешних конденсаторов.

MAX232:

MAX232

MAX233:

MAX233

Пайка:

Пайка UART

Пайка UART

Прошивка для данного хака

В описанном здесь процессе будут проверяться последовательные порты используя X-WRT, дистрибутив Линукс для WRT54GL, имеющий хороший веб-интерфейс. Что бы знать, как установить прошивку на роутер смотрите раздел ‘Обновление прошивки’ ниже. Эти порты должны нормально работать и на других дистрибутивах.

После установки прошивки, вы получаете доступ к веб-интерфейсу (по умолчанию http://192.168.1.1/). На первом экране вас попросят установить новый пароль. Установите и запомните его!

Тестирование TTYS/0 (Консольный порт/мама DB9):
1. Подключите последовательный кабель с разъемом "мама" DB9 к компьютеру. Обычно такой кабель в магазинах называют кросс-кабель.
2. Создайте связь в HyperTerminal с использованием показанных параметров (115200,8 N1)
3. Перезагрузите роутер.
4. Вы должны увидеть кучу сообщений ядра. Нажмите Enter на терминале, и вы увидите экран, показанный ниже.

HyperTerminal

Тестирование TTYS/1 (Порт, который мы будем использовать/папа DB9):
1. Подключите нуль-модемный кабель между TTS / 1 разъем DB9 и ПК.
2. Создайте связь в HyperTerminal с использованием показанных параметров (9600,8 N1).
3. Подключитесь по SSH к роутеру (имя пользователя "root", пароль тот, который вы поставили раньше.) PUTTY хорошая программа для SSH подключения в Windows.
4. Введите команду:    echo "hello world" > /dev/tts/1
5. Если вы видите "hello world" в последовательной консоли HyperTerminal, это значит, что хак прекрасно работает. Посмотрите на эти фотографии для помощи.

HyperTerminal

Схема с микроконтроллером

В этом проекте используется микроконтроллер PIC16F628A. Это легкодоступный, простой в использовании и дешевый микроконтроллер. Микроконтроллер связан с роутером, и когда роутер получает управляющий сигнал, он передает его на МК, который затем обрабатывает его. Микроконтроллер сравнивает полученное значение с уже записанными в нем значениями и выполняет соответствующее действие. Например, если он получает значение 8, он дает '1' на контакт, отвечающий за движение робота вперед.

Схема подключения к PIC16F628A

Для тестирования, 3.3В идущие от роутера, были преобразованы в 12В и теперь этот сигнал нельзя напрямую подавать на микроконтроллер, необходимо преобразовать его обратно, для чего снова используется max232 и разъем "папа" DB9, как показано на схеме выше.

Микросхема приемника машинки

Компьютер подключается к роутеру, роутер подключается к микроконтроллеру, а микроконтроллер подключается к микросхеме приемника машинки и дает на неё команды.  Разберите машинку и найдите микросхему приемника. Обычно для этого используется микросхема Realtek. Найдите в интернете документацию на свою микросхему и найдите на ней выводы ВПЕРЕД НАЗАД ВПРАВО ВЛЕВО. Вот цоколевка микросхемы из моей машинки:

Распиновка RX2

Подключите четыре контакта (вперед, назад, вправо, влево) микроконтроллера к соответствующим выводам этой микросхемы.

Обновление прошивки

Linksys позволяет обновить прошивку и установить неоригинальную прошивку, что дает нам дополнительные возможности, но после установки неоригинальной прошивки теряется гарантия. Мы использовали графическое расширение X-WRT для OPENWRT white Russian v0.9. Для установки этой прошивки зайдите на эту страницу. Вы можете загрузить файл образа X-WRT отсюда.

Почему используется неоригинальная прошивка? Ответом на этот вопрос является то, что только неоригинальная прошивка позволяет установить нужный код в память роутера, и, таким образом сделать его пригодным для наших целей. Во-вторых, для использования последовательного порта было необходимо внести некоторые изменения в загрузочный файл, используемый роутером, для чего был использован openwrt-xwrt.

Создание сервера машинки

Для работы машинки нам понадобится следующее ПО: VB6 Клиент WiFi робота (работает на Windows), сервер машинки, который работает на роутере под управлением X-WRT и прошивка микроконтроллера.

Установка сервера машинки в роутер:
Для начала, роутер должен быть подключен для выполнения этой операции, поэтому первым делом подключитесь к интернету.

Подключитесь по SSH к роутеру с помощью PUTTY: (Не пишите хэш#)
# cd /tmp
# wget www.jbprojects.net/projects/wifirobot/carserver_1_mipsel.ipk
# ipkg install ./carserver_1_mipsel.ipk

Получение рабочего последовательного порта:
Теперь нам необходимо настроить разъем "папа" DB9 или TTS/1 разъем, который мы используем. Соединитесь с роутером через SSH при помощи PUTTY и напишите следующее для установки соответствующего пакета последовательного порта в роутер:
# ipkg upgrade
# ipkg install setserial
# cd /usr/sbin
# wget http://www.jbprojects.net/projects/wifirobot/stty.tgz
# tar -zxvf stty.tgz
# chmod 755 stty

В настройках X-WRT по адресу 192.168.1.1, перейдите на страницу CUSTOM USER STARTUP (или /etc/init.d/custom-user-startup) и добавьте следующие строки, чтобы сделать последовательный порт работающим при запуске роутера и автоматического запуска сервера машинки.
/user/sbin/setserial/dev/tts/1 irq 3
/usr/sbin/stty -F /dev/tts/1 raw speed 9600
/bin/carserver &

Разработка интерфейса для ПК

Компьютерный интерфейс выполнен в Visual Basic 6.0. Он использует TCP/IP связь для передачи управляющих сигналов роутеру. Я использовал не UDP, потому что в нем нет контроля потока данных, а также потому, что TCP является стандартным протоколом для Wi-Fi. Добавлены дополнительные функции последовательной связи для того, чтобы контролировать движение камеры.

Клиент также предоставляет опцию вращения камеры, о чем будет написано в соответствующем разделе.

Обнаружение препятствий

Мы реализовали два разных метода, ультразвуковой и инфракрасный. Оба метода имеют свои плюсы и минусы.

Ультразвуковой метод обнаружения препятствий:
Ультразвуковые датчики работают по принципу похожему на радар или сонар, который обнаруживает цель, интерпретируя эхо от радио или звуковых волн. Ультразвуковые датчики генерируют высокочастотные звуковые волны и оценивают эхо, полученное благодаря датчикам.  Датчики вычисляют интервал времени между отправкой и получением ответа для определения расстояния до объекта.

LCD

Разработанный нами детектор препятствий работает на частоте 40кГц. Он использует два специально изготовленных ультразвуковых датчика: один датчик излучает звук 40кГц, а другой принимает звук 40кГц и преобразует его в изменяющийся электрический ток с той же частотой.

Два tx rx ультразвуковых динамика похожих на эти с частотой 40кГц, доступны в магазине.

Схема для УЗ сонара

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

Схема

Инфракрасный метод обнаружения препятствий:
Приемник состоит из интегрального таймера 555 работающего в качестве генератора с частотой около 38 кГц (также работает на частоте от 36кГц до 40кГц), которая должна быть отрегулирована с помощью переменного резистора 10кОм. В качестве приемника используется ИК-модуль sharp. Когда ИК-луч от передатчика падает на ИК-модуль, на выходе появляется напряжение, реле замыкается, а когда луч попадает на препятствие, оно размыкается.

Контакты реле могут быть использованы для подачи микроконтроллеру прерывания, включения освещения и т.д. Переменный резистор 10кОм должен подстраиваться, пока ИК-приемник не увидит ИК-луч.  Когда перед ними ничего нет, ИК-луч не отражается на ИК-модуль, и схема не срабатывает. Однако когда робот приближается к объекту, луч отражается и попадает на ИК-модуль, и схема срабатывает.

Светодиоды следует направлять в том же направлении, что и ИК-модуль и размещать на том же уровне.
Светодиоды должны быть надлежащим образом покрыты отражающим материалом, таким как стекло или алюминиевая фольга, чтобы избежать распространения ИК-луча и получить четко фокусированный пучок.

Схема ИК метода обнаружения препятствий

Вращение камеры

Поворот камеры - это тоже функциональная возможность этого проекта, как и обнаружение препятствий и реакция на свет. Вы можете просто купить подвижную  IP-камеру, чтобы иметь такую возможность, но они немного дороже, поэтому я придумал, как использовать  радио передатчик и приемник для передачи и приема сигналов вращения и давать эти сигналы мотору, на котором закреплена камера.
Вот блок-схема, на которой показано, что необходимо делать для вращения камеры:

Вращение камеры

Передатчик и приемник можно получить из любой маленькой игрушечной машинки. Передатчик от её пульта, а приемник и схему управления двигателями из самой машинки.

Вам понадобится микроконтроллер, я использовал Atmel 89C51, с прошивкой. Подключите микроконтроллер к COM порту компьютера, для чего понадобится использовать конвертер уровней сигнала MAX232, как мы делали это ранее с PIC16F628A.
Клиент машинки имеет все элементы управления для последовательной связи с микроконтроллером. Теперь подключите 2 выхода микроконтроллера к 2 контактам на плате из пульта от игрушечной машинки. Паяйте к тем контактам, которые замыкаются, когда вы нажимаете кнопки. Раскрутите пульт, и вы поймете, о чем я говорю.

Передающая часть готова, и вы можете последовательно посылать сигналы с COM-порта компьютера в микроконтроллер, который передает их передающей схеме, которая затем передает беспроводной сигнал.

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

Схема Н-моста

-ve и +ve контакты аккумулятора 12В.
Два блока - реле 6В.
Электропривод - Двигатель постоянного тока.
COM провод должен быть подключен к GND схемы приемника и игрушечной машинки.
Присоедините два провода (которые раньше присоединялись к моторам машинки) от схемы к двум катушками.
Установите камеру на этот двигатель. Стоит отметить, что шнур камеры должен быть достаточно длинным, так как она поворачивается. Теперь ваш H-мост работает!

Н-мост

Питание

Питание является важным моментом, так как роутер и камера потребляют много энергии, поэтому необходимо было сделать надежный и заряжаемый источника питания, так что робот может беспроводно управляться в течение длительного времени.
Ниже приведены источники питания, которые используются в этом проекте.

Маршрутизатор 12В 1.2A акумулятор
Для IP камеры 2 аккумулятора (5В 1.2A)
соединенных параллельно для получения 5В и 2.5A
Схема обнаружения препятствий и поворот камеры 9В батарейка типа кроны
Схема управления двигателями В моем случае это 9.6В аккумулятор. У вашей машинки может быть другое питание
DC двигателя 12В аккумулятор, такой же как и для маршрутизатора
Питание ИК схемы 12В аккумулятор маршрутизатора

Возможные усовершенствования в будущем

Существуют различные усовершенствования, которые можно добавить в этот проект в будущем. Они не только увеличивают его функционал, но и расширяют сферу его применения.

Металлоискатель:
Металлоискатель может быть добавлен роботу, так как с ним робот больше подходит для военных целей, обеспечения безопасности и разведки.

Точка доступа:
С использованием точки доступа рабочее расстояние этого робота может быть увеличено до любого желаемого, это будет очень хорошо при использовании робота в исследовательских целях.

Автоматический возврат:
Это еще одна возможность, которую можно добавить к этому роботу, сделав его работу ещё более гибкой и позволяет снизить риск потери управления в сложных местах, и не придётся в ручную возвращать робота к себе, он сделает это автоматически по старому пути.

Датчик температуры:
Датчики температуры также могут быть добавлены для измерения температуры в труднодоступных местах. Это зависит от применения робота.

Обработка изображений (распознавание лиц):
Робот передает видео в реальном времени, поэтому можно сделать обработку изображений полученного видео для выявления лиц или мест с помощью алгоритмов MATLAB. Это позволит использовать этого робота для поиска и идентификации подозреваемых. Эта функция расширяет возможности этого робота.

Веб-интерфейс:
Благодаря веб-интерфейсу, роботом можно будет управлять через Интернет, также, в нем используется IP-камера, таким образом можно сделать трансляцию в интернете, что будет очень полезно для использования этого робота в целях видеонаблюдения.

Результаты и выводы

WiFi сеть является более хорошим и гибким вариантом для использования в качестве канала связи управления роботом по сравнению с радиосвязью, так как при использовании Wi-Fi можно увеличить рабочее расстояние робота за счет использования точки доступа и, во-вторых, его можно интегрировать и с интернетом при помощи веб-консоли.

Максимальная скорость:
Мы провели тест скорости между двумя определенными точками и засекли время, потраченное роботом, чтобы покрыть это расстояние было рассчитано. Расстояние было 5м метров и роботу потребовалось 0.8с.
Скорость=расстояние/время
Скорость=3м/0.9с = 3,3м/с или 12 км/ч

Рабочее расстояние:
Мы протестировали этого робота в открытом поле для оценки максимального рабочего расстояния. Оно равно ~200м, после этого расстояния связь с роботом теряется и команды нельзя отправлять

Оригинал статьи

Прикрепленные файлы:

Теги:

none Опубликована: 2012 г. 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (3) | Я собрал (0) | Подписаться

0
Dr.Unk #
В архиве имеются два файла для роутера (car_server.c, carserver_1_mipsel.ipk), как их прикрутить и подойдут ли они для прошивки or-wrt ?
Ответить
0
Павел #
И какова себестоимость такого вот готового робота?
Ответить
0
Petrarka #
А можно управление по 3G сделать? Чтобы не урезать расстояние?
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Набор 4WD Kit Bluetooth
Набор 4WD Kit Bluetooth
Набор для сборки - LED лампа Ветрогенератор
вверх