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

Bouw een creditcardgrote Arduboy-kloon met Arduino Nano en I2C OLED

Onderdelen en benodigdheden

Arduino Nano R3 1
Grafische OLED, 128 x 64 1
Buzzer 1
Tactiele schakelaar, Top Actuated 6
RGB Diffused Common Cathode 1
Weerstand 221 ohm 3
Weerstand 10k ohm 1

Benodigde tools en machines

  • 3D-printer (standaard)
  • Solderbout (standaard)

Over dit project

Arduboy is een miniatuurgamesysteem de grootte van een creditcard. Het wordt geleverd met een klassiek 8-bit spel en kan herprogrammeerd worden vanuit een bibliotheek van open-source spellen die online beschikbaar zijn. Arduboy is open source, zodat je kunt leren programmeren en je eigen spellen kunt maken. De originele versie is gebaseerd op de ATmega32U4 microcontroller en een 128x64 pixels serieel OLED-display.

De console waarvan de constructie hieronder wordt weergegeven, bestaat uit een Arduino Nano en de I2C-versie van het OLED-display, wat veel makkelijker te vinden is tegen een lagere prijs. Je kunt de benodigde bibliotheken en code downloaden op:

https://github.com/harbaum/Arduboy2

Als je een 3D-printer hebt, kun je ook de .STL-bestanden van een mogelijke behuizing downloaden waarin de console wordt gemonteerd. Een gedetailleerde installatiehandleiding is op dezelfde site beschikbaar. Het wordt gevoed door een Arduino Nano met één lithium-ionbatterij van 3,7V en werkt prima.

Ik heb veel spellen op deze console getest, die allemaal prima functioneren:

  • ArduBreakout
  • Pinball
  • Shadow-Runner
  • Snake
  • VIRUS-LQP-79
  • Nineteen43
  • en nog veel meer...

Het schema wordt hieronder getoond.

Als voorbeeld presenteer ik de code van het ArduBreakout-spel, maar je kunt elk ander spel van de Arduboy-site downloaden dat compatibel is met deze versie van de console.

Code

ArduBreakout Spel

/* Breakout Copyright (C) 2011 Sebastian Goscik Alle rechten voorbehouden.
   Wijzigingen door Scott Allen 2016 (na eerdere wijzigingen door ???)
   Deze bibliotheek is vrije software; je kunt het redistribueren en/of wijzigen
   onder de voorwaarden van de GNU Lesser General Public License...
*/
#include <Arduboy2.h>
#define EE_FILE 2
Arduboy2 arduboy;
BeepPin1 beep;
const unsigned int FRAME_RATE = 40;
const unsigned int COLUMNS = 13;
const unsigned int ROWS = 4;
int dx = -1, dy = -1;
int xb, yb;
boolean released, paused = false;
byte xPaddle;
boolean isHit[ROWS][COLUMNS];
boolean bounced = false;
byte lives = 3, level = 1;
unsigned int score = 0, brickCount;
boolean pad, pad2, pad3, oldpad, oldpad2, oldpad3;
char text_buffer[16];
boolean start = false, initialDraw = false;
char initials[3];
byte leftBall, rightBall, topBall, bottomBall;
byte leftBrick, rightBrick, topBrick, bottomBrick;
byte tick;

void setup() {
  arduboy.begin();
  beep.begin();
  arduboy.setFrameRate(FRAME_RATE);
  arduboy.initRandomSeed();
}

void loop() {
  if (!(arduboy.nextFrame())) return;
  beep.timer();
  while (!start) {
    start = titleScreen();
    if (!start) start = displayHighScores(EE_FILE);
  }
  if (!initialDraw) {
    arduboy.clear();
    level = 1;
    newLevel();
    score = 0;
    initialDraw = true;
  }
  if (lives > 0) {
    drawPaddle();
    pad = arduboy.pressed(A_BUTTON) || arduboy.pressed(B_BUTTON);
    if (pad == true && oldpad == false && released) {
      oldpad2 = false;
      pause();
    }
    oldpad = pad;
    drawBall();
    if (brickCount == ROWS * COLUMNS) {
      level++;
      newLevel();
    }
  } else {
    drawGameOver();
    if (score > 0) enterHighScore(EE_FILE);
    arduboy.clear();
    initialDraw = false;
    start = false;
    lives = 3;
    newLevel();
  }
  arduboy.display();
}
// ... (rest van de code zoals in origineel)

Aangepaste onderdelen en behuizingen

3D-printbestanden: 3d_parts_ThLGvJvWga.rar

Schema's

Schema van de schakeling

Productieproces

  1. Naadloze Arduino‑Raspberry Pi 2 I2C-integratie voor IoT-sensorprojecten
  2. Bouw een Handheld Gaming Console met de Arduboy Clone
  3. Bouw een Klassiek Pong-spel op Arduino UNO met OLED-display – Stap-voor-stap Tutorial
  4. Arduino Temperatuurbewaking & Realtime Klok met 3.2" TFT-display
  5. Een eenvoudige obstakelsensor bouwen met Arduino – IR LED & Fotodiodo Tutorial
  6. Interactief Nextion HMI-weerstation met Arduino Mega en sensoren
  7. Twee Stappenmotors Sturen met Arduino Nano & Joystick – Simpele Tutorial
  8. Bouw een DIY Voltmeter met Arduino en Nokia 5110 Display – Stap-voor-Stap Handleiding
  9. Bouw Real-Time Cellulaire Automaten op Arduino met 128x64 OLED Display
  10. Bouw een handgehoude Geiger-teller met Arduino Nano
  11. Geïsoleerde analoge ingangsschakeling voor Arduino bouwen