#author("2021-11-16T18:01:20+09:00","default:Real2Virtual202111","Real2Virtual202111")
* Real -> Virtual 変換システムの開発その1 [#x976940c]

&ref(Real2Virtual202111/r2v-01.jpg);

- Realな世界でサイコロを使って組み立てられたRealな物が、ちょっとおまじないをして待つと、パソコンの中の、Virtualな世界に現れます。
- Protopedia 
-- https://protopedia.net/prototype/2730
- Youtube
-- https://www.youtube.com/watch?v=tm9E9IY1K_g&t=3s
* 仕組み [#q45ad5e1]
- サイコロのそれぞれは、下の回路図で示すような回路を内部に持っています。
-- この中で、M5Stack Atom は1つだけ入っています。
- パソコン側は、TCP/IPストリームでM5Stack経由で受け取ったサイコロの中のMbed LPC1768のUARTから出力されたメッセージに従って、VirtualなサイコロをVirtual空間上で組み立てるプログラムを動かします。
- M5Stack Atom でWiFiのサーバを動かすと同時に、TCP/IPストリーム(リモートのPC側)とUART(ローカルの mbed 1768)の中継サーバを起動します。
- PCのWiFiは、このM5StackのWiFiサーバに接続します。
- PCから srs. コマンドが送信され、そのコマンドがM5Stackを持ったサイコロの、M5Stack ->UART経由でMbed LPC1768に届くと、LPC1768上でそのコマンドが解釈実行されます。 srs は start recursive structure searchの略で、
srsコマンドを実行すると、そのコマンドを受け取った以外の(M5Stackからコマンドを受け取った場合は全ての)サイコロの全ての面の、4つの発光ダイオードから、順番に、"cq face <送信元の面の番号> dir <送信元の発光ダイオードの番号>."の信号を送信します。発光ダイオードの番号は面と面が重なった時の向きを表します。
- "cq face <送信元の面の番号> <送信元の発光ダイオードの番号>."を受け取ったサイコロがあれば、そのサイコロは、それを受け取った面から、それを送信したサイコロに対して、"ack1 face <受け取った面の番号> dir <受け取った発光ダイオードの番号> udir <送信元の発光ダイオードの番号>."を返信します。
- その次に、このサイコロの、受け取った面以外の面に対して、同様に、cq face <送信元の面の番号> dir <送信元の発光ダイオードの番号>."の信号を送信します。
* サイコロの構造と回路 [#b41ff053]
** サイコロの面の部品と配置 [#r96fc196]
&ref(Real2Virtual202111/dice_face_parts_01.png,30%);
** サイコロ同士の面と面の結合機構 [#n1bb7144]
&ref(Real2Virtual202111/dice_face_connection_01.png,30%);
** サイコロ間の全2重通信と、面の向きの検知機構 [#cf0fd549]
&ref(Real2Virtual202111/dice_face_communication_01.png,50%);
** サイコロの回路 [#tafcaa9b]
&ref(Real2Virtual202111/dice_circuit_01.png,50%);
* 参考資料 [#pb2da12d]
- TESLA計画
-- http://www.yama-lab.org/~yamanoue/wiki/index.php?ProjectTesla
- テレポーテーションとコンパイラ
-- https://www.slideshare.net/takashiyamanoue/ss-16159139 
----
#counter

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS