Inhoudsopgave:
Video: Slang op een breadboard - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
"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
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
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:
Draagbare slang: 3 stappen
Portable Snake: dit is een tutorial over hoe je je eigen draagbare snake-spel kunt maken! Het enige wat je nodig hebt is een arduino, wat elektronica en een manier om het geheel in te pakken. Hier is een lijst van alle behoeften:- Arduino uno (1)- Joystick-module (1)- Led Matrix (1)- enkele draden (10
ESP32 VGA-slang: 5 stappen
ESP32 VGA Snake: In deze instructable laat ik zien hoe je een klassiek arcadespel - Snake - kunt reproduceren met een ESP32, met de uitgang voor een VGA-monitor. De resolutie is 640x350 pixels, in 8 kleuren. Ik heb eerder een versie gedaan met een Arduino Uno (zie hier), maar
AANRAAKSCHAKELAAR - Een aanraakschakelaar maken met behulp van een transistor en breadboard: 4 stappen
AANRAAKSCHAKELAAR | Een aanraakschakelaar maken met behulp van een transistor en breadboard.: De aanraakschakelaar is een heel eenvoudig project gebaseerd op de toepassing van transistors. De BC547-transistor wordt in dit project gebruikt en fungeert als aanraakschakelaar. ZORG ERVOOR DAT U DE VIDEO KIJKT DIE U DE VOLLEDIGE DETAILS OVER HET PROJECT GEEFT
LED-slang: 9 stappen
LED Snake: In deze Instructables ga ik je laten zien hoe je mijn creatie kunt maken, bestaande uit heel veel LED's, dat is een slangachtige vorm, de LED Snake. Mijn LED-slang is 1 meter lang, maar jij bepaalt hoe lang die van jou zou zijn. De slang is vermakelijk en ziet er
Bling Out Your Breadboard (hoe u een LED-stroomindicator toevoegt aan Solarbotics Transparant Breadboard): 7 stappen
Bling Out Your Breadboard (hoe voeg je een LED-stroomindicator toe aan Solarbotics Transparant Breadboard): Deze transparante breadboards lijken veel op elk ander elektronisch breadboard, maar ze zijn duidelijk! Dus, wat kun je doen met een duidelijk breadboard? Ik denk dat het voor de hand liggende antwoord is om power-LED's toe te voegen