Вопрос по управлению роботом на сервомоторах.

Юрец
Offline
Зарегистрирован: 20.01.2016

Уважаемые форумчане, доброго всем дня.

Мой сын занимается в кружке робототехники, ну и я с ним заодно, куда ж без этого. В процессе нашего общего роботостроительного познания мы сделали шестилапого робота на базе Меги 2560 с сервошилдом и 12 сервомоторами SG90 (по 2 на ногу). Управление осуществляется с помощью ИК-пульта от "триколора". Есть 2 алгоритма движения, в общем, всё хорошо. Кстати, большое спасибо всем форумчанам, кто потратил своё время и знания на помощь в программировании.

Робот представляет, по сути, ходовой макет для отработки разных решений. И вот возникла потребность сделать следующий шаг, а именно перевести робота на более продвинутое управление.

Вот тут и появилась дилемма. Какой тип управления выбрать.

1. Радиоканал с модулем нрф24. Плюсы: модуль стоит копейки, дальность действия приемлемая, энергопотребление низкое. С минусами сложнее. Во-первых нужен джостик (к примеру от PS2, самому собирать джостик не хочется). Допустим джостик от PS2 есть, но как его привязать к меге с помощью нрф? Нужно же установить связь передатчик-приёмник. Если нрфки шьются соответствующими скетчами в которых им привязываются специальные коды, то как быть с джостиком? Во-вторых многие жалуются на то, что нрф24 плохо дружат с мегой 2560, ибо 3,3В на меге плохо стоит и нужно отдельно городить стабилизированное 3,3В, а на нрф нужно ещё кучу всякой требухи припаивать. Или это всё происки врагов?

2. Радиоканал по Блютуз. Плюсы: тоже недорогой, вроде как проще программить, есть специальные программные конструкторы для смартфонов, чтоб городить управление, не надо ничего допиливать. Минусы: энергопотребление выше, дальность действия низкая.

3. ВайФай управление. Плюсы: вроде как отличная дальность действия, вроде тоже есть конструкторы для создания управления, тоже ничего не надо паять. Минусы: самое большое энергопотребление. У меня сейчас робот ходит на 4-х пальчиковых батарейках, а если прикрутить вайфай, надо думать о другом питании.

4. Квантово-гравитационное управление. Плюсы: дальность дейстия - неограничена, энергопотребление  -сверхнизкое, быстродействие - мгновенное. Минусы: нет, но такой системы не существует.

Вот, собственно, варианты.  Посоветуйте, пожалуйста, какой вариант управления наиболее приемлемый, не обязательно из моего списка. Заранее спасибо.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Мы делали по радио-каналу - самое простое решение.

Джойстик покупается на ali за 40 рублей и подсоенидяется к меге или любой другой ардуине десятком строк кода. У него есть проблемы с центровкой, но Вам же не нужно все 1024 градации наклона? Мы ограничились 16 и все проблемы снялись - отлично работает.

А про "Квантово-гравитационное управление" подумайте - интересно.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

вот такой интересный вариант

хотя с телефона можно конечно

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

jeka_tm пишет:

вот такой интересный вариант

Симпатичный! Добавил в wish-list

Юрец
Offline
Зарегистрирован: 20.01.2016

Спасибо большое. В случае с ардуиноджостиком нужно исхитриться реализовать 2 алгоритма движения - "групповой шаг" и "последовательный". Нужны дополнительные кнопки, например, для переключения режимов движения, заснуть-проснуться и т.д. На ИК-пульте я просто привязал навигационную и цифровую клавиатуры к режимам. Блютуз-геймпад прикольная вещь, но мне кажется кнопок маловато. Наверное придётся городить ардуиноджосик под себя.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Юрец пишет:

Спасибо большое. В случае с ардуиноджостиком нужно исхитриться реализовать 2 алгоритма движения - "групповой шаг" и "последовательный". Нужны дополнительные кнопки, 

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

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

на джойстике от ps2 кнопок много

Юрец
Offline
Зарегистрирован: 20.01.2016

jeka_tm пишет:

на джойстике от ps2 кнопок много

вот в том и вопрос, джойстик от ps2 нормально свяжется с ардуино с нрф или надо что-то ещё к нему допиливать?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

да что допиливать? все работает. и там свой приемник

тут видео есть

http://arduino.ru/forum/proekty/tank-upravlyaemyi-dzhoistikom-ps-2#comment-36296

Юрец
Offline
Зарегистрирован: 20.01.2016

В передатчике и в приёмнике должны совпадать типа адреса

const uint64_t pipe = 0xE8E8F0F0E1LL в примере; джойстик от PS2 генерирует нужный адрес? Или его надо считать как-то? Вашу ветку про ПТСАУ я читал, жаль что скетч с яндексдиска улетел, я бы нарыл в нём что-нибудь полезное. Так как я не программёр, приходится своим скудным умишком доходить, а потом сыну рассказывать.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

приемник идет в комплекте с беспроводным пультом от ps2. адреса уже прописаны. все что нужно это считать данные с приемника. библиотека есть, все просто достаточно. подключи правильно (в той теме уже давал как подключать), залей пример и все сразу понятно станет. ты далеко не первый человек что будет подключать. сам недавно код писал человеку для его игрушки. с пультом проблемм нет. код дать не могу

Юрец
Offline
Зарегистрирован: 20.01.2016

Большое спасибо. В основном, всё ясно. Буду работать в этом направлении.

toxikaciya
Offline
Зарегистрирован: 11.04.2016

jeka_tm пишет:

приемник идет в комплекте с беспроводным пультом от ps2. адреса уже прописаны. все что нужно это считать данные с приемника. библиотека есть, все просто достаточно. подключи правильно (в той теме уже давал как подключать), залей пример и все сразу понятно станет. ты далеко не первый человек что будет подключать. сам недавно код писал человеку для его игрушки. с пультом проблемм нет. код дать не могу

jeka_tm, а с инициализацией джоя проблем не было? Сам сейчас ковыряю Exeq Gamehunter WR, так с дуней он никак не хочет работать. Джой ждет подключения, но ресивер поиск не ведет. От компьютера и первой соньки все работает. Библиотека Billa Portera.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

а вообще рабочий? на приставке может проверял. приемник сам вроде коннектится, иногда пульт приходится выключать включать когда не могут соеденится. но скорее всего ты не тот канал выставил на пульте и джойстике. проверь сначала отдельно работу, а потом уже к ардуине

toxikaciya
Offline
Зарегистрирован: 11.04.2016

Джойстик рабочий. На соньке в играх работает, на компе в NES-эмуляторе тоже, опрос кнопок проходит. Похоже придется городит тест на SPI и мониторить USB порт, смотреть, есть ли еще какие коды.

PS дуня мега и нано.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

подключал так?

и пример не работает с этой либой?

 

toxikaciya
Offline
Зарегистрирован: 11.04.2016

На оба вопроса да. В мониторе выдает такую картинку:

OUT:IN
1:FF 42:FF 0:FF 0:FF 0:FF 0:FF 0:FF 0:FF 0:FF 0:0 0:0 0:0 0:0 0:0 0:0 0:0 0:0 0:0 0:0 0:0 0:0 
Controller mode not matched or no controller found
Expected 0x41 or 0x73, got FF
No controller found, check wiring, see readme.txt to enable debug. visit www.billporter.info for troubleshooting tips
Unknown Controller type
 
Ресивер просто не ведет поиск джойстика (должно сопровождаться мерцанием зеленого индикатора при поиске и кратким подмигиванием при коннекте)
jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

http://www.billporter.info/2011/03/27/arduino-playstation-2-controller-l...

попробуй с резисторами как на сайте

toxikaciya
Offline
Зарегистрирован: 11.04.2016

Подтяжку даты делал, с ограничительными резисторами нет (нету дома резиков, а сам в отпуске). Значения CTRL_CLK в библиотеке тоже менял, как включение-отключение программной подтяжки там же.

PS списался с работой, вечером подвезут - попробую.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

значит твой просто не поддерживается

toxikaciya
Offline
Зарегистрирован: 11.04.2016

jeka_tm пишет:

значит твой просто не поддерживается

Тоже уже к этому склонялся, буду пробовать на аппаратном SPI завести, хотя бы инициализацию прогнать. Есть подозрения на рассинхронизацию в Soft SPI.

toxikaciya
Offline
Зарегистрирован: 11.04.2016

С резисторами не прошло, будем думать над SPI.