roboforum.ru

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


OTTO

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

OTTO

Сообщение Kaktus » 04 май 2018, 11:04

Здравствуйте, уважаемые. Решил детенышам смастерить робота, выбор пал на ОТТО с блютуз управлением. Собрал, залил базовую прошивку, засада с подключением блютуз модуля возникла. Инструкция здесь: http://www.instructables.com/id/Otto-DIY-Arduino-Bluetooth-Robot-Easy-to-3Dprint/ Модуль у меня HC-06. Step 4: Bluetooth (BT) Setup прохожу, вроде все нормально, приступаю к Step 5: ​main Code for Bluetooth, и при попытке заливке OTTO_BT.ino при компиляции ругается так:

Код: Выделить всёРазвернуть
Arduino: 1.8.4 (Windows 10), Плата:"Arduino Nano, ATmega328P"

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::attachServos()'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::init(int, int, int, int, bool, int, int, int, int)'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::detachServos()'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::setTrims(int, int, int, int)'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::saveTrimsOnEEPROM()'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::_moveServos(int, int*)'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::home()'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::oscillateServos(int*, int*, int, double*, float)'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::_execute(int*, int*, int, double*, float)'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::getRestState()'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::setRestState(bool)'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::jump(float, int)'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::walk(float, int, int)'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::turn(float, int, int)'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::bend(int, int, int)'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::shakeLeg(int, int, int)'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::updown(float, int, int)'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::swing(float, int, int)'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::tiptoeSwing(float, int, int)'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::jitter(float, int, int)'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::ascendingTurn(float, int, int)'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::moonwalker(float, int, int, int)'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::crusaito(float, int, int, int)'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::flapping(float, int, int, int)'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::getDistance()'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::getNoise()'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::getBatteryLevel()'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::getBatteryVoltage()'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::getMouthShape(int)'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::putMouth(unsigned long, bool)'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::getAnimShape(int, int)'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::putAnimationMouth(unsigned long, int)'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::clearMouth()'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::_tone(float, long, int)'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::bendTones(float, float, float, long, int)'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::sing(int)'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Otto\Otto.cpp.o (symbol from plugin): In function `Otto::attachServos()':

(.text+0x0): multiple definition of `Otto::playGesture(int)'

libraries\Otto_hardware_serial\Otto.cpp.o (symbol from plugin):(.text+0x0): first defined here

collect2.exe: error: ld returned 1 exit status

exit status 1
Ошибка компиляции для платы Arduino Nano.

Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"



Разные версии Arduini IDE попробовал. Мобть кто знает, где собака порылась? А то я не силен в таких вещах:)
Kaktus
 
Сообщения: 32
Зарегистрирован: 04 май 2018, 10:36

Re: OTTO

Сообщение Eruman » 04 май 2018, 22:03

Ну собственно он и пишет: "множественное определение функции". Библиотека криво стоит, возможно в разных папках. Я бы сперва почистил, а затем переустановил штатным способом.
Соединяй и здравствуй.
Аватара пользователя
Eruman
 
Сообщения: 897
Зарегистрирован: 12 авг 2010, 15:10
Откуда: Астраханская обл.

Re: OTTO

Сообщение RootAdmin » 04 май 2018, 22:09

Ну и где - тоже пишет
libraries\Otto\Otto.cpp.o
libraries\Otto_hardware_serial\Otto.cpp.o
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

Re: OTTO

Сообщение Kaktus » 05 май 2018, 10:27

Спасибо, прошивки лить наловчился:) Теперь другая засада - не реагирует робот на управление через блютуз...
Подозреваю, что с последовательностью и количеством прошивок намудрил. С ним в архиве уйма прошивок, некоторые взаимно повторяющиеся... Но вроде почти все по инструкции делал.
Подскажите, Ардуину в исходное состояние вернуть?
Кто нибудь собирал Отто на форуме? Судя по поиску нет. Правильно я понимаю, что его даже за робота не считают? :)
Kaktus
 
Сообщения: 32
Зарегистрирован: 04 май 2018, 10:36

Re: OTTO

Сообщение Angel71 » 05 май 2018, 12:07

при чём тут последовательности прошивок? выполняется последняя прошивка. код изучай (не знаешь си, изучай). смотри настройки блютуза, особенно какой битрейт уарта/блютуза.
единообразно, отто, шмотто или ещё что. есть детали из которых оно состоит - блютуз, сервы, ардуина,... есть код, который с этим что-то делает. всё.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: OTTO

Сообщение dimamichev » 05 май 2018, 14:06

Kaktus писал(а):Кто нибудь собирал Отто на форуме? Судя по поиску нет. Правильно я понимаю, что его даже за робота не считают? :)

Есть ещё ДРОЙДИК АРДУИНО из "фанерки"- робот не робот вопрос философический, а вариантов управления 4 сервоприводами много. Вы же платформу уже сделали? и вопрос только в прошивке?
Вложения
maxresdefault.jpg
Аватара пользователя
dimamichev
 
Сообщения: 1386
Зарегистрирован: 03 янв 2013, 16:27

Re: OTTO

Сообщение Kaktus » 05 май 2018, 15:24

Angel71 писал(а):код изучай (не знаешь си, изучай). смотри настройки блютуза, особенно какой битрейт уарта/блютуза.
.

Ну как-бы ради Отто си изучить наверное крутовато будет :roll: А насчет блютуза, где его настройки рыть? Битрейты и т.д?
Я же мануал полистал, там все просто, как два пальца об асфальт, а на деле выходит, чем дальше в лес - тем толще партизаны...
dimamichev писал(а):Вы же платформу уже сделали? и вопрос только в прошивке?

Да, напечатал соколика. С третьей попытки подходящий для моих железок корпус получился...
DSCF7377[1].jpg


Добавлено спустя 2 минуты 37 секунд:
И еще дурацкий вопрос меня волнует: кнопка ресет на Дуне что сбрасывает? :shock:
Гугл с ходу не ответил...

Добавлено спустя 14 минут 32 секунды:
Это оно? Я правильно понимаю, что он шьется на 115200 ('8'), а дефолтное значение 9600?
Once the LED off configuration will start and at the end LED will blink
After this you can pair your module
*/
// Options:
int ArduLED=13; //Internal Arduino´s LED
char ssid[10] = "Zowi"; // Name for Bluetooth.
char baudios = '8'; // 1=>1200 baudios, 2=>2400, 3=>4800, 4=>9600 (default), 5=>19200, 6=>38400, 7=>57600, 8=>115200
char password[10] = "1234"; // Password for pairing
Kaktus
 
Сообщения: 32
Зарегистрирован: 04 май 2018, 10:36

Re: OTTO

Сообщение dimamichev » 05 май 2018, 15:28

Кнопка ресет запускает исполнение скетча заново... Помочь по делу могут на "Ардуино программирование - форум", но надо понимать хоть что то...
Аватара пользователя
dimamichev
 
Сообщения: 1386
Зарегистрирован: 03 янв 2013, 16:27

Re: OTTO

Сообщение Angel71 » 05 май 2018, 15:36

не изучай, раз так нравится мучаться. туда же наверно и английский :pardon: заметно, что не читал написаное в том инструктаблесе.
а хз на какой битрейт твой модуль настроен, в моём 05 было 38400, которое сразу же было изменено на 115200.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: OTTO

Сообщение Kaktus » 05 май 2018, 20:38

Angel71 писал(а):не изучай, раз так нравится мучаться. туда же наверно и английский заметно, что не читал написаное в том инструктаблесе.

я уже третий день эти инструктаблесы читаю. как ты думаешь, просто сорокалетнему дядьке с опытом программирования на бейсике 25 лет тому ворваться в эту тему?
В общем, выяснил, что модуль блютус не прошивается. Модуль HC-6, проверил блымая с блютус терминала LED13 - работает.
Смотрим, что пишет создатель скетча:
ConfigBluetooth HC-06 from Arduino.
Change name, password and baud using serial port, with no user interaction.
1.- Upload this code to Arduino nano (no bluetooth module connected)
2.- unplug USB
3.- Connect HC-06
4.- Power arduino from external power.
5.- Wait for the Arduino´s onboard led to start blinking
6.- Disconnect power. Everything is done.

After upload code you have 10 seconds to connect the module
BT ---- Arduino
TX ----> RX
RX <---- TX

Once the LED off configuration will start and at the end LED will blink
After this you can pair your module
*/
// Options:
int ArduLED=13; //Internal Arduino´s LED
char ssid[10] = "Zowi"; // Name for Bluetooth.
char baudios = '4'; // 1=>1200 baudios, 2=>2400, 3=>4800, 4=>9600 (default), 5=>19200, 6=>38400, 7=>57600, 8=>115200
char password[10] = "1234"; // Password for pairing

Поправьте меня, если что не так делаю:
1. Заливаю прошивку с отключенным блютус модулем;
2. Отключаю юсб;
3. Подключаю БТ модуль (я правильно понимаю, что достаточно + питания включать/отключать?)
4. Подаю питание на ардуину с внешнего источника;
пункты 2,3,4 проделываю в течении 10 сек.
5. Жду пока LED13 заморгает;
6. Отключаю питание;
Если я правильно понимаю, после этого при включении модуль блютуз должен иметь имя Zowi?
После заливки Serial Monitor пишет ATAT+NAMEZowiAT+BAUD4AT+PIN1234
Пробовал на разных битрейтах - шляпа...
Kaktus
 
Сообщения: 32
Зарегистрирован: 04 май 2018, 10:36

Re: OTTO

Сообщение Angel71 » 05 май 2018, 21:24

хоть в 50 или в 60, дело не в возрасте. какой там код, правильно всё подключено нет ли проблем с контактом разъёмов или не перебит ли провод, есть ли проблемы с питанием (всё лишнее поотключать можно попробовать), что действительно делал, это сам гадай. взяв юсб-уарт переходник можно для начала проверить работоспособность самого модуля и если работает в терминале настроить пароли и прочее. если так прям сложно в их коде разобраться, в несколько строк кода (в сети полно статей и примеров) можно было бы на ардуинке, но...
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: OTTO

Сообщение dimamichev » 05 май 2018, 22:30

Если блютуз модуль подключен к 0 и 1 выводу (это правда для УНО) их тоже надо отключать...Вообще если хотите сами, можно про управление почитать ... http://remotexy.com/ru/editor/
Аватара пользователя
dimamichev
 
Сообщения: 1386
Зарегистрирован: 03 янв 2013, 16:27

Re: OTTO

Сообщение ilalexey » 05 май 2018, 22:59

dimamichev писал(а):можно про управление почитать ... http://remotexy.com/ru/editor/

1. Загрузите исходный код программы, откройте его в Arduino IDE.
2. Установите библиотеку RemoteXY для Arduino IDE.

Может наоборот?
Аватара пользователя
ilalexey
 
Сообщения: 3202
Зарегистрирован: 13 май 2011, 21:37
Откуда: Bb

Re: OTTO

Сообщение dimamichev » 05 май 2018, 23:17

Да, наверное, просто первый пункт выполнял не так - в свой скетч вставлял строчки из исходного кода предлагаемой программы, копируя прямо со страницы сайта. Библиотеку лучше сразу установить.
Аватара пользователя
dimamichev
 
Сообщения: 1386
Зарегистрирован: 03 янв 2013, 16:27

Re: OTTO

Сообщение Kaktus » 09 май 2018, 00:54

В общем, победил ОТТО ценой неимоверных усилий... Замутил из антикварного телефонного кабеля UART адаптер, с бубнами настроил НС 06 (мне достался модуль с прошивкой V3, китайские друзья слегка подгадили с АТ командами: http://drach.pro/blog/hi-tech/item/149-bluetooth-hc-06). Так что имейте в виду.
У меня еще один дурацкий вопрос: в мануале упоминается LiPo аккумулятор, продаван в радиомагазине напел мне, что его напрямую к Arduino Nano Shield можно подключить, и все будет заряжаться-разряжаться... Но что-то я конкретной информации по этому поводу найти не могу, мобть носом ткнете?
Kaktus
 
Сообщения: 32
Зарегистрирован: 04 май 2018, 10:36

След.

Вернуться в Новичкам или основы основ роботостроения.

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

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