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

myaon が 2021年02月24日13時04分50秒 に編集

コメント無し

本文の変更

バーチャル空間における入力を色々なものに置き換えることに興味を持っていた私は、手始めにmicro:bitでclusterコントロールしてみることにしました。

+

*[cluster](https://cluster.mu/)はバーチャルSNSのひとつでPC版の移動はキーボード、ボタンclickによるリアクション機能等がある。

-

[](https://makecode.microbit.org/72357-02936-07165-35900) ![キャプションを入力できます](https://camo.elchika.com/3c90608f1ff22a79cc90aeef264525570bc400f5/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f64656631306632662d356164392d343539322d613131332d6332353130373234613762322f64373338326466662d333137662d343631372d626162332d376265363530313565333561/)

+

![キャプションを入力できます](https://camo.elchika.com/42051ca1d93415184cc250c36585ebc6bdb8662b/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f64656631306632662d356164392d343539322d613131332d6332353130373234613762322f31373037653865652d643130632d343866362d383166622d393732383931303865363465/)

完成品:https://youtu.be/zWOsLJudnfs 仕組みとしてはmicro:botの情報(ボタンと加速度)をシリアル通信でPCに送り

+

[micro:bit側プログラム](https://makecode.microbit.org/72357-02936-07165-35900)

![キャプションを入力できます](https://camo.elchika.com/8a4eab430cad7b7738ac387a459c29b2ebfd20cd/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f64656631306632662d356164392d343539322d613131332d6332353130373234613762322f31616531303334632d386537302d346236332d383566372d363133343733656232363533/) PC側のpythonプログラムでそれを受け取りpyautoguiで仮想キー入力に置き換えることで実現しています。 [Pythonでキーボード操作!キーを打たずに自動化できちゃう!?](https://www.lisz-works.com/entry/pyautogui-key) ```python:micro_cluster.py import pyautogui as pgui def Key(word): pgui.typewrite(word) def Click(x,y): pgui.click(x,y) import serial while True: ser = serial.Serial("COM4",115200,timeout=None) line = ser.readline() line = str(line) # マウスカーソル位置確認 # print(pgui.position()) # 加速度の入力を分岐:移動 if(',' in line): l = line.split(',') s = l[0].lstrip("b'") # 左右 if (int(s) > 400): Key("d") elif (int(s) < -400): Key("a") # 前後 if (int(l[1]) > 400): Key("s") elif (int(l[1]) < -400): Key("w") # ボタンA:リアクション1 if(line[2] == "w"): Click(12070,2114) # ボタンB:リアクション2 elif(line[2] == "s"): Click(12350,2114) # ボタンA+B:停止 elif(line[2] == "q"): break ser.close() ```

-

これを頭に乗っけて動かしたり対応する情報とキー入力を入れ替えることでより没入感がアップするかも!? お試しあれ

+

これを頭に乗っけて動かしたり 対応する情報とキー入力を入れ替えることでより没入感がアップするかも!? お試しあれ~!