Inhoudsopgave:

Arduino Arcade Lego Games Box - Ajarnpa
Arduino Arcade Lego Games Box - Ajarnpa

Video: Arduino Arcade Lego Games Box - Ajarnpa

Video: Arduino Arcade Lego Games Box - Ajarnpa
Video: DEMO of Arduino Arcade Lego Games Box 2024, Juli-
Anonim
Image
Image
Arduino Arcade Lego-spellendoos
Arduino Arcade Lego-spellendoos
Arduino Arcade Lego-spellendoos
Arduino Arcade Lego-spellendoos

Als je kinderen hebt, heb je waarschijnlijk dezelfde problemen als wij met de Lego-sets die je voor hen hebt gekocht. Ze assembleren en spelen ermee, maar na een tijdje veranderen de sets in een enkele stapel stenen. De kinderen worden groot en je weet niet wat je met deze stapel moet doen.

We besloten de ongewenste Legoblokjes te recyclen en creëerden een arcadespel.

Deze stapsgewijze handleiding is het resultaat van enkele maanden werk om het spel herhaalbaar en tegen zeer lage kosten te maken. Vrijwel iedereen zou dit project kunnen herhalen! De code is zo geschreven dat deze geen afhankelijkheden heeft en op elk Arduino-bord kan worden gecompileerd. En natuurlijk zijn de spellen intensief getest door onze kids:-)

Waarin verschilt deze game van vele andere die eerder zijn gepubliceerd?

Allereerst zijn er 5 spellen ingebouwd:

  • Memory Game ("Simon-Says"-achtig, vergelijkbaar met Touch Me-game)
  • Reactiespel (vergelijkbaar met Whack-a-Mole-spel)
  • Wedstrijd/wedstrijdspel (voor 2-4 spelers)
  • Melody Game (Push and Play gratis modus voor peuters en kleinere)
  • Oorlogsspel (voor 2-4 volwassenen)

Ten tweede heeft het een geweldig ontwerp (vanuit ons perspectief) en kan het gemakkelijk worden herhaald.

En ten derde is het milieuvriendelijk omdat je het plastic kunt recyclen.

Aan het einde van deze handleiding is er ook een stapsgewijze video voor het geval u de voorkeur geeft aan het videoformaat.

Stap 1: Onderdelenlijst

Onderdelen lijst
Onderdelen lijst
Onderdelen lijst
Onderdelen lijst

Als je dit project leuk vindt, maar geen stapel ongewenste Legoblokjes hebt, is het het gemakkelijkst om een Lego Classic 10704-set te kopen met 900 stukjes erin.

Hier is een lijst met items die u nodig hebt om dit project te maken:

  • 1 kg Ongewenste Legoblokjes (of vergelijkbare stenen van een ander merk zoals Mega Bloks)
  • 25 x 25 cm grondplaat voor Lego (of vergelijkbaar van een ander merk). Lego basis heeft 32 x 32 stippen. Als je het niet hebt - de basis kost ongeveer $ 3 incl. verzendkosten als u online koopt (zoekterm "32 25 blokken")
  • 30 x 30 cm transparant plexiglas stuk (5 of 6 mm dik)
  • 4 x Big Arcade-stijl 60 mm drukknoppen (ik raad rood, groen, blauw, geel aan) (zoekterm voor online winkels: "60 mm arcade-knop"). Ze zijn het duurste onderdeel van deze build, ongeveer $ 2 per stuk.
  • 2 x kortstondige drukknop 16 mm radius (ik raad wit en zwart aan) (zoekterm: "16 mm drukknop")
  • Aan/uit-tuimelschakelaar 27x21mm montagemaat (ik raad transparant rood met 4 pinnen aan) (zoekterm: "tuimelschakelaar 16a")
  • Arduino Nano
  • 1602 LCD-display en I2C-aansluitmodule
  • 2 x 4ohm 5W luidsprekers, afmeting 30 x 70 mm (u kunt andere kleine gebruiken, maar de CAD-tekening is gemaakt voor 30x70 mm)
  • 8 x 6 cm prototype board of een 830 pins breadboard
  • 2x18650 oplaadbare batterijen (kan worden gerecycled van de lege laptopbatterij)
  • Dubbele 18650 batterijhouder (zoekterm: "houder 2 x 18650")
  • TP4056 laadregelaar en ontladingsbeschermer
  • 5V step-up converter (de kleinste 500mA is voldoende)
  • Klein spul: enkele draden, mini-USB-kabel of doe-het-zelf-stekker, micro-USB-aansluiting op PCB-uitbraak, M3-bouten/moeren/ringen, 4 x bovendekselschroeven
  • Weerstanden:

    • 6 x 100 ohm
    • 1 x 1k
    • 3 x 10k

Stap 2: De doos bouwen

De doos bouwen
De doos bouwen
De doos bouwen
De doos bouwen
De doos bouwen
De doos bouwen

Dit is het gemakkelijkste deel van het project dat u aan uw kinderen kunt delegeren.

Neem de Lego 32x32 punt grondplaat en leg de muren met de gerecyclede onderdelen. Je zou in totaal ongeveer 9 lagen moeten hebben. We kozen voor een lichtgrijze kleur voor de basis, zodat de bakstenen muren in willekeurige kleuren centraal staan.

Geen enkele doos zal hetzelfde zijn. Wees creatief bij het bouwen van de lagen. Recycle zelfs kleine onderdelen - ze zien er cool uit. Ook onregelmatige vormen zien er leuk uit. Voeg ramen, voorruiten van auto's, deuren en dozen toe.

De doos moet minimaal één Lego-deur op ware grootte hebben. Dit is nodig om de tuimelschakelaar in de muur te installeren.

Stap 3: Het maken van de bovenklep

De bovenklep maken
De bovenklep maken
De bovenklep maken
De bovenklep maken
De bovenklep maken
De bovenklep maken
De bovenklep maken
De bovenklep maken

De bovenkap is gemaakt van 5 of 6 mm plexiglas (transparante acrylplaat). Download de CAD-tekening, zet deze op een USB-stick en ga gewoon naar de dichtstbijzijnde CNC-winkel - zij zullen het voor u frezen. CAD-tekening bevat ook de montageplaat van de tuimelschakelaar (zie foto).

U moet nog wat afwerking van de bovenplaat doen. Maak de rand afschuining met het schuurpapier en een houten blok. Boor ook de gaten om de luidsprekers en het 1602-scherm te monteren. Het 1602-display vereist ook een kleine driehoek die aan de zijkant van het LCD-venster in de acrylplaat is gefreesd (zie foto). Ik deed dit op halve diepte met behulp van het roterende gereedschap (dremel) en een kleine frees.

Stap 4: voeg alle componenten toe aan de bovenklep

Voeg alle componenten toe aan de bovenklep
Voeg alle componenten toe aan de bovenklep
Voeg alle componenten toe aan de bovenklep
Voeg alle componenten toe aan de bovenklep
Voeg alle componenten toe aan de bovenklep
Voeg alle componenten toe aan de bovenklep

Installeer de grote 4 arcade-knoppen, 2 game change/select-knoppen, 2 luidsprekers en een 1602 LCD+I2C-module. Alles zit vast met M3-schroeven + M3-ringen en moeren aan de achterkant.

Voordat u de arcade-knoppen installeert, verwijdert u de LED-lichthouders. Je zult ze een beetje moeten aanpassen - zie de volgende stap.

Stap 5: De LED's in de Arcade-knoppen aanpassen

De LED's in de Arcade-knoppen aanpassen
De LED's in de Arcade-knoppen aanpassen
De LED's in de Arcade-knoppen aanpassen
De LED's in de Arcade-knoppen aanpassen
De LED's in de Arcade-knoppen aanpassen
De LED's in de Arcade-knoppen aanpassen

Deze arcade-knoppen zijn ontworpen om te werken op 12V. Ze werken met 5V, de standaardspanning voor dit project, maar ze zullen te zwak zijn. Dus ik verwijderde de LED-sockets van arcade-knoppen, schoof de LED-houders naar buiten en verwijderde de LED's met weerstanden. De weerstanden van 460 ohm moeten worden gedesoldeerd en vervangen door 100 ohm. Toen ik klaar was, heb ik alles weer in elkaar gezet en de LED's met houders in de knoppen geïnstalleerd.

Stap 6: (optioneel) Labels voor bedieningsknoppen

(optioneel) Labels voor bedieningsknoppen
(optioneel) Labels voor bedieningsknoppen

Je hebt misschien de labels op de 2 bedieningsknoppen opgemerkt. Onze eerste versie van de build had ze niet, maar ik besloot ze toe te voegen toen ik de build voor de tweede keer herhaalde.

Beide knoppen hebben meerdere functies, afhankelijk van de staat van het spel. Witte knop start het geselecteerde spel of bevestigt de selectie tijdens sommige spellen. Zwarte knop verandert het geselecteerde spel of verlaat het spel tijdens het spel.

Om ronde etiketten te maken heb je een dunne aluminium plaat nodig (max 1mm dik), een gatenzaagboor, getrapte boor en letterponsen (zie foto). Eerst zaag je de cirkel uit met een gatenzaag. Vervolgens vergroot je de binnendiameter met het getrapte bit en vervolgens gebruik je letterponsen om labels te maken. Gebruik een permanente zwarte stift (sharpie) om letters beter zichtbaar te maken.

Stap 7: Het breakout-bord maken

Het breakout-bord maken
Het breakout-bord maken
Het breakout-bord maken
Het breakout-bord maken

Je hebt hier twee opties. Ofwel om het breadboard te gebruiken en Arduino met kabels door het breadboard te bekabelen of om een kleine breakout aan de achterkant van het LCD-paneel te installeren.

Voor de eerste build hebben we het breadboard gebruikt (zie foto). Voor de tweede build hebben we besloten meer tijd te besteden aan het maken van een breakout-bord. De functionaliteit verandert niet, maar er zijn minder draden en de uitbraak zit verborgen onder het LCD-paneel.

Als je ervoor kiest om met het breakout-bord te gaan, neem dan het 8x6-prototypebord en knip het uit zoals op de afbeelding. Een groter deel wordt gebruikt voor de uitbraak en een kleiner deel voor het creëren van stroomvoorziening.

Soldeer Arduino Nano op dit protobord.

Stap 8: Bedrading van de verbindingen

Bedrading van de verbindingen
Bedrading van de verbindingen
Bedrading van de verbindingen
Bedrading van de verbindingen
Bedrading van de verbindingen
Bedrading van de verbindingen

Bereid wat kabels voor en sluit je opstelling, schakelaars en verbindingen aan op Nano volgens het schema.

Sinds ik de Ethernet twisted pair-kabels begon te gebruiken, vergat ik de hoofdpijn waar ik de draden voor mijn projecten vandaan moest halen. Ze hebben een andere kleur en zijn multicore, zodat ze niet gemakkelijk breken. Het enige waar u op moet letten als u ermee werkt, is dat het solderen erg snel moet zijn, zodat u de isolatie niet verbrandt.

Merk op de tweede foto op hoe de 100ohm-weerstanden zijn bedraad voor de verbindingen met luidsprekers.

Enkele opmerkingen over verbindingen:

  • Zwart/witte bedieningsknoppen zijn vanaf pinnen D2/3 rechtstreeks met aarde verbonden, omdat in Nano interne pull-up-weerstanden worden gebruikt.
  • A4/5 zijn aangesloten op de I2C SDA/SCL-pinnen. Dit is nodig voor de LCD I2C-module.
  • Luidsprekers moeten worden aangesloten op D10/11 omdat deze pinnen PWM ingeschakeld zijn.
  • Het wordt aanbevolen om een kleine koperen lijn toe te voegen als aardingsrail voor een eenvoudigere aansluiting van alle aardingsdraden (er zullen er ongeveer 5 zijn).

Stap 9: Bedrading van de knoppen

Bedrading van de knoppen
Bedrading van de knoppen
Bedrading van de knoppen
Bedrading van de knoppen

Alle Arcade-knoppen zijn verbonden met een enkele pin A1 via een reeks weerstanden. A1 is ingesteld als interne analoge pull-up. Dit is een van die weinig bekende functies van Arduino die ons heeft geholpen om te besparen op het aantal draden dat naar de knoppen gaat.

De opstelling gaat dus als volgt: van A1 naar eerste knop via 1k weerstand. Van button1 tot button2 tot 10k. Van button2 tot button3 tot 10k en van button3 tot button4 tot 10k. Elke knop op "close" staat kort op de grond. Aangezien er al aarde is op elke knop voor de LED's, is de tweede pin van elke schakelaar vanaf de LED met de aarde verbonden. Bekijk het diagram om de bedrading te begrijpen.

Als je een mini-USB-kabel op de Arduino Nano aansluit, zou je het spel moeten kunnen spelen nadat je de schets hebt geüpload. Het enige wat je nodig hebt is een voeding om het spel draagbaar te maken.

Stap 10: De batterijen installeren

De batterijen installeren
De batterijen installeren

Ik gebruikte twee gerecyclede 18650-cellen van de lege laptopbatterijen. Dit zijn degenen met een lagere capaciteit (ongeveer 600 mAh) die ik niet wilde gebruiken voor toepassingen met een hogere belasting. Het apparaat verbruikt niet echt veel stroom, dus dit zou voldoende moeten zijn om de game dagenlang te spelen.

De batterijen zijn geplaatst in een dubbele 18650 batterijhouder en er is een connector voor eenvoudige bevestiging aan de voeding.

Stap 11: De USB Socket Extender installeren

De USB Socket Extender installeren
De USB Socket Extender installeren
De USB Socket Extender installeren
De USB Socket Extender installeren
De USB Socket Extender installeren
De USB Socket Extender installeren

De game moet de firmware kunnen opladen en upgraden zonder demontage. Dus ik boorde een van de blokken om de Micro-USB-connector te verbergen.

Om de USB van de bakstenen muur naar de Arduino Nano te verlengen, nam ik een mini-USB-kabel en knipte ik het USB-A-uiteinde (de grote USB-connector) weg en ontdeed ik de draden. In mijn geval waren de rood/zwart stroom en wit/groen waren D+/- aansluitingen.

D+/- moet op de Micro-USB breakout worden gesoldeerd. De 5V en aarde (rood/zwart) moeten door de voeding gaan.

Waarom is gekozen voor de Micro-USB-uitbraak als de Nano Mini-USB gebruikt? Simpelweg omdat Micro-USB overal in ons huishouden aanwezig is - het wordt gebruikt om telefoons en andere apparaten op te laden. Dus je kunt het spel opladen en de firmware upgraden met je telefoonkabel:-)

Stap 12: Het maken van de voeding

De voeding maken
De voeding maken
De voeding maken
De voeding maken
De voeding maken
De voeding maken

Ik nam het kleinere prototypebord en soldeerde er de TP4056-batterijlader en -beschermingsmodule en ook de 5V-booster op.

De invoer in de TP4056 gaat via de Micro-USB-aansluiting. De batterijkabel is bevestigd aan TP4056-pinnen gemarkeerd als B+/-. Pinnen gemarkeerd als OUT+/- gaan in de tuimelschakelaar. Vanaf de tuimelschakelaar gaan de +/- aansluitingen naar de 5V boostermodule en vanaf de boosteruitgang worden de rood/zwarte draden van de gestripte USB-kabel aangesloten.

Bekijk het schema om de bedrading te begrijpen.

Stap 13: Epoxy de Micro USB Breakout

Epoxy de Micro USB Breakout
Epoxy de Micro USB Breakout
Epoxy de Micro USB Breakout
Epoxy de Micro USB Breakout

Ik heb wat epoxy gebruikt om de Micro-USB-uitbraak in het Legoblokje te repareren. Nadat het is uitgehard, zal het stopcontact steviger zijn dan die in mobiele telefoons, zodat de kinderen het spel kunnen opladen en niet kapot gaan.

Ik raad aan om voor dit onderdeel snel uithardende epoxy te gebruiken. Als je het niet hebt, voeg dan een beetje meer van de verharder toe aan de hars en laat het een tijdje staan.

Stap 14: Installeer de tuimelschakelaar, sluit de stroomkabelboom aan

Installeer de tuimelschakelaar, sluit de stroomkabelboom aan
Installeer de tuimelschakelaar, sluit de stroomkabelboom aan
Installeer de tuimelschakelaar, sluit de stroomkabelboom aan
Installeer de tuimelschakelaar, sluit de stroomkabelboom aan
Installeer de tuimelschakelaar, sluit de stroomkabelboom aan
Installeer de tuimelschakelaar, sluit de stroomkabelboom aan

Deze schakelaar is enorm. Hij is ontworpen voor een netspanning van 250 V. Maar ik heb dit model toch gebruikt omdat het er geweldig uitziet en perfect past in een standaard Lego City-deur. Dus heb ik de schakelaar in de montageplaat gestoken en vervolgens de plaat op de bakstenen muur bevestigd met behulp van de 2 schroeven (wanden waren voorgeboord).

Ook het harnas kon nu eindelijk worden geïnstalleerd, evenals de Micro-USB-uitbraak die in de Lego-steen was geëpoxeerd. Merk op hoe enkele extra stenen werden gebruikt om de componenten aan de basis te bevestigen.

Stap 15: Het deksel sluiten

Het deksel sluiten
Het deksel sluiten

steek de mini-USB-kabel in de Arduino Nano die aan de bovenklep is bevestigd en sluit het deksel.

Ik heb 4 gaten in de muren voorgeboord en 4 schroeven gebruikt om de bovenkant aan de doos te bevestigen.

Stap 16: De code

De code
De code

De eerste versie van het spel is door mij geschreven, gevolgd door nieuwe 4 versies van mijn vriend Alex die nog 4 spellen heeft toegevoegd en de code tot in de perfectie heeft opgeschoond. We hebben ook het werk van Reyboz gebruikt voor de geluiden - het geluidsniveau dat met deze code wordt geproduceerd, is verbazingwekkend in vergelijking met wat standaard wordt geleverd met de Tone-bibliotheek van Arduino.

Zoals gezegd is de code maandenlang geoptimaliseerd na uitgebreide QA-tests door de kinderen en momenteel hebben we versie 4 geüpload naar GitHub.

Nieuwste versie van de broncode:

Het enige dat u hoeft te doen, is de 1602 I2C LCD-bibliotheek installeren (beschikbaar in de Arduino IDE-bibliotheekmanager) en vervolgens onze code uploaden.

Eerst upload je de button-calibration.ino en noteer je op een stuk papier de waarden die elke Arcade Button produceert. Dit script zal ook EEPROM wissen, zodat de topscores opnieuw worden ingesteld.

Daarna verander je in Game-Settings.h de waarden van de knoppen die je hebt gekalibreerd en upload je het hoofdbestand van Lego-Games-Box.ino en kun je beginnen met spelen (mits je alles hebt aangesloten volgens het schema dat hierboven is gegeven).

Opmerking: als je dit spel voor kinderen maakt, verwijder dan in Game-settings.h het laatste item uit String GameTitle = {"Memory Game", "Reaction Game", "Toernooi Game", "Melody Game", " Nucleair oorlogsspel"}; Dit laatste item heeft regels waarbij elke speler vijanden selecteert en mogelijk te vijandig is voor de kinderen.

Stap 17: Gedetailleerde instructievideo

Als u het gemakkelijker vindt om de video te bekijken in plaats van de instructies te lezen, vindt u hier de videoversie van deze build.

Stap 18: Spelregels

Image
Image

Momenteel zijn er 5 spellen geïmplementeerd. Als je meer ideeën hebt over games die met deze box kunnen worden gemaakt, laat het ons dan weten in de comments. Ik zal elk spel kort doornemen en de regels en het spel uitleggen.

Draai de tuimelschakelaar aan de zijkant om de Lego Arcade Games Box aan te zetten. Alle games worden begeleid met de geluiden uit het Mario nostalgische spel. Bij het opstarten zou je de opstartmelodie van het Mario-spel moeten horen.

Eenmaal gestart, ziet u op het LCD-scherm het spel dat nu is geselecteerd. Druk op de zwarte knop om het spel te veranderen.

Als je hebt besloten welk spel je wilt spelen, druk je gewoon op de witte knop om te beginnen.

Als je het spel dat al actief is wilt verlaten, moet je op de zwarte knop drukken.

Bij het opstarten kun je de geluiden uitzetten (nachtmodus) door op de rode knop te drukken.

Memory Game ("Simon-Says"-achtig, vergelijkbaar met Touch Me-game)

De regels zijn bekend en eenvoudig. Het spel toont je een reeks noten/lampjes en je moet het herhalen. Elke keer wordt er nog een toon/licht aan de reeks toegevoegd. Hoe langer je overleeft, hoe beter je geheugen is. Het is uitstekend geschikt voor het trainen van het kortetermijngeheugen van kinderen en volwassenen.

Reactiespel (vergelijkbaar met Whack-a-Mole-spel)

Je moet snel genoeg zijn om op elke knop te drukken die oplicht. Hoe langer je speelt, hoe sneller de knoppen oplichten. Deze is geweldig voor het trainen van de reactie van kinderen en volwassenen.

Wedstrijd/wedstrijdspel (voor 2-4 spelers)

Je krijgt 5 ronden. Iedereen moet heel snel op zijn knop drukken nadat het signaal is gegeven (Muntmelodie van Mario). Wie als eerste op de knop drukt, wint de ronde. Het aantal overwinningen wordt berekend aan het einde van 5 ronden en de winnaar wordt bekend gemaakt.

Melody Game (Push and Play gratis modus voor peuters en kleinere)

Deze is uitstekend geschikt voor peuters - hij speelt afwisselende deuntjes als je een knop ingedrukt houdt. Na een eerste test met kinderen realiseerden we ons dat onze kleinere, die 1 jaar oud was, echt wil spelen, maar niet begrijpt HOE. De regels van deze spellen zijn - GEEN REGELS. Je kunt op elke knop drukken en het zal geluiden produceren.

Oorlogsspel (voor 2-4 volwassenen)

Mijn vriend Alex, die consequente versies van deze spellendoos heeft geprogrammeerd, kwam op het idee voor dit spel tijdens de Trump/Kim-crisis over wie de grotere nucleaire knop heeft. De regels hebben een aparte video nodig voor uitleg (je kunt het hier en hier vinden) maar in een notendop, je selecteert het aantal spelers aan het begin en tijdens elke ronde selecteert elke persoon zijn vijand. Zodra iedereen zijn/haar vijand heeft gekozen, beginnen de raketten te vliegen. Degene die is geselecteerd als vijand heeft een paar momenten om op de knop te drukken om de kruisingsraket te sturen en zijn/haar land te redden. De rondes gaan door totdat er nog maar één land over is.

Stap 19: Eindresultaat

Eindresultaat
Eindresultaat
Eindresultaat
Eindresultaat
Eindresultaat
Eindresultaat

Wij zijn 3 vrienden die de tijd hebben besteed aan het bouwen van het spel voor onze kinderen. We hopen echt dat je het spel zo leuk zult vinden dat je je eigen versie gaat bouwen met behulp van deze instructies. Als je vragen of suggesties hebt, plaats ze dan in de comments.

Game Life-wedstrijd
Game Life-wedstrijd
Game Life-wedstrijd
Game Life-wedstrijd

Tweede prijs in de Game Life-wedstrijd

Aanbevolen: