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
.
Орфография и стилистика автора сохранены.
esprit
 
Сообщения: 70
Зарегистрирован: 06 июн 2008, 05:26
Откуда: Уссурийск

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

Сообщение dccharacter » 21 май 2011, 23:29

Собрал сегодня степ-даун 12->5В. С подключенным роутером со включенным вай-фаем в спокойном состоянии жрет 600мА. Анти-помеховый дроссель, выпаянный неизвестно откуда, греется до 50 градусов и температура медленно растет. Если еще подключить USB потребителей (контроллер, ЮСБ камера), наверное в районе ампера ток будет. При таком раскладе имеющиеся у меня липоли пару часов должны его продержать...

А катушку придется самому мотать. Сегодня обегал все Митино с просьбой продать дроссель 68мкГн 52кГц 3А - только пальцем у виска крутили.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

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

Сообщение Craggy » 26 май 2011, 19:20

Здравствуйте, друзья!

Столкнулся с проблемой - никак не связывается программа (наподобие suart, куски кода, в общем-то похожи) вместе с контроллером Atmega8. Схема собрана наподобие Arduino. USART на плате разведен и подключается к роутеру.
К контроллеру подключено два светодиода. в PORTC.0 он реагирует на _любую_ передачу данных по USART. А PORTC.5 , по идее, только по приходу символа 'w'. Но вот ни в какую не хочет он принимать этот символ.. Пробовал и код ASCII и кучу всего.
Собственно, код программы роутера. 9600 - скорость.

Код: Выделить всёРазвернуть
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <termios.h>
#include <fcntl.h>
#include <sys/signal.h>
#include <sys/types.h>

#define UARTPORT "/dev/ttyS0"

void main()
{
int fd;
struct termios options;
fd = open (UARTPORT, O_RDWR | O_NOCTTY | O_NDELAY);
if (fd == -1)
{
perror("Can't open port\n");
exit(1);
}

tcflush(fd, TCIFLUSH);
tcgetattr(fd, &options);
options.c_cflag &= ~PARENB;
options.c_cflag &= ~CSTOPB;
options.c_cflag &= ~CSIZE;
options.c_cflag |= CS8;
options.c_cflag &= ~CRTSCTS;
options.c_cflag &= (ICANON | ECHO | ECHOE | ISIG);
cfsetospeed(&options, B9600);
tcsetattr(fd, TCSANOW, &options);
fcntl(fd, F_SETFL, FNDELAY);
printf("UART (%s) port opened\n", UARTPORT);


while (1)
{
write(fd, "w", 1);
}

}


А вот и код прошивки для Atmega.

Код: Выделить всёРазвернуть
#include <mega8.h>
#include <delay.h>

// Standard Input/Output functions
#include <stdio.h>

void main(void)
{

// Port C initialization
// Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTC=0x00;
DDRC=0x7F;

TCCR0=0x00;
TCNT0=0x00;


TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x33;
ACSR=0x80;
SFIOR=0x00;

ADCSRA=0x00;

// SPI initialization
// SPI disabled
SPCR=0x00;

// TWI initialization
// TWI disabled
TWCR=0x00;

while (1)
      {   
      if (getchar())
      {
      PORTC.0=1;
      delay_ms(100);
      PORTC.0=0;
      delay_ms(100);
      }
      if (getchar()=='w')
      {
      PORTC.5=1;
      delay_ms(100);
      PORTC.5=0;
      delay_ms(100);
      }
      }
}



Уже сломал моск. Вопрос на данном этапе критичен, т.к. за эту программу мне поставят автоматом сложный зачет.
Буду очень благодарен за любую помощь..
Craggy
 
Сообщения: 1
Зарегистрирован: 26 май 2011, 18:53

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

Сообщение Para_bellum » 31 май 2011, 15:26

С таймаутом разобрался, изменил скрипт для прошивки и пару раз передёрнул питание. Передано 7776 байт за 1 сек. Теперь не могу найти его там, в /usr/local нету. Где искать-то?
Последний раз редактировалось Para_bellum 02 июн 2011, 15:34, всего редактировалось 1 раз.
Аватара пользователя
Para_bellum
 
Сообщения: 27
Зарегистрирован: 23 янв 2010, 17:41
Откуда: Краснодар

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

Сообщение dccharacter » 31 май 2011, 16:24

http://linux.die.net/man/1/tftp

че-то странные какие-то ключи
должно быть че-то типа
tftp 192.168.1.1 put "C:/Program Files/WinAgents/TFTP Server 4/suart" suart
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

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

Сообщение Tsi329 » 03 июн 2011, 17:01

Народ, помогите. Нужна прошивка для DIR-320 с поддержкой UVC камер (с гарантией работы Logitech C270), ftdi_sio (для поддержки Arduino) и ser2net. Остальные опции не принципиальны. Заранее спасибо.
Tsi329
 
Сообщения: 135
Зарегистрирован: 24 авг 2010, 11:48
Откуда: Минск
прог. языки: C++,C,Asm

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

Сообщение =DeaD= » 03 июн 2011, 18:26

Т.е. читать вы не планируете и набирать в поисковиках всякие уже известные вам слова - тоже?
Что именно у вас не получается?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

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

Сообщение Tsi329 » 03 июн 2011, 20:21

=DeaD, лучшая защита это нападение, но для чего нападать, если не надо защищаться?

Вопрос изучил. Требования к DIR-320:
- поддержка UVC камер (с гарантией работы Logitech C270)
- ftdi_sio (для поддержки Arduino)
- ser2net.

Нашел только две прошивки для ядра 2.6:
- WL500gpv2-1.9.2.7-rtn-r3015M.trx
после insmod ftdi_sio успешно начал работать Arduino. По крайней мере порт /dev/ttyUSB0 создался.
Но!!! Logitech C270 не работает. Камера показывает изображение. Но при любом его изменении сыпет мусором в первой трети экрана. Что делать?!?!
- WL500gpv2-1.9.2.7-rtn-r2393M.trx
Камера Logitech C270 работает!
Но для этой прошивки нет модулей. И я не могу подключить модуль ftdi_sio для моего Arduino.
Tsi329
 
Сообщения: 135
Зарегистрирован: 24 авг 2010, 11:48
Откуда: Минск
прог. языки: C++,C,Asm

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

Сообщение =DeaD= » 03 июн 2011, 20:25

Ага, с дешифровкой уже понятно, похоже что я был не прав, прошу прощения :pardon:

Вам надо драйвера чтобы под FT232 были, так?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

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

Сообщение dccharacter » 03 июн 2011, 20:39

А зачем FTDI - есть же УАРТ и в роутере и в Ардуине???
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

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

Сообщение Para_bellum » 04 июн 2011, 01:13

Para_bellum писал(а):Передано 7776 байт за 1 сек. Теперь не могу найти его там, в /usr/local нету. Где искать-то?

Код: Выделить всёРазвернуть
@Echo Off 
:BEGIN
ping -n 1 -w 10 192.168.0.1
If errorlevel 1 Goto BEGIN
If errorlevel 0 Goto FLASH
Goto END

:FLASH
Echo *** Start hurrr ***
tftp -i 192.168.0.1 put suart /usr/local
:END

Вот такой скрипт, подскажите пожалуйста, я в unix вообще никак.
Аватара пользователя
Para_bellum
 
Сообщения: 27
Зарегистрирован: 23 янв 2010, 17:41
Откуда: Краснодар

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

Сообщение Tsi329 » 04 июн 2011, 05:12

Para_bellum писал(а):Передано 7776 байт за 1 сек. Теперь не могу найти его там, в /usr/local нету. Где искать-то?
Вот такой скрипт, подскажите пожалуйста, я в unix вообще никак.

Как по мне. Так это скрипт для прошивки самого роутера, но ни как для передачи файла.
По ссылке wiki/DIR-320 приводится скрипт для передачи одного файла, но для этого необходимо подымать TFTP-сервер, что лениво, конечно. Поэтому я использовал простую флешку под Fat32. Вставляю в роутер, узнаю ее имя:
Код: Выделить всёРазвернуть
fdisk -l

например /dev/sda1
монтирую:
Код: Выделить всёРазвернуть
mount /dev/sda1 /opt

копирую:
Код: Выделить всёРазвернуть
cp /opt/suart /usr/local/

размонтирую:
Код: Выделить всёРазвернуть
umount /dev/sda1

выставляем права и автозагрузка:
Код: Выделить всёРазвернуть
chmod +x /usr/local/suart
echo “#!/bin/sh” > /usr/local/sbin/post-boot
echo “/usr/local/suart” >> /usr/local/sbin/post-boot
chmod +x /usr/local/sbin/post-boot

применяю изменения:
Код: Выделить всёРазвернуть
flashfs save
flashfs commit
flashfs enable


Добавлено спустя 43 секунды:
=DeaD= писал(а):Вам надо драйвера чтобы под FT232 были, так?

Да. Буду очень обязан.

Добавлено спустя 4 минуты 2 секунды:
dccharacter писал(а):А зачем FTDI - есть же УАРТ и в роутере и в Ардуине???

Есть. Но там есть небольшая загвоздка. Как я понимаю нужен конвертер 5V <-> 3.3V.
Более того у меня и конвертер собран, так что просто подключить остается, но...
1. Я не хочу вскрывать новенький роутер. Гарантия. А я с ним экспериментирую. А если случайно убъю? ;)
2. Я всё-таки хочу попытаться заставить программироваться Arduino через USB по Wifi. И красивое решение, и мне очень удобно будет отлаживаться.
Заранее спасибо за помощь.
Tsi329
 
Сообщения: 135
Зарегистрирован: 24 авг 2010, 11:48
Откуда: Минск
прог. языки: C++,C,Asm

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

Сообщение =DeaD= » 04 июн 2011, 05:20

Tsi329 писал(а):1. Я не хочу вскрывать новенький роутер. Гарантия. А я с ним экспериментирую. А если случайно убъю? ;)

Поставьте токоограничительные резисторы - вряд ли получится через них убить.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

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

Сообщение dccharacter » 04 июн 2011, 05:22

Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

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

Сообщение Tsi329 » 04 июн 2011, 14:57

=DeaD= писал(а):Поставьте токоограничительные резисторы - вряд ли получится через них убить.

Это больше была ирония.

Добавлено спустя 57 секунд:
dccharacter писал(а):http://www.nslu2-linux.org/wiki/Peripherals/USB2Serial

Спасибо, но я с этим вопросом знаком. Мне нужна прошивка. Кто-нибудь сможет помочь?
Tsi329
 
Сообщения: 135
Зарегистрирован: 24 авг 2010, 11:48
Откуда: Минск
прог. языки: C++,C,Asm

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

Сообщение Para_bellum » 04 июн 2011, 15:47

Tsi329, премного благодарен.
Аватара пользователя
Para_bellum
 
Сообщения: 27
Зарегистрирован: 23 янв 2010, 17:41
Откуда: Краснодар

Пред.След.

Вернуться в Наши проекты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15