Phantom's Brick Архив

Главная -> LEGO® Форум -> Основной форум

Тихая эволюция Powered Up от Bob1977

Bob1977, 2020-12-04 09:03:31 +00:00

Всем привет! Давно не заходил на форум, но если уж заходить, то с козырей. :)

С 2017 года Лего постепенно вводит в обиход новую электрику, несовместимую с привычной для старожилов электрикой Power Functions. К 2021-му году переход как таковой завершён, и все новые моторизированные модели оборудованы этой самой новой электрикой, которую я предпочитаю называть Powered Up, несмотря на то, что в неё входит несколько семейств с разными названиями: WeDo 2.0, Boost, Powered Up, Control+, Spike/Mindstrorms (2020). То, что в ряд попали учебные и обычные наборы, несколько сбивает с толку. Boost - программирование для начинающих "на дому"; WeDo стоит особнячком, давно неся службу в секциях по начальному программированию; относительно новый Spike Prime - тоже ориентирован на групповое обучение, причём выглядит как шаг назад по сравнению с суровым Mindstorms 2013; а новый Mindstorms 2020 - домашний вариант Spike. "Обычные" наборы, то есть те, которые раньше вышли бы на PF электрике, сопровождаются апдейтами приложения Control+, иначе как с ними играть. И во всём этом разнообразии немногочисленные наборы с маркировкой Powered Up составляют довольно странную компанию. На 2020 год это 4 поезда, бэтмобильчик, а ещё дом с привидениями и пианино. Почему всё вышеназванное можно, местами слегка притянув за уши, объединить в одно большое семейство с названием Powered Up? Я прежде всего исхожу из того, что все современные смарт-хабы, смарт-девайсы, моторы и сенсоры Лего между собой электрически совместимы по разъёмам, их распайке и протоколу работы по Bluetooth. Теоретически они должны быть все друг с другом совместимы, хотя, к сожалению, это не совсем так. Вот и подходящий момент перейти к сабжу.

Приложение Powered Up до версии 2.1 было обычным экранным геймпадом для пары поездов, пока к нему неожиданно не прикрутили среду программирования, подозрительно похожую на ту, что встречает нас в приложении Boost. Это сразу вызвало мой умеренный интерес, так как мы с сыном тогда ещё активно играли с Бустом и его программами. Затем в версии 3.0 появилась поддержка одновременного использования до четырёх смарт-устройств, что распалило интерес уже конкретно. Стало возможно в одну программу запихнуть малый хаб от поезда/бэтмобиля, большой хаб внедорожника, джойстик и ещё буст-хаб. И всё это могло работать вместе, находясь при этом в разных местах, как я показал в 17-м видео! Однако оказалось, что сведений по этой системе программирования практически нет. Единственный YT-блогер, регулярно сообщающий о новинках приложения, это известный RacingBrick. Он даже взял интервью у разработчиков приложения, пролившее свет на некоторые непонятные моменты. Оказалось, что с командой разработчиков Boost они не связаны, хотя и используют их наработки. Вероятно, от них же RB получил и опубликовал таблицу блоков с именами, функциями и примерами. Одно дело интересные новости, а другое - внятный туториал о том, как начать с приложением работать и достичь захватывающих результатов! Причём разработчики не перестают подбрасывать в приложение новые классные блоки и возможности. Я не стал для полной коллекции покупать хаб WeDO 2.0, так как двухпортовый хаб от поезда мощнее и полностью его заменяет, поэтому не знаю, можно ли WеDo-хаб подключить к приложению, но зато оно умеет работать с датчиками WeDo, отлично работает с Буст-хаб и его датчиками, а также малым (2П) и большим (4П) хабом. А ещё можно подключать джойстик от поезда. По понятным причинам Спайк хаб - сам себе голова и подключаться к PU никогда не будет. Другое дело его сопутствующая электрика, которая уже сейчас может частично работать с рядовыми хабами. В планах сделать большую таблицу совместимости - что с чем и как работает. Например, моторы L м XL до сих пор не работают с Буст-хабом, хотя это всего лишь вопрос апдейта прошивки. Новые угловые моторы от Спайка могут работать с PU хабами, но без обратной связи и т. д. Именно способность приложения Powered Up объединять все эти разрозненные элементы в одной программе плюс регулярное расширение возможностей поддерживает мой интерес, который требует, чтобы я им поделился с широкой аудиторией. :) В самом деле: купили Буст, поезд, внедорожник и ещё всякие современные моторизированные наборы, наигрались с каждым, и что дальше? Powered Up даёт ответ: объединить всё в единую систему!

Опираясь на таблицу блоков, я решил заполнить пустоту вокруг программирования в PU. Попутно раскрыл некоторые неявные возможности, глядя на которые невольно себя спрашиваешь: "Это они так задумали, или такие баги прикольные?" Итак, представляю вашему вниманию серию видео о программировании в приложении Powered Up. Наибольшая часть работы позади, но остались незатронутыми ещё несколько важных моментов. Да и разработчики наверняка ещё дадут повод для дополнения.

Изменено 6 декабря 2020 пользователем Bob1977

JRelax, 2021-02-21 16:59:11 +00:00

Отличная работа! Мне, как кодеру, понравилось использование локальных переменных в ваших примерах. Видео, которые я смотрел до этого просто пестрили глобалами (у некоторых сходу по 10 в одной последовательности, я думал глаза вытекут).

К сожалению, не увидел примеров с поездами. Хотелось посмотреть на какие-нибудь сложные реализации.

Пример 1: 2-3 поезда; пока один ездит - остальные стоят в депо, как только заехал ездящий - выезжает следующий.

Пример 2: 2 поезда с переключением стрелки. Тут нужен еще мотор на стрелку.

P.S. я бы не отказался от формулы расчета пройденного расстояния тележки поезда)

Так же хотел бы посмотреть реализацию с функциями датчика цвета в рамках PF. Я не помню в каком обновлении появилось, но не видел пока разборов. У самого пока нет возможности проверить (банально нет датчика нового). Насколько я понимаю - с помощью датчика мы можем управлять старыми PF, но вот как это работает? (в прямой видимости или же радиус как у пульта от PF, ну и в целом работоспособность)

Касательно платформы

Самое большое разочарование это то, что LEGO наплевательски отнеслась к документации. Мне сложно представить, чтобы к какому-нибудь openAPI не было документации. Здесь же платформа даже не для кодеров, а для TLG (как мне видится) и при этом 0 информации из официальных источников.

А вообще, было бы круто если нам бы дали возможность переключения с визуального программирования на код - проще использовать встроенный api за счет названий... Официальных описаний к иконкам нам то не завезли.

А еще хотелось бы, чтобы добавили хранимые переменные. Чтобы данные о наработке часов или пройденный поездом путь хранить всегда.

Bob1977, 2021-03-02 22:17:19 +00:00

@JRelax, Спасибо!
Есть давнишний пример с поездом, шлагбаумом и моторизированной стрелкой, других пока не делали. :)
Посчитать пройденный путь совсем нетрудно для трактора, а для поезда ещё легче - можно не считать среднего, а просто число оборотов на длину окружности колеса в любом удобном виде.

Как раз выпустил заключительное 13-е видео по Powered Up 3.6.0 про управление PF через Boost сенсор. По факту излучает немного слабее, чем Лего джойстики, но это в глаза не бросается, пока не начинаешь специально сравнивать. Как и в общем случае с управлением чем-либо через смарт хабы есть небольшой лаг, на который иногда заметно накладывается дополнительный лаг ИК-передачи, но не всегда. Но в сумме прикольно! Надо что-нибудь ещё придумать кроме монорельса.

Касательно платформы совершенно согласен, о чём писал выше. Наборы с новой дорогой электрикой выходят, а что с ней делать за пределами приложения Control+, непонятно. Поэтому потратил 9 месяцев, чтобы сделать учебные видео по приложению Powered Up, в которых освещено всё, что было найдено на настоящий момент - почти все блоки, их функции, неявные возможности. Есть возможность крякнуть приложение и получить доступ к ряду скрытых по каким-то соображениям блокам, но каждый так делать не будет, поэтому оставил в стороне.

Да, со стороны Лего очень странно, но это большая корпорация, всякое может быть. Поручили группе программеров вести PU, но забыли сказать, что надо бы ещё мануал с какими-нибудь онлайн уроками сделать. Вот кодеры сидят и неплохо кодят, спасибо им большое, остальное их не касается. :) Это так, версия.

Хранимые переменные и работу в режиме кода из семейства "С" - это было бы супер, но я бы не стал на это рассчитывать. Для этого есть Spike Prime и его свежая электрика, которая, кстати, технически совместима с PU. Угловые моторы с последним апдейтом стали полностью совместимыми. Жду, когда с PU подружат новые сенсоры - и цвета, и УЗ, и кинетик.