前言
以前做过基础Arduino魔兽世界宠物战斗和钓鱼的挂机装置。
后来,当有人咨询生产过程时,他看到了一些信息,发现他以前走了弯路。当时,他只想模拟人的操作,犯了形而下的错误,选择使用它Arduino点击鼠标和键盘控制舵机。
可直接使用32U4的Arduino板模拟鼠标和键盘的输入是常见的Arduino Micro和Arduino Leonardo。
实时游戏画面监控分析没有办法,所以挂机功能有限。
想两种实现方式:
1、将所有键盘和鼠标按键代码烧入单片机,只需通过串口软件更改挂机代码即可。
通过按键切换,将几个常用的挂机代码写入单片机。
方法一通用性好,一开始设置会比较麻烦,懒惰选择方案二,成品如下。
接线如下图所示,共设置了三个开关,分别读取D2、D7、D12电位,这样排列组合,有八种模式可以切换。
鱼钩还是用水声判断的,所以安装了声音传感器。
接线相对简单,所以无聊的我想做一个合适的外壳,前后打印四个版本,最后将使用。
代码代码与原始功能相同,只是将舵机点击转换为直接模拟。开关一打开,开关三关闭,模拟鼠标滚轮上下滚动,自动宠物战斗;开关一关闭,开关三打开,将按流程顺序控制,自动钓鱼,没有找到监控和分析游戏图片的方法,因此存在漏杆。
#include "Keyboard.h"#include "Mouse.h"int petPin = 2; //开关一int fishPin = 12int sound_value; #define ANALOG_READ 4int a = 0;int b = 0;int c = 0;void setup() pinMode(petPin,INPUT_PULLUP); pinMode(fishPin,INPUT_PULLUP); Mouse.begin(); Keyboard.begin();}void loop() int petValue = digitalRead(petPin); int fishValue = digitalRead(fishPin); if ((petValue == LOW) && (fishValue == HIGH)) Mouse.begin(); Mouse.move(0,0,2); ///滚轮正向 delay(500)Mouse.move(0,0,-2); ///滚轮反向 delay(500)Mouse.release(); } //开关一打开,开关三关闭,宠物对战 if ((petValue == HIGH) && (fishValue == LOW)) sound_value = ** ogRead(ANALOG_READ); delay(200)if(sound_value < 100) b = 1; if(b >= delay(200) Keyboard.begin();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Keyboard.press('2'); //30s一次无动静静地摇一次杆 Keyboard.releaseAll();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;b = 0; if(sound_value > 800) delay(10); Mouse.begin(); Mouse.press(MOUSE_LEFT); ///检测到水声收杆 Mouse.release(); delay(2500)Keyboard.begin(); Keyboard.press('2'); Keyboard.releaseAll(); a = 1; c = 1; b = if(c >= 22) delay(1000)Keyboard.begin();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Keyboard.press('3'); Keyboard.releaseAll();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;delay(4000)Keyboard.begin();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Keyboard.press('2'); Keyboard.releaseAll();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;c = 0; } if(a >= 75) delay(1000)Keyboard.begin();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Keyboard.press('1'); Keyboard.releaseAll();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; delay(4000)Keyboard.begin();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Keyboard.press('2'); Keyboard.releaseAll();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;a = 0; 开关三打开,钓鱼}演示直接通过USB数据线连接到计算机,然后通过三个船型开关选择模式。钓鱼模式需要检测声音,所以要靠近声音。我的显示器有自己的声音,在屏幕下面,所以演示放在屏幕下面。
魔兽简易挂机装置https:// ** .zhihu.com/video/1226898818534711296后续使用Leonardo Micro板配合KY-040旋转编码器模块可以实现更多的功能。这个在线教程更多,不再重复。
菜鸟,发现错误,欢迎指出,谢谢。
Copyright © All rights reserved | Colorlib 沪ICP备2021024381号-16
扫码咨询与免费使用
申请免费使用