Geekmagic & ProtoMach
ProtoMach ProtoMach
Я тут набросал идею модульной доски, которая реагирует на ходы игроков через датчики. Представь себе механические шахматы, но с программируемыми фигурами. Как тебе такое?
Geekmagic Geekmagic
Звучит просто бомбически – прямо как настоящий квест Рубе Гольдберга в шахматах! Если у каждой фигуры микроконтроллер, можно запрограммировать их тактику на ходу. Только аккуратнее с задержками; понадобится надёжная система питания и, может быть, защита от сбоев, чтобы доска не превратилась в полный хаос. Но в целом – убойная идея, смесь технологий и стратегии настолки. Что будет твоей первой прототипной фигурой?
ProtoMach ProtoMach
Первый прототип сделаем пешку. Простая форма, прямые линии, легко будет установить микроконтроллер и две кнопки – для движения вперёд и захвата. Возьму энергоэффективный МК, небольшой аккумулятор и предохранитель на всякий случай. Никаких изысков с покраской, просто рамка из полированной нержавейки и старая кружка от кофе для флюса. Если что-то пойдёт не так, просто перепаяю плату, подкорректирую тайминги и соберу заново. Вот такой план.
Geekmagic Geekmagic
Звучит как неплохая отправная точка. Простейший ход пешки позволит держать код лаконичным, а стальная рама выдержит многократные манипуляции. Не забудь про экономичный аккумулятор, чтобы микроконтроллер не отключался между ходами, и маленький сброс – выручит от зависания без переворота всей платы. Как только пешка начнет отвечать на ход, доска готова к следующему этапу. Удачи, и дай знать, если понадобится подправить прошивку!
ProtoMach ProtoMach
Спасибо. Подключу к МСУ регулятор напряжения 1.8V с низким падением, запущу на 8 мегагерц. Ограничу количество выводов до минимума – только светодиод состояния и по два входа на каждую фигуру. Если увидишь ошибку в конечном автомате, просто пришли гекс. Я патчу, перепрошиваю и снова тестирую. Никаких проблем.
Geekmagic Geekmagic
Отлично, просто скинь код автомата состояний в файл, я пробегусь по нему. И заодно проверь граничный случай с повышением, на всякий случай, если пешка дойдет до конца и светодиоды начнут глючить. Удачи с кодом!
ProtoMach ProtoMach
Привет, Смотри, state machine для MCU пешки (в стиле C, без всяких библиотек). Просто скопируй код в свою IDE, прошей и тестируй. С кнопкой Reset: подключи pull-up GPIO к прерыванию, очисти все флаги и установи `pawn_state = IDLE` при нажатии. Это не даст светодиодам гореть после сбоя и позволит проверить граничный случай продвижения, не разбирая всю плату. Скажи, если логика требует подправки.
Geekmagic Geekmagic
Привет, Машина состояний почти готова, но есть пара нюансов, которые могут доставить неприятности. Во-первых, при повышении ранга ты включаешь светодиод, но забываешь его выключать, поэтому он горит до следующего нажатия кнопки. Если хочешь, чтобы светодиод мигал или сбрасывался, добавь команду LED_off при каждом переходе между состояниями. Во-вторых, ты устанавливаешь pawn_state в IDLE после нажатия кнопки после повышения ранга, но не сбрасываешь светодиод, который горел для этого повышения. В итоге доска может оставаться подсвеченной и запутывать. Если добавишь процедуру сброса, которая очищает все светодиоды и флаги состояния, ты избежишь этой проблемы. Удачи с подсветкой!
ProtoMach ProtoMach
Понял. Добавлю LED_off для каждого переключения состояния и рутину сброса, которая очистит все флаги и светодиоды. Это не даст рекламному светодиоду гореть бесконечно. Спасибо, что предупредил. Сейчас выложу обновлённый код.