arduinoを使用した自動恐竜ゲーム
コンポーネントと消耗品
> ![]() |
| × | 1 | |||
![]() |
| × | 1 |
このプロジェクトについて
退屈なAF、この検疫時間中?🥴
<図>

グーグルクローム恐竜ゲームで遊ぼう…;)
<図>
しかし、恐竜ゲームも退屈になった場合はどうすればよいですか。
恐竜ゲームを自動化しましょう😉。
したがって、 ArduinoとLDR が必要です 。 pythonに関する知識はほとんどありません
も必要ですまず、 Arduino をセットアップしましょう 。
<図>
ArduinoUNOをLDRに接続します。 (抵抗器を追加することを忘れないでください)
<図>
次に、コードをアナログ読み取りLDR値にアップロードします。
// Arduino Dino Game! :)
int SensorPin =A0; // A0にLDRを接続します
int SensorValue =0; // LDRからの値を格納する変数
int thresholdValue =45; //これは試行錯誤の方法によって異なります。
void setup(){
Serial.begin(9600); //シリアルは9600から始まります
}
void loop(){
//センサーから値を読み取ります:
SensorValue =analogRead(sensorPin); //センサーデータを読み取ります
//Serial.println(sensorValue); //最初に使用するときにこれをコメント解除し、thresholdValueを取得して設定します。
if(sensorValue <=thresholdValue){//障害物を検出するための条件。
Serial.println(1); //条件がtrueの場合のシリアル印刷。
}
delay(40); // 50msの遅延
}
LDR を修正します モニターで analogValues を読み取ります 障害物が存在する場合。その値を thresholdValue として設定します if条件を更新します 。はいssss !!!!! ✌️これでArduinoの部分は終わりました。
サーボモーターを追加して「スペースバー」を押すと、ディノがジャンプします。しかし、これは検疫時間です。だから、サーボモーターを手に入れる方法がありません。したがって、ここではPythonコードを使用してこのタスクを実行しています。
それでは、Pythonでコーディングしましょう;)
<図>
Pythonコードをコピーして貼り付け、適切な変更を加えます。
コードでは、 pyserial を使用しています シリアルデータを読み取るモジュール。次に、上ボタンを押します。 PyAutoGUI を使用する モジュール。
import subprocess
import time
import pyautogui
import serial
subprocess.call([r'C:\ Program Files \ Mozilla Firefox \ Firefox.exe ' 、
'-new-tab'、 'https://chromedino.com/'])
#chromeユーザー用のgooglechromeパスを追加します。
#ブラウザを開いてDinoゲームを開きます。
#私はFirefoxユーザーなので、Dinoゲームを持っていません。
#ここでは、chromedino.comを使用してゲームをプレイしています。
time.sleep(6)#すべてを開いてセットアップするための短い時間を与えます。
print( "All sett :)")
ser =serial.Serial( 'COM4 ')#arduino [port]
ser.baudrate =' 9600 'で更新します。#set baudRate
while True:#ループします。
h1 =ser.readline()#シリアルデータの読み取り。
if h1:
ss =int(h1.decode( 'utf-8'))#デコードしてint値を作成します
if ss ==1:#障害物の場合はtrue。
print( "Oh: pyautogui.press( 'up')#[UP]キーを自動的に押す
Pythonコードを実行し、試行錯誤の方法でLDRを適切な場所に合わせます。 はい !!!自動恐竜ゲームの準備が整いました。💃🕺
<図>
別の LDRを使用して鳥を検出することで、この次のレベルを作成できます。 また。
GitHubリポジトリ:https://github.com/rafitc/arduDino
YouTubeビデオ
コード
- コードスニペット#1
- コードスニペット#2
コードスニペット#1 Arduino
// Arduino Dino Game! :) int SensorPin =A0; // LDRをA0に接続しますintsensorValue =0; // LDRintからの値を格納する変数thresholdValue =43; //これは試行錯誤の方法によって異なります。 void setup(){Serial.begin(9600); //シリアルは9600から始まります} void loop(){//センサーから値を読み取ります:sensorValue =analogRead(sensorPin); //センサーデータを読み取ります//Serial.println(sensorValue); //最初に使用するときにこれをコメント解除し、thresholdValueを取得して設定します。 if(sensorValue <=thresholdValue){//障害物を検出するための条件。 Serial.println(1); //条件がtrueの場合のシリアル印刷。 } delay(50); // 50msの遅延}
コードスニペット#2 Python
import subprocess import timeimport pyautoguiimport serialsubprocess.call([r'C:\ Program Files \ Mozilla Firefox \ Firefox.exe '、#ChromeユーザーのGoogleChromeパスを追加します。'-new-tab'、 'https:// chromedino.com/'])#ブラウザを開いてDinoゲームを開きます。 #私はFirefoxユーザーなので、Dinoゲームを持っていません。#ここでは、chromedino.comを使用してゲームをプレイしています。 time.sleep(6)#all.print( "All sett :)")ser =serial.Serial( 'COM4')#を開いてセットアップする時間を少し与えます。#arduino [port] ser.baudrate ='9600で更新します。 '#set baudRatewhile True:#ループしています。 h1 =ser.readline()#シリアルデータの読み取り。 if h1:ss =int(h1.decode( 'utf-8'))#デコードしてint値を作成if ss ==1:#障害物の場合はtrue。 print( "Oh:Github
GitHUbリポジトリリンクhttps://github.com/rafitc/arduDino
回路図

製造プロセス