VRChatからリアル扇風機を動かす
VRChatからリアル側にアクションを起こせたら面白そう。今回は縁があってタナベさん、いくこさんとVRChat上のボタンからリアルの扇風機を動かすことができた。っていう思い出記事を2018年9月10日に書いたのに下書きのまま放置してたので供養します。
できたもの
@mukaderabbit @Naoki_Kosaka_ さんご協力ありがとうございました。@FeelzenVr さん、VRCHATに「風」を導入する事に成功いたしました。@magi_ikuko @beet_lex さんお疲れ様でした! pic.twitter.com/zN2JGqefl8
— vtuber蕎麦屋 (@sobatang1) 2018年9月9日
きっかけ
VRChatからラジコンを操作する
以前オフ会の余興としてパノラマカメラでリアル会場の様子をVRChatから見つつラジコンを操作する取り組みがあった。この時点ですでにカオス。
蕎麦ハッカソン 目標達成!VRCHATからラジコンを動かす。
— vtuber蕎麦屋 (@sobatang1) 2018年7月15日
(私はジュース買ったりノラキャットさんの動画見せる係) @magi_ikuko @Reichan__now @beet_lex さん達お疲れ様でした!動きた時すっごい興奮しました。本当に面白かったです! pic.twitter.com/dOXq3ZqGPu
ラジコンと大きいバッテリーと回路が揃うと気分はテロリストだった。
VRChat内から現実世界のラジコンを360度配信を見ながらボタンで操作できるヤベーシステムを見てる。 pic.twitter.com/jG1L36tkWI
— 坪倉輝明@メディアアーティスト (@kohack_v) 2018年7月22日
この時はまだWebpanelがあったので、いくこさんが用意してくださったサーバを経由してVRChatからラジコンを操作することができた。ちなみに僕はサーバから受け取った信号を元にラジコンを制御するコードと回路を教えていただきながら作ってた。ラジコンの制御回路については、趣味でラジコンやってるれいちゃんさんに教えてもらいながらできた。
しかしWebpanelは死んだ。他の方法が必要になった。
制作の記録
全体の構成
センサを用いてVRChatの画面の明るさを取得し、明るさに応じてアクションを起こす仕組み。例えばスイッチを押すと白→黒に変化するオブジェクトがあれば、センサの値が変化するので、VRChat上のスイッチ入力がリアルで検知できる。
ちなみに元ネタはこちら。
回路図
Arduino UNOにセンサのCdSセルと、動かす対象のサーボモータを接続した。お蕎麦屋さんにモータドライバがなかったため、冒頭の動画はサーボでスイッチを押す方式にしている。逆に他の電子部品がお蕎麦屋さんに揃っていることが驚きである。
プログラム
こんなプログラムを書いた。myservo.write()
が書かれている部分にそれぞれ明るくなったときと暗くなったときに実行したい処理を書く。
#include <Servo.h> Servo myservo; int cds_pin = 0; int servo_pin = 3; int val = 0; void setup() { myservo.attach(servo_pin); Serial.begin(9600); } void loop() { val = analogRead(cds_pin); Serial.println(val); if(val >= 350){ //明るくなったときの処理 myservo.write(90); }else{ //暗くなったときの処理 myservo.write(0); } delay(100); }
あまりオススメはしない
ディスプレイにセンサを貼り付ける時点で相当不格好だし、ディスプレイの輝度設定や周囲の明るさの影響を受けやすい。大人しく画面の色を取得するなんらかのプログラムを使うことをオススメします。
VR蕎麦屋アドベントカレンダー
本記事はVR蕎麦屋アドベントカレンダーに登録されています。長らく下書きだった記事を書き上げるきっかけをくださりありがとうございます。