В моем гироскутере стоит микроконтроллер 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.