Arduino Pacman für den Schreibtisch

Pac-Man ist ohne jeden Zweifel eines der coolsten Spiele aller Zeiten. Um sich einen eigenen Arduino Pacman zu bauen braucht man nur ein paar Zutaten:

Wir benötigen Ihre Zustimmung um den Inhalt von YouTube laden zu können.

Mit dem Klick auf das Video werden durch den mit uns gemeinsam Verantwortlichen Youtube [Google Ireland Limited, Irland] das Video abgespielt, auf Ihrem Endgerät Skripte geladen, Cookies gespeichert und personenbezogene Daten erfasst. Damit kann Google Aktivitäten im Internet verfolgen und Werbung zielgruppengerecht ausspielen. Es erfolgt eine Datenübermittlung in die USA, diese verfügt über keinen EU-konformen Datenschutz. Weitere Informationen finden Sie hier.

PHA+PGlmcmFtZSBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLzJveHFtZzlDNGNrIiB3aWR0aD0iNjAwIiBoZWlnaHQ9IjMzOCIgZnJhbWVib3JkZXI9IjAiIGFsbG93ZnVsbHNjcmVlbj0iYWxsb3dmdWxsc2NyZWVuIj48L2lmcmFtZT48L3A+

Die Verkabelung ist super einfach. Der Servomotor wird an 5V und GND angeschlossen und an einen digitalen Output. Ich verwende zwar einen Analogen Input Pin, der lässt sich aber auch als digitaler Output verwenden. (Im Code kann man sehen, das ich einen Pin 14 deklariere. Das ist genau der Analog In 0. Die Pins zählen also einfach nach D13 weiter.)

Schaltung Arduino Pacman

Schaltung Arduino Pacman

Natürlich wollen wir auch etwas Sound. Das übernimmt ein Piezo-Speaker, der an Pin D8 und D10 angeschlossen wird. D8 setzen wir mit digitalWrite(8,LOW) einfach auf GND, Pin D10 wird für die Frequenzmodulation benutzt.

Das Programm läuft in der Setup-Methode nur einmal durch. Drückt man den Reset-Knopf startet es erneut. So sparen wir uns einen Start-Button.

Mein Servo ist leider relativ langsam, weswegen der Arduino Pacman seinen Mund nicht so weit aufbekommt und den Sound könnte man auch noch tunen. Ich überlasse Euch das einfach. Viel Spaß beim Nachbauen. Den Bastelbogen gibt es hier zum downloaden.

Code

#include 

Servo myServo;

void setup() {
  Serial.begin(115200);
  pinMode(14, OUTPUT);
  myServo.attach(14);
  pinMode(8, OUTPUT);
  digitalWrite(8, LOW);
  pinMode(10, OUTPUT);
  for (int repeats = 0; repeats < 5; repeats++) {
    myServo.write(30);
    for (int i = 200; i < 1200; i++) {
      tone(10, i, 100);
    }
    myServo.write(0);
    for (int i = 800; i > 200; i--) {
      tone(10, i, 100);
    }
    noTone(8);
  
  }
}

void loop() {
  delay(10);
}

Links

Bastelbogen zum Ausdrucken
Pac-Man online spielen auf Archive.org
Code auf GitHub

Ich würde mich freuen, wenn du diesen Beitrag bewerten würdest :-)

Durchschnittliche Bewertung 0 / 5. Anzahl Bewertungen: 0

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Deine Meinung ist mir sehr wichtig!

Lasse uns diesen Beitrag verbessern!

Wie kann ich den Beitrag verbessern? Was würdest du dir wünschen? Was hat dir gefehlt?

Ich hoffe, der Beitrag hilft dir weiter. Und falls du weitere Fragen hast, stelle sie gern hier im Arduino-Forum.

Du willst noch tiefer in die Materie einsteigen? Dann präsentiere ich dir die neuen E-Books von StartHardware:

  • 20 Lektionen
  • Projektbasiert und kurzweilig
  • Aus den Erfahrungen unzähliger Workshops
  • Sofortiger Download

  • Die beliebtesten Projekte von StartHardware
  • Mit Code, Schaltplan und Erklärungen
  • Fachwissen-Kapitel
  • Sofortiger Download


Willst du lieber ein Buch zum Anfassen? Dann werde mit diesem hier zum Arduino-Experten! Arduino: Kompendium: Elektronik, Programmierung und Projekte* – Damit lernst du alle Tricks!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

 

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.