Inhoudsopgave:

Slang op een breadboard - Ajarnpa
Slang op een breadboard - Ajarnpa

Video: Slang op een breadboard - Ajarnpa

Video: Slang op een breadboard - Ajarnpa
Video: How to use a BreadBoard - Electronics Basics 10 2024, November
Anonim
Slang op een Breadboard
Slang op een Breadboard
Slang op een Breadboard
Slang op een Breadboard
Slang op een Breadboard
Slang op een Breadboard

"Heb je spelletjes op je telefoon?"

"Niet precies."

Inleiding:

Eenvoudig te bedienen, gemakkelijk te programmeren en vereeuwigd door de Nokia 6110, Snake is een favoriet project onder ingenieurs geworden. Het is geïmplementeerd in alles van LED-matrices, LCD's, boekenplankverlichting en zelfs ramen van hele gebouwen. We zullen Snake implementeren op een klein breadboard en een OLED-scherm. Mensen hebben zeker kleinere slangenspelers gemaakt, maar dit maakt specifiek gebruik van een breadboard, waardoor het niet meer nodig is om PCB's te ontwerpen of te solderen.

(Je zou gewoon een app op je telefoon kunnen maken, maar we doen dingen niet omdat ze gemakkelijk zijn.)

Vereisten:

Een basiskennis van circuits, breadboarden en een goed begrip van programmeren in Arduino.

Benodigdheden

  • Arduino Nano
  • 2 redelijk hoge weerstanden (1kOhm)
  • Klein breadboard
  • 2 drukknoppen
  • 22 AWG massieve kerndraad
  • 128 x 64 OLED

Dit zijn Amazon-affiliate links, dus ik verdien een kleine commissie bij elke verkoop. Als je deze benodigdheden nog niet hebt en toekomstige projecten van mij wilt steunen, volg dan deze links!:)

Stap 1: Breadboard

Breadboard
Breadboard
Breadboard
Breadboard
Breadboard
Breadboard

Om ons eindproduct te maken, moeten we uiteraard de hardware assembleren om ons project op te programmeren en te testen. Het systeemschema voor dit project is vrij eenvoudig, omdat het in totaal slechts 4 componenten omvat.

1. Leg het uit:

Pak je componenten en leg ze op het bord, zodat alles past. Visualiseer welke draden en pinnen u gaat gebruiken en voor welke doeleinden. Zorg ervoor dat je verwachte draden elkaar niet kruisen, want dat zorgt voor een rommeliger breadboard. Schrijf op welke punten je moet aansluiten! Hoewel dit een eenvoudig breadboard is, zal het uw leven veel gemakkelijker maken tijdens het bedradingsproces en in het algemeen. Omdat onze werkruimte klein is, is dit een ongelooflijk belangrijke stap.

Opmerkingen:

Omdat de OLED de I2C-bus gebruikt, moeten pinnen A4 en A5 worden gebruikt. De grootte van het breadboard laat geen stroom- en grondrail toe, dus ik heb een paar trucjes gebruikt om alles te laten werken. De positieve spanning voor de knoppen wordt geleverd door pinnen D13 en A2. Ik ontdekte dat Arduino-pinnen niet alleen stroom kunnen leveren, maar ook stroom kunnen zinken, dus gebruikte ik A3 als aarde voor de rechterknop. Om de ruimte op het breadboard te maximaliseren, hing ik de helft van de Nano van het bord en ondersteunde ik de pinnen aan de linkerkant met een stuk schuim.

2. Sluit het aan:

Met een paar draadstrippers en een behoorlijke hoeveelheid 22 AWG massieve kerndraad, bedraad je componenten netjes aan elkaar. Het gebruik van een vaste kern voor het maken van semi-permanente breadboard-projecten is de sleutel, omdat je ze op lengte kunt knippen, in tegenstelling tot jumperdraden. Zorg ervoor dat je niet veel overtollige lengte op je draden laat, het zorgt voor een rommelig bord. Knip de draden van de pull-down-weerstanden af zodat ze gelijk met het bord passen.

(Je kunt ook gewoon volgen wat ik hierboven heb gedaan.)

Stap 2: Programmeren en testen

Programma en Test
Programma en Test

Om jezelf later hoofdpijn te besparen, moet je ervoor zorgen dat de OLED en de knoppen werken zoals ze zouden moeten werken door basistestprogramma's te maken.

1. Plannen, plannen, plannen:

Gewoon direct in de code springen is geen verstandige gewoonte. Geloof me, ik heb het geprobeerd! Daarom moet je schetsen hoe je programma gaat werken. Een programmastroomschema is een behoorlijk solide manier om te plannen wat uw code moet doen en zal u zeker op het goede spoor houden. Neem de mijne bijvoorbeeld (hierboven)

2. Code, code, code:

Eerlijk gezegd is dit project een grotere programmeeroefening dan een hardware-oefening. De enige bibliotheek die ik gebruikte was de OLED-bibliotheek van Adafruit, de ondersteunende GFX- en Wire-bibliotheken niet meegerekend.

Laat u de OLED-bibliotheek van Adafruit installeren via de bibliotheekbeheerder van de Arduino IDE.

Ik kan niet elke regel code die ik heb geschreven documenteren, maar hier zijn een paar tips:

Tips:

Opmerkingen:

- Schrijf eerst en vooral nette en nuttige opmerkingen terwijl u codeert. Toekomstige jij en anderen die je code lezen zullen je zeker bedanken.

Geheugen:

- Met meer complexe projecten zoals deze wordt SRAM een hot item. In de Adafruit-bibliotheek neemt de 128 x 64 OLED-buffer alleen al 1 kB in beslag, wat ongeveer de helft is van het geheugen in een ATMega328p. Slim geheugenbeheer is daarom belangrijker dan ooit.

- Bij grote datastructuren zullen de opgeslagen data zich ophopen en veel ruimte in beslag nemen. Om de geheugenvoetafdruk van mijn variabelen te verkleinen, heb ik waar mogelijk kleinere gegevenstypen (zoals short en byte) gebruikt.

- Strings worden meestal opgeslagen in SRAM, maar als u de F()-functie gebruikt, worden ze in plaats daarvan in PROGMEM geplaatst, waardoor kostbaar geheugen wordt bespaard.

Milli:

- Gebruik de millis()-functie om een nauwkeurigere timing van spelcycli te bereiken. Er zijn tal van goede tutorials en voorbeelden online.

Vooraf definiëren:

- Gebruik de #define preprocessor-richtlijn als een gemakkelijke manier om permanente waarden in code in te stellen.

Toets:

- Test uw code terwijl u bezig bent. Het zal een stuk eenvoudiger zijn om bugs te verwijderen.

Stap 3: Geniet

Veel plezier met je nieuwe slangenspel!

(Ik weet dat ik met 20 punten heb gewonnen in de video hierboven, je kunt de winvoorwaarde hoger instellen in mijn code.)

Dingen om over uit te breiden:

  • Een batterij voor draagbaarheid
  • Veiliger knoppen
  • Een nog kleiner slangenspel
  • Nog meer spelletjes?

Aanbevolen: