Mini Arduino Nano spelcomputer

mini arduino gamecomputerSoms nodigen bepaalde onderdelen uit tot het maken van een leuke toepassing en in dit geval ging het om een paar analoge joysticks in combinatie met een Arduino Nano en een klein Oled scherm. Alle ingrediënten om een klein spelcomputer te maken. Aangezien het display slechts twee aansluitdraden (I2C) nodig heeft een de analoge joysticks per stuk twee analoge en één digitale ingang nodig hadden, had een Arduino Nano meer dan genoeg aansluitpennen. Het geheel kan dan met vier AAA batterijen gevoed worden. Ik heb de Arduino Nano en het display in header pennen gezet zodat ze eventueel vervangen of hergebruikt kunnen worden. Dit scheelt ook rechtstreeks solderen aan de pennen van deze componenten. De Arduino Nano heb ik in het midden van een stukje experimenteer print gezet met de beide joysticks aan weerszijde. Om ruimte te besparen heb ik het display boven de Arduino Nano geplaatst en daarna heb ik met korte draadjes alles aan de Arduino en de voeding lijn die ik op het experimenteer bordje heb geplaatst aangesloten. Voor de batterijen heb ik een kant en klare houder met schakelaar gekocht, dit is handig omdat we dan zelf niet ergens meer een aan en uit schakelaar hoeven te plaatsen. Dit was het hele (eenvoudige) hardware ontwerp, nu was het zaak om hier wat software op te schrijven. Voor het display had ik al een library geschreven, dus die kon hier mooi hergebruikt worden. De keuze viel op drie spellen die ik ooit al eens gemaakt had, snake, pong en breakout. Ik heb deze spellen zo geschreven dat ze zowel met één als twee personen te spelen zijn, die tegenover elkaar kunnen zitten. Daarna heb ik een eenvoudig keuze menu gemaakt en de spelcomputer was gereed. De sourcecode van zowel de library en de spellen staat onderaan deze pagina als download geplaatst. Op het ontwerp en de software rust geen copyright (het is GPL) en ik hoop dat ik mensen hiermee kan inspireren om hun eigen versie te maken en bijvoorbeeld een leuke behuizing te ontwerpen, nieuwe spellen te schrijnen of de oude spellen te verbeteren of aan te vullen. Ik wens iedereen veel succes met dit ontwerp en hier hebben de kinderen er al het nodige plezier van gehad. Vrienderlijke groet, Hein Pragt.


Arduino Nano

arduino nanoDe Arduino Nano is ook een heel klein Arduino boardje dat speciaal geschikt is om op een zogenaamd breadboard te gebruiken omdat de aansluitpinnen aan de onderkant zitten. Hierdoor kan het board eenvoudig in een breadboard geprikt worden. Het board is gebaseerd op de welbekende ATmega328 (Versie 3.x) of ATmega168 (Versie 2.x). Er zit geen voedingsplug op het board, wel voedinspanning pinnen. Het board kan gevoed worden door middel van de Mini-B USB aansluiting, 6 tot 12V spanning op de raw input of 5V gestabiliseerde voeding op pin 27. De spanningsbron zal automatisch geselecteerd worden uit de beste van de drie. De Arduino Nano kan worden geprogrammeerd via de ingebouwde USB poort. Het board kan met de standaard Arduino programmeer IDE geprogrameerd worden, u kunt het board en de poort eenvoudig in het dropdown menu selecteren. De mogelijkheden van de kleine board zijn erg groot maar het ontwerp is wel speciaal voor gebruik op een experimenteerboard (breadboard) gemaakt.

ChipATmega328 / ATmega168 16 Mhz
Voltage5 V uitvoering
Voltage raw7 - 12 Volt
Digitale pins14 (waarvan 6 PWM)
Analoge inputs8
Afmeting45 mm x 18 mm
SRAM1 KB (ATmega168) of 2 KB (ATmega328)
EEPROM512 bytes (ATmega168) of 1 KB (ATmega328)
Flash16 KB (ATmega168) or 32 KB (ATmega328)


Oled Display Module Voor Arduino 0.96 128x64 I2C

SSD1306 i2c OLED display 128x64Het display dat ik gebruikt heb is een vrij standaard verkrijgbaar OLED display met witte pixels, een resolutie van 128x64 en een aansturing door middel van I2C en het SSD1306 driver IC. Ook dit shield heeft dus maar twee datalijnen nodig en het verbruikt minimaal stroom zodat het ook goed te gebruiken is in projecten die uit een accu of batterij gevoeld moeten worden. De afmeting van dit scherm is iets grote dan de voorgaande en is 26,0 x 15,0 mm. De module werkt op 3v3 en kan uit de 3v3 uitgang van de Arduino gevoed worden, waarbij de I2C lijnen gewoon op de 5V Arduino pinnen aangesloten kunnen worden. Het I2C adres van dit OLED shield is standaard 0x3C. Het scherm is heel duidelijk afleesbaar door een zeer hoog contrast. Doordat het gebruik maakt van 128x64 pixels bent u bij de Arduino wel ruim 1 Kb aan kostbare sram kwijt voor dit display.

De SSD1306 display controller

De SSD1306 is een single-chip CMOS OLED/PLED driver met controller voor displays met een maximom resolutie van 128 x 64. Het IC bevat een display controller met display RAM en een ingebouwde oscillator zodat het met minimale externe componenten gebruik kan worden. Het heeft een ingebouwde 256 stappen brightness control. Het heeft een 6800/8000 series compatible Parallel Interface, I2C interface of een Serial Peripheral Interface.

Aansluiting 128x64 display

DisplayArduino
Vcc3v3
GndGnd
SclA5 (SCL)
SdaA4 (SDA)

Link: Datasheet van de SSD1306 controller.

Link: Website van de leverancier SSD1306 controller.

Analoge joysticks voor de Arduino.

analog joysticksEen analoge joystick is vergelijkbaar met twee potentiometers die met elkaar zijn verbonden, een voor de verticale beweging (Y-as) en een andere voor de horizontale beweging (X-as). Deze leveren dus een analoge weerstandwaarde op die eenvoudig omgezet kan worden in een spanning die te lezen is door de analoge ingangspinnen van de Arduino, De positie van de joystick komt dan overeen met de spanning en zal tussen de 0 en de 1023 liggen, waarbij 512 het middelpunt is. Daarnaast zit er een drukschakelaar onder die op een digitale pin van de Arduino aangesloten kan worden. In dit ontwerp gebruik ik de analoge ingangen uiteindelijk weer als digitaal door de spanning om te zetten in drie waarden, midden, links en rechts, omdat dit voor het programmeren handiger is.

De aansluitingen van de twee joysticks zitten op de volgende penenn van de Arduino Nano:

#define BUTTON_PIN1  7
#define BUTTON_PIN2  6

#define XPIN1       A7
#define YPIN1       A6
#define XPIN2       A2
#define YPIN2       A1


Link: Website met voorbeeld over de analoge joysticks (Engels).


Arduino Nano spelcomputer links, files downloads




Een pagina over de SSD1306 Oled library voor de Arduino.
 

Boeken over de Arduino

boek boek bestellen Wie enigszins bekend is met moderne microprocessor systemen als Arduino, kent ongetwijfeld ook de problemen met dit soort kaarten. Ze zijn te duur om voor elk project een aparte kaart aan te schaffen en zijn bovendien nogal fors van formaat. Het aardige van de ATtiny is dat de schijn bedriegt. Het lijkt een klein IC met een beperkt toepassingsgebied, maar het heeft een verbazingwekkend scala aan (speelse) mogelijkheden. Dit boek beschrijft de enorme veelzijdigheid van de ATtiny microcontroller aan de hand van ongeveer vijftig leuke elektronica projecten, speciaal gericht op de beginner. De meeste ontwerpen zijn volledig uitgewerkt, enkele zijn meer als ontwerpidee gepresenteerd. De inhoudsopgave laat zien dat we ons op vele terreinen zullen begeven, van zonnevolger tot helling indicator. Dit boek is beslist geen theorieboek. Het is een boek dat gelezen zal worden met de soldeerbout in de hand. Voor het programmeren van de ATtiny maken we dankbaar gebruik van een Arduino kaart. Als de Arduino ingesteld word als programmer, kunnen we er de meeste Arduino "sketches" mee overzetten naar de ATtiny. We wensen u veel plezier met het nabouwen van de schakelingen.


boek boek bestellen Building robots that sense and interact with their environment used to be tricky. Now, Arduino makes it easy. With this book and an Arduino microcontroller and software creation environment, you’ll learn how to build and program a robot that can roam around, sense its environment, and perform a wide variety of tasks. All you to get started with the fun projects is a little programming experience and a keen interest in electronics. Make a robot that obeys your every command—or runs on its own. Maybe you’re a teacher who wants to show students how to build devices that can move, sense, respond, and interact with the physical world. Or perhaps you’re a hobbyist looking for a robot companion to make your world a little more futuristic. With Make an Arduino Controlled Robot, you’ll learn how to build and customize smart robots on wheels. You will: Explore robotics concepts like movement, obstacle detection, sensors, and remote control Use Arduino to build two- and four-wheeled robots Put your robot in motion with motor shields, servos, and DC motors Work with distance sensors, infrared reflectance sensors, and remote control receivers Understand how to program your robot to take on all kinds of real-world physical challenges.



Reacties op het onderwerp: Arduino


32 - Techniek »  -  Arduino »
2018-02-02 16:28:00
Hier kunt u vragen stellen en antwoorden geven die betrekking hebben op de Arduino boards en Atmel processoren. Reacties zullen pas na goedkeuring geplaatst worden, dit kan enige tijd duren.
Reactie van een bezoeker van de site!
Vragen en antwoorden m.b.t. de Arduino boards en Atmel processoren.
Er zijn nog geen reacties!


Last update: 31-01-2018
 Binnen dit thema



 Meer thema's


 Lees hier de privacyverklaring van deze site.

Disclaimer.

Hoewel de heer Hein Pragt de informatie beschikbaar op deze pagina met grote zorg samenstelt, sluit de heer Pragt alle aansprakelijkheid uit met betrekking tot de informatie die, in welke vorm dan ook, via zijn site wordt aangeboden. Het opnemen van een afbeelding of verwijzing is uitsluitend bedoeld als een mogelijke bron van informatie voor de bezoeker en mag op generlei wijze als instemming, goedkeuring of afkeuring worden uitgelegd, noch kunnen daaraan rechten worden ontleend. Op de artikelen van de heer Pragt op deze Internetsite rust auteursrecht. Overname van informatie (tekst en afbeeldingen) is uitsluitend toegestaan na voorafgaande schriftelijke toestemming van de rechthebbende. Voor vragen over copyright en het gebruik van de informatie op deze site kunt u contact opnemen met: (email: mail@heinpragt.com). Dit is mijn