Мазмуну:

Понг тенниси LED Matrix, Arduino жана Joysticks менен: 5 кадам (Сүрөттөр менен)
Понг тенниси LED Matrix, Arduino жана Joysticks менен: 5 кадам (Сүрөттөр менен)

Video: Понг тенниси LED Matrix, Arduino жана Joysticks менен: 5 кадам (Сүрөттөр менен)

Video: Понг тенниси LED Matrix, Arduino жана Joysticks менен: 5 кадам (Сүрөттөр менен)
Video: Arduino 8x8 светодиодная матричная игра в пинг-понг 2024, Ноябрь
Anonim
Понг тенниси LED Matrix, Arduino жана Joysticks менен
Понг тенниси LED Matrix, Arduino жана Joysticks менен

Бул долбоор башталгычтарга жана тажрыйбалуу шылуундарга арналган. Негизги денгээлде муну нан менен, секиргич зымдар менен жасоого болот жана Blu-Tack менен эч кандай ширетүү жок болгон сынык материалга (мен жыгач колдонгом) жабышып калам. Бирок, өркүндөтүлгөн деңгээлде, аны тактага же ыңгайлаштырылган ПКБга ширетүүгө болот.

Бул блокировка долбоору болгондуктан, мен көптөгөн шаймандарга же материалдарга кире алган жокмун, ошондуктан ал Blu-Tack менен бир аз өтө кичинекей жыгачтын сыныгына жабышып калды, бирок буга карабастан, бул чогуу келген кызыктуу долбоор тез жана Интернетте арзан табууга мүмкүн болгон жалпыга жеткиликтүү бөлүктөрдөн турат.

1 -кадам: Бөлүктөр

Понг оюнун жасоо үчүн сизге керек;

  • 1x An Arduino (каалаган түрү иштейт)
  • 4x MAX7219 8x8 LED матрицалары
  • 2x джойстиктер
  • 1x Piezo Buzzer (Милдеттүү эмес)
  • 15х Аял-Аял Jumper Wires (5тен 3 топ)
  • 15x Эркек-Аял Jumper Wires (5тен 3x топтору)
  • 18x Эркек-Эркек Jumper Wires
  • 1x нан тактасы
  • 1x 220Ω резистор

Arduino Uno же Nano тактасынын ордуна Arduino негизделген нан тактасын колдонсоңуз болот;

  • 1x ATmega328p 28pin IC
  • 1х 16 кГц кристалл осциллятору
  • 2x 22pF керамикалык конденсаторлор
  • 1x USB FTDI UART Converter
  • 1x 100uF электролиттик конденсатор
  • 1x Micro USB Breakout (Милдеттүү эмес)

Куралдар;

  • PC Arduino IDE менен (жана LedControl китепканасы)
  • Сиздин Arduino үчүн тиешелүү USB кабели
  • Power Bank оюнду компьютериңизден алыстатуу үчүн

2 -кадам: Кабелдөө

Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү

Зымдар абдан жөнөкөй, анткени сизге матрицанын жана джойстиктин башын Arduino менен туташтыруу үчүн секирүүчү зымдар жетиштүү. Жалгыз татаалдык - бул күч, анткени Arduino Uno 3 GND жана 5V туташуусу бар. Бул жерде панель келип, бардык компоненттер үчүн электр бөлүштүрүүчү темир жол катары иштейт, эгерде сиз НАНО колдонсоңуз, нандын тактайы ошол эле максатта кызмат кылат жана бардыгын туташтырууга мүмкүндүк берет.

Өткөрүү үчүн бул байланыштарды аткарыңыз.

  • Сол Джойстик - GND жана 5v тиешелүү электр рельстерине. SW - пин 9, VRx - A0, VRy - A1.
  • Оң джойстик - GND жана 5v тиешелүү электр рельстерине. SW - пин 8, VRx - A2, VRy - A3.
  • Rightmost LED Matrix - GND жана 5v тиешелүү электр рельсине. DIN - 13, CS - 11, CLK - 12. (25 -сап боюнча)
  • Башка бардык LED матрицалары биринчисинин оңунан солго карай кетүүсүн чечип койсо болот, андыктан код туура иштейт.
  • Кошумча Buzzer - Анод (+) аркылуу 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-сап: Топту белгиленген бийиктикте жана ылдамдыкта сол оюнчуга жылдыруучу функция, оюнчу аны урганын текшерет, же улантат жана авариянын абалын чын деп коет же топту артка кайтарат, эсепке 1 кошот жана ылдамдыгын жогорулатат.

Линия 438-811: Топту белгиленген бийиктикте жана ылдамдыкта оң оюнчуга жылдыруучу функция, оюнчу аны урганын текшерет, же улантат жана кырсыктын абалын чын деп коет же топту артка кайтарат, эсепке 1 кошот жана ылдамдыгын жогорулатат.

Сап 813-823: Белгиленген дисплейге Smiley Face, Tick, Cross же суроо белгисин көрсөтүү функциясы (оңдо 0 солго 3).

Сап 861-979: 0-9 сандарын көрсөтүлгөн дисплейге көрсөтүү функциясы.

Линия 981-1047: Экрандын ар бир оюнчусуна эсепти көрсөтүү функциясы.

Сап 1049-1064: Функция, оюнчунун даяр экендигин текшерүү.

Сап 1066-1076: Орнотуу программасы башталганда бир жолу иштетилүүчү коддун бөлүмү.

Сап 1078-1136: Негизги цикл бөлүмү, логикалык логика үчүн, анда бардык функциялар колдонулат жана ким жеңет, ошондо 5 секунддан кийин программаны кайра баштайт.

5 -кадам: Окуганыңыз үчүн рахмат

Окуганыңыз үчүн рахмат
Окуганыңыз үчүн рахмат

Бул Нускаманы окуганыңыз үчүн рахмат, бул бир нече күндүн ичинде чогулган кызыктуу блокировка долбоору, мен Arduino программалоо жөнүндө көбүрөөк билдим. Эгер сизге жакса, Arduino конкурсунда ага добуш берсеңиз болот.

Сунушталууда: