11

“歪门邪道” – SparkFun Pro Micro Warframe 硬件级挂机助手

 3 years ago
source link: https://ralf.ren/promicro-warframe-hangbot/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

备受欢迎的 20 块钱 BadUSB 开发版,除了能让你三秒开后门以外,还能……

⚠️ 善意的提示

  • 挂机是令人讨厌的游戏行为。请不要在 PvP 游戏以及 PvE 游戏团本内挂机
  • 游戏软件仍然可以侦测该方法并封锁你的游戏账号。
  • 本文章将不提供所述方法之具体实现,包括但不限于 Arduino 源代码以及成品硬件。

Pro Micro 简介

SparkFun Pro Micro(又名 Arduino Pro Micro)是一个兼容 Arduino IDE 的 AVR 开发版。体积小巧,同时配备有 MicroUSB 接口。

Pro Micro 在出厂时,芯片内部含有定制版的 Arduino Leonardo 的 Bootloader,因此你可以无需编程器,直接通过 USB 连接线连接电脑来进行固件的下载。

promicro-hangbot-pin-allocation-1024x768.png

Pro Micro 的引脚定义如图所示。除去电源针脚(VCC 与 GND)、SPI 引脚(14-16)、串口(0-1)以及 I2C(2-3)以外,剩余的引脚我们可以自由发挥。留出 SPI 和 I2C 引脚的原因是,你可以外加 OLED 或 LCD 显示模块,实时显示程序的执行状态。我使用的是 I2C 接口的 12864 OLED 模块。

下面介绍我的引脚规划。我所有用到的引脚均设置为了通过内置电阻上拉。这样一来,引脚默认就是高电平。当我用线短接这些引脚和 GND 时,这些引脚会变成低电平,这样便可以被程序侦测到。

  • 我将 21 引脚用作停止信号。当 21 引脚变为低电平时,程序停止执行。
  • 我将 20-18 三个引脚用于设定速度档位。这个速度指按下 WASD 方向键所持续的时间。
  • 8-9 引脚用于设定随机方向按键模式的开关。随机方向开启时,WASD 按键之一会被随机选择按下。
  • 6-7 引脚用于设定鼠标模式的开关。鼠标模式为开时,Pro Micro 可以模拟鼠标进行腰射或瞄准射击。

除过引脚,还有两个重要的硬件资源需要充分利用。那就是 Rx 和 Tx LED。每个 LED 可以有 亮、灭、闪 三种状态,两个 LED 组合起来就有六种状态。

不一定每个人都有条件为 Pro Micro 配备屏幕,因此充分利用这六种 LED 状态来进行程序执行的状态指示,非常重要。下面介绍我的 LED 定义。

我将 Rx LED 定义为用户输入的指示。当用户对 Pro Micro 进行操作的时候,Rx LED 会点亮以进行回应:

  • 当用户将 Pro Micro 插入电脑,Pro Micro 的硬件组建完成初始化后,会闪烁三秒表示准备就绪。随后便开始执行键盘和鼠标的模拟。
  • 当用户通过短接引脚至 GND 来切换模式时,Rx LED 会闪烁两秒来表示收到了切换模式的信号,随后切换模式。
  • 当用户短接 Stop 引脚到 GND 时,Rx LED 常亮,单片机程序终止执行。

我将 Tx LED 定义为发送信号指示。当 Pro Micro 向电脑发送模拟的鼠标或键盘按键时,Tx LED 会短暂地亮起,发送完成后,便会自己熄灭。

程序要实现以下的功能:

  • OLED 或 Rx/Tx LED 的操作函数。OLED 可以用 Adafruit 的库,而 LED 操作函数,网上也很容易找到。
  • 设置针对模式和速度的全局变量。主循环的第二部分需要根据这些变量的值进行具体操作。
  • 对于主循环的第一部分,首先检测 Stop 引脚。 当 Stop 为低电平时,立即终止键盘和鼠标传输并停止执行单片机程序。 然后,检测各个模式或速度引脚的电平。若为低,更改模式变量或速度变量的值。

关于 Pro Micro 的下载模式…

如果你的 Pro Micro 曾经下载过程序,你会发现他好像不能再次程序了。甚至设备管理器中无法找到串口设备。其实并不是 Pro Micro 只能一次性编程,而是:

SparkFun 为了取消默认长达 6-8 秒的 Bootloader 延时,将 Pro Micro 配置为了外置复位信号启用 Bootloader。Pro Micro 通电后,若没有外置复位信号,会直接执行单片机内的程序。

如果你有 DigiSpark,你会深切感受到长达 8 秒 Bootloader 的难受。每次 Digispark 通电后,都需要等待 8 秒,随后才开始执行真正的程序。

我的另外一篇文章,会介绍如何定制 DigiSpark 的 Bootloader,取消这一长达 8 秒的延时。

那么,如何进入 Pro Micro 的 Bootloader 以进行固件下载呢?很简单,你只需要将 RST 和 GND 连续短接两下,Pro Micro 便会进入 8 秒的 Bootloader 时间。

promicro-bootloader-1024x377.jpeg

“当 Pro Micro 被外置复位(将 RST 至低电平)时,Pro Micro 只会在执行 Arduino Sketch 前短暂地启动 Bootloader(<750ms)。若要延长 Bootloader 的时间,快速复位两次,便可以获得 8 秒的 Bootloader 时间。”

https://learn.sparkfun.com/tutorials/pro-micro–fio-v3-hookup-guide/all#ts-serial

如果你手和电脑都不够快,不能够在 8 秒内选择 Pro Micro 串口,点击上传,并完成编译上传的话,不要着急,SparkFun 教我们这么做(也可用于救砖):

  1. 复位 Pro Micro 两次,在 8 秒内选择 Pro Micro 串口。
  2. 点击上传,等大概快编译成功时,再次复位 Pro Micro 两次。

不知道什么时候快编译成功?点一下 Arduino 的验证,掐一下表记个时间,你就有数了。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK