Inhoudsopgave:

Mastermind Star Wars met Arduino MEGA - Ajarnpa
Mastermind Star Wars met Arduino MEGA - Ajarnpa

Video: Mastermind Star Wars met Arduino MEGA - Ajarnpa

Video: Mastermind Star Wars met Arduino MEGA - Ajarnpa
Video: Oh, you're a villain alright... just not a super one! 2024, November
Anonim
Mastermind Star Wars met Arduino MEGA
Mastermind Star Wars met Arduino MEGA
Mastermind Star Wars met Arduino MEGA
Mastermind Star Wars met Arduino MEGA
Mastermind Star Wars met Arduino MEGA
Mastermind Star Wars met Arduino MEGA

Het zijn ongunstige tijden voor rebellie. Hoewel de Death Star is vernietigd, gebruiken de keizerlijke troepen gratis hardware en Arduino als geheim wapen.

Dat is het voordeel van gratis technologieën, iedereen (goed of slecht) kan ze gebruiken.

In een verborgen basis op de planeet Anoat bouwen ze een 3D-printer die Imperial Destroyer kan nabootsen.

De enige oplossing om het rijk te verslaan is dat een groep rebellen onder bevel van Luke Skycuartielles en Obi-Wan Banzi de keizerlijke troepen verslaat en de sleutel krijgt die toegang geeft tot de plannen om het geheime wapen te vernietigen.

Deze sleutel bestaat uit 4 kleuren en je hebt 10 pogingen om hem te ontcijferen. Er zijn slechts vier regels:

  1. De kleuren kunnen worden herhaald!
  2. Een wit lampje geeft aan dat je de juiste kleur en positie hebt geraakt
  3. Een violet licht geeft aan dat je de kleur hebt geraakt, maar niet de positie
  4. Als er geen licht is, heb je de kleur of de positie niet geraden.

Je moet je haasten, want aan het andere uiterste zal de kwaadaardige Darth Ballmer proberen de sleutel voor je te krijgen. In dat geval kun je er niet achter komen wat het is en heb je geen toegang tot de plannen van het geheime wapen. Je missie zal zijn mislukt.

Kleine Padawan, moge de kracht je vergezellen om de sleutel te ontcijferen en zo de Melkweg te redden.

Stap 1: Materiaal

Materiaal
Materiaal

Het materiaal dat nodig is om de Mastermind Star Wars met Arduino te maken, is verdeeld in drie delen.

  • Timmerwerk en briefpapier voor de realisatie van de woning
  • Componenten, kabels en Arduino voor alle elektronica
  • Gereedschap

Laten we beginnen met timmerwerk. Het volgende materiaal is nodig:

  • 2 x MDF platen van 90x60
  • 1 x vel groentepapier

In het elektronische gedeelte is het volgende materiaal nodig:

  • 1 x NeoPixel Strip 5 meter
  • 1 x Arduino MEGA
  • 1 x condensator 100 µF
  • 4 x weerstand 470
  • 5 x zwarte knop
  • 5 x witte knop
  • 1 x vermogen 5V-5A
  • 1 x vermogen 5V-2A

Ten slotte hebben we in het gereedschapsgedeelte het volgende gebruikt:

  • Siliconenpistool Heet
  • Laser CNC de MxN
  • Elektrische lasser
  • Lasser blik

Stap 2: Ontwerp

Ontwerp
Ontwerp
Ontwerp
Ontwerp
Ontwerp
Ontwerp

Een van de belangrijkste onderdelen van dit project is het ontwerp van de behuizing. Het bestaat uit 3 stukken gesneden met lasersnijder.

De basis is genomen uit een stuk van 90x60 in MDF. Houd rekening met de afmetingen van het materiaal aangezien je een lasersnijder nodig hebt die groot genoeg is.

U vindt het SVG-bestand aan het einde van deze stap.

De bovenklep is degene die de thematische tekeningen van Star Wars bevat, evenals de gaten voor zowel de knoppen als de pixels.

Het heeft dezelfde vorm als de basis.

De zijwanden zijn gemaakt met behulp van een lasersnijtechniek genaamd kerf. Hierdoor kan het materiaal flexibel zijn. Voor het plaatsen van de wanden zijn enkele stukken ontworpen om als richtlijn te dienen.

Ten slotte heeft elke NeoPixel-matrix een raster waar aan de ene kant de NeoPixel is bevestigd en aan de andere kant een plantaardig papier om het licht van de NeoPixel te verspreiden. Hier heb je alle SVG-bestanden zodat je ze zelf kunt knippen en vervaardigen.

Stap 3: Elektronische montage

Elektronische assemblage
Elektronische assemblage
Elektronische assemblage
Elektronische assemblage
Elektronische assemblage
Elektronische assemblage
Elektronische assemblage
Elektronische assemblage

De eerste fase van de assemblage van de elektronica was het knippen van de strip van 5 meter NeoPixel in 8 strips van 10 pixels en 4 aparte pixels voor elke speler. In totaal 84 pixels per speler. Enerzijds worden de 10 strips geassembleerd, gevolgd door een andere, zodat er genoeg kabel overblijft om elke strip een paar millimeter parallel te leggen. Deze matrix van pixels zal dienen om elk spel en het resultaat te tonen. 4 pixels tonen de vier kleuren van de sleutel en de andere vier pixels geven het resultaat weer. Ik herinner u eraan dat we daarom moeten:

  • Als de pixel wit is, is de positie en kleur geslaagd.
  • Als de pixel violet is, is de kleur correct, maar niet de positie.
  • Als de pixel uit staat, is noch de kleur, noch de positie correct.

Een van de fouten die we hebben gemaakt, is de stroombedrading en GND. Het had eenvoudiger gekund, maar dat realiseerden we ons later. De datakabel moet een volgorde volgen aangezien de nummering van de pixels van onder naar boven gaat.

Aan de andere kant hebben we 4 afzonderlijke pixels die ertussen moeten worden aangesloten. Deze pixels laten ons de kleur zien die we selecteren met de knoppen.

In serie verbonden met elke strip is een weerstand van 470Ω om de gegevens te beschermen. De datakabel van elke strook pixels is verbonden met een digitale pin. De geselecteerde pinnen in de Arduino MEGA zijn 6, 7, 8 en 9.

Zo zijn 6 en 7 voor speler 1 en 8 en 9 voor speler 2.

De knoppen die we hebben gebruikt zijn de typische knoppen van de arcade-machines. We dachten dat ze er goed uit zouden zien en zo was het ook.

Andere drukknoppen kunnen worden gebruikt, maar er moet rekening mee worden gehouden dat als ze kleiner of groter zijn, het DXF-bestand moet worden aangepast voordat met de laser-CNC wordt gesneden.

Om de spelers te onderscheiden, zijn sommige knoppen wit en andere zwart.

Elke speler heeft 4 knoppen omhoog en 1 knop omlaag. De 4 bovenste knoppen dienen om de kleur van elke positie van de toets te selecteren.

De onderste knop wordt gebruikt om te valideren, dat wil zeggen, het stuurt de sleutel om in de pixelmatrix te verschijnen met de relevante verificatie of de kleur en positie succesvol zijn geweest.

Voordat we alles in elkaar zetten, hebben we alle kabels gesoldeerd. Je hebt dus veel kabel nodig. Het zal afhangen van de grootte van het spel. In ons geval was het vrij groot.

U kunt bijvoorbeeld een ethernetkabel gebruiken om deze te openen en de interne kabels eruit te halen. Het is een goede oplossing. Probeer ze zo ordelijk mogelijk te hebben, want dan zal het nodig zijn om de verbindingen met de Arduino MEGA te maken zoals je ziet in het elektrische schema.

Als je eenmaal allemaal soldaat bent voordat je het monteert, moet je het proberen. Het is getest omdat het, wanneer het in de behuizing is geïnstalleerd, vastzit met hete siliconen en als het faalt, wordt het ingewikkeld en verwijder je het. Voor het plaatsen van de pixelmatrices is een raster ontworpen met dezelfde afmetingen als het raster van het deksel waar aan de ene kant de pixels worden geplakt en aan de andere kant een plantaardig papier.

Dit papier verspreidt het licht van elke pixel en geeft een veel mooier effect. Dan plakt die structuur aan het bovenste deel van binnen. Het is een beetje ingewikkeld maar met zorg wordt een goed resultaat bereikt.

De voeding was wat ingewikkeld. In principe en kijkend naar het schema, zouden we maar één oplader gebruiken. Na de eerste tests en het NeoPixel verbruik zagen we echter dat er twee opladers nodig waren.

Elke pixel kan maximaal 60 mA verbruiken. Als we vermenigvuldigen met 168 pixels, krijg je een verbruik van ongeveer 10 A.

Hoewel dit in het ergste geval zou zijn. In de programmering hebben we er al rekening mee gehouden om de intensiteit van de NeoPixel niet te maximaliseren.

We halen dus nog niet eens 50%, met een 5V en 5A lader is dat meer dan genoeg.

Aan de andere kant heeft de Arduino MEGA een aparte oplader die kan worden aangesloten via de jack-connector of via de USB-poort. Een mogelijke verbetering zou zijn om een enkele oplader voor het hele systeem te hebben.

Stap 4: Spelprogrammering

Spelprogrammering
Spelprogrammering
Spelprogrammering
Spelprogrammering

De programmering is gedaan met behulp van twee bibliotheken: OneButton en Adafruit_NeoPixel.

De OneButton-bibliotheek maakt het mogelijk om de knoppen op een eenvoudige manier te bedienen met onderbrekingen.

De Adafruit_NeoPixel-bibliotheek heeft ons in staat gesteld om de NeoPixel-strip op een zeer eenvoudige manier te besturen.

De programmering is gebaseerd op verschillende toestanden waarin het softwareprogramma kan zijn:

Het spel starten. Staat = 0

In deze toestand wordt het spel gestart en is er een reeks lampjes in beide spelers die aangeven dat het spel gaat beginnen. Tijdens deze toestand reageren de drukknoppen niet.

Oorspronkelijke toestand. Staat = 1

Wacht in de begintoestand tot een van de twee spelers dubbelklikt op de bevestigingsknop (de vijfde knop). Met deze actie kan het spel worden gestart.

Het spel voorbereiden. Staat = 2

In de staat van voorbereiding van het spel worden alle variabelen opnieuw ingesteld en wordt de willekeurige selectie van kleuren voor de sleutel gestart.

Afspeelstatus = 3

In stand 3 begint het spel. Elke speler selecteert een sleutel met de knoppen en valideert deze door op de bevestigingsknop te klikken. Deze toestand kan op twee manieren eindigen: wanneer een speler de sleutel ontdekt of wanneer de twee spelers de 10 pogingen die ze hebben opgebruiken.

Eén winnaar Staat = 4

Als een speler wint, wordt er een groen vinkje op zijn bord getoond en de winnende combinatie en een rood kruis op de verliezer.

Gebonden spel. Staat = 5

In het geval van een gelijkspel wordt niets op een bord getoond en de winnende combinatie op de borden van beide spelers.

Of er nu een winnaar of een gelijkspel is in het spel, de volgende staat is de eerste die wacht op een dubbelklik.

Hieronder vind je alle code. Het enige dat in het Spaans is:)

Stap 5: Testen en verbeteringen

Het spel wordt getest door te spelen. In de video hierboven zie je een compleet spel.

Vanaf hier kunnen we verschillende verbeteringen bedenken die met Arduino aan de Mastermind Star Wars kunnen worden toegevoegd.

Vervolgens som ik ze op.

  • Om beurten kunnen spelen met in totaal 10 pogingen voor de twee spelers. Wanneer een speler een toets probeert, ziet de andere speler het spel.
  • Een individuele spelmodus zodat slechts één persoon kan spelen.
  • Mode elk met zijn sleutel.
  • Inclusief een OLED-scherm.
  • Gebruik voor alles een enkele oplader.
  • Maak verbinding met een NodeMCU ESP8266

Ik weet zeker dat veel mensen met veel verbeteringen zullen komen. Ik wacht de reacties hieronder af.

En moge de kracht bij je zijn.

Aanbevolen: