さて、Seeeduino Xiaoという、とても安価(600円くらい)で小さいマイコンボードがあります。
Adafruitが提供するhidライブラリを使うことで、簡単にUSBキーボードやマウスとして動かすことができるので、このマイコンを使って、プレステのコントローラーなどに使われるジョイスティックをマウス化してみました。
部品
ジョイスティックは、Arduinoなどで簡単に使えるモジュールになっているものを使いました。
X軸とY軸に可変抵抗が付いているので、アナログ入力で読み取ればスティックの方向を取ることができます。
接続方法
Seeeduino Xiaoは、小さい割にI/Oが充実しているので、配線を交差させずに接続できます。
Xiao ジョイスティック
GND --- GND
3V3 --- 5V
A10 --- VRX
A9 --- VRY
A8 --- SW
セットアップ
プログラムはCircuitPythonで書いてみることにしました。Seeeduino XiaoでCircuitPython使う方法は、公式にわかりやすいチュートリアルがあります。
SeeeduinoXIAOでCircuitPythonをインストールして動作させる
今回はhidのライブラリも必要なので、CircuitPython Libraries のページからライブラリ詰め合わせをダウンロードして、adafruit_hidフォルダを探して、CIRCUITPYドライブにこのように配置します。
プログラム
こちらが、ジョイスティックのアナログ値を読み取って、マウス操作として出力するプログラムです。CIRCUITPYドライブのルートに入れます。
main.py
import time
import board
import usb_hid
from adafruit_hid.mouse import Mouse
from analogio import AnalogIn
mouse = Mouse(usb_hid.devices)
A9 = AnalogIn(board.A9)
A10 = AnalogIn(board.A10)
speed = 15
while True:
x_factor = ((A10.value / 65535) - 0.5) * 2
y_factor = ((A9.value / 65535) - 0.5) * 2
mouse.move(x=int(x_factor * speed), y=int(y_factor * speed))
time.sleep(0.01)
-
aaa_tu
さんが
2021/02/23
に
編集
をしました。
(メッセージ: 初版)
-
aaa_tu
さんが
2021/02/23
に
編集
をしました。
ログインしてコメントを投稿する