Продолжимс! BalancingWii 1.0 - Segway на базе MultiWii

Под осень дошли руки наконец доделать игрушку 😃

Выложил новую версию на гит github.com/mahowik/BalancingWii

Из главного:

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

Начало тут rcopen.com/blogs/83206/18515
или даже тут rcopen.com/blogs/83206/18134 😃

Дочь тоже поучаствовала в проекте и робот заимел себе глаза и густой причесон! 😃

==============================================================

This is stable 1.0 release of balancing robot (based on modified/extended MultiWii 2.3 firmware).

New features:

  • Fall down?! New auto rise (stand up) function! (can be activated via box in GUI).
    Now it’s also possible to stand up manually when it’s fall down.
  • Position hold (can be activated via box in GUI).
    Try to play, how it returns when you are pushing/kicking the robot.
  • Possibility to control/steer from Android device by MultiWii EZ-GUI tool (go to Config -> Advanced -> Model control New)
  • More stability and speed accordingly (see in video!)
  • Predefined PIDs
  • Simple mode for newcomers
  • Set of code refactorings and cleaning.

Hardware:

  • Arduino nano (atmega328p)
  • mpu6050 gyro-accelerometer (GY_521)
  • any RC receiver with CPPM (ppmsum) output OR serial Bluetooth module like HC-05
  • A4988 motor drivers with 1/8 microstepping configuration (see www.pololu.com/product/1182/ for details)
  • Nema 17 stepper motors
  • 1/8 Buggy Wheels
  • Buzzer

www.multiwii.com/forum/viewtopic.php?f=7&t=4787

Enjoy! 😉

  • 20386
Comments
pilot258

Блин Александр, просто супер, уже захотел себе такого с глазами.

serenya

А я то думаю на кой кляп у меня валяется пара движков пбмг-200-265 от дисководов 5.25 и пара драйверов на A3967. Конечно слабоваты и движки и драйвера, но попробовать можно. Такой вопрос есть, пока доедет гироаксель попробовать на AIOP можно? И еще, есть приемник лишний v8r4-ii без cppm, не подойдет?

tusik

Класс! Пора делать большого

OK-40

Отличная работа! А возможна реализация проекта на одном колесе (шаре)?

ADF

На увеличение массы полезного груза сверху - как реагирует? До 1:1 масштабируем?

ATiGeR

А как он позицию держит? Не очень понятно - гпс вроде нет, датчиков в колесах тоже…

Covax

гпс)))))

AlcoNaft43
ATiGeR;bt129521

А как он позицию держит? Не очень понятно - гпс вроде нет, датчиков в колесах тоже…

На правах КЭПа - так же как и квадрокоптер, гиры и акксель

mahowik
serenya;bt129509

А я то думаю на кой кляп у меня валяется пара движков пбмг-200-265 от дисководов 5.25 и пара драйверов на A3967. Конечно слабоваты и движки и драйвера, но попробовать можно. Такой вопрос есть, пока доедет гироаксель попробовать на AIOP можно? И еще, есть приемник лишний v8r4-ii без cppm, не подойдет?

думаю детальки подойдут, но код придется допиливать для MEGA…
конечный драйвер Output.cpp …

mahowik
OK-40;bt129513

Отличная работа! А возможна реализация проекта на одном колесе (шаре)?

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

mahowik
ADF;bt129517

На увеличение массы полезного груза сверху - как реагирует? До 1:1 масштабируем?

крутящий момент у движков слабоват… пинки држит крепко, а вот с увеличением веса надо попробовать…

mahowik
ATiGeR;bt129521

А как он позицию держит? Не очень понятно - гпс вроде нет, датчиков в колесах тоже…

rcopen.com/forum/f134/topic224458/5202

alexeykozin

зачет!
непросто продумать и реализовать логику стабилизации.
и как смешно получилось - как встает.
и когда о стенку приложился… бегу, бегу, стенка, брык - лежу…
сонар надо однако!

MerzlyakovIgor

Очень классная штука)

TVM

интересное применение:)
Надо попробовать с контроллером алексмос для подвесов. Хватит ли стандартных регулировок пид из ГУИ?

mahowik
TVM;bt131193

интересное применение:)
Надо попробовать с контроллером алексмос для подвесов. Хватит ли стандартных регулировок пид из ГУИ?

вы наверное не верно поняли… из подвеса были первые пробы rcopen.com/blogs/83206/18134
а тут уже отдельный проект github.com/mahowik/BalancingWii

Geniok

Добрый вечер!
А есть ли где-нибудь схема подключения этого всего ?
Как у вас сделана разводка по питанию ?
И вообще, за принципиальную схему был бы очень благодарен!

mahowik

Распиновка на гит…

Geniok

Наверное немного не правильно выразился, с подключением к Ардуино и к драйверам двигателей все понятно, тут проблем нет, интересует разводка питания.
Для примера, имеем батарею на 12В. К ней подключаем стабилизатор на 5В, от этого стабилизатора питаем саму ардуину и 2 драйвера шаговых двигателей.
Также нужно питать сами шаговики, через стабилизатор, какой ? Через отдельный у вас подключен ?
Также нужно питание Гиро/акселю, через тот же стабилизатор запитан, что и сама Ардуина ?

Интересно как у вас сделана вся разводка питания.

mahowik
Geniok;bt133664

Наверное немного не правильно выразился, с подключением к Ардуино и к драйверам двигателей все понятно, тут проблем нет, интересует разводка питания.
Для примера, имеем батарею на 12В. К ней подключаем стабилизатор на 5В, от этого стабилизатора питаем саму ардуину и 2 драйвера шаговых двигателей.
Также нужно питать сами шаговики, через стабилизатор, какой ? Через отдельный у вас подключен ?
Также нужно питание Гиро/акселю, через тот же стабилизатор запитан, что и сама Ардуина ?

Интересно как у вас сделана вся разводка питания.

Ардуина - можно через внутренний стаб, можно через внешний. Внутренний сильно греется, потому подключал через импульсник на 5в.
Гироаксель от 3.3в стаба с ардуины.
Питание логической части драйверов от того же внешнего стаба на 5в, а питание силовой части драйверов от батареии напрямую. Точнее тут уже зависит от номинального напр-я питания двигов. Плюс там есть один трюк, когда к примеру двиги с номинальным вольтажем в 5-7в можно легко питать от 12в. Это расписано на сранице драйвера на pololu.com.
Еще посмотрите комменты на youtube. Я там уже на некоторые вопросы ответил.
И да, кондеры не забудьте повесить в силовой части питания драйверов, с то повыбивает быстро.

Geniok

Спасибо большое, теперь все более-менее понятно.
У меня двиги на напряжение 3.75, сделал делитель, посмотрю, прокатит ли такое.
Кондеры поставил согласно схеме на pololu.com.

Geniok

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

И еще такой вопрос, нет ничего страшного если земля на питание двигателя и земля системы питания драйвера и ардуино объединены ?

SGordon

А на коллекторниках поедет? Запихать в setMotorSpeed Шим напряжение …

mahowik

думаю что поедет… драйвер конечный нужно дописать…

Добрый вечер Александр. Не могу скомпилировать , выдаёт ошибку "in file included from Alarms.cpp:3:/def.h:2072:10: error: #error “NUMBER_MOTOR is not set, most likely you have not defined any type of multicopter” , что должно быть в первом столбике компилятора ? Спасибо .

mahowik

Если вы в config.h ничего не меняли, то надо плату выбрать с 328 атмегой на бортую Например Arduino nano (atmega328p)

Плату выбрать в config.h ? Что должно быть в первом столбике BalancingWii , у меня пусто ?

mahowik

config.h трогать не надо…

Если вкратце, то надо сделать следующее:

  1. идем на github.com/mahowik/BalancingWii жмем Download
  2. распаковываем и переименовываем папку BalancingWii-master в BalancingWii (т.к. github добавляет -master)
  3. открываем BalancingWii.ino в arduino, выбираем в Arduino плату на atmega328p, заливаем прошивку

Далее если уже понадобится изменить какой либо из параметров в конфиге идем на github.com/mahowik/BalancingWii
в BalancingWii rev 0.1 есть их описание:

Also see for new defines added with this project for robot setup:

#define CURRENT_AXIS PITCH // possible to choose ROLL or PITCH axis as current.

//#define INVERT_CURRENT_AXIS // invert current axis sign, i.e. instead of turning sensor board

//#define REVERSE_MOTORS_DIRECTION // reverse both motors direction

#define MAX_SPEED 400 // should be <= 500

#define MAX_TARGET_ANGLE 120 // where 10 = 1 degree, should be <= 15 degree (i.e. <= 150)

#define MAX_STEERING 90 // should be <= 100

//#define GY_521_INVERTED_BY_Z // Chinese 6 DOF with MPU6050, LLC, inverted/reversed by Z

т.е. изменяем и перезаливаем прошивку

Спасибо . Всё ок .

kayot

Вопросик.
Можно скомпилировать под DUE ?
пытаюсь залить в неё ,IDE ругается.

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

pdv=

А вот и мой балабот поехал!)) Спасиб Александру за проект!
Все управление самодельное на основе openLRSng джойстик использовал от квадра хубсан, задействованы только стики, дорожки на штатной плате перерезаны и припаяны проводами к генератору ппм+опенлрснг. В корпус джойстика врезаны два тумблера 2 и 3 поз, повешены на 5 и 6 каналы соответственно. Кнопка на правом стике для бинда. Триммеров нет тк скеч генератора будет еще дописываться.
Есть сложность с автоподнятием. Получился довольно тяжелый из-за латунных стоек и тяжелых полок из пластика, не хватает момента у шаговиков. Буду переделывать.

mahowik

Поздравляю! 😃

Hello, I just made robot, but have one issue.

I think that is something wrong with motors, because after some time it falls down.
I used Nema 17 motors: www.cersil.it/no/pagine/progetti/…/nema17.html
I think that os not enought power. But to A4988 driver I’ve done a good current. www.pololu.com/product/1182/

mahowik

Hi,

Try to play with PIDs parameters first.
Search for ‘multiwii PID setup/tuning’.
Second point, probably it’s too have at the top.

Здравствуйте. Помогите пожалуйста разобраться. Перерыл все форумы и не могу найти ответ на свой вопрос.
Я залил в ARDUIO NANO прошивку BalancingWii не чего не меняя. Работает всё кроме шаговиков. “Смотрел” осциллографом на пинах 5,6,7,8 нет сигнала, На пине 4 (Eneble) есть. Драйвера шаговиков проверял проверочным скетчем, Все крутиться как нужно. В приложении EZ-GUI сделал все по инструкции(установил OUTы как на скрине, откалибровал акселерометр, зашел в управление, подергал джойстик и на пине 4 появился сигнал Eneble, а на 5,6,7,8 нечего(( Подскажите куда копать.
Спасибо.

mahowik

Сто лет не заходил сюда.
Если еще актуально, то скорее всего вы просто не сделали ARM.

vals55

Актуально-актуально!.. Сидя на карантине, собрал робота. Все заработало. Пришлось, правда, поизучать multiwii
и написать управление: для андроида

mahowik
vals55;bt162397

Актуально-актуально!.. Сидя на карантине, собрал робота. Все заработало. Пришлось, правда, поизучать multiwii
и написать управление: для андроида

Супер! Спасибо огромное!
Размещу ссылку на ваше приложение в git.
Ваш проект на GitHub?

mahowik

Почему кстати решили свое приложение написать?
Ez-gui не понравилось?

vals55
mahowik;bt162841

Супер! Спасибо огромное!
Размещу ссылку на ваше приложение в git.
Ваш проект на GitHub?

Нет, писал быстро. Размещу на гитхабе и дам знать.

vals55
mahowik;bt162842

Почему кстати решили свое приложение написать?
Ez-gui не понравилось?

Как-то не зашло. Показалось много лишнего из-за универсализма😁