Real -> Virtual 変換システムの開発その1

r2v-01.jpg

概要

real2virtual-outline-01.png

  1. 相互に通信可能で、どの面がどの向きで接続されているかを認識できる、「知的部品(ここではサイコロ)」を沢山用意します。
  2. 知的部品を組み立てて、なにかRealな「物」をつくります。
  3. 組み立ててできた「物」は、それ自身で、自分がどのような形になっていて、どのような機能をもっているか、知ることができるようにします。
  4. その「物」の情報を、パソコンに吸い上げます。 パソコンでその「物」の情報にしたがって、「物」と同じものをVirtual 空間で組み立てます。

仕組み

サイコロの面

サイコロ同士の結合機構

サイコロ間のメッセージ交換

サイコロの中の一つとPCの間の接続

作られた「物」の情報の獲得

  1. そのコマンドを受け取った以外の(M5Stackからコマンドを受け取った場合は全ての)サイコロの面の、4つの発光ダイオードから、順番に、"cq face <送信元の面の番号> dir <送信元の発光ダイオードの番号>."の信号を送信します。発光ダイオードの番号は、面と面が重なったていた時は、その向きを表します。

Mbed LPC1768がUARTから受け取るコマンドの一覧

       "set port <p> <n> <value>."
       "...<p>=PE|PME|PB|PMB <n>=0|1|...|F."
       "...<value> is 0 or 1."
       ".... if <p>=PME|PMB, 0 means output, "
       "....                 1 means input."
       "set mem <n> 1  or set mem <n> 0."
       "  ...          <n>=(0|1|...|F)+."
       "ask port <p> <n>."
       "...<p>=PE|PME|PB|PMB <n>. <n>=0|1|...|F."
       "get port <p> <n>."
       "...<p>=PE|PME|PB|PMB <n>. <n>=0|1|...|F."
       "ask mem <n>."
       "  ...          <n>=(0|1|...|F)+."
       "get mem <n>."
       "  ...          <n>=(0|1|...|F)+."
       "set outface <n>."
       "set face <n> allLED <value>."
       "set face <n> led|dir <value>."
       "send face current <strconst>."
       "send face <n> <strconst>."
       "send root <n> <strconst>."
       "bcast face <n> <strconst>."
       "cq face <n> dir <value>."
       "ack1 face <n> dir <value> uDir <value>."
       "ack2 face <n> dir <value> uDir <value>."
       "h. or help. or ?"
       "srs.  ... start recursive search."
       "srr.  ... start recursive reset."

プログラム

サイコロ側

Mbed LPC1768

M5Stack Atom

PC側

Cube.py

real2virtual_ex03.py

参考資料


Counter: 449, today: 1, yesterday: 0

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