電車がGO!!

電車がGO!!
2024090 村上 昌也
2024091 望月 駿介
マトリックスLEDを用いて、電車が走っている
様子をアニメーションで表現する。
 スイッチによりアニメーションを動作させる。

作品のコンセプト
VCC
VCC
R
1
1
1
10k
2
2
2
20
Vdd
19
RA5/T1CKI/OSC1/CLKIN
3
3
3
4
4
4
5
5
5
6
6
6
7
R
7
8
1.5k
R
8
1.5k
9
RC2/AN6/P1D
13
RC6/AN8/SS
RB4/AN10/SDI/SDA
12
RC7/AN9/SDO
R
RC1/AN5/C12IN14
RC3/AN7/P1C
RB5/AN11/RX/DT
10
11
RB7/TX/CK
TOM-1588BH-B
RC0/AN4/C2IN+
15
RC4/C2OUT/P1B
8
RA2/AN2/T0CKI/INT/C1OUT
16
RC5/CCP1/P1A
7
RA1/AN1/C12IN-/Vref/ICSPCLK
17
RA3/MCLR/Vpp
SW1-1
RA0/AN0/C1IN+/ICSPDAT/ULPWU
18
RA4/AN3/T1G/OSC2/CLKOUT
SW
Vss
RB6/SCK/SCL
1.5k
R
1.5k
U
16F690
R
1.5k
R
R
1.5k
1.5k
R
1.5k
GND-2
回路図
GND-2
 マトリクスLEDの中段4列を出力
ポートに設定しておく。
 スイッチに接続されたRA3==0の時
のみWhile文が動作するようにする。
 LEDに描画される図は縦4マス×(横
3マスの先頭車両および後尾車両+中
間の車両2両)である。
プログラムの疑似コード①
 その動きをあらかじめ全て16進
数に変換してメモしておく。
 PORTCがそれらすべての値を取
るように同じプログラム断片を何
度もコピペしPORTCの値のみを
変える。
プログラムの疑似コード②
 電車の車両が複数連結しているのを
表現するため、for文を用いて同じ車
両を何度も描画できるようにした。
 また、一度の描画にかける時間をt
に置き換え、tの値を変えることで
電車が走る速度を調整しやすくした。
プログラムの疑似コード③

連続的な図の描画でアニメーションを制作した。

16進数~2進数の変換
01
03
07
0e
1d
3b
77
ee
特徴
00000001
00000011
00000111
00001110
00011101
00111011
01110111
11101111
 スイッチを押すと電車が走りだす。
 スイッチを押している間は電車は走り続
ける。
 スイッチを離すと次の電車は来ない。
使用方法
構造の複雑なマトリックスLEDを理解して描画
に用いた。
 複数の車両や車両自体の長さを表現するために
for文を用いた。

実現方法
まとめ
 マトリックスLEDを使った簡単な電光掲示板へ
の挑戦。
良かった点
• LED上でアニメーションを実現した。
反省点
• スイッチによる動作が単調だった。