Съдържание:

Тенис на понг с LED матрица, Arduino и джойстици: 5 стъпки (със снимки)
Тенис на понг с LED матрица, Arduino и джойстици: 5 стъпки (със снимки)

Видео: Тенис на понг с LED матрица, Arduino и джойстици: 5 стъпки (със снимки)

Видео: Тенис на понг с LED матрица, Arduino и джойстици: 5 стъпки (със снимки)
Видео: 05 Arduino Pong 2024, Ноември
Anonim
Тенис на понг с LED матрица, Arduino и джойстици
Тенис на понг с LED матрица, Arduino и джойстици

Този проект е предназначен както за начинаещи, така и за опитни калайджии. На основно ниво може да се направи с макет, проводници и да се залепи за парче скрап (използвах дърво) с Blu-Tack и без запояване. На по -напреднало ниво обаче той може да бъде запоен към перф платка или персонализирана печатна платка.

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

Стъпка 1: Части

За да направите понг играта ви трябва;

  • 1x Arduino (всеки тип ще работи)
  • 4x MAX7219 8x8 LED матрици
  • 2x джойстици
  • 1x пиезо зумер (по избор)
  • 15x женско-женски джъмперни проводници (3x групи по 5)
  • 15x проводници за мъже и жени (3x групи от 5)
  • 18x проводници за мъже и мъже
  • 1x платка
  • 1x 220Ω резистор

Вместо дъска Arduino Uno или Nano можете да използвате Arduino, базиран на макет;

  • 1x ATmega328p 28pin IC
  • 1x 16kHz кристален осцилатор
  • 2x 22pF керамични кондензатори
  • 1x USB FTDI UART конвертор
  • 1x 100uF електролитен кондензатор
  • 1x Micro USB Breakout (По избор)

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

  • Компютър с Arduino IDE (и библиотека LedControl)
  • Подходящ USB кабел за вашия Arduino
  • Power Bank за захранване на играта далеч от вашия компютър

Стъпка 2: Окабеляване

Електрически инсталации
Електрически инсталации
Електрически инсталации
Електрически инсталации

Окабеляването е много просто, тъй като всичко, от което се нуждаете, е джъмперни кабели за свързване на заглавките на матриците и джойстиците към Arduino. Единственото усложнение е захранването, тъй като Arduino Uno има само 3 GND връзки и една 5v връзка. Тук платката влиза и действа като разпределителна шина за всички компоненти. Ако използвате NANO, макетната платка ще служи за същата цел, както и ще ви позволи да включите всичко.

За окабеляване следвайте тези връзки.

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

Стъпка 3: Алтернативно окабеляване

Алтернативно окабеляване
Алтернативно окабеляване
Алтернативно окабеляване
Алтернативно окабеляване
Алтернативно окабеляване
Алтернативно окабеляване

След като го свързах с Arduino UNO, за да спестя място, реших да поставя Arduino IC от UNO на чертежа с 16Mhz кристален осцилатор и чифт 22pF кондензатори от всяка страна към земята. Чувствам, че това е полезна промяна, тъй като прави проекта да изглежда по -изряден и завършен, но трябва да използвате 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: Функция, която премества топката към левия играч на определена височина и скорост, проверява дали играчът го е ударил или или продължава и задава статуса на катастрофата на true или отскача топката, добавя 1 към резултата и увеличава скоростта.

Ред 438-811: Функция, която премества топката към десния играч на определена височина и скорост, проверява дали играчът я е ударил или или продължава и задава статуса на катастрофата на true или отскача топката, добавя 1 към резултата и увеличава скоростта.

Ред 813-823: Функция за показване на усмихнато лице, отметка, кръст или въпросителен знак към посочения дисплей (0 отдясно до 3 отляво).

Ред 861-979: Функция за показване на числата 0-9 на посочения дисплей.

Ред 981-1047: Функция за показване на резултата от всяка страна на екрана на играчите.

Ред 1049-1064: Функция за проверка дали плейърът е готов.

Ред 1066-1076: Раздел за настройка на кода, който се изпълнява веднъж при стартиране на програмата.

Ред 1078-1136: Раздел Main Loop за логика на играта, където се използват всички функции и където се решава кой печели и след това той рестартира програмата след 5 секунди след показване на резултата.

Стъпка 5: Благодаря за четенето

Благодаря за четенето
Благодаря за четенето

Благодаря, че прочетохте този Instructable, това беше забавен проект за заключване, който се събра за няколко дни, когато научих повече за програмирането на Arduino. Ако ви хареса, не се колебайте да гласувате за него в конкурса Arduino.

Препоръчано: