使用 arduino 的自动化恐龙游戏
组件和用品
| × | 1 | ||||
| × | 1 |
关于这个项目
无聊的AF,在这隔离期间?🥴
让我们玩谷歌浏览器恐龙游戏......;)
但是,如果恐龙游戏也变得无聊了怎么办。
让我们自动化恐龙游戏😉。
所以,我们需要一个 Arduino 和 LDR . python 中的小知识是 也需要。
让我们首先设置我们的 Arduino .
将 Arduino UNO 与 LDR 连接。 (不要忘记添加电阻)
接下来,上传代码到模拟读取 LDR 值。
// Arduino 恐龙游戏! :)
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); //在第一次使用时取消注释并获取您的阈值并设置。
if(sensorValue <=thresholdValue){ //如果检测障碍物的条件。
Serial.println(1); //如果条件为真,则串行打印。
}
延迟(40); //延迟50ms
}
修复您的 LDR 在监视器上然后读取 analogValues 当存在障碍物时。将该值设置为 thresholdValue 并更新您的if 条件 .是的!!!! ✌️ 现在Arduino部分结束了。
您可以添加伺服电机以按“空格键”使 Dino 跳跃。但这是隔离期。所以,我没有任何办法得到伺服电机。所以,在这里我使用 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用户添加谷歌浏览器路径。
#打开浏览器,打开恐龙游戏。
#我是 Firefox 用户,所以,我没有 Dino 游戏,
#这里我使用 chromedino.com 玩游戏。
time.sleep(6) #给一小段时间打开和设置所有。
print("All sett :)")
ser =serial.Serial('COM4 ') #Update 与您的 arduino [port]
ser.baudrate ='9600' #set baudRate
while True:# 循环。
h1=ser.readline() #读取串口数据。
if h1:
ss =int(h1.decode('utf-8')) # 解码并生成一个整数值
if ss==1:# true while 障碍。
print("Oh : pyautogui.press('up') #自动按下[UP]键
运行您的 Python 代码并通过 试错法将您的 LDR 安装在适当的位置。 是的 !!!自动恐龙游戏已准备就绪。💃 🕺
您可以使用另一个LDR 来检测鸟类
GitHub 仓库:https://github.com/rafitc/arduDino
YouTube 视频
代码
- 代码片段 #1
- 代码片段#2
代码片段 #1Arduino
// Arduino 恐龙游戏! :)int sensorPin =A0; //在A0上连接LDR int sensorValue =0; // 存储来自 LDRint thresholdValue =43 的值的变量; //这取决于你的试错方法。 void setup() { Serial.begin(9600); //Serial begin on 9600}void loop() { // 从传感器读取值:sensorValue =analogRead(sensorPin); //读取传感器数据 //Serial.println(sensorValue); //在第一次使用时取消注释并获取您的阈值并设置。 if(sensorValue <=thresholdValue){ //如果检测障碍物的条件。 Serial.println(1); //如果条件为真,则串行打印。 } 延迟(50); //延迟50ms}
代码片段 #2Python
import subprocess import timeimport pyautoguiimport serialsubprocess.call([r'C:\Program Files\Mozilla Firefox\Firefox.exe', #Add google chrome path for chrome users. '-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 while 障碍。 print("Oh :Github
GitHub 仓库链接 https://github.com/rafitc/arduDino
示意图
制造工艺