roboforum.ru

Технический форум по робототехнике.

Робот на базе роутера D Link DIR-320

Робот на базе роутера D Link DIR-320

esprit » 14 фев 2011, 07:33

==================================================================================================================
Вставка от =DeaD=

ВНИМАНИЕ!!! На рынке сейчас часто вместо DIR-320 продаётся DIR-320NRU - это совершенно другой по железу роутер и всё что тут описано к нему не имеет отношения. Будьте бдительны!

На текущий момент задача проброски видео и уарта на роутере D-Link DIR-320 решена полностью, при этом в рамках флеш-памяти роутера, т.е. для работы подключение каких-то флешек или usb-хабов не требуется.

Порядок модификации роутера для этой задачи подробно описан в вики на странице [[DIR-320]].

Кроме того от пользователя d3xr есть описание установки прошивки OpenWrt на DIR-320, оно находится на странице [[OpenWrt]]
==================================================================================================================


Вдохновленный темой http://roboforum.ru/forum40/topic5222.html, задумался над созданием робота на базе этого роутера. Первоначальный функционал - управляемый с компьютера робот по каналу Wi-Fi. Робот прошит (так скажем, не без усилий) прошивкой от http://vampik.ru/. На нем завелась Linux-подобная операционка, можно подключиться Телнетом. Задача первая научиться рулить роботом посредством операционной системы. На борту есть USB порт, говорят есть UART. Вот его лицо
face.jpg
, а это спина
back.jpg
.

Re: Робот на базе роутера D Link DIR-320

=DeaD= » 25 фев 2011, 10:10

esprit писал(а):Опять же DIR-320 жрет 2 ампера. Думаю какие элементы питания использовать.

Реально жрёт, замерялось амперметром или просто блок питания на 2А? :)

esprit писал(а):Платил по квитанции, которую выдает интернет магазин.

Тогда всё должно быть окей, скан не надо, setar всё равно отправляет только после получения денежки на счет.

Добавлено спустя 35 секунд:
esprit писал(а):USB можно освободить использую USB HUB. Сам не пробовал. В планах использовать IP камеру.

Еще и USB-HUB городить это уже слишком. А какую IP камеру планируете использовать и зачем именно так, а не через вебку?

Добавлено спустя 9 минут 1 секунду:
Кстати, вы уже умеете куда-нибудь в OpenCV получать картинку с IP-камер?

Re: Робот на базе роутера D Link DIR-320

=DeaD= » 25 фев 2011, 14:18

Если получится, то сегодня возьму Logitech HD Webcam C270

Re: Робот на базе роутера D Link DIR-320

esprit » 25 фев 2011, 16:22

ИМХО IP камера проще, но до этого еще далеко. По OpenVC надо посмотреть. Пока остановился на этом http://www.ampersant.ru/glaz/

Re: Робот на базе роутера D Link DIR-320

=DeaD= » 25 фев 2011, 22:28

Вебкамеру взял, видео на ПК в разрешении 320х240x10fps пробрасывается успешно, по крайней мере по проводному каналу :)

Добавлено спустя 30 секунд:
Задержка видео порядка 0.2-0.3 секунды, в общем крайне разумная.

Добавлено спустя 41 минуту 18 секунд:
Проброску видео через WiFi проверил - работает, задержка может до 0.3-0.5сек возросла, а может я устал и мне кажется :)

Добавлено спустя 1 час 14 минут 57 секунд:
Вот тут и тут есть инфа про использование UART-порта под таким линухом:
http://www.xakep.ru/magazine/xa/128/110/1.asp
http://robocraft.ru/blog/electronics/415.html

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

Добавлено спустя 51 минуту 5 секунд:
Всё, более менее понял, осталось реализовать.

Короче план такой - надо:
1. Поставить на роутер средства компиляции (во встроенную память не влезут - поэтому ставить надо на флешку);
2. Написать небольшую программу, которая открывает сокет и транслирует его в UART и обратно;
3. Сохранить программу во флеш память контроллера и дать на неё права на выполнение (сохраняем как на обычный диск, только делаем flashfs save, flashfs commit, flashfs enable);
4. Добавить запуск нашей программы в /usr/local/sbin/post-boot серией команд типа:
echo “/usr/local/mysoft/my_uart_server” >> /usr/local/sbin/post-boot
flashfs save
flashfs commit
flashfs enable

Re: Робот на базе роутера D Link DIR-320

Myp » 25 фев 2011, 23:14

во
молодец :)
на хъакере интересное напсиано
я тоже всё сидел и думал где бы утянуть алгоритм для компорта готовый )

проще всего записать в рутер можно пересобрав прошивку рутера
разбираем, добавляем файлы, собираем обратно и зашиваем :)
пару раз разобрать и собрать и это уже занимает пару минут )

Re: Робот на базе роутера D Link DIR-320

=DeaD= » 25 фев 2011, 23:28

Да, я тоже мечтаю освоить эту тему, добавить в прошивку и чтобы роботы на базе DIR-320 расплодились десятками и сотнями по всему миру :) и чтобы доработка роутера по инструкции занимала какие-нибудь 10-15 минут у новичка.

Re: Робот на базе роутера D Link DIR-320

esprit » 26 фев 2011, 03:39

И тут Астапа понесло. Где камеру то брали? И чем получали видео на ПК? Однако задержка...

Re: Робот на базе роутера D Link DIR-320

Myp » 26 фев 2011, 10:41

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

Re: Робот на базе роутера D Link DIR-320

=DeaD= » 26 фев 2011, 10:46

esprit писал(а):Где камеру то брали?

В магазине, а в чем вопрос?

esprit писал(а):И чем получали видео на ПК?

Тупо набирал в адресной строке браузера 192.168.1.1:7776/?action=stream и оттуда гналось потоковое видео в формате MJPEG, только надо кодеки установить. Пока в OpenCV это не загонял. Но формат стандартный, решения должны быть.

esprit писал(а):Однако задержка...

Однако она везде будет и в радиокамере через ТВ-тюнер и в IP-камере и даже в фотике цифровом в мыльнице задержка есть, потому зеркалки и рулят если надо успевать сфоткать :)

Добавлено спустя 39 секунд:
Myp писал(а):важный момент..
хорошо бы лишнее из роутера убрать
всякие там сетевые фишки ненужные обычному роботу ибо вся прошивка просто таки забита под завязку этой байдой.
памяти освободится и лишние процессы мешать не будут.

Да там и так в этой версии прошивки, чтобы поддержку камер впихнуть, почти всё выкинули :)

Re: Робот на базе роутера D Link DIR-320

=DeaD= » 27 фев 2011, 15:18

esprit, вы распиновку UARTа уже установили?

Re: Робот на базе роутера D Link DIR-320

esprit » 27 фев 2011, 15:41

Вложения
dir320_UART_pinout.jpg

Re: Робот на базе роутера D Link DIR-320

=DeaD= » 27 фев 2011, 21:11

Оттуда же скопирую:

Если необходимо использовать этот uart порт для других целей (наиболее часто используют для шаринга с ресиверами без lan порта, подключения GPS, можно также подключить микроконтроллер и взаимодействовать с ним через uart) необходимо отключить отладочную консоль от /dev/ttyS0. Необходимо ввести команды:

Код: Выделить всёРазвернуть
nvram set kernel_args="root=/dev/mtdblock2 rootfstype=squashfs,ext3 noinitrd init=/linuxrc console=null"
nvram commit


И перезагрузиться. Вернуть все назад можно командой:

Код: Выделить всёРазвернуть
nvram set kernel_args="root=/dev/mtdblock2 rootfstype=squashfs,ext3 noinitrd init=/linuxrc console=/dev/ttyS0"
nvram commit


Параметры порта по умолчанию 115200 8N1. Для изменения параметров порта под OpenWrt можно использовать утилитку stty. Установить ее можно следующей командой:

Код: Выделить всёРазвернуть
opkg install coreutils-stty


Добавлено спустя 3 часа 7 минут 40 секунд:
загадочно, у меня флешка вообще под /dev/sda - это глюк?

Форматнул через "mke2fs -j /dev/sda", думаю теперь - не форматнул ли чего лишнего :)

Добавлено спустя 20 минут 18 секунд:
хм, форматнул /dev/sda, а подмонтировать получилось "mount /dev/sda1 /opt", загадка :)

Добавлено спустя 8 минут 36 секунд:
Заметка:

Если мы не экспериментируем на рабочем роутере, значит нам надо наш DIR-320 подцепить как клиента к рабочему роутеру, для этого в настройках DIR-320 надо указать на странице IP Config \ WAN & LAN указать соединение с WAN - по тем же принципам, что и у домашних компьютеров, например, у меня это был адрес 192.168.1.10, шлюз 192.168.1.1, маска 255.255.255.0, а в LAN IP Setting указываем IP 192.168.2.1, маску 255.255.255.0, далее домашний комп я воткнул в DIR-320, переписал свой IP и шлюз на 192.168.2.* и на этом получил в домашнем компе одновременно инет и доступ к DIR-320, а так же интернет появился на DIR-320.

Добавлено спустя 2 минуты 41 секунду:
Попытался установить всё что надо на роутер, команды

echo -e "src optware http://ipkg.nslu2-linux.org/feeds/optwa ... oss/stable\ndest root /" > /etc/ipkg.conf
ipkg.sh update


выполнились на ура, а вот команда
ipkg.sh install uclibc-opt

скачала всё нормально, а потом при попытке установить выдала вот такое:

/opt/sbin/ldconfig: can't link /opt/lib/librt.so.0 to librt-0.9.28.so: Operation
not permitted
/opt/sbin/ldconfig: can't link /opt/lib/libresolv.so.0 to libresolv-0.9.28.so: O
peration not permitted
/opt/sbin/ldconfig: can't link /opt/lib/libpthread.so.0 to libpthread-0.9.28.so:
Operation not permitted
/opt/sbin/ldconfig: can't link /opt/lib/libnsl.so.0 to libnsl-0.9.28.so: Operati
on not permitted
/opt/sbin/ldconfig: can't link /opt/lib/libmudflapth.so.0 to libmudflapth.so.0.0
.0: Operation not permitted
/opt/sbin/ldconfig: can't link /opt/lib/libmudflap.so.0 to libmudflap.so.0.0.0:
Operation not permitted
/opt/sbin/ldconfig: can't link /opt/lib/libm.so.0 to libm-0.9.28.so: Operation n
ot permitted
/opt/sbin/ldconfig: can't link /opt/lib/libintl.so.0 to libintl-0.9.28.so: Opera
tion not permitted
/opt/sbin/ldconfig: can't link /opt/lib/libdl.so.0 to libdl-0.9.28.so: Operation
not permitted
/opt/sbin/ldconfig: can't link /opt/lib/libcrypt.so.0 to libcrypt-0.9.28.so: Ope
ration not permitted
/opt/sbin/ldconfig: can't link /opt/lib/ld-uClibc.so.0 to ld-uClibc-0.9.28.so: O
peration not permitted
/opt/sbin/ldconfig: can't chmod /opt/etc/ld.so.cache~ (Operation not permitted)
Done.
[admin@(none) root]$


Никто не в курсе, что это может быть?

Добавлено спустя 4 минуты 35 секунд:
Видимо что-то не до конца подмонтировалось :(((

Добавлено спустя 3 минуты 59 секунд:
"fdisk -l" выдаёт:
[admin@(none) /]$ fdisk -l

Disk /dev/mtdblock0: 0 MB, 262144 bytes
255 heads, 63 sectors/track, 0 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/mtdblock0 doesn't contain a valid partition table

Disk /dev/sda: 1027 MB, 1027604480 bytes
32 heads, 62 sectors/track, 1011 cylinders
Units = cylinders of 1984 * 512 = 1015808 bytes

Disk /dev/sda doesn't contain a valid partition table

Re: Робот на базе роутера D Link DIR-320

LastLeader » 27 фев 2011, 21:14

А там внутри только один UART? Я только через переходник работал. A ASUS WL500 просто 2

Re: Робот на базе роутера D Link DIR-320

=DeaD= » 27 фев 2011, 22:05

Там внутри да, один уарт. А два зачем? Я так понимаю только если один для консоли, а второй для работы?

Добавлено спустя 28 минут 18 секунд:
Поменял флешку, команда "ipkg.sh install uclibc-opt" прокатила, движемся дальше.

Добавлено спустя 16 минут 50 секунд:
Начал собирать инфу, чтобы желающие могли быстро подключаться к проекту: [[DIR-320]]

Re: Робот на базе роутера D Link DIR-320

LastLeader » 27 фев 2011, 22:31

=DeaD= http://vampik.ru/ - заточен именно под DIR-320 смотри в ту сторону. + Есть сборщик от DD-WRT. на досуге поищу интересную статью. DD-WRT вообще рулит там много наработок. Олеговская прошивка просто надежная и заточена под наш регион.
По Олеговской прошивке советую читать вот эту статью http://wl500g.info/showthread.php?t=3171&page=89
Если хотите что-то выдрать из прошивки смотреть вот здесь -http://code.google.com/p/wl500g/wiki/CompilingCustomFirmware
http://wl500g.info/showthread.php?t=23433&highlight=%C8%ED%F1%F2%F0%F3%EA%F6%E8%FF+%F1%E1%EE%F0%EA%E5+%EF%F0%EE%F8%E8%E2%EA%E8
с ssh большинство работают через - PuTTY
А в линуксе вообще ничего вроде ставить не нужно ssh 192.168.1.1 и все.
Последний раз редактировалось LastLeader 27 фев 2011, 23:01, всего редактировалось 1 раз.


Rambler\'s Top100 Mail.ru counter