Оглавление:

Визитная карточка / игровая консоль: ATtiny85 и OLED-экран: 5 шагов (с изображениями)
Визитная карточка / игровая консоль: ATtiny85 и OLED-экран: 5 шагов (с изображениями)

Видео: Визитная карточка / игровая консоль: ATtiny85 и OLED-экран: 5 шагов (с изображениями)

Видео: Визитная карточка / игровая консоль: ATtiny85 и OLED-экран: 5 шагов (с изображениями)
Видео: Игровая Мини Консоль Стик - DATA FROG Y3 Lite! 2024, Ноябрь
Anonim
Image
Image
Кишки
Кишки

Всем привет

Сегодня я собираюсь показать вам, как вы можете создать свою собственную визитную карточку / игровую консоль / все, что вы можете себе представить, с подсветкой I2C OLED-дисплеем и микропроцессором ATtiny85. В этом руководстве я расскажу вам, как на самом деле работает созданная мной печатная плата, как вы можете ее построить и что вы можете сделать с этой функциональностью. Если у вас уже есть экран I2C, подключенный к ATtiny85, эта инструкция может быть полезна, если вы пытаетесь получить изображения для отображения или хотите создать меню, игру и многое другое.

Вам, наверное, интересно, что это за штука на самом деле. Это простая печатная плата со встроенным аккумулятором, экраном, кнопками, выключателем и процессором. Думайте об этом как о крошечном Gameboy, который вы можете легко запрограммировать на выполнение самых разных задач. Вперед!

Шаг 1: кишки

Кишки
Кишки
Кишки
Кишки

Если вы еще этого не сделали, я настоятельно рекомендую вам создать учетную запись на сайте circuitits.io. Это позволит вам настроить мой дизайн в соответствии с вашими потребностями.

На этом шаге я объясню, как вы действительно можете получить в свои руки одну из этих печатных плат (PCB). Я создал свою печатную плату в circuitits.io, отличном онлайн-инструменте, который вы можете использовать для создания схем и печатных плат. Посмотреть дизайн можно здесь:

Если вы заинтересованы в получении печатной платы, вы можете заказать столько, сколько захотите, в OSH Park по этой ссылке:

На получение досок уходит время (1-3 недели), но поверьте мне. Это стоит того! Для создания собственной многофункциональной карты вам понадобятся следующие детали:

  • ATtiny85 в корпусе SOIC-8. Это мозг нашего проекта, который контролирует ВСЕ.
  • I2C 128x64 пикселей OLED-экран:
  • 2 резистора 22 кОм. Это подтягивающие резисторы для кнопок.
  • Держатель CR2032 для поверхностного монтажа:
  • Батарея типа "таблетка" CR2032. Эта маленькая батарейка может питать схему в течение некоторого времени.
  • 3-контактный ползунковый переключатель. Это выключатель питания!
  • Женские заголовки. Вы можете использовать их для программирования ATtiny85, пока он находится в цепи!
  • Кнопки 6 мм:
  • Печатная плата (заказать ее можно по ссылке выше

Инструменты:

  • Паяльник (с острым наконечником)
  • Припой
  • Свинцовые кусачки

Для программирования ATtiny85:

  • 6 перемычек между мужчинами и женщинами
  • Один конденсатор емкостью 10 мкФ
  • Arduino Uno или другой микроконтроллер на базе ATmega

Шаг 2: Сборка печатной платы

Сборка печатной платы
Сборка печатной платы
Сборка печатной платы
Сборка печатной платы

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

Несколько полезных советов:

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

Если у вас есть вопросы, напишите мне по адресу info [at] coniferapps.com

Шаг 3. Пора заняться программированием

Я получил свою комбинацию ATtiny / screen, используя следующую инструкцию: https://www.instructables.com/id/ATTiny85-connects-to-I2C-OLED-display-Great-Things/. Фактически, я даже использую библиотеку, которую AndyB2 модифицировал в своих набросках.

Мы собираемся программировать ATtiny через Arduino Uno. В следующем руководстве показано, как это сделать: https://www.instructables.com/id/Program-an-ATtiny-with-Arduino/. Если вы еще не заметили, все необходимые контакты аккуратно выломаны на печатной плате с номерами контактов, указанными на обратной стороне.

Если вы хотите начать с простого примера, загрузите на карточку приведенный выше эскиз. Перед тем, как сделать это, убедитесь, что переключатель питания перемещен вправо. Вы же не хотите, чтобы аккумулятор и Uno одновременно подавали напряжение! В этой папке куча файлов. Я расскажу об этом подробнее на следующем шаге, но большинство файлов заголовков в них являются шестнадцатеричными представлениями монохроматических растровых изображений. Файлы.bmp - это изображения, которые я только что упомянул - как вы можете видеть, они черно-белые и имеют размер ровно 128x64 пикселей. Они не загружаются в микроконтроллер, но я подумал, что включу их для справки.

Шаг 4: О самой программе

Скетч, который вы загрузили на предыдущем шаге, является очень простым примером того, как вы можете реализовать меню. Когда вы нажимаете каждую из левой и правой кнопок, он переключает счетчик в программе. Затем вызывается функция, которая заставляет ATtiny проверять состояние этого счетчика, и на основе номера счетчика ATtiny рисует изображение выбранной в данный момент опции меню на экране. Каждая из выбранных ячеек меню является собственным изображением. Если нажата верхняя кнопка, ATtiny снова проверяет состояние счетчика, чтобы определить, какой экран с подробностями отображать. Пока отображаются эти подробные экраны, ATtiny постоянно проверяет, не нажата ли какая-либо кнопка. Как только он обнаруживает нажатие кнопки, функция, которая рисует меню, вызывается снова, и текущее состояние меню отображается на экране, возвращая нас обратно в меню. Это звучит несколько устрашающе, если вы новичок в программировании, но я обещаю вам, что, когда вы посмотрите на код, он станет более понятным.

Каждый из подробных экранов также представляет собой собственное изображение.

Если вы не заметили, вариант сюрприза ничего не делает. Мы доберемся до этого на следующем шаге:).

Шаг 5: настройка вашего творения

Теперь, когда вы увидели, что я сделал, пришло время добавить в карточку вашу собственную информацию. В той библиотеке, которую я включил, есть функция для рисования текста на экране, но я настоятельно рекомендую вам использовать решение, основанное исключительно на изображениях, поскольку оно имеет тенденцию выглядеть НАМНОГО лучше. Изначально я собирался добавить фотографии в программную часть этого руководства, но оно достаточно длинное, чтобы иметь собственное руководство. Вы можете просмотреть его здесь:

Теперь, когда вы знаете, как добавлять фотографии, есть несколько вещей, которые вы можете сделать с помощью карты. Вы можете использовать мои меню и экран справки и просто добавить свою контактную информацию. Можно даже сделать небольшую игру на вариант «сюрприз». Было бы довольно просто перемещать очень крошечный спрайт 10x10 по экрану с помощью кнопок и проверять, не сталкивается ли он с другим спрайтом. Вы можете сделать клона летучей птицы, используя ту же концепцию! Если вы что-то делаете, пожалуйста, опубликуйте фото / видео / файл в комментариях!

Еще один небольшой момент, о котором я забыл упомянуть. Что касается памяти, у ATtiny85 ее не так много. Для программ это около 8кб. Мой текущий набросок с 5 изображениями и библиотекой OLED-дисплеев занимает около 7 из этих 8 КБ. Любая игра, которую вы создаете, должна уместиться в пределах этого относительно небольшого запаса, так что это будет интересная задача:).

Спасибо, что выслушали мою болтовню, и если у вас есть какие-либо вопросы, не стесняйтесь, напишите мне по адресу info [at] coniferapps.com (замените [at] на @). Пожалуйста, проголосуйте за меня в конкурсе Autodesk Circuits! Надеюсь, скоро у вас появится своя собственная визитная карточка / игра, которой можно будет похвастаться!

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