工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduinoで自動化するChrome恐竜ゲーム – LDRとPythonで障害物を検知してジャンプ

必要な部品と材料

部品数量備考
Arduino UNO1
LDR(光依存抵抗)5MΩ1画面の明暗を検知
抵抗(LDR用、適切な値)1分圧回路用

プロジェクト概要

Chromeのオフライン恐竜ゲームをArduinoとLDR(光センサー)で自動プレイさせるプロジェクトです。画面に貼り付けたLDRが障害物(サボテンや鳥)の影を検知し、Pythonスクリプト経由でスペースキーを自動送信してジャンプさせます。

Arduinoで自動化するChrome恐竜ゲーム – LDRとPythonで障害物を検知してジャンプ
Arduinoで自動化するChrome恐竜ゲーム – LDRとPythonで障害物を検知してジャンプ

仕組み

  1. Arduino側: LDRで画面の明度を読み取り、閾値以下(障害物あり)ならシリアルで「1」を送信
  2. Python側: シリアルを監視し、「1」を受信したらpyautoguiで↑キー(ジャンプ)を送信

Arduinoの配線とスケッチ

配線

LDRと抵抗で分圧回路を作り、中点をA0に接続します。LDRをモニターの障害物が通る位置に固定してください。

Arduinoで自動化するChrome恐竜ゲーム – LDRとPythonで障害物を検知してジャンプ
Arduinoで自動化するChrome恐竜ゲーム – LDRとPythonで障害物を検知してジャンプ

Arduinoスケッチ

// Arduino Dino Game
int sensorPin = A0;
int sensorValue = 0;
int thresholdValue = 43;  // 試行錯誤で決定

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

void loop() {
  sensorValue = analogRead(sensorPin);
  // Serial.println(sensorValue); // 初回はコメント解除して値を確認
  if(sensorValue <= thresholdValue) {
    Serial.println(1);  // 障害物検知
  }
  delay(50);
}

Pythonスクリプト

必要なライブラリ: pyserial, pyautogui

import subprocess
import time
import pyautogui
import serial

# ブラウザでゲームを開く(Firefoxの例、Chromeの場合はパスを変更)
subprocess.call([r'C:\Program Files\Mozilla Firefox\firefox.exe', '-new-tab', 'https://chromedino.com/'])
time.sleep(6)
print("All set :)")

ser = serial.Serial('COM4')  # 環境に合わせて変更
ser.baudrate = 9600

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

調整のポイント

リソース

製造プロセス

  1. Arduinoで作るモニター用Ambilightシステム:没入感アップの自作ガイド
  2. TeleBall: 自作レトロ携帯ゲーム機 – Arduinoでブロック崩し&テニス
  3. Arduino UNOとOLEDディスプレイでクラシックPongゲームを自作:ステップバイステップチュートリアル
  4. DIY Arduino USBゲームコントローラー - 高性能ゲームパッドを自作
  5. Arduino Unoで作る自動発射レゴ・スターウォーズ砲台
  6. Arduinoタッチブレークアウトゲーム:2.4インチTFT LCDでクラシックアーケードを再現
  7. Arduinoとスマホで作るスマート電圧計 – 簡単DIYプロジェクト
  8. ArduinoとMAX30100で作るリアルタイムIoT心拍数モニター
  9. Arduino UNO WiFi Webサーバー:ブラウザからLEDをON/OFF制御
  10. Pixel Chaser: Arduino Nanoで作るワンタップLEDゲーム
  11. Arduino NanoとRDA5807Mで作るコンパクトFMラジオ