Real2Virtual202111

プログラム

サイコロ側

Mbed LPC1768

٤Ƴ٤Ĥ
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
!
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
!
 
 
 
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
!
/*
 
timer interrupt
   |
  (set current output face... the face connect with the up side node in the parse tree )
   |
   v
  face 0 input (photo transister 0) routine
  face 1 input (photo transister 1) routine
  face 2 input (photo transister 2) routine
  face 3 input (photo transister 3) routine
  face 4 input (photo transister 4) routine
  face 5 input (photo transister 5) routine
   |
   v
  current output face routine
   |
   V
  end
 
Main routine
   |
   v
initialize
   |
   v
start loop
   |
   v
if there is a  command input from USB Serial (for debug) or M5Stamp/Atom Serial
then exec the command
   |
   v
if there is a command input from faces
then exec the command
   |
   v
repeat the loop
 
 
input routine
 
 
+---------------------------+
| inter face command buffer +---> message interpreter -->
+---------------------------+
 
+---------------------------+
| command buffer for face 0 +---> message interpreter -->
+---------------------------+
 
+---------------------------+
| command buffer for face 1 +---> message interpreter -->
+---------------------------+
 
+---------------------------+
| command buffer for face 2 +---> message interpreter -->
+---------------------------+
 
+---------------------------+
| command buffer for face 3 +---> message interpreter -->
+---------------------------+
 
+---------------------------+
| command buffer for face 4 +---> message interpreter -->
+---------------------------+
 
+---------------------------+
| command buffer for face 5 +---> message interpreter -->
+---------------------------+
*/ 
/*
 
 
                  USB TERMINAL
 
                      mbed NXP LPC1768
                      
                1 GND                        3.3 Vout 40
                2 VIN                   5.0v USV vout 39
                3 VB                             IF-  38
                4 nR                             IF+  37
                5 p5 mosi(spi)           Ethernet RD- 36
                6 p6 miso(spi)           Ethernet RD+ 35
                7 p7 sck                 Ethernet TD- 34 
                8 p8                     Ethernet TD+ 33 
                9 p9  tx(serial)               USB D- 32 
               10 p10 rx(serial)               USB D+ 31 
               11 p11 mosi(spi)                   p30 30
               12 p12 miso(spi)                   p29 29
               13 p13 tx/sck             I2C SDA  p28 28
               14 p14 rx                 I2C SCL  p27 27
               15 p15 analog                      p26 26
               16 p16 analog                      p25 25
               17 p17 analog                      p24 24
               18 p18 analog  /out                p23 23
               19 p19 analog                      p22 22
               20 p20 analog                      p21 21
*/ 
 
 
 
/*
tesla dice configuration of the LPC1768
 
PIN REG 
30  PE0 p30   direction 0   ---------------  LED00 LED01 LED02 LED03 LED04 LED05
29  PE1 p29   direction 1   ---------------  LED10 LED11 LED12 LED13 LED14 LED15
28  PE2 p28   direction 2   ---------------  LED20 LED21 LED22 LED23 LED24 LED25
27  PE3 p27   direction 3   ---------------  LED30 LED31 LED32 LED33 LED34 LED35
            ----                               |      |    |     |     |     |
                                               |      |    |     |     |     |
26  PE4 p26  face 0-----R150ohm----------------+      |    |     |     |     |
25  PE5 p25  face 1-----R150ohm-----------------------+    |     |     |     |
24  PE6 p24  face 2-----R150ohm----------------------------+     |     |     |
23  PE7 p23  face 3-----R150ohm----------------------------------+     |     |
22  PE8 p22  face 4-----R150ohm----------------------------------------+     |
21  PE9 p21  face 5-----R150ohm----------------------------------------------+
 
    REG     ... photo tr receive
15  PEA  p15  face 0  ------<<<-----
16  PEB  p16  face 1  ------<<<-----
17  PEC  p17  face 2  ------<<<-----
18  PED  p18  face 3  ------<<<-----
19  PEE  p19  face 4  ------<<<-----
20  PEF  p20  face 5  ------<<<-----
 
    USB Serial
        --rx---<<<--serial ---- USB
        --tx--->>>--serial ---- USB
 
    M5Stamp/M5Atom Serial
10      --rx---<<<--serial ---- M5Stamp/Atom
 9      --tx--->>>--serial ---- M5Stamp/Atom
 
○LPC1768<->LPC1768 (inter-dice )command
LPC1768->LPC1768            "srs."           start the recursive search
LPC1768<-LPC1768            "(this <dice_name_0> f<x0>d<y0>  next  <dice_name_1> f<x1>d<y1> )"
                                              return the tesla dices structure
                                                <dice_name_0>... this dice name, <dice_name_1>... next dice's name
                                               <x0> ... this face number   <x1> ... connected dice's (next dice's)  face number)
                                               <y0> ... direction between this face and next dice's face   <y1> must be <y0>
 
LPC1768->LPC1768            "ask <x0><x1>...<xn>." ask the tesla dices status
LPC1768->LPC1768            "set (<val>) <x0><x1>...<xn>." set the tesla dices status
 
 
○PC <->LPC1768 command ... プローブは PC<->LPC1768 で接続。各テスラダイスのデバッグでも使用。
 
  pc->LPC1768            "srs."           start the recursive search... プローブは 面0と仮定。
  pc<-LPC1768            "(this <dice_name_0> f<x0>d<y0>  next  <dice_name_1> f<x1>d<y1> ). ...."
                                   return the tesla dices structur
 
  pc->LPC1768            "con<x0>."       面<x0> の接続を確認
  pc<-LPC1768            "cf<x1><y1>"     ... <x0> は相手側の<x1>面の<y1>の向きで接続
         または   "n"              ... 接続なし。
  pc->LPC1768           "prb."           この r8 をプローブに設定
pc->LPC1768            "dce."           この r8 をテスラダイスに設定
pc->LPC1768            "mon<level>."    r8<->cpld 間の通信をモニター。(pc へ情報を送る)
                                  <level>= 0 ... モニターなし。
                                  <level>= 1 ... r8<-r8 をモニター。
                                  <level>= 2 ... r8<->cpld をモニター。
pc->LPC1768            "?."            r8 の状態を問い合わせ
pc<-LPC1768            ...
 
OutBuffer.status
0 ... no data
1 ... outputting
2 ... output is done
3 ... buffering
4 ... ready for output
5 ... waiting ack
 
InBuffer.status
0 ... waiting
1 ... reading bits sequence
2 ... ready for input
 
inter-face commands
  sx ----->
     <---- ak
*/ 

M5Stack Atom

PC側

Cube.py

real2virtual_ex03.py


Counter: 29, today: 1, yesterday: 0

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-12-07 (火) 16:56:18 (171d)