編集履歴一覧に戻る
aaa_tuのアイコン画像

aaa_tu が 2021年02月23日22時32分04秒 に編集

初版

タイトルの変更

+

小さなマイコンボードSeeduino Xiaoで簡単にジョイスティックマウスをつくる

タグの変更

+

Seeeduino

+

XIAO

+

CircuitPyton

+

HID

+

秋葉原2021

メイン画像の変更

メイン画像が設定されました

本文の変更

+

さて、[Seeeduino Xiao](https://akizukidenshi.com/catalog/g/gM-15178/ )という、とても安価(600円くらい)で小さいマイコンボードがあります。 Adafruitが提供するhidライブラリを使うことで、簡単にUSBキーボードやマウスとして動かすことができるので、このマイコンを使って、プレステのコントローラーなどに使われるジョイスティックをマウス化してみました。 ## 部品 ジョイスティックは、Arduinoなどで簡単に使えるモジュールになっているものを使いました。 [2軸ジョイスティックモジュール(秋月電子)](https://akizukidenshi.com/catalog/g/gM-08763/) X軸とY軸に可変抵抗が付いているので、アナログ入力で読み取ればスティックの方向を取ることができます。 ## 接続方法 Seeeduino Xiaoは、小さい割にI/Oが充実しているので、配線を交差させずに接続できます。 Xiao ジョイスティック GND --- GND 3V3 --- 5V A10 --- VRX A9 --- VRY A8 --- SW ## セットアップ プログラムはCircuitPythonで書いてみることにしました。Seeeduino XiaoでCircuitPython使う方法は、公式にわかりやすいチュートリアルがあります。 [SeeeduinoXIAOでCircuitPythonをインストールして動作させる](https://wiki.seeedstudio.com/jp/Seeeduino-XIAO-CircuitPython/) 今回はhidのライブラリも必要なので、[CircuitPython Libraries のページ](https://circuitpython.org/libraries)からライブラリ詰め合わせをダウンロードして、adafruit_hidフォルダを探して、CIRCUITPYドライブにこのように配置します。 ![キャプションを入力できます](https://camo.elchika.com/fd04005c3594aa5219350959914201c1b0a38685/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f37303631666430612d653766352d343362652d386661342d3331316563396131366139302f62313533323432392d306333332d343561362d393033652d333530396334303431393764/) ## プログラム こちらが、ジョイスティックのアナログ値を読み取って、マウス操作として出力するプログラムです。CIRCUITPYドライブのルートに入れます。 ```python: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) ``` ## 完成! @[twitter](https://twitter.com/aaa_tu/status/1359882213328777222)