Оглавление:

Ручная игра ножниц утеса бумаги Ардуино с использованием ЖК-дисплея 20кс4 с И2К: 7 шагов
Ручная игра ножниц утеса бумаги Ардуино с использованием ЖК-дисплея 20кс4 с И2К: 7 шагов

Видео: Ручная игра ножниц утеса бумаги Ардуино с использованием ЖК-дисплея 20кс4 с И2К: 7 шагов

Видео: Ручная игра ножниц утеса бумаги Ардуино с использованием ЖК-дисплея 20кс4 с И2К: 7 шагов
Видео: АниЗоро подбросил КАТАНУ🤯🔥🗡️⚔️ 2024, Июль
Anonim
Хандхэльд игра ножниц утеса бумаги Ардуино используя дисплей ЛКД 20кс4 с И2К
Хандхэльд игра ножниц утеса бумаги Ардуино используя дисплей ЛКД 20кс4 с И2К
Хандхэльд игра ножниц утеса бумаги Ардуино используя дисплей ЛКД 20кс4 с И2К
Хандхэльд игра ножниц утеса бумаги Ардуино используя дисплей ЛКД 20кс4 с И2К
Хандхэльд игра ножниц утеса бумаги Ардуино используя дисплей ЛКД 20кс4 с И2К
Хандхэльд игра ножниц утеса бумаги Ардуино используя дисплей ЛКД 20кс4 с И2К

Всем привет или, может быть, мне стоит сказать "Hello World!"

Было бы очень приятно поделиться с вами проектом, который во многом помог мне в Arduino. Это портативная игра Arduino Paper Rock Scissors с ЖК-дисплеем I2C 20x4. Я знаю, что вы могли подумать: "Еще одна игра, в которую играют ножницы-камень-камень?" Но в большинстве игр Arduino Paper Rock Scissors используются простые светодиоды, и я также видел одну, в которой использовались бумажные символы, поднимаемые сервоприводами. Это круто. В этом проекте используется ЖК-дисплей 20x4, один с I2C, а другой без него (здесь не показан). Хотел недорогой корпус с законченным видом, а не просто макетную кашу. Не у всех есть доступ к 3D-принтеру, и они хотят платить тому, кто им пользуется. И я хотел, чтобы это было легко сделать, чтобы я мог делиться идеями с другими. Поскольку мои навыки программирования находятся на начальном уровне, эскиз довольно прост, его легко понять и отредактировать. Это было моим личным образованием в создании эскиза. Вы найдете много заметок в эскизе, и он прошел через много-много (более 20?) Итераций, пока я не считаю, что это как раз то, что нужно. Стоимость проекта составляет менее 20 долларов США (без I2C).

Начал работать с Arduino в 2018 году, просмотрел их веб-сайт и прочитал все, что мог. Создал и экспериментировал с примерами проектов, с которыми он поставляется, и прочитал множество инструкций, которыми многие из вас поделились за эти годы. Я действительно ценю их и многому у вас научился. Спасибо. Теперь я хочу поделиться кое-чем из того, что я узнал, добавив собственного творчества. Прежде чем в разделе комментариев скопится множество вопросов о том, как это сделать, и что, пожалуйста, имейте в виду, я начал это, не имея опыта работы с Arduino. Я научился, создавая примеры проектов на сайтах Arduino и Instructables. Я учился у вас, ребята. Когда вы застряли, это может быть самым быстрым способом найти решение.

Шаг 1. Введение в проект

Введение в проект
Введение в проект
Введение в проект
Введение в проект

Выбрал ЖК-дисплей от Amazon и выбрал ЖК-дисплей I2C 20x4 из-за низкой стоимости (около 12–18 долларов) и простоты подключения и программирования. Если вы хотите, вы можете использовать его без I2C и получить его за 7 долларов. Но вам нужно будет использовать другую библиотеку и схему подключения, а также использовать больше контактов Arduino. Не волнуйтесь, в любом случае хватит. Последовательный I2C 20x4 было бы проще построить, меньше проводов меньше запутывает. Но параллельный ЖК-дисплей 20х4 дешевле примерно на 5 долларов. Я нарисовал схемы для обеих схем подключения. Большинство других запчастей я купил на Amazon и в нескольких местных магазинах. Моя коробка - пустая коробка для приготовления капучино. Мне нравится, что крышка легко снимается для включения / выключения питания, работы с любыми компонентами или замены батареи. И "Эй!" коробка была бесплатной, и я люблю капучино. Переработка пластика не вредна для окружающей среды. Вы можете использовать любую коробку, которая вам нравится, в которую все вписывается, или даже пропустить коробку или макет проекта. Я хотел получить «законченный вид проекта» по доступной цене. Бьюсь об заклад, кто-то создает 3D-печатную версию. Arduino играет в игру Paper Rock Scissors с вами на ЖК-дисплее, ведет счет, вы можете вводить данные с помощью кнопок, и если вы выберете, есть опция, которая позволяет вам жульничать. Изначально чит-функция была написана для целей отладки, и когда я закончил с ней, я закомментировал ее. Просто ради забавы вставил обратно.

Шаг 2: макетная доска

Хлебная доска
Хлебная доска
Хлебная доска
Хлебная доска

Я использовал для своих схем Arduino Uno, но когда собирал все это вместе, использовал Arduino Nano, потому что он лучше помещается в коробке. Итак, вы можете построить это с помощью любого из них. Но не забудьте изменить пару настроек в IDE. Nano крепится к задней части ЖК-дисплея с помощью командных полос или двусторонней липкой ленты. Расположите Arduino Nano рядом с дополнительной платой I2C так, чтобы разъем USB был обращен наружу (справа от ЖК-дисплея). Вы можете использовать батарейный блок 9В или 4x AA (что дает вам 6В) с ползунковым переключателем SPST для питания, установленного внутри коробки, также с командными полосками. Arduino имеет встроенный регулятор напряжения, который понижает напряжение до необходимых 5 вольт. Если задуматься, эта игра действительно может перерабатывать «в основном разряженные 9-вольтовые батареи» для получения энергии и нормально работать. (Вы ведь меняете батареи детекторов дыма дважды в год, верно?) Другие устройства, использующие батарею 9 В, могут сказать, что она разряжена при 6-8 В; но он не мертв, пока не станет "Arduino Dead!"

При разработке проекта я использовал 4 кнопки SPST для ввода, но при сборке готовой игры в коробку использовалось 5 кнопок SPST, думая, что в будущем я могу попытаться создать игру, в которой нужно больше кнопок. Может, игра в лабиринт? Резисторный делитель напряжения для кнопок монтируется вместе на обрезке прототипной платы, который также можно установить с помощью командных полос.

Шаг 3: Сборка

сборка
сборка
сборка
сборка
сборка
сборка

Сборка:

Четыре основных узла - это ЖК-дисплей с дополнительной платой I2C, Arduino Nano, резисторы и переключатели, подключенные гирляндной цепью к соединительной прототипной плате, и батарейный отсек с переключателем включения / выключения.

Вы должны начать с макетирования схемы или жесткого подключения макетной платы в соответствии со схемой. Мне нравится хранить ЖК-дисплей в крышке коробки лицевой стороной вниз, чтобы не поцарапать его. Я использовал заголовок только на одной стороне Arduino, у которой есть 5 В, чтобы подключить его к прототипной плате. Я сделал перемычку с 3 разъемами (много работы по пайке) от Arduino к макетной плате, чтобы они лежали на задней панели ЖК-дисплея с помощью командных полос или двусторонней липкой ленты. Но на самом деле платы можно соединить, просто припаяв провода между собой. Используется гнездовой разъем для подключения прототипной платы к ЖК-дисплею I2C. Ножки резистора на макетной плате можно использовать для создания 5 точек пайки для кнопок. Другая ножка каждой кнопки идет к контакту A0 Arduino. На каждую кнопку понадобится 2 припаянных провода. Используйте омметр, чтобы определить, какие ножки кнопки использовать, но обычно вы не ошибетесь с несмежными ножками (диагональными друг от друга).

Выберите настройки для вашего Arduino в IDE. Загрузите скетч и загрузите его в Arduino и проверьте / устраните неисправности.

Готовы положить это в коробку? Снял этикетку с капучино, вымыл и высушил коробку. Тщательно отмерьте и вырежьте отверстие в коробке для ЖК-дисплея, как вы можете видеть, и оно крепится с помощью 3 дюбелей, привинченных к трем угловым отверстиям ЖК-дисплея (2 в нижней части коробки, 1 рядом с крышкой), достаточно длинное, чтобы добраться до заднюю часть коробки и удерживайте ее на месте с помощью трения. Отверстие для винта на ЖК-дисплее дополнительной платы может быть слишком близко к клемме, поэтому я его опускаю. С помощью ножа Exacto просверлили пилотные отверстия для шурупов в дюбелях, чтобы они не раскололись (осторожно, не поскользнитесь и не порежьтесь, держите дюбеля плоскогубцами). Пришлось немного согнуть / размять коробку для окончательной установки, но она возвращается в нужную форму. Отверстия для кнопок «просверливаются» путем их расположения (линии с прямым краем) и нагрева клемм паяльником до тех пор, пока они «не проплавят» коробку. Затем удалил кнопки после того, как они остыли, и припаял обрезки проводов CAT 5e 6–9 дюймов или провода 18ga - 22ga к кнопкам. Вставьте кнопки сначала обратно в их отверстия, затем припаяйте к плате резистора. Капля суперклея, горячего клея или даже просто трение удержит пуговицы на месте. В одной из сборок использовались устройства для сращивания телефонных кабелей (красные кружки в прозрачных пластиковых блоках), чтобы упростить последние несколько соединений между батарейным отсеком, прототипной платой резистора и сборкой LCD / Arduino. При желании можно использовать припой и термоусадку. Затем осторожно и медленно протолкните все провода и компоненты в коробку и закройте крышку. Вы установили батарею и загрузили скетч Arduino, прежде чем делать все это? Вам также понадобится библиотека для ЖК-дисплея 20x4 с I2C или без нее (в зависимости от того, что вы выберете), которую вы можете бесплатно скачать на Github. Включите его, попробуйте и посмотрите, работает ли он. Позже я отредактировал свой набросок с паузами, чтобы его было легче читать, добавил «эффект мигающих точек» и некоторые другие вещи, а также множество комментариев. Попробуйте расположить Arduino так, чтобы USB все еще можно было подключить и загрузить новый скетч. Конечно, при создании эскиза использовалась блок-схема. Вы обнаружите, что комментарии в значительной степени определяют, где был каждый блок блок-схемы.

Вы обнаружите, что кнопки находятся в последовательной / параллельной цепи, что позволяет использовать один входной контакт Arduino для любого количества кнопок. Схема действует как делитель напряжения, подавая значение на аналоговый вывод, изменяя значение, считываемое каждой нажатой кнопкой. Вы можете использовать последовательный монитор, чтобы вычислить значения вашей схемы на основе ваших резисторов и изменить «принятые значения» в вашем эскизе.

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

Шаг 4: Программирование и настройки

Программирование и настройки
Программирование и настройки
Программирование и настройки
Программирование и настройки

А теперь поразвлечься с IDE. Надеюсь, вы пили капучино. Возможно, он понадобится вам, чтобы не заснуть.

Возможно, вам понадобится настроить некоторые библиотеки. Вам понадобится Wire.h для I2C, LCD.h для ЖК-дисплея, LiquidCrystal_I2C.h для ЖК-дисплея, управляемого I2C. Вам также нужно будет использовать команду lcd.begin (20, 4), чтобы сообщить Arduino, что вы используете 20-символьный 4-строчный ЖК-дисплей, и могут быть другие настройки.

Для получения информации об установке библиотек см.:

В Arduino IDE вы можете обнаружить, что вам нужно будет настроить плату и порт, к которому она подключена. Порт можно найти в панели управления вашего компьютера / диспетчере устройств / контроллерах универсальной последовательной шины. Вы должны выяснить, какой Arduino вы используете. Я использую Arduino Nano, но Uno тоже работает. Тщательно выбирайте настройки.

Возможно, вам потребуется выяснить свой адрес I2C. Вы должны уметь читать его прямо с перемычек на плате. Вы также можете загрузить сканер I2C с Arduino.cc или также https://www.gammon.com.au/forum/?id=10896 и в других местах.

Где-то в этом месте вы сможете загрузить программу в Arduino и проверить ее работоспособность. ЖК-экран загорается? Вы умеете читать символы? Один раз я построил схему, а затем проверил ее, подсветка загорелась, но символы были нечитаемыми. Потратил часы (точнее, ЧАСЫ) на настройку и настройку соединений, чтобы убедиться, что все сделано правильно. Сдался на пару дней. Вернулся к этому позже и понял, что переменный резистор на дополнительной плате был установлен на минимум. Включил и персонажи были видны. Удар головой об стол. Еще одна причина биться головой об стол? Если вам нужно заменить батарею, вам, возможно, придется снова отрегулировать этот переменный резистор. Когда это произошло, я вырезал небольшое отверстие в задней части коробки для доступа.

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

Есть много маленьких переменных, которые все должны быть правильными, и ваша может отличаться от моей. Если вы проявите терпение и попробуете разные вещи, это поможет вам добиться успеха. Также помните, что после того, как вы установили свои переменные Arduino (например, имя платы, com 3, 5 или что-то еще, процессор и программист [все в инструментах]), вы можете настроить их все правильно, но это не сработает, потому что вам нужно перезагрузить. Отключите Arduino и снова подключите его к компьютеру. Возможно, вам придется сохранить и снова перезагрузить компьютер.

Загрузите этот эскиз, запустите монитор, нажмите кнопки и запишите значения, затем отредактируйте эскиз «Ножницы камень для бумаги», заменив мои значения резисторов на ваши. Запустите набросок «Камень-ножницы для бумаги» и посмотрите, правильно ли он работает. Ах да, вы установили кнопки не в том порядке? Возможно, вам придется переустановить их, если вы хотите, чтобы они были в определенном порядке.

Повеселись!

Шаг 5: Набросок чтения кнопок поможет вам найти значения вашего участника, которые нужно отредактировать в основном эскизе. Нажмите каждую кнопку и запишите значения резисторов, чтобы войти в основной эскиз

// эскиз чтения кнопки

void setup () {

// поместите сюда свой установочный код, чтобы запустить его один раз:

Serial.begin (9600);

}

void loop () {

// поместите сюда свой основной код, чтобы запускать его повторно:

int buTTon; // Для чтения кнопок

buTTon = 0; // Для чтения кнопок

buTTon = analogRead (A0); // Команда, используемая для чтения кнопок

задержка (100);

Serial.println (buTTon);

Шаг 6. Списки запчастей и инструменты, которые могут вам понадобиться

Список запчастей от Amazon:

Arduino Uno или Arduino Nano

ЖК-дисплей 20x4 с или без I2C

Батарейный блок на 9 В или 6 В с ползунковым переключателем SPST (или ползунковый переключатель приобретается отдельно)

5 кнопок SPST

1x Подтягивающий резистор 1 кОм - 5 кОм

5 резисторов менее 1 кОм, 200 - 500 Ом - это хорошо

Списки запчастей Другие местоположения или магазины:

9В или 4х 1,5-вольтовых аккумулятора (опция 9В позволяет утилизировать «в основном разряженные» аккумуляторы)

Командные полоски (использовалась сменная упаковка) или двусторонний скотч.

Устройства для сращивания телефонных кабелей (необязательно, но упрощают подключение проводов)

Несколько дюймов дюбеля 1/4 дюйма

Маленькие шурупы для крепления дюбелей к ЖК-дисплею

Припой

Термоусадочная для проводов 18 га

Обрезки или переработанные детали:

Пустая коробка для приготовления напитков для капучино (не у всех есть 3D-принтер, есть немного капучино и утилизируйте пластик)

Примерно 1 "x 2" обрезка платы Proto, хотя я использовал прототип платы от Amazon

Различная длина провода от 18га до 22га или сплошного сердечника Cat 5e

Инструменты, которые могут вам понадобиться:

Маленькая отвертка Philips

Маленькая отвертка с плоским лезвием

Exacto Knife

Паяльник и припой

Ножницы для тяжелых условий эксплуатации

Плоскогубцы

Правитель

Шаг 7: Дополнительная информация и основной набросок

Спасибо за чтение. Я знаю, что это много. Это мой первый Intructable, и это само по себе было для меня немного поучительным. Оглядываясь назад, я вижу, что в одних местах я многословен, а в других - слишком краток. Надо было разбить сборку еще на этапы. И поскольку я строил этот проект около десятка раз, пока он не стал правильным, некоторые изображения взяты с той или иной модели. Мне нужно вернуться и сфотографировать только одну модель. Я также хочу добавить пару видео. Так что да, я вернусь и исправлю это. Но пока я отдаю это вам в руки. Надеюсь, вам понравится строить его так же, как и мне. Еще раз спасибо за чтение.

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