Turinys:

Rankinė „Arduino Pong“konsolė: 6 žingsniai (su nuotraukomis)
Rankinė „Arduino Pong“konsolė: 6 žingsniai (su nuotraukomis)

Video: Rankinė „Arduino Pong“konsolė: 6 žingsniai (su nuotraukomis)

Video: Rankinė „Arduino Pong“konsolė: 6 žingsniai (su nuotraukomis)
Video: 1. Q Light Controller + pradedama naudoti QLC +. Šviestuvai ir funkcijos 2024, Birželis
Anonim
Rankinė „Arduino Pong“konsolė
Rankinė „Arduino Pong“konsolė

„DFRobot“neseniai kreipėsi į mane, norėdamas, kad naudočiau jų specialią „Arduino Nano“plokštę ir OLED. Iš pradžių norėjau sukurti išmanųjį dviratį ir jį sukūriau visą. Bet, deja, „Nano“buvo per silpnas, kad galėtų paleisti ir išsaugoti reikalingą eskizą. Taigi nusprendžiau dar kartą peržiūrėti vieną iš savo ankstesnių projektų - „Neopixel“matricą, kuri vykdė „Pong“žaidimą. Aš norėjau, kad jis būtų nešiojamas, o 1,7 colio OLED būtų puikus ekranas.

Dalių sąrašas:

  • Arduino nano
  • OLED
  • Pranešėjas

1 žingsnis: vaizdo įrašas

Image
Image

2 žingsnis: žaidimo kūrimas

Žaidimo projektavimas
Žaidimo projektavimas

Šiam „Pong“žaidimui norėjau, kad jis būtų gana paprastas, o tai reiškė, kad kompiuteriu valdomas irklas ar išgalvoti rutulio atspindžio algoritmai. Iš esmės yra vienas irklas, kurį vartotojas gali judėti aukštyn arba žemyn, o jei kamuolys susidurs su irklu, jo x ašies vektorius apsivers. Kiekvieną kartą, kai kamuolys pataiko, pasigirsta garsas. Įjungus žaidimo įrenginį, ekrane pasirodo žaidimo pavadinimas ir instrukcijos. Be to, mano mama sukūrė nedidelę teminę dainą, kuri skamba fone, kol paspaudžiamas viršutinis mygtukas.

3 žingsnis: žaidimų įrenginio projektavimas

Žaidimų įrenginio projektavimas
Žaidimų įrenginio projektavimas
Žaidimų įrenginio projektavimas
Žaidimų įrenginio projektavimas
Žaidimų įrenginio projektavimas
Žaidimų įrenginio projektavimas
Žaidimų įrenginio projektavimas
Žaidimų įrenginio projektavimas

Mano pasirinkta CAD programa yra „Fusion 360“, todėl nusprendžiau ją panaudoti kurdamas savo pong žaidimų įrenginį. Aš pradėjau kurti kiekvieną naudojamą komponentą: OLED, „Arduino Nano“ir garsiakalbį. Tokiu būdu galiu tiksliai pamatyti, kur ir kaip kiekvienas komponentas turėtų tilpti gaubto viduje. Tada įdėjau „Nano“ir PCB į galinę korpuso dalį, o ant jo - OLED. Kitas buvo klausimas, kur įdėti garsiakalbį ir mygtukus. Nusprendžiau, kad 3 W garsiakalbis gali būti šiek tiek žemiau ekrano (žiūrint į jį iš viršaus), o tam taip pat reikia uždėti „groteles“virš garsiakalbio, kad garsas nebūtų prislopintas. Galiausiai pridėjau du mygtukus kairėje pusėje, kad pridėčiau valdiklius.

4 žingsnis: Įrenginio konstravimas

Įrenginio konstravimas
Įrenginio konstravimas
Įrenginio konstravimas
Įrenginio konstravimas
Įrenginio konstravimas
Įrenginio konstravimas

Aš pradėjau spausdinti 3D kiekvieną dalį, susidedančią iš apatinės pusės, viršutinės pusės ir 2 mygtukų. Tada aš lituosiu moterišką antraštę prie 4x6 cm ir prijungiau ją prie „Nano“. Tai leidžia ne tik lengvai pašalinti OLED, bet ir pakelti jį aukščiau „Arduino Nano“. Informacijos apie laidus ieškokite schemoje. Tada prijungiau du mygtukus ir paprastą mikro USB pertraukos plokštę, kad galėčiau maitinti. Garsiakalbis taip pat buvo pritvirtintas ir padėjo jam teisingą padėtį. Mano „Fusion 360“dizainas leidžia 3 mm mašinos varžtais laikyti nuspaustą OLED, garsiakalbį ir prijungti dvi prietaiso puses. Bet aš turėjau juos tiksliai nustatyti, todėl aš naudoju savo grąžtą 8 skylėms: 2 garsiakalbiui, 2 ekranui ir 4 apačioje. Galite aplankyti failų nuorodą „Thingiverse“.

5 žingsnis: žaidimo programavimas

Paprastos sąsajos naudojimas buvo gyvybiškai svarbus, kad programa būtų maža. Pradėjau pridėdamas kelias bibliotekas: „Adafruit_GFX“, „Adafruit_SSD1351“ir „Arduino Timer“biblioteką. Tada aš apibrėžiau savo kaiščius ir spalvas, pvz., OLED kaiščius ir 16 bitų spalvų apibrėžimus. Mano kode taip pat yra 4 būdai, kaip pakeisti žaidimo eigą, pvz., Irklo matmenų keitimas ir kamuoliuko judėjimo greitis. Tada yra skyrius, kuriame yra apibrėžtas kiekvienas kintamasis, įskaitant rezultatą ir įvairias koordinates. Kai prietaisas įjungiamas įjungus rutulio atvaizdą, ekrane pasirodo tam tikras tekstas ir maža teminė daina, kuri anksčiau buvo apibrėžta kode. Kai žaidimas prasideda, sukuriami du laikmačiai, vienas atnaujina irklą, o kitas - kamuolį. Kiekvieną kartą atnaujinant rutulio padėtį jo koordinatės yra tikrinamos, kad įsitikintumėte, jog jis neperžengia ekrano ribos, ar paliečia irklą. Kiekvieną kartą atšokus jo x arba y ašis apverčiama ir skamba mažas tonas. Žiūrėkite vaizdo įrašą šio rašymo pradžioje, kad pamatytumėte, kaip žaidimas veikia.

6 žingsnis: Žaisti pongą

Žaisti pongą!
Žaisti pongą!
Žaisti pongą!
Žaisti pongą!
Žaisti pongą!
Žaisti pongą!
Žaisti pongą!
Žaisti pongą!

Žaidimo pavadinimas yra gauti kuo mažesnį balą. Laiko apribojimų nėra, todėl tai labai malonu ir netgi sukelia transą. Viskas, ko reikia, yra paspausti vieną iš dviejų mygtukų, kad irklas judėtų aukštyn arba žemyn. Taip pat galima pridėti būdą išsaugoti aukščiausią balą naudojant „Arduino“EEPROM.

Rekomenduojamas: