Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Automatize o Jogo do Dinossauro do Chrome com Arduino e LDR

Componentes e Materiais

ComponenteQuantidade
Arduino UNO1
LDR (5 MΩ)1

Sobre o Projeto

Entediado durante a quarentena? Vamos jogar o jogo do dinossauro do Chrome... mas e se o jogo também ficar chato? Vamos automatizá-lo! 😉

Automatize o Jogo do Dinossauro do Chrome com Arduino e LDR
Automatize o Jogo do Dinossauro do Chrome com Arduino e LDR

Você precisará de um Arduino e LDR. Conhecimentos básicos de Python também são necessários.

Configuração do Arduino

Automatize o Jogo do Dinossauro do Chrome com Arduino e LDR

Conecte o Arduino UNO ao LDR (não esqueça o resistor).

Automatize o Jogo do Dinossauro do Chrome com Arduino e LDR

Código do Arduino

// Arduino Dino Game! :)
int sensorPin = A0; // Conecte LDR no A0
int sensorValue = 0;
int thresholdValue = 45; // Ajuste por tentativa e erro

void setup() {
  Serial.begin(9600);
}

void loop() {
  sensorValue = analogRead(sensorPin);
  // Serial.println(sensorValue); // Descomente para calibrar
  if (sensorValue <= thresholdValue) { // Detecta obstáculo
    Serial.println(1);
  }
  delay(40);
}

Fixe o LDR no monitor e leia os valores analógicos quando um obstáculo aparecer. Defina esse valor como thresholdValue e atualize o if. Pronto! ✌️

Você pode adicionar um servo para pressionar a barra de espaço, mas usei Python para essa tarefa.

Código Python

Automatize o Jogo do Dinossauro do Chrome com Arduino e LDR

Usamos o módulo pyserial para ler dados seriais e PyAutoGUI para pressionar a tecla Up.

import subprocess
import time
import pyautogui
import serial

subprocess.call([r'C:\Program Files\Mozilla Firefox\firefox.exe',
                 '-new-tab', 'https://chromedino.com/'])
# Usuários do Chrome: substitua pelo caminho do Chrome.
time.sleep(6)
print("All sett :)")

ser = serial.Serial('COM4') # Atualize com a porta do seu Arduino
ser.baudrate = 9600

while True:
    h1 = ser.readline()
    if h1:
        ss = int(h1.decode('utf-8'))
        if ss == 1:
            print("Oh :< Jump!!")
            pyautogui.press('up')

Execute o código Python e posicione o LDR corretamente por tentativa e erro. Jogo automatizado pronto! 💃🕺

Automatize o Jogo do Dinossauro do Chrome com Arduino e LDR

Para ir além, adicione outro LDR para detectar pássaros.

Repositório GitHub: https://github.com/rafitc/arduDino

Código Completo

Arduino

// Arduino Dino Game! :)
int sensorPin = A0;
int sensorValue = 0;
int thresholdValue = 43;
void setup() { Serial.begin(9600); }
void loop() {
  sensorValue = analogRead(sensorPin);
  if (sensorValue <= thresholdValue) { Serial.println(1); }
  delay(50);
}

Python

import subprocess, time, pyautogui, serial
subprocess.call([r'C:\Program Files\Mozilla Firefox\firefox.exe', '-new-tab', 'https://chromedino.com/'])
time.sleep(6)
print("All sett :)")
ser = serial.Serial('COM4')
ser.baudrate = 9600
while True:
    h1 = ser.readline()
    if h1:
        ss = int(h1.decode('utf-8'))
        if ss == 1:
            print("Oh :< Jump!!")
            pyautogui.press('up')

Processo de manufatura

  1. Crie um Sistema Ambilight Impressionante para Monitor com Arduino
  2. TeleBall: Console Retrô Portátil DIY – Breakout e Tênis para Dois com Arduino
  3. Construa o Clássico Jogo Pong no Arduino UNO com Display OLED – Tutorial Passo a Passo
  4. Controle USB para Jogos DIY com Arduino – Construa Seu Próprio Gamepad de Alto Desempenho
  5. Construa um Atirador Automatizado LEGO Star Wars com Arduino Uno
  6. Jogo Breakout Touch com Arduino: Arcade Clássico em LCD TFT 2,4″
  7. Construa um Voltímetro Inteligente com Arduino e Smartphone – Projeto DIY Fácil
  8. Monitor de Frequência Cardíaca IoT em Tempo Real com Arduino e MAX30100
  9. Servidor Web Arduino Uno WiFi: Controle LED via Navegador
  10. Pixel Chaser: Jogo LED Interativo de Um Toque com Arduino Nano