(Псевдо) Проводное подключение станка и virtual shifting

В заметки.

Подергал тут как-то google-ИИ на предмет реализаций Zwift Click / Zwift Play на базе ESP32. Между делом попалась ссылка на проект на github’e под названием SHIFTR. Помимо реализации виртуального переключения передач проект примечателен тем, что реализуется и direct-подключение к zwift’у — с помощью передачи данных по локальной сети. В целом подключение получается частично проводным: ESP32 подключается к станку все равно через bluetooth, однако контроллер, во-первых, можно разместить в непосредственной близости от станка, а во-вторых, получаем модуль, не зависящий от глюков ОС и наличия нужных беспроводных модулей на основном компьютере.

Собрал, опробовал. Собирается в PlatformIO. Пробовал зашить полученный бинарник через веб-прошивальщик в ESP Home, но не взлетело. В итоге разобрался, почему не шился проект через сам PlatformIO — запускал отдельно pio run -t upload, ругалось на какие-то зависимости. Доставил — заработало. Попутно добавил в platformio.ini «upload_speed = 115200» — не знаю на сейчас, помогло чему-то или нет. Шить удобно парой «прищепок», с помощью pl2303 + level-shifter.

По использованию. Админ-пароль, как уже сказано на странице проекта, зависит от имени устройства — а то, в свою очередь, завязано на MAC-адрес, так что смотрим каждый в своем случае.

Wifi-подключение у меня не заработало, какой-то косяк при переходе на веб-страничку при подключении на создаваемую точку доступа. Страницы настройки wifi при проводном подключении нет в принципе.

Прямое подключение по сети к Zwift’у — работает. В веб-интерфейсе задаем устройство станка, дальше со стороны Zwift’а подключаем 3 устройства по сети. Кроме выбора устройства есть еще переключение режимов: с виртуальным переключением и без, FTMS (у меня с ним почему-то не подключалось вообще), а также расклад по звездочкам для виртуального переключения.

Само по себе переключение все равно требует наличия Zwift Click / Zwift Play (хотя можно было бы на пару GPIO в контроллере вывести команды контроля нагрузки). Но тот же гугло-ИИ подсказал и обходной путь (после безуспешных страданий в попытках родить код под ESP32, который мог бы работать в качестве Zwift Click): приложение BikeControl. И таки да, с помощью отдельного смартфона заветное виртуальное переключение наконец-то появилось. Теперь можно подключить некую BT-клавиатуру, назначить в приложении функции переключения скоростей на кнопки этой клавиатуры и так и пользоваться. Позже вернусь к этой теме, пока играюсь только с «проводным» подключением станка.

В целом — все хорошо, но… Скорость обновления данных с датчика мощности снизилась до 1 в секунду (штатно — где-то 4 обновления в секунду). При этом иногда и при переключении на ANT+/BLE было медленное обновление, и в какой-то момент при подключении по сети получил «быстрый» вариант. От какой комбинации настроек это зависит (или глюков Zwift) — пока не понял. В основном хватает, хотя, конечно, иногда неудобна такая задержка.

Продолжаю наблюдение.

Добавить комментарий