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

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск
(Проброска UART-а)
Строка 1: Строка 1:
==О проекте==
+
=О проекте=
 
[[Изображение:OR-WRT-webface.jpg|thumb|200px|Панель управления OR-WRT|right]]
 
[[Изображение:OR-WRT-webface.jpg|thumb|200px|Панель управления OR-WRT|right]]
  
===Описание проекта===
+
==Описание проекта==
 
Этот проект создан в рамках более крупного проекта Open Robotics, направленного на создание доступных и повторяемых платформ для любительской (и не только) робототехники. Суть проекта - готовая прошивка для сетевого оборудования, позволяющая удобно и без множества ручных настроек и перепрограммирования использовать его в робототехнике в качестве WiFi адаптера для UART и USB-устройств (пока поддерживаются только UVC-вебкамеры и некоторые USB-UART адаптеры). Прошивку на основе типовой OpenWRT разработал elmot (elijah.mot [на] gmail.com).
 
Этот проект создан в рамках более крупного проекта Open Robotics, направленного на создание доступных и повторяемых платформ для любительской (и не только) робототехники. Суть проекта - готовая прошивка для сетевого оборудования, позволяющая удобно и без множества ручных настроек и перепрограммирования использовать его в робототехнике в качестве WiFi адаптера для UART и USB-устройств (пока поддерживаются только UVC-вебкамеры и некоторые USB-UART адаптеры). Прошивку на основе типовой OpenWRT разработал elmot (elijah.mot [на] gmail.com).
  
===Ссылки на форумы этого проекта===
+
==Ссылки на форумы этого проекта==
 
* [http://roboforum.ru/forum69/topic10929.html Вопросы разработки и развития  OR-WRT]
 
* [http://roboforum.ru/forum69/topic10929.html Вопросы разработки и развития  OR-WRT]
 
* [http://roboforum.ru/forum69/topic10928.html Вопросы поддержки пользователей OR-WRT]  
 
* [http://roboforum.ru/forum69/topic10928.html Вопросы поддержки пользователей OR-WRT]  
  
===Лицензия===
+
==Лицензия==
 
Вы можете использовать проект для некоммерческих целей. По вопросу коммерческого использования обращайтесь к автору.
 
Вы можете использовать проект для некоммерческих целей. По вопросу коммерческого использования обращайтесь к автору.
  
===Предупреждение===
+
==Предупреждение==
 
Вы используете материалы, представленные здесь, на свой страх и риск. Предупреждаем, что вскрывая роутер для присоединения консоли и заменяя его прошивку, вы можете лишиться как гарантии на устройство, так и повредить само устройство. Автор прошивки, равно как Open-robotics.ru и OpenWRT.org не несут никакой ответственности за прямые либо косвенные последствия использования материалов данного проекта.
 
Вы используете материалы, представленные здесь, на свой страх и риск. Предупреждаем, что вскрывая роутер для присоединения консоли и заменяя его прошивку, вы можете лишиться как гарантии на устройство, так и повредить само устройство. Автор прошивки, равно как Open-robotics.ru и OpenWRT.org не несут никакой ответственности за прямые либо косвенные последствия использования материалов данного проекта.
  
==Поддерживаемое оборудование==
+
=Поддерживаемое оборудование=
 
[[Изображение:Dir-320-photo.jpg|thumb|200px|DIR-320|right]]
 
[[Изображение:Dir-320-photo.jpg|thumb|200px|DIR-320|right]]
  
===Роутеры===
+
==Роутеры==
 
* Беспроводные роутеры:
 
* Беспроводные роутеры:
 
** D-Link DIR-320 (обычный, не NRU!),
 
** D-Link DIR-320 (обычный, не NRU!),
Строка 25: Строка 25:
 
** Возможна модификация прошивки для поддержки других роутеров с USB и совместимых с прошивкой [OpenWRT.org]  
 
** Возможна модификация прошивки для поддержки других роутеров с USB и совместимых с прошивкой [OpenWRT.org]  
  
===USB-вебкамеры===
+
==USB-вебкамеры==
 
Все UVC-камеры (список тут — [http://www.ideasonboard.org/uvc/ http://www.ideasonboard.org/uvc/]).
 
Все UVC-камеры (список тут — [http://www.ideasonboard.org/uvc/ http://www.ideasonboard.org/uvc/]).
  
 
Лучше, чтобы камера поддерживала режим MJPEG, но YUV камеры тоже можно использовать, при этом увеличится задержка видео.
 
Лучше, чтобы камера поддерживала режим MJPEG, но YUV камеры тоже можно использовать, при этом увеличится задержка видео.
  
===USB-UART интерфейсы===
+
==USB-UART интерфейсы==
 
* Silicon Labs CP210x, включая [http://shop.roboforum.ru/product/or-usb-uart-v1-usb-uart-adapter/ OR-USB-UART-v1]
 
* Silicon Labs CP210x, включая [http://shop.roboforum.ru/product/or-usb-uart-v1-usb-uart-adapter/ OR-USB-UART-v1]
 
* Pololu Orangutan SVP-1284
 
* Pololu Orangutan SVP-1284
 
* другие не проверялись, скорее всего будут поддержаны.
 
* другие не проверялись, скорее всего будут поддержаны.
  
==Установка прошивки==
+
=Установка прошивки=
===D-Link DIR-320===
+
==D-Link DIR-320==
 
# установить tftp клиента (есть в поставке win 7, но не установлен по умолчанию).
 
# установить tftp клиента (есть в поставке win 7, но не установлен по умолчанию).
 
# Настроить на компьютере IP-адрес 192.168.0.2
 
# Настроить на компьютере IP-адрес 192.168.0.2
Строка 47: Строка 47:
 
# Ждать около 5 минут. Когда прошивка загрузится и не сможет подключиться к wifi (так как вряд ли Ваша сеть называется “OpenWrt” и имеет пароль “1”), должен загореться синий светодиод сбоку на роутере и помаргивать каждые 10 секунд.
 
# Ждать около 5 минут. Когда прошивка загрузится и не сможет подключиться к wifi (так как вряд ли Ваша сеть называется “OpenWrt” и имеет пароль “1”), должен загореться синий светодиод сбоку на роутере и помаргивать каждые 10 секунд.
  
==Настройка прошивки==
+
=Настройка прошивки=
  
 
* ssh 192.168.0.1 по кабелю в любой порт роутера или ssh <wifi ip>, если wifi поднялся. Login root, password 123
 
* 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. На первой странице внизу ссылка на админку.  
 
* Через браузер: http://192.168.0.1 по кабелю либо http://<wifi IP> по wifi, если wifi поднялся. Login admin, password oradmin. На первой странице внизу ссылка на админку.  
  
===Подключение к домашней WiFi-сети===
+
==Подключение к домашней WiFi-сети==
  
 
Предполагается, что роутер подключается к домашней сети wifi как клиент со статическим IP.
 
Предполагается, что роутер подключается к домашней сети wifi как клиент со статическим IP.
Строка 72: Строка 72:
 
В качестве проверки работоспособности сети прошивка раз в 10 секунд однократно пингует адрес default gateway. В случае неудачного ping зажигается голубой светодиод на следующие 10 секунд. Так что он может иногда загораться при работающем IP в случае выпадения пакета (такое бывает).
 
В качестве проверки работоспособности сети прошивка раз в 10 секунд однократно пингует адрес default gateway. В случае неудачного ping зажигается голубой светодиод на следующие 10 секунд. Так что он может иногда загораться при работающем IP в случае выпадения пакета (такое бывает).
  
===Настройка веб-камеры===
+
==Настройка веб-камеры==
  
 
На странице настройки камеры вы можете выбрать:
 
На странице настройки камеры вы можете выбрать:
Строка 81: Строка 81:
 
* YUV или MJPEG режимы
 
* YUV или MJPEG режимы
  
==Использование прошивки на ПК==
+
=Использование прошивки на ПК=
===Получение видеопотока или отдельных кадров===
+
==Получение видеопотока или отдельных кадров==
  
 
Обратите внимание! Браузер Internet Explorer не поддерживает MJPG видео и не покажет изображение с камеры. Используйте Crome, FireFox или Opera(Opera Turbo надо выключить)
 
Обратите внимание! Браузер Internet Explorer не поддерживает MJPG видео и не покажет изображение с камеры. Используйте Crome, FireFox или Opera(Opera Turbo надо выключить)
Строка 89: Строка 89:
 
* кадр в формате jpg "http://wifi-ip:8080/?action=snapshot"  
 
* кадр в формате jpg "http://wifi-ip:8080/?action=snapshot"  
  
===Проброска UART-а===
+
==Проброска UART-а==
 
[[Изображение:Dir-320-UART-pinout.jpg|thumb|200px|Распиновка UART в DIR-320.|right]]
 
[[Изображение:Dir-320-UART-pinout.jpg|thumb|200px|Распиновка UART в DIR-320.|right]]
====Встроенный UART====
+
===Встроенный UART===
  
 
Доступен двумя способами
 
Доступен двумя способами
Строка 98: Строка 98:
 
* запись в порт доступна по протоколу 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 надо добавить строку:
Строка 105: Строка 105:
  
 
После перезагрузки UART порт доступен на TCP порту 3001
 
После перезагрузки UART порт доступен на TCP порту 3001
====Pololu Orangutan SVP-1284====
+
===Pololu Orangutan SVP-1284===
  
 
На оборудовании tenik удалось связать роутер с систмой Pololu Orangutan:
 
На оборудовании tenik удалось связать роутер с систмой Pololu Orangutan:
Строка 122: Строка 122:
 
После перезагрузки 3 UART порта Pololu доступны на TCP портах 3001, 3002, 3003
 
После перезагрузки 3 UART порта Pololu доступны на TCP портах 3001, 3002, 3003
  
==Внесение изменений в прошивку==
+
=Внесение изменений в прошивку=
  
 
Для внесения серьезных изменений в прошивку штудируем документацию [http://wiki.openwrt.org/doc/start OpenWRT]
 
Для внесения серьезных изменений в прошивку штудируем документацию [http://wiki.openwrt.org/doc/start OpenWRT]
  
===Загрузка своих страниц для управления роботом===
+
==Загрузка своих страниц для управления роботом==
  
 
Текущие страницы доступны для сливания через админку робота. Для заливки новых страниц я использую команду:
 
Текущие страницы доступны для сливания через админку робота. Для заливки новых страниц я использую команду:
Строка 136: Строка 136:
 
'''Не заливайте файлы из каталогов /cgi-bin/* На них скорее всего слетят unix-права и прошивка перестанет работать.'''
 
'''Не заливайте файлы из каталогов /cgi-bin/* На них скорее всего слетят unix-права и прошивка перестанет работать.'''
  
==Нерешенные проблемы==
+
=Нерешенные проблемы=
  
 
* Задержка видео. При использовании 160*120 30 fps она минимальная, но есть.
 
* Задержка видео. При использовании 160*120 30 fps она минимальная, но есть.
Строка 144: Строка 144:
 
* Webface содержит явную недоделку - когда заходишь на страничку настройки, то она показывает не текущие значения из конфигов роутера, а ее собственные дефолты  
 
* Webface содержит явную недоделку - когда заходишь на страничку настройки, то она показывает не текущие значения из конфигов роутера, а ее собственные дефолты  
  
==Другие предупреждения==
+
=Другие предупреждения=
  
 
* Не выключайте HTTP и HTTPS одновременно. Иначе перенастройка роутера станет возможной только по SSH.
 
* Не выключайте HTTP и HTTPS одновременно. Иначе перенастройка роутера станет возможной только по SSH.
 
* Не забывайте про защиту. Очень хочется показать эту вещь в интернете, но надо понимать, что за вами могут наблюдать через камеру, а ездящий робот может даже нанести материальный ущерб либо даже травму. Учтите, что в Интернете “кулхацкеров” гораздо больше, чем ваших друзей.  
 
* Не забывайте про защиту. Очень хочется показать эту вещь в интернете, но надо понимать, что за вами могут наблюдать через камеру, а ездящий робот может даже нанести материальный ущерб либо даже травму. Учтите, что в Интернете “кулхацкеров” гораздо больше, чем ваших друзей.  
  
==Загрузки==
+
=Загрузки=
  
 
* [http://sourceforge.net/projects/orwrt/files/ Загрузка с SourceForge]
 
* [http://sourceforge.net/projects/orwrt/files/ Загрузка с SourceForge]
Строка 159: Строка 159:
 
* файл make.sh для построения и запаковки прошивки  
 
* файл make.sh для построения и запаковки прошивки  
  
==Ссылки==
+
=Ссылки=
 
* [http://sourceforge.net/p/orwrt/tickets/ Поддержка]
 
* [http://sourceforge.net/p/orwrt/tickets/ Поддержка]
 
* [http://openwrt.org/ OpenWRT]
 
* [http://openwrt.org/ OpenWRT]
 
* [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty] - универсальный SSH клиент для Windows
 
* [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty] - универсальный SSH клиент для Windows

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

О проекте

Панель управления OR-WRT

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

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

Ссылки на форумы этого проекта

Лицензия

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

Предупреждение

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

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

DIR-320

Роутеры

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

USB-вебкамеры

Все UVC-камеры (список тут — http://www.ideasonboard.org/uvc/).

Лучше, чтобы камера поддерживала режим 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. Он должен быть:
    • в диапазоне IP сети,
    • не быть занятым,
    • быть вне диапазона адресов, раздаваемых DHCP сервером.
    • не входить в диапазон 192.168.0.X
  • Зайдите на web интерфейс прошивки, в админке есть соответствующая страница. Там вы можете поставить:
    • защита WPA-PSK/WPA2-PSK,NONE
    • имя сети SSID
    • пароль
    • static IP
    • netmask
    • default GW
    • 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 для построения и запаковки прошивки

Ссылки