Оглавление:

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

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

Видео: Протестируйте Arduino с нуля, с игровым программным обеспечением с использованием емкостного входа и светодиода: 4 шага
Видео: Открытые уроки по Arduino. Урок 8: обсуждаем курсовой проект и пишем игру на C++ 2024, Июль
Anonim
Протестируйте Arduino на пустом месте, с игровым программным обеспечением, используя емкостный вход и светодиод
Протестируйте Arduino на пустом месте, с игровым программным обеспечением, используя емкостный вход и светодиод
Протестируйте Arduino с нуля, с игровым программным обеспечением, используя емкостный вход и светодиод
Протестируйте Arduino с нуля, с игровым программным обеспечением, используя емкостный вход и светодиод

Интерактивная игра «Push-It», использующая голую плату Arduino, никаких внешних частей или проводки не требуется (используется емкостной «сенсорный» вход). Показанный выше демонстрирует его работу на двух разных досках.

Push-It имеет две цели.

  1. Чтобы быстро продемонстрировать / проверить, что ваша плата Arduino работает и что вы правильно настроили для загрузки на нее нового скетча кода. Вы увидите, что он выполняет ввод и вывод (определение уровня цифрового ввода, вывод на встроенный светодиод); сохранить и восстановить значение из энергонезависимой памяти EEPROM. И все это без подключения каких-либо проводов или устройств.
  2. Обеспечьте увлекательную и сложную игру, взаимодействуя с платой Arduino.

Это руководство предполагает, что вы уже установили IDE Arduino и хотя бы минимально знакомы с ее использованием. Если нет, я отсылаю вас к этим ссылкам:

Начало работы с Arduino

Добавление поддержки Digispark (с загрузчиком) в существующую IDE Arduino 1.6.x

Push-It будет работать практически с любой платой Arduino, например плата Nano, Uno или DigiSpark Attiny85. Я тестировал ее с Nano 3.1 и DigiSpark. В тексте, когда я ссылаюсь на названия / номера контактов, они будут такими же, как на плате Nano (в отличие от DigiSpark).

Шаг 1. Получите все, что вам нужно

Это просто любая Arduino или аналогичная плата.

Если у вас его еще нет, я рекомендую начать с DigiSpark Pro (~ 12 долларов) или Nano 3.0 от eBay за ~ 3 доллара (но у вас будет дополнительная неделя или две, чтобы дождаться его доставки из Китая.; и вам нужно будет установить драйвер USB CH340). DigiSpark ~ 10 долларов (не Pro) очень хорошо подходит для этой однобитной «видеоигры» (этот урезанный блок, имеющий всего 6 входов / выходов, немного сложнее для загрузки)

Ссылки на используемое здесь оборудование:

Nano V3.0 Atmega328P на eBay

Совет по развитию Digispark USB

Шаг 2. Получите и загрузите код

Получить и загрузить код
Получить и загрузить код

Скопируйте приведенный ниже код в файл скетча Arduino (например,… / Push_It / Push_It.ino). Я попытался достаточно хорошо его прокомментировать. Надеюсь, вы найдете код легко понятным. Логика определения того, когда увеличивать, уменьшать, а когда нет, несколько сложна, но эта часть также является специализированным кодом и не имеет общего значения. Подробнее о настройке нового `` эскиза '' (проекта кода), который будет использоваться с IDE Arduino см.:

Создание нового скетча Arduino

Загрузите эскиз Push_It в наш микроконтоллер, следуя инструкциям Arduino IDE для вашей платы.

Шаг 3: Игра

Играет
Играет

Цель игры - заставить светодиодный индикатор (встроенный) мигать как можно больше раз в серии вспышек, которые затем повторяются.

Игра в игру:

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

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

Но если вы «нажмете» до или после первой вспышки, количество вспышек в наборе уменьшится.

Если больше ничего не делать, количество вспышек в наборе сохраняется. Далее, когда счет остается неизменным в течение полного цикла, номер счета сохраняется в памяти EEPROM.

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

После того, как вы увеличили количество вспышек на вашем устройстве, вы можете отнести его (или отправить по почте, для чего подходит DigiSpark) другу, и после его подключения они увидят, насколько велико количество вспышек у вас. к. Я обнаружил, что довольно сложно довести его до более чем 8. С реальной прикрепленной кнопкой мне удалось поднять его до более чем дюжины. Чтобы вернуться к меньшему количеству, вы можете несколько раз нажать на него в любое время до или после первой вспышки. Также, если вы подключите входной контакт к земле во время включения, счетчик сбрасывается до 1.

Обратите внимание, что исходная плата DigiSpark имеет задержку в 10 секунд после включения, перед которой она начнет выполнять код «Push-It» и играть в игру. Он использует это время, чтобы попытаться поговорить через контакты USB, чтобы получить возможное новое обновление кода загрузки.

Если на плате Arduino, которую вы используете, есть светодиод USB TX, этот светодиод будет быстро мигать, когда вы эффективно «нажмете кнопку». Этот светодиод будет более интенсивно мигать, когда значение счетчика в EEPROM обновится до нового значения. Эта обратная связь может очень помочь вам узнать, когда или убедиться, что вы действительно активировали событие «нажатие кнопки». Возможно, вам потребуется убедиться, что вы не касаетесь заземления схемы (например, металла вокруг разъема micro-USB), чтобы ваша фигура действительно наводила шум на открытый входной контакт. Будут добавлены и несколько непредсказуемые проблемы из-за того, что входной контакт плавающий (не поднимается или опускается токопроводящей / резистивной нагрузкой) и переменный шум сигнала, проходящий через ваш палец.

Прямоугольная волна 250 Гц выводится на контакт рядом с входным контактом, что значительно повышает достоверность введенного входного сигнала, когда ваш палец закрывает оба контакта.

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

Когда я играю в «Push-It», мне нравится делать это с платой, подключенной к мобильному аккумулятору USB 5 В (см. Фотографии). Обычно их можно недорого найти в отсеках рядом с отсеками для USB-адаптеров переменного тока и 12-вольтовых автомобильных адаптеров; в большинстве универмагов отдел электроники.

Шаг 4. Дополнительные эксперименты с внешними компонентами

Дополнительные эксперименты с внешними компонентами
Дополнительные эксперименты с внешними компонентами

Обратите внимание: если вы действительно прикрепляете настоящую кнопку, есть одна строка кода, которую необходимо закомментировать, как указано в коде.

Если у динамика одна сторона заземлена, если вы коснетесь другого вывода к D4, вы услышите звук прямоугольной волны 250 Гц. На D3 есть прямоугольная волна 500 Гц. Если вы подключите динамик между D3 и D4, вы услышите смесь двух сигналов.

Очень интересно подключить светодиод вместо динамика, как описано выше. Нет необходимости беспокоиться о напряжении, уровнях тока, сопротивлениях или даже полярности в этом отношении (в худшем случае он не горит, просто переверните его). Прежде всего попробуйте подключить отрицательный (катодный) вывод к земле, а другой - к D3 или D4. Светодиод будет гореть «наполовину» из-за прямоугольных волн. Кроме того, резистор не требуется, поскольку выход MicroControllerUnits ограничен по току. Я провел измерения тока, которые дали 15 мА и 20 мА для микроконтроллеров Attiny85 и Atmega328 соответственно. Эти уровни составляют примерно половину текущего ограниченного значения для этих частей из-за 50% -ной продолжительности рабочего цикла управляющих прямоугольных сигналов. Показания измерителя на самом деле являются средним значением тока, протекающего через тестируемую цепь.

Интересно, что если вы установите мост между D3 и D4 с помощью светодиода (см. Изображение выше и слева), он будет светиться в любом направлении и примерно на 1/2 яркости, как это было при подключении одной стороны к земле. Я приглашаю вас задуматься, почему.

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