Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Arduino Arcade LEGO Games Box

Componenten en benodigdheden

Arduino Nano R3
× 1
TP4056-controller voor opladen en ontladen van batterijen
× 1
SparkFun Big Red Dome-knop
× 4
Adafruit Standaard LCD - 16x2 Wit op Blauw
× 1

Benodigde gereedschappen en machines

Soldeerbout (algemeen)

Apps en online services

Arduino IDE

Over dit project

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 kinderen :-)

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

Allereerst zijn er 5 spellen ingebouwd:

  • Geheugenspel ("Simon-Says"-achtig, vergelijkbaar met Touch Me-spel)
  • Reactiespel (vergelijkbaar met Whack-a-Mole-spel)
  • Wedstrijd/competitiespel (voor 2-4 spelers)
  • Melodiespel (duwen en spelen 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 vindt u ook een stapsgewijze video voor het geval u de voorkeur geeft aan het videoformaat.

Stap 1:Onderdelenlijst

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 je nodig hebt om dit project te maken:

  • 1 kg (2lb) 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 stuk plexiglas (5 of 6 mm dik)
  • 4 x grote 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)
  • Prototypebord van 8 x 6 cm of een breadboard met 830 pinnen
  • 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)
  • Kleine dingen:enkele draden, mini-USB-kabel of doe-het-zelfstekker, micro-USB-aansluiting op PCB-uitbraak, M3-bouten/moeren/ringen, 4 x bovenkapschroeven
  • Weerstanden:6 x 100 ohm, 1 x 1k, 3 x 10k

Stap 2:De doos bouwen

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

Pak 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: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 afschuinen 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.

top-template2.dxf

Stap 4:voeg alle componenten toe aan de bovenklep

Installeer de 4 grote 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

Deze arcade-knoppen zijn ontworpen om op 12V te werken. Ze werken met 5V, de standaardspanning voor dit project, maar ze zullen te zwak zijn. Dus verwijderde ik 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

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 (max. 1mm dik), een gatenzaagboor, een getrapte boor en een letterpons nodig (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 Board 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 is 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

Bereid wat kabels voor en sluit je setup, 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 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 er 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-geactiveerd 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

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 naar 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 dat je nodig hebt, is een voeding om het spel draagbaar te maken.

Stap 10: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 geïnstalleerd in een dubbele 18650 batterijhouder en er is een connector voor eenvoudige bevestiging aan de voeding.

Stap 11:De USB Socket Extender installeren

De game moet de firmware kunnen opladen en upgraden zonder demontage. Dus boorde ik 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 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 breakout 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: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 diagram om de bedrading te begrijpen.

Stap 13: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 wat meer van de verharder toe aan de hars en laat het een tijdje staan.

Stap 14: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

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 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 wordt geproduceerd met behulp van deze code 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:https://github.com/LenkaDesign/Arduino-Arcade-Lego-Games-Box

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 op een stuk papier de waarden die elke Arcade Button produceert. Dit script wist ook EEPROM zodat de topscores opnieuw worden ingesteld.

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

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

Stap 17:Gedetailleerde instructievideo

Voor het geval je het gemakkelijker vindt om de video te bekijken in plaats van de instructies te lezen, hier is de videoversie van deze build.

Stap 18:Spelregels

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. Om het spel te veranderen, druk je op de zwarte knop.

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 bezig is wilt verlaten, moet je op de zwarte knop drukken.

Bij het opstarten kunt u de geluiden uitschakelen (nachtmodus) door op de rode knop . te drukken .

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

De regels zijn bekend en eenvoudig. Het spel laat je een reeks noten/lampjes zien 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 om de reactie van kinderen en volwassenen te trainen.

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). Degene die 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.

Melodiespel (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 de eerste tests 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

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 opmerkingen.

Laatste foto's in hoge resolutie:

Code

Github
https://github.com/LenkaDesign/Arduino-Arcade-Lego-Games-Boxhttps://github.com/LenkaDesign/Arduino-Arcade-Lego-Games-Box

Aangepaste onderdelen en behuizingen

top-template2_Ku502q1zeA.dxf

Schema's


Productieproces

  1. Juice Box
  2. Flipperkast
  3. Raspberry Pi CD Box Robot
  4. Squid Games Doll gebouwd met Arduino UNO
  5. Giftduino - De perfecte Arduino-geschenkdoos
  6. Arduino Spybot
  7. FlickMote
  8. Zelfgemaakte tv B-Gone
  9. Hoofdklok
  10. Geautomatiseerde Lego Shooter
  11. Arduino + ESP-weerbox