Оглавление:

Теннис-понг со светодиодной матрицей, Arduino и джойстиками: 5 шагов (с изображениями)
Теннис-понг со светодиодной матрицей, Arduino и джойстиками: 5 шагов (с изображениями)

Видео: Теннис-понг со светодиодной матрицей, Arduino и джойстиками: 5 шагов (с изображениями)

Видео: Теннис-понг со светодиодной матрицей, Arduino и джойстиками: 5 шагов (с изображениями)
Видео: Игра Пинг понг на Ардуино 2024, Ноябрь
Anonim
Теннис-понг со светодиодной матрицей, Arduino и джойстиками
Теннис-понг со светодиодной матрицей, Arduino и джойстиками

Этот проект предназначен как для начинающих, так и для опытных мастеров. На базовом уровне это можно сделать с помощью макета, перемычек и приклеить к куску металлолома (я использовал дерево) с помощью Blu-Tack и без пайки. Однако на более продвинутом уровне его можно припаять к перфорированной плате или специальной печатной плате.

Поскольку это был закрытый проект, у меня не было доступа ко многим инструментам или материалам, поэтому он привязан к куску обрезков дерева, который немного слишком мал для Blu-Tack, однако, несмотря на это, это забавный проект, который объединяется быстро и состоит из общедоступных частей, которые можно дешево найти в Интернете.

Шаг 1: Детали

Чтобы сделать игру в понг, вам необходимо;

  • 1x Arduino (подойдет любой тип)
  • Светодиодные матрицы 4x MAX7219 8x8
  • 2x джойстика
  • 1x пьезо-зуммер (опционально)
  • 15x проводов для перемычек `` мама-мама '' (3 группы по 5)
  • 15 перемычек между мужчинами и женщинами (3 группы по 5 шт.)
  • 18x перемычек между мужчинами и женщинами
  • 1x макетная плата
  • 1x 220 Ом резистор

Вместо платы Arduino Uno или Nano вы можете использовать макетную плату на базе Arduino;

  • 1x ATmega328p 28pin IC
  • 1x кварцевый генератор 16 кГц
  • Керамические конденсаторы 2x 22pF
  • 1x USB FTDI UART конвертер
  • 1x 100 мкФ электролитический конденсатор
  • 1x Micro USB Breakout (опционально)

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

  • ПК с Arduino IDE (и библиотекой LedControl)
  • Соответствующий USB-кабель для вашего Arduino
  • Power Bank для игры вдали от вашего компьютера

Шаг 2: Подключение

Проводка
Проводка
Проводка
Проводка

Подключение очень простое, все, что вам нужно, это перемычки для подключения заголовков матриц и джойстиков к Arduino. Единственная сложность - это питание, так как Arduino Uno имеет только 3 соединения GND и одно соединение 5 В. Здесь входит макетная плата, которая действует как распределительная шина для всех компонентов. Если вы используете NANO, макетная плата будет служить той же цели, а также позволит вам все подключить.

Для электромонтажа следуйте этим подключениям.

  • Левый джойстик - GND и 5 В на соответствующие шины питания. SW - вывод 9, VRx - A0, VRy - A1.
  • Правый джойстик - GND и 5 В к соответствующим шинам питания. SW - контакт 8, VRx - A2, VRy - A3.
  • Крайняя правая светодиодная матрица - GND и 5 В на соответствующие шины питания. DIN - 13, CS - 11, CLK - 12. (По строке 25)
  • Все остальные светодиодные матрицы могут быть последовательно подключены к выходу первого справа налево, чтобы код работал правильно.
  • Дополнительный зуммер - анод (+) через токоограничивающий резистор 220 Ом к контакту 10, катод (-) - GND.

Шаг 3: Альтернативное подключение

Альтернативная проводка
Альтернативная проводка
Альтернативная проводка
Альтернативная проводка
Альтернативная проводка
Альтернативная проводка

После подключения его к Arduino UNO для экономии места я решил поместить Arduino IC от UNO на макетную плату с кварцевым генератором 16 МГц и парой конденсаторов 22 пФ с каждой стороны на землю. Я считаю, что это была стоящая модификация, поскольку она делает проект более аккуратным и законченным, однако для обновления программы вам нужно использовать USB-программатор FTDI.

Шаг 4: Код + объяснение

Чтобы загрузить код в Arduino, загрузите библиотеку LedControl с GitHub здесь, github.com/wayoda/LedControl и добавьте Zip-файл или добавьте его через диспетчер библиотек в среде IDE. После этого откройте прикрепленный эскиз, выберите свой Arduino в настройках платы и порта в разделе инструментов и загрузите его в Arduino.

Объяснение

Строка 1: добавляет библиотеку.

Строка 5-23: Устанавливает все переменные, константы и номера контактов.

Строка 25: Устанавливает LED Martix, устанавливает контакты управления и количество дисплеев.

Строка 27: Устанавливает функцию сброса.

Строка 30-35: Функция выключения для одновременного включения / выключения всех дисплеев.

Строка 38-43: функция SetIntensity, чтобы установить яркость всех дисплеев вместе.

Строка 46-51: функция ClearAll для очистки всех дисплеев вместе.

Строка 53-64: джойстик. Функция позволяет получить положение джойстиков, сопоставить их с 7 возможными положениями биты для удара по мячу, а затем перемещает биту в новое положение.

Строка 67-435: Функция, которая перемещает мяч к левому игроку на указанной высоте и скорости, проверяет, ударил ли его игрок, и либо продолжает, и устанавливает статус столкновения в истинное значение, либо отбрасывает мяч обратно, добавляет 1 к счету и увеличивает скорость.

Строка 438-811: Функция, которая перемещает мяч к нужному игроку на указанной высоте и скорости, проверяет, ударил ли игрок по нему, и либо продолжает, и устанавливает статус столкновения как истинный, либо отбрасывает мяч обратно, добавляет 1 к счету и увеличивает скорость.

Строка 813-823: Функция отображения смайлика, галочки, креста или вопросительного знака на указанном экране (от 0 справа до 3 слева).

Строка 861-979: Функция отображения чисел 0-9 на указанном дисплее.

Строка 981-1047: Функция для отображения счета на стороне экрана каждого игрока.

Строка 1049-1064: Функция проверки готовности плеера.

Строка 1066-1076: Setup Раздел кода для кода, который запускается один раз при запуске программы.

Строка 1078-1136: Раздел основного цикла для игровой логики, в котором используются все функции и определяется, кто победит, а затем программа перезапускается через 5 секунд после отображения счета.

Шаг 5. Спасибо за внимание

Спасибо за прочтение
Спасибо за прочтение

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

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