INHOUDSOPGAWE:

Handheld Arduino Pong -konsole: 6 stappe (met foto's)
Handheld Arduino Pong -konsole: 6 stappe (met foto's)

Video: Handheld Arduino Pong -konsole: 6 stappe (met foto's)

Video: Handheld Arduino Pong -konsole: 6 stappe (met foto's)
Video: VGA Pong on Arduino Uno 2024, November
Anonim
Handheld Arduino Pong -konsole
Handheld Arduino Pong -konsole

DFRobot het onlangs na my uitgekom en wou hê ek moes hul spesiale Arduino Nano -bord en OLED gebruik. Ek wou eers 'n slim fiets skep, en ek het dit in sy geheel gebou. Maar ongelukkig was die Nano te swak om die massiewe skets wat nodig was, te hardloop en op te slaan. Daarom het ek besluit om weer een van my vorige projekte te besoek, 'n Neopixel -matriks wat 'n Pong -speletjie uitgevoer het. Ek wou dit eerder draagbaar maak, en 'n 1.7 OLED sou 'n perfekte vertoning wees.

Lys van onderdele:

  • Arduino nano
  • OLED
  • Spreker

Stap 1: Video

Image
Image

Stap 2: Ontwerp die spel

Die ontwerp van die spel
Die ontwerp van die spel

Vir hierdie Pong -speletjie wou ek dit relatief eenvoudig hou, wat beteken dat dit nie deur 'n rekenaar beheer word nie, of 'n fyn balweerkaatsingsalgoritme beteken. Eintlik is daar 'n enkele paddle wat 'n gebruiker op of af kan beweeg, en as die bal met die paddle bots, kan die x -as -vektor draai. Elke keer as die bal getref word, is daar 'n geluid wat speel. As die speltoestel aangeskakel is, verskyn 'n skerm met die titel van die speletjie en instruksies. Boonop het my ma 'n klein temaliedjie gemaak wat in die agtergrond loop totdat die boonste knoppie ingedruk word.

Stap 3: Ontwerp die speelapparaat

Ontwerp van die speelapparaat
Ontwerp van die speelapparaat
Ontwerp van die speelapparaat
Ontwerp van die speelapparaat
Ontwerp van die speelapparaat
Ontwerp van die speelapparaat
Ontwerp van die speelapparaat
Ontwerp van die speelapparaat

My CAD-program is Fusion 360, en ek het besluit om dit te gebruik om my pong-speelapparaat te ontwerp. Ek het begin met die ontwerp van elke komponent wat gebruik word: 'n OLED, Arduino Nano en 'n luidspreker. Op hierdie manier kan ek presies sien waar en hoe elke komponent in die omhulsel moet pas. Ek sit dan die Nano en PCB in die agterkant van die omhulsel, en die OLED daarop. Die volgende was die vraag waar om die luidspreker en knoppies te plaas. Ek het besluit dat die 3W -luidspreker net onder die skerm kan gaan (van bo af na dit gekyk), en dit het ook 'n "rooster" oor die luidspreker geplaas, sodat die geluid nie gedemp word nie. Laastens het ek twee knoppies aan die linkerkant bygevoeg om kontroles by te voeg.

Stap 4: Bou die toestel

Die bou van die toestel
Die bou van die toestel
Die bou van die toestel
Die bou van die toestel
Die bou van die toestel
Die bou van die toestel

Ek het begin deur elke deel in 3D te druk, bestaande uit die onderste helfte, die boonste helfte en 2 knoppies. Daarna het ek 'n vroulike kopstuk tot die 4x6cm gesoldeer en aan die Nano gekoppel. Hierdeur kan die OLED nie net maklik verwyder word nie, maar dit verhef dit ook bo die Arduino Nano. Gaan die skema na vir bedradinginligting. Daarna het ek die twee knoppies saam met 'n eenvoudige mikro -USB -uitbreidingskaart vir krag aangesluit. Die spreker is ook aangeheg en het dit in die regte posisie geplaas. My Fusion 360 -ontwerp laat 3 mm -masjienskroewe toe om die OLED, luidspreker vas te hou en die twee helftes van die toestel aan te sluit. Maar ek moes dit presies maak, so ek gebruik my boorpers om 8 gate uit te boor: 2 vir die luidspreker, 2 vir die skerm en 4 daaronder. U kan die Thingiverse -skakel vir die lêers besoek.

Stap 5: Die programmering van die spel

Die gebruik van 'n eenvoudige koppelvlak was noodsaaklik om die program klein te hou. Ek het begin deur verskeie biblioteke by te voeg: Adafruit_GFX, Adafruit_SSD1351 en die Arduino Timer -biblioteek. Vervolgens het ek my penne en kleure gedefinieer, soos die OLED -penne en 16 -bis -kleurdefinisies. In my kode is daar ook vier maniere om die spel te verander, soos om die afmetings van die paddle te verander en hoe vinnig die bal beweeg. 'N Gedeelte bestaan dan waar elke veranderlike gedefinieer word, insluitend die telling en verskillende koördinate. Elke keer as die toestel 'n beeld van 'n bal aanskakel en teks op die skerm verskyn, tesame met 'n klein temaliedjie wat vroeër in die kode gedefinieer is. Sodra die spel begin, word twee timers geskep, een wat die spaan bywerk en die ander die bal opdateer. Elke keer as die posisie van die bal opgedateer word, word die koördinate daarvan nagegaan om seker te maak dat dit nie verby die skermgrens gaan of as dit aan 'n spaan raak nie. Elke keer as dit weerkaats, word sy x- of y -as omgekeerd en 'n klein toon speel. Kyk na die video aan die begin van hierdie skrywe om te sien hoe die spel speel.

Stap 6: Speel Pong

Speel Pong!
Speel Pong!
Speel Pong!
Speel Pong!
Speel Pong!
Speel Pong!
Speel Pong!
Speel Pong!

Die naam van die spel is om die laagste moontlike telling te kry. Daar is geen tydsbeperking nie, so dit is baie aangenaam en selfs trance-inducerend. Al wat nodig is, is om op een van die twee knoppies te druk om die spaan op of af te beweeg. Dit is ook moontlik om 'n manier by te voeg om die hoogste telling te bewaar met die Arduino's EEPROM.

Aanbeveel: