4

Управление двухплатным гироскутером без перепрошивки

В моем гироскутере стоит микроконтроллер MM32SPIN и гироскоп X779 4AC. Данная микросхема не прошивается, да и прошивку на эту плату я не видел. Даташит на гироскоп не находится(

Управление двухплатным гироскутером без перепрошивки Гироскутер, Электротранспорт, Мотор-колесо, Видео, Вертикальное видео, Длиннопост
Управление двухплатным гироскутером без перепрошивки Гироскутер, Электротранспорт, Мотор-колесо, Видео, Вертикальное видео, Длиннопост
Управление двухплатным гироскутером без перепрошивки Гироскутер, Электротранспорт, Мотор-колесо, Видео, Вертикальное видео, Длиннопост
Управление двухплатным гироскутером без перепрошивки Гироскутер, Электротранспорт, Мотор-колесо, Видео, Вертикальное видео, Длиннопост

Две платы соединены между собой четырехжильным проводом, крайние жилы это минус и 15В, а два средних- сигнальные. Для того, чтобы платы моги работать по отдельности необходимо накоротко замкнуть эти два сигнальных провода. После этого одна из плат будет готова к самостоятельной жизни, а второй не будет хватать источника питания 15в.


Для запуска мотора необходимо закрыть один из ИК датчиков и далее от наклона платы двигатель будет менять обороты и направление вращения. При закрытии датчика происходит плавный пуск, а далее мотор управляется от наклона уже без сглаживаний, крутится очень резво и останавливается колом (будьте осторожны, половинка гироскутера может очень легко улететь от этого). За этот способ благодарен автору канала "МоНаХ Борисовский" на ютубе.

Для адекватного управления двигателем (а не наклоном платы) я подключился к МК вместо гироскопа по следующей распиновке:

Управление двухплатным гироскутером без перепрошивки Гироскутер, Электротранспорт, Мотор-колесо, Видео, Вертикальное видео, Длиннопост

Для обмена данными используется интерфейс SPI. МК постоянно отправляет гироскопу 187 (видимо какая-то настройка). Гироскоп отправляет МК 15 байт. На плате я условно обозначил три оси: ось X идет вдоль гироскутера, ось Y идет параллельно с осями вращения колес, ось Z- перпендикулярна плате.

Байты данных:

0) Не знаю что это. Он хаотично переключается с 0 на 255 и обратно. Никаких закономерностей я не нашел.

1 и 2) В нейтрали ~700. При вращении по X против часовой на 90° уменьшается с 65535 до ~48692. По часовой- увеличивается с 0 до 16448.

3 и 4) В нейтрали переход с 65535 на 0. При вращении по Y против часовой увеличивается от 0 до 16864. По часовой от 65535 до 48976.

5 и 6) В покое ~49224. При подъеме уменьшается до ~3000. При падении увеличивается до ~65535. Это не точно.

7 и 8) Это температура. При комнатной температуре ~2350.

9 и 10) В покое ~15. Y по часовой от ~15 до ~30000. Против часовой от 65535 до ~30000. Меняется в зависимости от скорости вращения.

11 и 12) В покое скачет 0-65535. X против часовой от 65535 до ~30000. По часовой от 0 до ~30000. Меняется в зависимости от скорости вращения.

13 и 14) В покое 0-65535. По оси Z. Меняется в зависимости от скорости вращения или подъема.

Управление двухплатным гироскутером без перепрошивки Гироскутер, Электротранспорт, Мотор-колесо, Видео, Вертикальное видео, Длиннопост

Пакет данных.

В архиве будет файл с записью данных на протяжении 10с, в это время плата наклонялась с нейтрали до вертикального положения по оси Y в одну и в другую сторону и потом обратно в нейтральное положение.

Управление двухплатным гироскутером без перепрошивки Гироскутер, Электротранспорт, Мотор-колесо, Видео, Вертикальное видео, Длиннопост

Наклонял плату.

Для управления использовал ESP8266 с разгоном до 160МГц. К сожалению, ESP иногда глючит от такой частоты и на малых оборотах двигатель пинается. Дальше хотел перейти на STM32, но по неким причинам пришлось забросить программирование(((

Управление двухплатным гироскутером без перепрошивки Гироскутер, Электротранспорт, Мотор-колесо, Видео, Вертикальное видео, Длиннопост

В код в архиве.

В коде с отправкой данных гироскутеру есть костыль, который позволяет отправлять данные только тогда, когда гироскутер включен. За это отвечает пин D2, его нужно подключить к 3.3В питанию на плате гироскутера.

Для работы кода необходимо скачать библиотеку GyverIO.

Архив:

https://drive.google.com/file/d/1cTGbVNfI_9PSQs8HI0heEjHowDT...