🍪 Privacy & Transparency

We and our partners use cookies to Store and/or access information on a device. We and our partners use data for Personalised ads and content, ad and content measurement, audience insights and product development. An example of data being processed may be a unique identifier stored in a cookie. Some of our partners may process your data as a part of their legitimate business interest without asking for consent. To view the purposes they believe they have legitimate interest for, or to object to this data processing use the vendor list link below. The consent submitted will only be used for data processing originating from this website. If you would like to change your settings or withdraw consent at any time, the link to do so is in our privacy policy accessible from our home page..

Vendor List | Privacy Policy
Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry PI

Menu
  • Projekte
    • LED’s
    • Servo & Schrittmotoren
    • Sound
    • LCD’s
    • Kommunikation
    • Sicherheit
    • Weekend Project
  • Arduino
    • Tutorials
    • ProMini
      • Anschließen & Programmieren
    • Nano
      • Arduino Nano – Übersicht
    • UNO
      • Übersicht
    • MEGA 2560
      • Übersicht
    • Leonardo
      • Übersicht
    • NodeMCU
      • NodeMCU – “Einer für (fast) Alles!”
    • Lilypad
      • Arduino: Lilypad “Jetzt Geht’s Rund!”
    • WEMOS
      • WEMOS D1 – Arduino UNO kompatibles Board mit ESP8266 Chip
      • WEMOS D1 Mini – Übersicht
      • Wemos D1 mini Shields
    • STM32x
      • STM32F103C8T6 – Übersicht
    • Maker UNO
      • Maker UNO – Überblick und Test
    • ATTiny85
      • Mini Arduino mit ATTiny85 Chip
      • ATtiny85 mit dem Arduino UNO beschreiben
  • Android
  • Über mich
  • DeutschDeutsch
  • EnglishEnglish
Menu

Weekend Projekt: Google Dino Jump

Veröffentlicht am 30. Mai 20201. Mai 2023 von 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*

* 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 zuhause.)

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

Kategorien

Tools

  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator
  • Widerstandsrechner
  • Rechner für Strom & Widerstände
  • ASCII Tabelle

Meta

  • Videothek
  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Kontakt
  • Cookie-Richtlinie (EU)

Links

Blogverzeichnis Bloggerei.de Blogverzeichnis TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com
©2023 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
x
x