Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Über mich
  • Deutsch
  • English
Menu

Weekend Projekt: Google Dino Jump

Posted on 30. Mai 20208. März 2024 by Stefan Draeger

In verschiedenen Instagram Storys / Beiträge konnte ich ein kleines, niedliches Projekt mit einem Arduino und dem „Google Dino Jump“ Spiel erblicken und genau dieses möchte ich dir hier in einem Weekend Projekt zeigen. Daher zunächst der Hinweis, dass die Idee dieses Mal nicht von mir stammt, sondern kopiert wurde. (Aber ich werde meine Lösung zu diesem Spiel anbieten, ich habe nur das Video gesehen.)

Für den Nachbau in diesem Beitrag benötigst du den kostenfreien Browser Chrome von Google.

  • Wo und wann sehe ich das Spiel „Google Dino Jump“?
  • Aufbau und Ablauf des Spieles
    • Wann endet das Spiel?
  • automatisieren des Spieles
    • Benötigte Bauteile / Materialien & Kosten
    • Aufbau des Projektes – Weekend Projekt: Google Dino Jump
      • Anschließen des Servomotors
        • Hinweise zum Umgang mit Servomotoren
        • Ansteuern des Servomotors SG90
        • Video vom Zwischenstand
      • Auslesen des Fotowiderstandes am Arduino UNO
      • der fertige Sketch
        • Video

Wo und wann sehe ich das Spiel „Google Dino Jump“?

Das Spiel wird dir im Browser Google Chrome angezeigt, wenn du keine Internetverbindung hast. D.h. eigentlich solltest du dich bisher wohl glücklich schätzen, wenn du es noch nicht gesehen hast. 

Wenn du also keine Internetverbindung hast, dann wird dir folgende Fehlerseite angezeigt.

Google Chrome - Fehlerseite "kein Internet"
Google Chrome – Fehlerseite „kein Internet“

Wenn du nun die Leertaste auf deiner Tastatur betätigst, dann wird das Spiel gestartet.

Du kannst dieses auch provozieren, in dem du zbsp. unter Microsoft Windows unter „Systemsteuerung\Netzwerk und Internet\Netzwerkverbindungen“

deaktivieren des Ethernetadapters in den Systemeinstellungen
deaktivieren des Ethernetadapters in den Systemeinstellungen

Du könntest natürlich auch das Kabel aus dem Router ziehen, jedoch würdest du damit ggf. dein Telefon und vor allem andere Familienmitglieder / angeschlossene Geräte abklemmen, welches wohl für „Spannungen“ sorgen kann.

Wenn du mehr über die Entstehung und den Background zu diesem Browsergame erfahren möchtest, dann empfehle ich dir die Seite https://dino-chrome.com/de.

Aufbau und Ablauf des Spieles

Das Spiel ist im Aufbau relativ simple, du bist ein Dinosaurier, genauer gesagt ein T-Rex. Dieser T-Rex läuft von links nach rechts und muss über Kakteen springen. Zum Springen musst du die Leertaste betätigen. Die Leertaste ist aber auch die einzige Taste, welche du für dieses Spiel betätigen kannst / musst. 

Google "Dino Jump Spiel"
Google „Dino Jump Spiel“

Wann endet das Spiel?

Das Spiel endet mit dem Tod des Dinos, dieses passiert, wenn der Dino mit einem Kaktus zusammen stößt. Das kann passieren, wenn zu langsam oder aber zu schnell bist.

Google Chrome "Dino Jump" - Game Over
Google Chrome „Dino Jump“ – Game Over

automatisieren des Spieles

Das Spiel lässt sich mit einigen wenigen Bauteilen super einfach automatisieren. Und wie du dieses machst, erfährst du nun nach der kurzen Einleitung in diesem Abschnitt des Beitrages.

Benötigte Bauteile / Materialien & Kosten

  • einen Arduino UNO*, (7 €)
  • einen Fotowiderstand*, (2 € (10 Stck.)),
  • einen 10 kOhm Widerstand*, (2 € (10 Stck.)),
  • ein Servomotor SG90*, (1,5 €),
  • ein paar Breadboardkabel, sowie
  • etwas Klebeband* **

Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!

** Das Klebeband wird später genutzt, um den Fotowiderstand auf einem Monitor zu „montieren“ hier bietet es sich an, mal nicht so tief in die Tasche zu greifen, denn das günstige Klebeband klebt nicht so gut und lässt sich dadurch besser wieder entfernen. (Alternativ kann man aber auch Malerkreppband verwenden. Dieses lässt sich sehr leicht entfernen, jedoch hat nicht jeder dieses zu Hause.)

Die Kosten für das Material für dieses kleine Projekt betragen 13,5 €. Wer jedoch schon etwas mehr mit dem Arduino gebastelt hat, der sollte dieses Material sowieso schon zu Hause haben.

Aufbau des Projektes – Weekend Projekt: Google Dino Jump

Wie du einen Servomotor am Arduino betreibst und steuerst, habe ich bereits im Beitrag Arduino, Lektion 16: Servo ansteuern und wie du die Werte eines Fotowiderstandes ausließt im Beitrag Arduino Lektion 4: LED mit Fotowiderstand.

Arduino UNO mit 400 Pin Breadboard
Arduino UNO mit 400 Pin Breadboard
Servomotor SG90
Servomotor SG90
Fotowiderstand
Fotowiderstand
10 kOhm Widerstand
10 kOhm Widerstand

Auch wenn du die verlinkten Beiträge noch nicht kennst, ich zeige dir Schritt für Schritt, wie du die Schaltung aufbaust und das Sketch / Programm erstellst.

Anschließen des Servomotors

Der Servomotor muss an einen PWM Pin angeschlossen werden.
Der Arduino UNO und Nano verfügt an den digitalen Pins 3, 5, 6, 9,10, 11 über die Möglichkeit, PWM Signale zu übertragen. 

digitale Pins am Arduino UNO
digitale Pins am Arduino UNO

Die PWM Pins erkennst du auch an der Tilde „~“.

Der Servomotor verfügt über einen einfachen 3-Pin-Stecker, welcher meist die Farben braun, rot und orange hat.

Servomotor SG90Arduino UNO
braunGND
rot5V
orangedigitaler Pin D9
Servomotor SG90 am Arduino UNO
Servomotor SG90 am Arduino UNO
Hinweise zum Umgang mit Servomotoren

In diesem Beitrag verwende ich bewusst den kleinen Servomotor SG90, dieser hat eine sehr geringe Stromaufnahme. Diese liegt in der Ruheposition beim max. 10mA und bei der Bewegung bei maximal 200mA. Der Arduino kann auf dem 5V Pin maximal 400mA vertragen. Dieses Maximum wird schon fast erreicht, wenn dieser kleine Servo mal hängt bzw. sich nicht weiter drehen kann (ca. 360mA).

Des Weiteren sollte das Ruderhorn des Servos nicht mit der Hand bewegt werden, da man dann das Getriebe nachhaltig beschädigen kann.

Ansteuern des Servomotors SG90

Den Servomotor haben wir am digitalen Pin D9 angeschlossen. In dem nachfolgenden kleinen Sketch habe ich als untere Position den Winkel von 1° und das Maximum von 60° am Servomotor. Solltest du jedoch eine Tastatur mit größeren Tasten haben, so müssen diese Winkel ggf. angepasst werden.

#include <Servo.h>  //Bibliothek zum ansteuern von Servo

#define servoPin 9

//Pause zwischen drücken der Taste und loslassen.
//In dieser Pause muss der Weg für den Servo mit
//eingerechnet werden!
const int PAUSE = 150; 

int posDown = 1; //untere Position des Servos
int posUp = 60; //obere Position des Servos

Servo servo; //Servo Objekt erstellen (noch nicht initialisiert)

void setup() {
  pinMode(servoPin, OUTPUT); //setzen des digitalen Pins als Ausgang
  servo.attach(servoPin); //setzen des Servo Objektes auf den digitalen PIN D9
}
 
void loop() { 
  jump();
  delay(1000);
}

/*
 * Springen bzw. betätigen der Leertaste mit dem Servos
 */
void jump(){
    servo.write(posDown); 
    delay(PAUSE); 
    servo.write(posUp); 
}
Video vom Zwischenstand

Wenn das oben gezeigte Sketch / Programm auf dem Arduino UNO ausgeführt wird, dann sollte sich bereits die Leertaste betätigen lassen.

Auslesen des Fotowiderstandes am Arduino UNO

Der Fotowiderstand wird zusammen mit einem 10 kOhm Widerstand am analogen Pin A2 angeschlossen. 

Schaltung, Fotowiderstand mit 10 kOhm Widerstand am Arduino
Schaltung, Fotowiderstand mit 10 kOhm Widerstand am Arduino

Für das Auslesen des Fotowiderstandes benötigen wir keine zusätzliche Bibliothek, hier nutzen wir die Funktion „analogRead“. Dieser Funktion übergeben wir den Pin an welchem der Fotowiderstand angeschlossen ist und erhalten einen ganzzahligen Wert zwischen 0 und 1023. 

//Fotowiderstand am analogen Pin A2
#define resistorPin A2
void setup() {
  Serial.begin(9600);
}
 
void loop() { 
  //auslesen des Fotowiderstandes
  int resistorValue = analogRead(resistorPin);
  Serial.println(resistorValue);
}

Mit diesem kleinen Sketch können wir nun ermitteln, wie die Unterschiede zwischen dem Kaktus in dem Spiel und dem Hintergrund ist. Ich habe zusätzlich sämtliche störende Lichtquellen entfernt (Lampen ausgeschaltet und Fenster verhängt) und habe einen Wert von 750 ermitteln können. Jeder 

Da der Arduino jedoch „nur“ über einen 5V Pin verfügt, greifen wir diesen ab und schließen über ein Breadboard den Servo und den Fotowiderstand an.

Aufbau der Schaltung, automatisieren von "Google Dino Jump"
Aufbau der Schaltung, automatisieren von „Google Dino Jump“

der fertige Sketch

Wenn du diesen Sketch verwendest, musst du ggf. den Schwellwert für das Aufrufen der Funktion „jump“ an deinen Monitor anpassen.

#include <Servo.h>  //Bibliothek zum ansteuern von Servo

//Servomotor am digitalen Pin D9
#define servoPin 9

//Fotowiderstand am analogen Pin A2
#define resistorPin A2

//Pause zwischen drücken der Taste und loslassen.
//In dieser Pause muss der Weg für den Servo mit
//eingerechnet werden!
const int PAUSE = 150; 

int posDown = 1; //untere Position des Servos
int posUp = 60; //obere Position des Servos

Servo servo; //Servo Objekt erstellen (noch nicht initialisiert)

void setup() {
  pinMode(servoPin, OUTPUT); //setzen des digitalen Pins als Ausgang
  servo.attach(servoPin); //setzen des Servo Objektes auf den digitalen PIN D9
}
 
void loop() { 
  //auslesen des Fotowiderstandes
  int resistorValue = analogRead(resistorPin);
  //der Wert des Fotowiderstandes hängt vom Monitor und von dem umgebenen Licht ab
  //daher muss mit diesem Wert etwas experimentiert werden.          
  if(resistorValue < 750){
    jump();
  }  
}

/*
 * Springen bzw. betätigen der Leertaste mit dem Servos
 */
void jump(){
    servo.write(posDown); 
    delay(PAUSE); 
    servo.write(posUp); 
}
Video

Sorry für die schlechte Qualität des Videos, jedoch musste ich die Fenster verhängen da das einfallende Sonnenlicht den Fotowiderstand sehr stark beeinflusst hat.

Schreibe einen Kommentar Antworten abbrechen

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

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}