電車が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上でアニメーションを実現した。 反省点 • スイッチによる動作が単調だった。
© Copyright 2024 ExpyDoc