Оглавление:

Встроенный светодиодный дисплей Arduino Games: 7 шагов (с изображениями)
Встроенный светодиодный дисплей Arduino Games: 7 шагов (с изображениями)

Видео: Встроенный светодиодный дисплей Arduino Games: 7 шагов (с изображениями)

Видео: Встроенный светодиодный дисплей Arduino Games: 7 шагов (с изображениями)
Видео: Как подключить ЖК-экран, запрограммировать на ардуино, вывести русские буквы? [Р-Техник] 2024, Июль
Anonim
Image
Image
Основные компоненты
Основные компоненты

также известная как игровая система со светодиодной лестницей.

Attiny-85, оснащенный аппаратным и программным обеспечением для динамичных "видео" игр на встроенном светодиодном дисплее.

Он имеет мультиплексный 12-светодиодный релейный дисплей и поддерживает до 6 кнопочных входов и дополнительный аудиовыход.

Он содержит 4 игры на ловкость, с несколькими уровнями сложности и некоторыми вариациями (обновлено до 16 игр при использовании с микроконтроллером ATMega).

[Видео]

Шаг 1: основные компоненты

Свой проект я построил модульно (две отдельные сборки). Узел основного дисплея; который можно использовать отдельно. И узел ввода кнопки. Таким образом, я могу снова использовать кнопку или дисплейную сборку в другом проекте. Это также дает возможность гибких вариантов монтажа.

Я также вывел линию управления к штыревому разъему для сборки светодиодной лестницы, чтобы я мог использовать Arduino Nano (или Uno) для разработки программного обеспечения для него, а также использовать его в других проектах. Digispark не будет работать из-за других компонентов на его печатной плате.

Я решил использовать те же назначения контактов для светодиодной лестницы, что и в предыдущих инструкциях, чтобы облегчить тем, у кого уже есть такая аппаратная реализация, использование программного обеспечения в этом руководстве, хотя я не нашел назначений, сделанных для наиболее четкой логики в программное обеспечение.

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

Благодаря поддержке большего количества кнопок можно реализовать большее разнообразие игр (или приложений). В две игры из этого руководства лучше всего играть двумя кнопками. Четыре основные кнопки могут использоваться для прямого доступа к соответствующей игре. Скоро я буду реализовывать игру, которая зависит от использования всех четырех основных кнопок.

В этом проекте используется до шести кнопок. Четыре основных BTN 1-4. Эти кнопки могут быть обнаружены индивидуально даже при одновременном нажатии любых двух из них. Две другие - специальные кнопки, во-первых, это эквивалент одной кнопки в более ранних проектах, которая обеспечивает жесткое соединение между входом PB4 и землей, я называю это BTN0 или ESC, поскольку этот переключатель всегда можно обнаружить и заблокирует обнаружение. любого из других. Другая специальная клавиша - это функциональная клавиша, если ее нажать при нажатии кнопок 0–4, ее можно определить и использовать для изменения функциональности.

В этом скетче игры на ловкость я использую:

  • FncKey + Btn1 вернуться в режим меню
  • FncKey + Btn2 повышает уровень сложности (если на самом высоком, вернуться к низкому)
  • FncKey + Btn4 мгновенная пауза (нажмите любую клавишу, чтобы возобновить паузу)
  • FncKey + Btn 0 или 3 не определены.

Шаг 2: Список деталей

Список деталей
Список деталей

Необходимые детали

  • Светодиоды, красный, желтый, зеленый и синий, подобные этим
  • Печатные платы аналогичных изделий вам, возможно, придется купить плату большего размера и обрезать ее до нужного размера.
  • контактное гнездо для погружения аналогичные товары
  • Чип Attiny-85
  • сопротивляется
  • Используемые кнопочные переключатели: 12 x 12 x 8 мм и 6 x 6 x 6 мм для печатных плат с мгновенным тактильным нажимом

рекомендуемые:

  • зуммер 5в, активный тип
  • палочка для мороженого
  • Полоса заголовка 2,54 мм
  • Проволока 30 га и инструмент для намотки проволоки https://www.ebay.com/itm/351798901037 ссылка выше предназначена для провода, который больше похож на провод 36 га. Хотел бы я знать о такой сделке за реальные 30 га. провод

Шаг 3: основные моменты строительства

Особенности строительства
Особенности строительства
Особенности строительства
Особенности строительства
Особенности строительства
Особенности строительства
Особенности строительства
Особенности строительства

На сборке основной платы у меня электрически то же самое, что и в других предыдущих проектах светодиодных лестниц, к которым вы можете обратиться для дальнейших основных направлений строительства

Однако я не использую внешний подтягивающий резистор на аналоговом входе A2 (PB4), также я использую красный, желтый, зеленый и синий светодиоды вместо всех однотонных, что желательно для некоторых игр, которые я создал для этого оборудования..

Вот назначение входов / выходов, как ожидается в прилагаемых эскизах программного обеспечения:

Проект MCU AT-85 Uno / Nano

Имена имя контакт # brd имя --------- ---- ---- --------- Красный L1-3 PB3 2 D-11 Желтый L4-6 PB0 5 D-8 Зеленый L7-9 PB1 6 D-9 Синий L10-11 PB2 7 D-10 Ain PB4 / A2 3 A-2 Аудио PB5 1 D-3

Единственное существенное отличие состоит в том, что у меня две кнопки подключены к PB4. Первый идет напрямую от PB4 к земле, но без внешнего подтягивающего резистора (я называю это BTN0). У меня также есть кнопочный переключатель (который я называю BTN1), подключенный к 75 кОм последовательно с землей. Эта основная плата может использоваться без монтажной платы «Кнопка», но с некоторыми ограниченными функциями.

Токоограничивающие резисторы, идущие к комплектам светодиодов, следует выбирать в зависимости от яркости светодиодов разного цвета, которые вы используете, и желаемой яркости. Я получил 91 Ом для красного набора, 75 желтого, 430 зеленого и 150 Ом для синего. Эти значения могут показаться низкими, но помните, что светодиоды мультиплексированы (как правило, <100% времени).

Я использовал 3-миллиметровые светодиоды и немного их разнес. У меня были ножки светодиода на палочке от мороженого. Таким образом, все они стояли одинаково и превосходили все остальные компоненты. В какой-то момент я собираюсь установить устройство так, чтобы светодиоды выступали через раму.

Я решил обмотать проводами межсоединения светодиодов. Без специальной печатной платы это сделать проще, чем паять в тесных местах с большим количеством межсоединений; не производит коротких замыканий, и в случае ошибки его легче перемонтировать. Со всеми токами внутри и вокруг микроконтроллера в миллиамперном проводе 30 га вполне достаточно.

Кнопки и соответствующие резисторы:

Я разработал уникальную конфигурацию (типа двойной Y) резисторов и кнопок, так что программное обеспечение могло различать отдельные и двойные нажатия кнопок (теоретически можно идентифицировать любую комбинацию этих четырех кнопок). Я попробовал несколько конфигураций с множеством значений резисторов в таблице, ища лучшую конфигурацию, затем смоделировал их в программном обеспечении, попробовав все возможные комбинации резисторов, чтобы найти набор (который я использую), который даст максимум минимальной разницы аналоговых показаний между любыми и всеми однократными и двойными нажатиями кнопок. Я расположил их так, чтобы Btn1, Btn4 и Btn1 + 4, в частности, были различимы.

См. Схему сети кнопок выше.

Вам необходимо покрыть всю проводку, которая соединяется с PB4 (и, возможно, переключать контакты и резисторы), изолентой, горячим клеем или чем-то еще, что вообще не проводит, поскольку простое мегомное сопротивление нарушит способность определить, какой переключатель (переключатели) нажат; и любой такой контакт, который вы сделаете во время собрания, сделает это.

Позже связанные инструкции:

Игры с 4 кнопками, использующие один аналоговый вход /

Dual-Power-for-Your-Portable-Micro-Controller-Proj /

Корпус с 3D-печатью для встроенного светодиодного дисплея-консоли и /

Шаг 4: Дополнительные параметры и примечания

Дополнительные параметры и примечания
Дополнительные параметры и примечания

Дополнительный аудиовыход

Дополнительный аудиовыход использует PB5. Я подключил зуммер на 5 В последовательно с резистором на 150 Ом, чтобы ограничить его громкий раздражающий выход. Рекомендую использовать 50-200 Ом. Можно соединить зуммер с крышкой (2-10 мкФ), чтобы сделать его менее скрипучим, или использовать динамик с 10-миллиметровым драйвером 32 Ом, выломанный из набора дешевых стереонаушников, вместо резистора и зуммера. Мне он нравится, так как звучит игра, лучше, чем у меня есть.

По умолчанию Attiny-85 использует PB5 в качестве сброса, эффективный означает, что звук будет работать, но это не повлияет на другие операции. При использовании Nano или Uno звук будет работать (выходит его D3). Чтобы получить звук с Attiny, вам нужно будет изменить внутреннюю конфигурацию контактов, чтобы программное обеспечение могло использовать PB5 в качестве выхода. В этом есть серьезные разветвления; пожалуйста, обратитесь к этим:

forum.arduino.cc/index.php?topic=178971.0

www.instructables.com/id/Simple-and-cheap-F…

и

Обычно во время игры ошибка или сбой вызывает чириканье или короткий малиновый звук. Когда вы завершаете уровень или выигрываете, звучит поздравительная мелодия, например, в пинг-понге. Я считаю, что наличие сопровождающего звука действительно увеличивает радость от игры.

Кнопки альтернативного типа игрового контроллера

Для моих внуков, которые плохо разбираются в оборудовании, я сделал прочные отдельные кнопки Btn1 и Btn4 на концах длинных выводных проводов. Смотри фото. Я закрепил кнопки самодельными захватами; с 75 кОм, встроенным с Btn1, и ~ 37 кОм, встроенным с Btn4. В серии с Btn4 я фактически использовал 36K, 33K или даже, возможно, 39K. Имея в виду внешние кнопки плунжера, было бы неплохо иметь отдельный набор контактов заголовка для подключения внешних ручных кнопок, обозначенных как Btn1 и Btn4.

Требуется качественный источник питания

В качестве источника питания вы можете использовать выход USB 5 В ПК, планшета, настенного зарядного устройства, внешнего аккумулятора или 3,7 литиевой батареи напрямую.

Я обнаружил, что при питании устройства от некоторых USB-зарядных устройств и нескольких USB-аккумуляторов я замечал щелчки, случайные промахи и даже сбросы. Если вы столкнулись с этим, найдите источник питания с лучшим регулированием, в противном случае может помочь добавление большого (100-1000 мкФ) конденсатора между + V и землей.

Тестирование

Я также включил тестовую программу, чтобы помочь проверить и отладить ваше оборудование. Код находится в стадии разработки и очень нуждается в доработке. Я надеюсь добраться до этого, но пока это должно служить вашим потребностям. Недавно я использовал его только с Nano, управляющим сборками дисплея и клавиатуры. Вы можете использовать любую кнопку для выбора элементов в режиме меню. Чтобы выйти из демонстрации / теста еще раз, нажмите любую кнопку. Чтобы выйти из теста кнопок (# 4), нажмите FncKey + Btn1 или удерживайте EscKey (заземление PB4), или перезапустите питание.

Из-за различий во внутреннем сопротивлении микроконтроллеров и допусках резисторов вам может потребоваться выполнить некоторые настройки, чтобы все нажатия одной и двух кнопок распознавались правильно. Для этого используйте test-4 (для выбора см. Описание работы меню ниже) тестовой программы. Обратите внимание, что я не использовал внешний подтягивающий резистор, так как я планировал использовать вход PB4, который несовместим с любым подтягиванием.

Шаг 5: Обзор программного обеспечения

В скетче LadderGames.ino реализованы четыре игры, включая несколько альтернативных версий.

Скетч можно загрузить и запустить с ATtiny-85, Nano, Uno и т. Д. Чтобы запрограммировать его в чип Attiny, см.: https://www.instructables.com/id/Program-an-ATtiny… и / или запрограммировать ваш чип ATtiny-85:

Измените внутренние часы ATtiny85 на 8 МГц, так как производительность желательна для игры. Ссылаться:

forum.arduino.cc/index.php?topic=276606.0

Этот эскиз должен быть обратно совместим с большинством более ранних проектов светодиодных лестниц ATtiny-85 без изменений, но будет иметь некоторые ограниченные функциональные возможности.

Работа с меню

При запуске выполняется проверка работоспособности в виде развертки светодиодов и набора звуковых сигналов. Затем он переходит в режим главного меню. Каждый набор светодиодов одного цвета загорается на пару секунд подряд. Игра выбирается нажатием кнопки, когда соответствующий набор горит: игра 1: красный, игра 2: желтый, игра 3: зеленый, игра 4: синий. В режиме меню можно нажать Btn2, Btn3, Btn4, чтобы перейти непосредственно к играм 2, 3, 4 соответственно. После выбора игры вам нужно будет указать желаемый вариант. Для каждого доступного варианта будет мигать набор цветных светодиодов. Просто нажмите кнопку на том, что вам нужно. Варианты, «версии», для каждой игры описаны ниже.

В первую версию всех четырех игр можно играть с помощью одной кнопки. Либо один, подключенный между PB4 и землей (Btn-0), как в более ранних инструкциях по светодиодной лестнице, либо с переключателем, который подключает нагрузку 75 кОм к земле (Btn-1). Любой из них будет работать в играх, когда в инструкциях говорится о неспецифическом нажатии кнопки.

Чтобы выйти из любой игры, вы можете использовать FncKey + Btn1, удерживать нажатой клавишу EscKey (также известную как Btn0) в течение 1-2 секунд или выключить и снова включить питание.

Шаг 6: Игра

Игра 1: Push-It

Это адаптация моей игры "Push-It" из одного из моих предыдущих инструктажей.

www.instructables.com/id/Play-a-Game-with-a…

Цель игры - максимально увеличить количество миганий и количество горящих светодиодов. Push-It начинается с нескольких вспышек, которые затем повторяются. Если вы нажмете кнопку после последней вспышки в серии и когда потенциально может существовать дополнительная, загорится следующий светодиод, а количество вспышек увеличится на единицу. Но если вы «нажмете» до или после периода времени возможной дополнительной вспышки, вместо этого количество вспышек в наборе будет уменьшено.

Каждый раз, когда вам удается увеличить количество вспышек, уровень сложности увеличивается, поскольку время немного ускоряется, что затрудняет переход на более высокое количество вспышек.

Текущий счетчик сохраняется в памяти EEPROM для последующего перезапуска на том же уровне.

Игра 2: Пинг-понг

Отличная (хотя и единственная) соревновательная игра для двух игроков здесь; где мяч (одиночная вспышка света) перемещается из одной стороны в другую, все быстрее и быстрее, каждый раз, когда он получает ответный удар.

Я впервые реализовал эту игру с одним рядом огней на кнопках передней панели аэрокосмического супермини-компьютера в 1970-х годах.

Для ударов по мячу вперед и назад соответствующая ракетка должна ударить (кнопка нажата), когда она находится в конечном положении (последний светодиод). Первая пропущенная сторона проигрывает, а индикаторы на выигрышной стороне мигают.

Есть два варианта: для одного требуется только одна кнопка (Btn 0 или 1), которая ударит по мячу с любого конца; и вторая версия - для двух человек лицом к лицу, для чего требуются две кнопки; кнопка 1 с левой стороны и кнопка 4 или 0 с другой. Использование кнопок 1 и 4 является предпочтительным, так как они не будут мешать друг другу; по каждой можно ударить, чтобы отбить мяч с его конца, независимо от состояния другой кнопки.

Победитель розыгрыша всегда становится подателем следующего.

Игра 3: Тир

Стреляйте во все мишени (огни), чтобы пройти уровень. На каждом более высоком уровне действие происходит быстрее.

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

В первой версии прицел начинается слева (внизу) и сканирует вправо. В версии 2 прицел фиксируется посередине, а цель перемещается справа налево. Глядя на код, можно обнаружить призрачные версии 3 и 4, которые можно активировать, но вы рискуете своим благополучием.

Игра 4: JumpMan

Идея состоит в том, что вы проходите уровень игры, где появляются объекты, через которые вы должны перепрыгивать, поскольку по мере вашего продвижения они появляются быстрее. В другой версии игры также есть объекты над головой, под которыми нужно прятаться.

В первой версии есть только объекты, через которые можно перепрыгнуть. Для прыжка необходимо нажать кнопку, когда объект дойдет до последней ячейки слева; который становится ярче, когда это происходит. Чтобы перепрыгнуть 2 или более последовательных объекта, вы должны прыгнуть (нажать) на первый и удерживать кнопку до остальных.

В версии 2 добавлены над головой (мигающие) объекты. Они прыгают, прыгая во время предшествующей ячейки, и отпускают, пока она находится в конечной ячейке. Одновременно может мигать только один заголовок, поэтому, как только он пройдет, вы можете увидеть, как другой (не мигавший ранее) опустился на вас. Никогда не будет последовательных накладных расходов, но они могут быть смежными с одним или несколькими прыжковыми объектами (типа валуна).

В версии игры 3 вы должны использовать отдельную кнопку для объектов над головой (Btn-2, 4 или 0 на ваш выбор); для прыжков требуется Btn-1.

Как только вам удалось преодолеть на четыре объекта больше, чем вы потерпели неудачу, вы продвигаетесь по уровню; затем звуковое и визуальное поздравление, затем возобновление с более высокой скоростью. Получение набором последовательных объектов считается как один индивидуальный объект.

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

Шаг 7. Обновления, другие игры

Image
Image

Я сделал корпус консоли, напечатанный на 3D-принтере, для размещения встроенного светодиодного лестничного дисплея и кнопок.

Я разработал больше игр, в которых используется это оборудование. Посмотрите их и получайте удовольствие:

Новые игры от «Ударь крота» до «Перетягивание каната»

Декабрь 2016 г. Теперь в конце указанной выше ссылки находится унифицированная версия кода, включающая все 12 игр.

17 февраля 2017 г.: Вот последний набор игр для этого проекта, теперь с 16 играми (рисунок ниже). Это будет работать в любой реализации MCU с 32 Кбайт флеш-памяти программ. Все, хотя от одной до трех или четырех из 16 игр можно поместить в ATtiny. Я рекомендую использовать Arduinos Nano 3. Последние добавленные 4 игры - это гонки «Ле-Ман», «Спрей», соревнование по рисованию распылением, «Свинья», стрельба из баскетбольного кольца, «BiFunc» - викторина по бинарным операциям.

Благодаря более широкому и разнообразному воспроизведению в этих играх становится возможным улучшение их игровых способностей, доставляющих удовольствие игрокам любого уровня. Я думаю, что в гонках Ле-Мана есть много возможностей для улучшения за счет дизайна трассы и игрового времени.

Я написал еще около 10 занятий / игр / функций, некоторые из которых я надеюсь сделать доступными осенью 2017 года.

Также эти однострочные игры можно модифицировать для двухстрочного ЖК-дисплея 2x16, с одной строкой игровых объектов и другой для некоторого текста. Я сделал кое-что из этого, но, поскольку я поддерживаю проекты, насколько я могу судить, я не знаю, когда и смогу ли я получить раунд для этого. Так что, если у кого-то есть мотивация принять и оптимизировать эти игры для ЖК-дисплея 2x16, пожалуйста, поделитесь со мной и другими.

Помимо 4 новых игр здесь, в Menu_16Games.ino, я приложил свой проект и создал соответствующие инструкции: корпус игровой консоли Inline LED и питание вашего портативного проекта MCU.

Надеюсь, многие найдут время и… НАСЛАЖДАЙТЕСЬ этими играми.

Групповая игра: 1– Красный 2– Желтый 3 - Зеленый 4 - Синий

1 красный PushIt PingPong ShootEmUp JumpMan 2 Yel QuickDraw Tug_a_War Chicken Hot_Hands 3 Grn Le_Mans Spray PIG BiFunc 4 Blu SimonSays Whack_Mole Sea_Hunt Flip_d

2 сентября 2017: Улучшена работоспособность со старыми грязными шумными кнопками внешнего джойстика в игре «голова голова» (группа 2).

13 декабря 2017: Улучшена обработка дребезга кнопок и установки измерений, исправлены мелкие проблемы. Я пытался использовать конденсатор на линии аналогового ввода кнопки, но, чтобы быть эффективным, это привело к медленной установке измерений, что приводило к ложным определениям уровня или программному обеспечению так долго это быстрое игровое действие было скомпрометировано.

Апрель 2018: Я обнаружил, что компрессионные муфты 5/8 - отличные корпуса для кнопок с внешним плунжером. Поскольку моим детям нравится использовать пару из них, я добавил контакты заголовка, чтобы легко соединить два из них (как Btn1 и Btn4).

Обратите внимание, что в октябре прошлого года я создал еще один проект, построенный на аппаратном обеспечении этого обучаемого. Это в духе Хэллоуина и может быть очень весело, особенно для детей. Обучаемый: устройства, находящиеся под влиянием призрачной психики

Рекомендуемые: