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

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск
(Ссылки)
Строка 4: Строка 4:
 
= Поддерживаемое оборудование =
 
= Поддерживаемое оборудование =
  
== Раутеры ==
+
== Роутеры ==
* Беспроводные роутеры: D-Link DIR-320 (обычный, не NRU!),
+
* Беспроводные роутеры:
* другие раутеры на базе SoC Broadcom BCM47xx/53xx (не проверялось)
+
** D-Link DIR-320 (обычный, не NRU!),
* возможна модификация прошивки поддержки других устройств с USB и совместимых с прошивкой [[http://openwrt.org/ http://openwrt.org/]]
+
** Другие роутеры на базе SoC Broadcom BCM47xx/53xx (не проверялось)
 +
** Возможна модификация прошивки поддержки других устройств с USB и совместимых с прошивкой [[http://openwrt.org/ http://openwrt.org/]]
  
== Вебкамеры ==
+
== 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 камеры тоже можно использовать, при этом увеличится задержка видео
Строка 20: Строка 21:
 
# установить tftp клиента (есть в поставке win 7, но не установлен по умолчанию).
 
# установить tftp клиента (есть в поставке win 7, но не установлен по умолчанию).
 
# Настроить на компьютере IP-адрес 192.168.0.2
 
# Настроить на компьютере IP-адрес 192.168.0.2
# подключить компьютер к любому порту LAN на раутере.
+
# подключить компьютер к любому порту LAN на роутере.
# приготовить команду tftp 192.168.0.1 PUT <имя trx файла>
+
# приготовить (можно в .bat-файле) команду tftp 192.168.0.1 PUT <имя trx файла>
# включить раутер
+
# включить роутер
 
# подождать ровно 2 секунды и запустить приготовленную команду. Лампа LAN должна часто-часто моргать несколько секунд, после чего команда должна успешно завершиться.
 
# подождать ровно 2 секунды и запустить приготовленную команду. Лампа LAN должна часто-часто моргать несколько секунд, после чего команда должна успешно завершиться.
# Ждать около 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://192.168.0.1] по кабелю либо http://<wifi IP> по wifi, если wifi поднялся. Login admin, password oradmin. На первой странице внизу ссылка на админку.
 
* [http://192.168.0.1 http://192.168.0.1] по кабелю либо http://<wifi IP> по wifi, если wifi поднялся. Login admin, password oradmin. На первой странице внизу ссылка на админку.
 
==Подключение к домашней WiFi-сети==
 
==Подключение к домашней WiFi-сети==
Предполагается, что раутер подлючается к домашней сети wifi как клиент со статическим IP.  
+
Предполагается, что роутер подлючается к домашней сети wifi как клиент со статическим IP.  
 
* Выберите подходящий IP. Он должен быть в диапазоне IP сети, не быть занять, и быть вне диапазона адресов, раздаваемых DHCP сервером.
 
* Выберите подходящий IP. Он должен быть в диапазоне IP сети, не быть занять, и быть вне диапазона адресов, раздаваемых DHCP сервером.
 
* Зайдите на web интерфейс прошивки, в админке есть соответсвующая страница. Там вы можете поставить:
 
* Зайдите на web интерфейс прошивки, в админке есть соответсвующая страница. Там вы можете поставить:
Строка 58: Строка 59:
 
** сервис ser2net транслирует обмен на TCP порт 2000
 
** сервис ser2net транслирует обмен на TCP порт 2000
 
** запись в порт доступна по протоколу http URL ''/cgi-bin/serial.cgi'' , метод POST, значение параметра SERIAL_DATA будет записано в порт
 
** запись в порт доступна по протоколу http URL ''/cgi-bin/serial.cgi'' , метод POST, значение параметра SERIAL_DATA будет записано в порт
* Pololu Orangutan SVP-1284. На оборудовании tenik удалось связать раутер с систмой Pololu Orangutan:
+
* Pololu Orangutan SVP-1284. На оборудовании tenik удалось связать роутер с систмой Pololu Orangutan:
  
 
в файл /etc/rc.local для перезапуска драйвера были добавлены строки:
 
в файл /etc/rc.local для перезапуска драйвера были добавлены строки:
Строка 76: Строка 77:
 
=Внесение изменений в прошивку=
 
=Внесение изменений в прошивку=
 
Для внесения серьезных изменений в прошивку штудируем документацию [[http://wiki.openwrt.org/doc/start OpenWRT]]
 
Для внесения серьезных изменений в прошивку штудируем документацию [[http://wiki.openwrt.org/doc/start OpenWRT]]
 +
 
==Загрузка своих страниц для управления роботом==
 
==Загрузка своих страниц для управления роботом==
 
Текущие страницы доступны для сливания через админку робота. Для заливки новых страниц я использую команду:
 
Текущие страницы доступны для сливания через админку робота. Для заливки новых страниц я использую команду:
Строка 88: Строка 90:
 
* Нет удобного способа менять пароль, только через SSH консоль (команда passwd).
 
* Нет удобного способа менять пароль, только через SSH консоль (команда passwd).
 
* Защита. Робота с такой прошивкой надо держать на защищенном протоколе. Сейчас видео идет по http порт 8080 вообще открыто, web-face и управление - либо http либо https, либо с паролем, либо без. Самый правильный способ - https+пароль. Но https в данной конфигурации жутко тормозит.
 
* Защита. Робота с такой прошивкой надо держать на защищенном протоколе. Сейчас видео идет по http порт 8080 вообще открыто, web-face и управление - либо http либо https, либо с паролем, либо без. Самый правильный способ - https+пароль. Но https в данной конфигурации жутко тормозит.
* Скрипты Webface написаны на чем awk и ash, их неудобно поддерживать, Следует мигрировать на Lua
+
* Скрипты Webface написаны на awk и ash, их неудобно поддерживать, Следует мигрировать на Lua
* Webface содержит явную недоделку - когда заходишь на страничку настройки, то она показывает не текущие значения из конфигов раутера, а ее собственные дефолты
+
* Webface содержит явную недоделку - когда заходишь на страничку настройки, то она показывает не текущие значения из конфигов роутера, а ее собственные дефолты
 
=Другие предупреждения=
 
=Другие предупреждения=
* Не выключайте HTTP и HTTPS одновременно. Иначе перенастройка раутера станет возможной только по SSH.
+
* Не выключайте HTTP и HTTPS одновременно. Иначе перенастройка роутера станет возможной только по SSH.
 
* Не забывайте про защиту. Очень хочется показать эту вещь в интернете, но надо понимать, что за вами могут наблюдать через камеру, а ездящий робот может даже нанести материальный ущерб либо даже травму. Учтите, что в Интернете “кулхацкеров” гораздо больше, чем ваших друзей.
 
* Не забывайте про защиту. Очень хочется показать эту вещь в интернете, но надо понимать, что за вами могут наблюдать через камеру, а ездящий робот может даже нанести материальный ущерб либо даже травму. Учтите, что в Интернете “кулхацкеров” гораздо больше, чем ваших друзей.
 
= Ссылки =
 
= Ссылки =
 
[[http://openwrt.org OpenWRT]]
 
[[http://openwrt.org OpenWRT]]

Версия 14:10, 11 декабря 2011

О проекте

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

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

Роутеры

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

USB-вебкамеры

Все UVC-камеры (список тут — [http://www.ideasonboard.org/uvc/]) Лучше, чтобы камера поддерживала режим MJPEG, но YUV камеры тоже можно использовать, при этом увеличится задержка видео

USB-UART интерфейсы

  • Pololu Orangutan SVP-1284,
  • другие не проверялись, скорее всего будут поддержаны.

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

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

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

Настройка веб-камеры

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

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

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

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

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

  • Встроенный UART доступен двумя способами:
    • сервис ser2net транслирует обмен на TCP порт 2000
    • запись в порт доступна по протоколу http URL /cgi-bin/serial.cgi , метод POST, значение параметра SERIAL_DATA будет записано в порт
  • Pololu Orangutan SVP-1284. На оборудовании tenik удалось связать роутер с систмой Pololu Orangutan:

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

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

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

2001:raw:600:/dev/ttyUSB0:115200 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS
2002:raw:600:/dev/ttyUSB1:115200 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS
2003:raw:600:/dev/ttyUSB2:115200 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS

После перезагрузки 3 UART порта Pololu доступны на TCP портах 2001, 2002, 2003

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

Для внесения серьезных изменений в прошивку штудируем документацию [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.
  • Не забывайте про защиту. Очень хочется показать эту вещь в интернете, но надо понимать, что за вами могут наблюдать через камеру, а ездящий робот может даже нанести материальный ущерб либо даже травму. Учтите, что в Интернете “кулхацкеров” гораздо больше, чем ваших друзей.

Ссылки

[OpenWRT]