roboforum.ru

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

OR-WRT - Поддержка

Разработка стандартизированных модулей для домашнего робостроения.
Правила форума
Правила раздела OpenRobotics

Re: OR-WRT - Поддержка

Сообщение =DeaD= » 10 дек 2012, 20:28

elmot писал(а):Особенность роутеров с 400МГц процами - они слегка мажут по частоте на скорости uart 115200, и от этого пучит именно атмегоские uartы

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

Re: OR-WRT - Поддержка

Сообщение elmot » 10 дек 2012, 20:38

USB-UART не пучило ни разу, а атмеги пучило все по-моему. МК других производителей я еше не пробовал всерьез, но скоро буду пробовать. В принципе, при небольшом непопадании в частоту корректность приема символов зависит от алгоритма работы uart. Очевидно, на атмегах он чувствителен к отклонениям.
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: OR-WRT - Поддержка

Сообщение Xelit » 11 дек 2012, 10:29

Holmes, elmot,
Спасибо, инфа полезная... скорость скину, пауза на старте и так стоит. А мусор - таки да, приходит на 115200.

Добавлено спустя 4 минуты 14 секунд:
elmot писал(а):USB-UART не пучило ни разу, а атмеги пучило все по-моему. МК других производителей я еше не пробовал всерьез, но скоро буду пробовать. В принципе, при небольшом непопадании в частоту корректность приема символов зависит от алгоритма работы uart. Очевидно, на атмегах он чувствителен к отклонениям.


Дык синхро линии у них нет, а сериал.бегин лишь пытается подстраиваться под чужой UART, т.к. данных нет в нём на период коннекта. В случае гулянья по частоте (а они будут обязательно) приём не гарантирован, тут уже уарты с качественным буфером и суръёзными алгиротмами нужны. Но нам потерянный сигнал не смертелен :crazy:
(Это я не про USB-UART, у него, походу и с буфером порядок и ... сделан хорошо)
Xelit
 
Сообщения: 5
Зарегистрирован: 09 дек 2012, 22:44

Re: OR-WRT - Поддержка

Сообщение Holmes » 18 дек 2012, 13:52

elmot писал(а):
Holmes писал(а):По поводу этой проблемы, было такое дело что тоже не работало. Лечил добавлением delay(5000) перед Serial.begin.

В принципе неплохое решение, но не идеальное. Внутренний UART выплевывает некоторое кол-во мусора в момент загрузки, это delay помогает это все пропустить. Но лучше бы пропускать по сигнатуре.
Holmes писал(а):Но если дуину подключать к роутеру через USB (что я и делаю, т.к. внутренний уарт регулярно слетает, видимо из-за помех), то delay может приводить к глюкам.

Особенность роутеров с 400МГц процами - они слегка мажут по частоте на скорости uart 115200, и от этого пучит именно атмегоские uartы. Так что либо usb на любой разумной скорости(кстати, мусора там тоже не будет), либо 57600.



Вот сейчас робот катается с дуиной нано через usb к роутеру (питается роутер от хоббийного импульсника UBEC 5V 3A), глюки тоже проскакивают (пробовал ставить кондеры на 220 мкФ и 0.1 мкФ после импульсника, не помогает). Проявляется это в том что инфа перестает ходить с компа на дуину и обратно. Причем отваливаний довольно много если я ставлю магазинный usb кабель (экранированный) или самоспаянный короткий и удобный (но естественно неэкранированный, просто 4 проводка). Пока победил проблему поставив тиньку и герконовое реле на размыкание (в разрыв Vcc USB, кабель = самоспаянные 4 проводка). Комп постоянно общается с дуиной и если возникает таймаут в 2,5 сек - дуина просит тиньку передернуть usb коннект (отключает на 10 секунд).
Я понимаю что это жуткий изврат ... но пока вот так. Причем после того как я добавил тиньку и реле падать стало на порядок реже, значит они добавляют некую помехозащиту. Вот я и думаю что бы вместо них поставить...
Попробую теперь перейти с 115200 на скорости пониже. Может кто подскажет что еще можно попробовать?
Или может можно на роутере скрипт написать который бы сам тестировал подключение и сбрасывал если что (если такое возможно)?
Аватара пользователя
Holmes
 
Сообщения: 230
Зарегистрирован: 08 окт 2010, 14:22
Откуда: Москва
прог. языки: Java, Javascript, C
ФИО: Роман

Re: OR-WRT - Поддержка

Сообщение Holmes » 19 дек 2012, 01:35

На 57600 глюки.
На 38400 пока живет без происшествий. К тому же исчезли ошибки CRC (протокол включает 7-битный CRC).
Буду тестировать дальше.
Аватара пользователя
Holmes
 
Сообщения: 230
Зарегистрирован: 08 окт 2010, 14:22
Откуда: Москва
прог. языки: Java, Javascript, C
ФИО: Роман

Re: OR-WRT - Поддержка

Сообщение elmot » 19 дек 2012, 09:51

немного странно, конечно... на 57600 не должно бы глючить. Программа на мк точно успевает все принимать и обрабатывать?
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: OR-WRT - Поддержка

Сообщение SASolovjov » 19 дек 2012, 12:23

Holmes писал(а):Вот сейчас робот катается с дуиной нано через usb к роутеру

Можно глянуть Ваш скетч? У меня такая же связка, есть проблема с обработкой данных, например нажимаю и держу кнопку вперед, происходит посылка кучи инфы, и пока не смог разобраться как ее разложить по полочкам в ардуине, т.е. из всего принятого буфера выловить первую команду, выполнить ее и т.д.
SASolovjov
 
Сообщения: 12
Зарегистрирован: 22 дек 2011, 17:13

Re: OR-WRT - Поддержка

Сообщение Holmes » 19 дек 2012, 22:46

Вроде всё успевается. Сужу по тому что даже если очень быстро и хаотично давить на клавиши управления (стрелки) робот всё равно успевает отрабатывать их все (по 10 в секунду точно) и ни одной CRC error.
Сегодня утром делал прогон на 30 минут. Сначала через пару минут коннект умер, я его вручную переткнул (вынул дуину и вставил через 10 сек) и далее более 20 минут без лагов. Вечерний прогон лагов не дал. Пока катаюсь на 38400 бод.

Скетч приложил. Каждый тип команды имеет фиксированную заранее известную длину. Комменты вроде есть, но если что поясню.
В качестве драйвера двигателей у меня RoboClaw (если надо выложу ее либы, хотя всё есть на сайте basicmicro).

Программа управления с компа на C#. Лишнюю инфу не шлет. То есть нажал клавишу вперед - она отправила команду двигателям, отпустил клавишу - еще команда.
Вложения
Robot_Base.cpp
(4.71 КиБ) Скачиваний: 201
Аватара пользователя
Holmes
 
Сообщения: 230
Зарегистрирован: 08 окт 2010, 14:22
Откуда: Москва
прог. языки: Java, Javascript, C
ФИО: Роман

Re: OR-WRT - Поддержка

Сообщение Holmes » 23 дек 2012, 00:44

Всё равно регулярно коннект между 703n и дуиной умирает... Спасает только ресеттер (тинька + реле).
Аватара пользователя
Holmes
 
Сообщения: 230
Зарегистрирован: 08 окт 2010, 14:22
Откуда: Москва
прог. языки: Java, Javascript, C
ФИО: Роман

Re: OR-WRT - Поддержка

Сообщение elmot » 23 дек 2012, 01:36

какое питание?

Добавлено спустя 17 минут 28 секунд:
вообще "регулярно рвется, так что только ресет помогает" - это скорее всего баг в прошивке дуни или проблемы с грязным питанием.
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: OR-WRT - Поддержка

Сообщение Holmes » 23 дек 2012, 17:54

Вот такое питание
http://www.hobbyking.com/hobbyking/stor ... ction.html

Насчет возможных косяков в прошивке я сильно сомневаюсь. В принципе я ее выложил несколькими постами выше, может глянете?

Может не надеяться на питание по USB и завести на дуину отдельно с того же импульсника?
Аватара пользователя
Holmes
 
Сообщения: 230
Зарегистрирован: 08 окт 2010, 14:22
Откуда: Москва
прог. языки: Java, Javascript, C
ФИО: Роман

Re: OR-WRT - Поддержка

Сообщение elmot » 23 дек 2012, 18:45

Holmes писал(а):Вот такое питание
http://www.hobbyking.com/hobbyking/stor ... ction.html

Насчет возможных косяков в прошивке я сильно сомневаюсь. В принципе я ее выложил несколькими постами выше, может глянете?

Может не надеяться на питание по USB и завести на дуину отдельно с того же импульсника?

Я под дуни ничего не писал, так что толку в моем посмотрении немного.
а с питанием всякое бывает. Что там еще висит на том же импульснике? разъемы usb не глючат от вибраций?
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: OR-WRT - Поддержка

Сообщение Holmes » 24 дек 2012, 01:22

На импульснике только роутер.
Вибрации точно ни при чем. Робот может просто стоять (двигатели не работают, только каждые 2 сек туда сюда ходит команда поддерживающая коннект) и через некоторое время отваливается.

Добавлено спустя 3 часа 12 минут 55 секунд:
Мда, возможно дело было действительно в прошивке...
После исправления 2 часа катался без происшествий.
Но очень уж странно, глюк в прошивке случался если за раз приходила команда 32 и более байт.
Однако, программа на ноуте не шлет таких длинных команд, максимальная длина отсылаемой команды 9 байт. Не пойму откуда могли браться 32.
(прикрепил новую прошивку)
Вложения
Robot_Base.cpp
(4.51 КиБ) Скачиваний: 170
Аватара пользователя
Holmes
 
Сообщения: 230
Зарегистрирован: 08 окт 2010, 14:22
Откуда: Москва
прог. языки: Java, Javascript, C
ФИО: Роман

Re: OR-WRT - Поддержка

Сообщение =DeaD= » 24 дек 2012, 09:43

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

Re: OR-WRT - Поддержка

Сообщение Holmes » 24 дек 2012, 12:11

Да тут может быть даже буфер на атмеге, ведь он там вроде тоже есть в размере 128 байт.
Просто косяк выявился только сейчас. Раньше всё работало (когда у меня стоял другой драйвер двигателей, с ШИМ, а роутер был тот же).
Теперь драйвер управляется по уарту, и в прошивке используется еще и SoftwareSerial. Думаю что с этим связано.
Аватара пользователя
Holmes
 
Сообщения: 230
Зарегистрирован: 08 окт 2010, 14:22
Откуда: Москва
прог. языки: Java, Javascript, C
ФИО: Роман

Пред.След.

Вернуться в Open Robotics

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

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