OR-WRT — различия между версиями

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск
(Настройка прошивки)
(Использование прошивки на ПК)
Строка 81: Строка 81:
  
 
==Использование прошивки на ПК==
 
==Использование прошивки на ПК==
Получение видеопотока или отдельных кадров
+
===Получение видеопотока или отдельных кадров===
  
 
Обратите внимание! Браузер Internet Explorer не поддерживает MJPG видео и не покажет изображение с камеры. Используйте Crome, FireFox или Opera(Opera Turbo надо выключить)
 
Обратите внимание! Браузер Internet Explorer не поддерживает MJPG видео и не покажет изображение с камеры. Используйте Crome, FireFox или Opera(Opera Turbo надо выключить)
  
    * видеопоток в формате mjpg "http://wifi-ip:8080/?action=stream"
+
* видеопоток в формате mjpg "http://wifi-ip:8080/?action=stream"
    * кадр в формате jpg "http://wifi-ip:8080/?action=snapshot"  
+
* кадр в формате jpg "http://wifi-ip:8080/?action=snapshot"  
  
Проброска UART-а
+
===Проброска UART-а===
 
Распиновка UART в DIR-320.
 
Распиновка UART в DIR-320.
Встроенный UART
+
====Встроенный UART====
  
 
Доступен двумя способами
 
Доступен двумя способами
  
    * сервис ser2net транслирует обмен на TCP порт 2000
+
* сервис ser2net транслирует обмен на TCP порт 2000
    * запись в порт доступна по протоколу http URL /cgi-bin/serial.cgi , метод POST, значение параметра SERIAL_DATA будет записано в порт  
+
* запись в порт доступна по протоколу http URL /cgi-bin/serial.cgi , метод POST, значение параметра SERIAL_DATA будет записано в порт  
  
CP210x (OR-USB-UART)
+
====CP210x (OR-USB-UART)====
  
 
в файл /etc/config/ser2net.conf надо добавить строку:
 
в файл /etc/config/ser2net.conf надо добавить строку:
  
3001:raw:600:/dev/ttyUSB0:115200 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS
+
3001:raw:600:/dev/ttyUSB0:115200 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS
  
 
После перезагрузки UART порт доступен на TCP порту 3001
 
После перезагрузки UART порт доступен на TCP порту 3001
Pololu Orangutan SVP-1284
+
====Pololu Orangutan SVP-1284====
  
 
На оборудовании tenik удалось связать роутер с систмой Pololu Orangutan:
 
На оборудовании tenik удалось связать роутер с систмой Pololu Orangutan:
Строка 110: Строка 110:
 
в файл /etc/rc.local для перезапуска драйвера были добавлены строки:
 
в файл /etc/rc.local для перезапуска драйвера были добавлены строки:
  
rmmod usbserial
+
rmmod usbserial
insmod usbserial vendor=0x1ffb product=0x0087
+
insmod usbserial vendor=0x1ffb product=0x0087
  
 
в файл /etc/config/ser2net.conf добавлены строки:
 
в файл /etc/config/ser2net.conf добавлены строки:
  
3001:raw:600:/dev/ttyUSB0:115200 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS
+
3001:raw:600:/dev/ttyUSB0:115200 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS
3002:raw:600:/dev/ttyUSB1:115200 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS
+
3002:raw:600:/dev/ttyUSB1:115200 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS
3003:raw:600:/dev/ttyUSB2:115200 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS
+
3003:raw:600:/dev/ttyUSB2:115200 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS
  
 
После перезагрузки 3 UART порта Pololu доступны на TCP портах 3001, 3002, 3003
 
После перезагрузки 3 UART порта Pololu доступны на TCP портах 3001, 3002, 3003
 +
 
==Внесение изменений в прошивку==
 
==Внесение изменений в прошивку==
  

Версия 11:36, 30 марта 2012

Описание проекта

Этот проект создан в рамках более крупного проекта Open Robotics, направленного на создание доступных и повторяемых платформ для любительской (и не только) робототехники. Суть проекта - готовая прошивка для сетевого оборудования, позволяющая удобно и без множества ручных настроек и перепрограммирования использовать его в робототехнике в качестве WiFi адаптера для UART и USB-устройств (пока поддерживаются только UVC-вебкамеры и некоторые USB-UART адаптеры). Прошивку на основе типовой OpenWRT разработал elmot (elijah.mot [на] gmail.com). Ссылки на форумы этого проекта

   * [Вопросы разработки и развития  OR-WRT ]
   * [Вопросы поддержки пользователей  OR-WRT ] 

Лицензия

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

Вы используете материалы, представленные здесь, на свой страх и риск. Предупреждаем, что вскрывая роутер для присоединения консоли и заменяя его прошивку, вы можете лишиться как гарантии на устройство, так и повредить само устройство. Автор прошивки, равно как Open-robotics.ru и OpenWRT.org не несут никакой ответственности за прямые либо косвенные последствия использования материалов данного проекта.

Поддерживаемое оборудование

DIR-320. Роутеры

   * Беспроводные роутеры:
         o D-Link DIR-320 (обычный, не NRU!),
         o ASUS wl500gP(проверено ddcharacter)
         o Другие роутеры на базе SoC Broadcom BCM47xx/53xx (не проверялось)
         o Возможна модификация прошивки для поддержки других роутеров с USB и совместимых с прошивкой [OpenWRT.org] 

USB-вебкамеры

Все UVC-камеры (список тут — [1]).

Лучше, чтобы камера поддерживала режим MJPEG, но YUV камеры тоже можно использовать, при этом увеличится задержка видео. USB-UART интерфейсы

   * Silicon Labs CP210x, включая OR-USB-UART-v1
   * Pololu Orangutan SVP-1284
   * другие не проверялись, скорее всего будут поддержаны. 

Установка прошивки

D-Link DIR-320

  1. установить tftp клиента (есть в поставке win 7, но не установлен по умолчанию).
  2. Настроить на компьютере IP-адрес 192.168.0.2
  3. подключить компьютер к любому порту LAN на роутере.
  4. приготовить (можно в .bat-файле) команду tftp 192.168.0.1 PUT <имя trx файла>
  5. включить роутер
  6. подождать ровно 2 секунды и запустить приготовленную команду. Лампа LAN должна часто-часто моргать несколько секунд, после чего команда должна успешно завершиться и показать что-то вроде (цифры могут отличаться):
         * Start Flashing ****
         * Успешная передача: 3592480 байт за 11 сs, 281134 байт/с 
  7. Ждать около 5 минут. Когда прошивка загрузится и не сможет подключиться к wifi (так как вряд ли Ваша сеть называется “OpenWrt” и имеет пароль “1”), должен загореться синий светодиод сбоку на роутере и помаргивать каждые 10 секунд. 

Настройка прошивки

  • ssh 192.168.0.1 по кабелю в любой порт роутера или ssh <wifi ip>, если wifi поднялся. Login root, password 123
  • Через браузер: http://192.168.0.1 по кабелю либо http://<wifi IP> по wifi, если wifi поднялся. Login admin, password oradmin. На первой странице внизу ссылка на админку.

Подключение к домашней WiFi-сети

Предполагается, что роутер подключается к домашней сети wifi как клиент со статическим IP.

  • Выберите подходящий IP. Он должен быть:
         o в диапазоне IP сети,
         o не быть занятым,
         o быть вне диапазона адресов, раздаваемых DHCP сервером.
         o не входить в диапазон 192.168.0.X 
   * Зайдите на web интерфейс прошивки, в админке есть соответствующая страница. Там вы можете поставить:
         o защита WPA-PSK/WPA2-PSK,NONE
         o имя сети SSID
         o пароль
         o static IP
         o netmask
         o default GW
         o dns 

В качестве проверки работоспособности сети прошивка раз в 10 секунд однократно пингует адрес default gateway. В случае неудачного ping зажигается голубой светодиод на следующие 10 секунд. Так что он может иногда загораться при работающем IP в случае выпадения пакета (такое бывает). Настройка веб-камеры

На странице настройки камеры вы можете выбрать:

   * разрешение
   * fps
   * номер камеры(возможно подключение нескольких камер через USB-hub)
   * YUV или MJPEG режимы

Использование прошивки на ПК

Получение видеопотока или отдельных кадров

Обратите внимание! Браузер Internet Explorer не поддерживает MJPG видео и не покажет изображение с камеры. Используйте Crome, FireFox или Opera(Opera Turbo надо выключить)

Проброска UART-а

Распиновка UART в DIR-320.

Встроенный UART

Доступен двумя способами

  • сервис ser2net транслирует обмен на TCP порт 2000
  • запись в порт доступна по протоколу http URL /cgi-bin/serial.cgi , метод POST, значение параметра SERIAL_DATA будет записано в порт

CP210x (OR-USB-UART)

в файл /etc/config/ser2net.conf надо добавить строку:

3001:raw:600:/dev/ttyUSB0:115200 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS

После перезагрузки UART порт доступен на TCP порту 3001

Pololu Orangutan SVP-1284

На оборудовании tenik удалось связать роутер с систмой Pololu Orangutan:

в файл /etc/rc.local для перезапуска драйвера были добавлены строки:

rmmod usbserial
insmod usbserial vendor=0x1ffb product=0x0087

в файл /etc/config/ser2net.conf добавлены строки:

3001:raw:600:/dev/ttyUSB0:115200 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS
3002:raw:600:/dev/ttyUSB1:115200 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS
3003:raw:600:/dev/ttyUSB2:115200 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS

После перезагрузки 3 UART порта Pololu доступны на TCP портах 3001, 3002, 3003

Внесение изменений в прошивку

Для внесения серьезных изменений в прошивку штудируем документацию OpenWRT

Загрузка своих страниц для управления роботом

Текущие страницы доступны для сливания через админку робота. Для заливки новых страниц я использую команду:

pscp.exe -r -pw 123 -scp www/* root@192.168.0.1:/www

pscp входит в комплект программ Putty.

Не заливайте файлы из каталогов /cgi-bin/* На них скорее всего слетят unix-права и прошивка перестанет работать.

Нерешенные проблемы

  • Задержка видео. При использовании 160*120 30 fps она минимальная, но есть.
  • Нет удобного способа менять пароль, только через SSH консоль (команда passwd).
  • Защита. Робота с такой прошивкой надо держать на защищенном протоколе. Сейчас видео идет по http порт 8080 вообще открыто, web-face и управление - либо http либо https, либо с паролем, либо без. Самый правильный способ - https+пароль. Но https в данной конфигурации жутко тормозит.
  • Скрипты Webface написаны на awk и ash, их неудобно поддерживать, Следует мигрировать на Lua
  • Webface содержит явную недоделку - когда заходишь на страничку настройки, то она показывает не текущие значения из конфигов роутера, а ее собственные дефолты

Другие предупреждения

  • Не выключайте HTTP и HTTPS одновременно. Иначе перенастройка роутера станет возможной только по SSH.
  • Не забывайте про защиту. Очень хочется показать эту вещь в интернете, но надо понимать, что за вами могут наблюдать через камеру, а ездящий робот может даже нанести материальный ущерб либо даже травму. Учтите, что в Интернете “кулхацкеров” гораздо больше, чем ваших друзей.

Загрузки

Что внутри?

  • Готовая к заливке прошивка в формате trx.
  • Ядро и дополнения к стандартному ImageBuilder’у от OpenWRT backfire 10.03.01, с помощью которых она построена.
  • файл make.sh для построения и запаковки прошивки

Ссылки