Featured image of post RCA CDP1802 COSMACを動かしてみた(11) モーターを制御してみた

RCA CDP1802 COSMACを動かしてみた(11) モーターを制御してみた

COSMACでDCモーターを制御してみました。モータードライバは各社から出ていますが、ブレッドボードでも手軽に実験ができそうな秋月電子のTB6612使用 Dual DCモータードライブキット\[AE-TB6612\]を使うことにしました。いつものようにブレッドボードで試作し、動作確認をしたところで基板化します。

COSMAC CPU基板に接続するモータードライバの回路図は以下のようになります。

これをブレッドボードで試作し、COSMAC CPUボードに接続しました。

次にCOSMACに書き込むプログラムを考えます。このモータードライバは1つのモーターあたり2ビットのデジタル信号を与えることで正転、逆転、停止を制御します。さらにPWMで速度調整もできるようですが、こちらはQ信号に接続しておいて後から制御方法を考えます。

COSMACのプログラムローダー基板にあるトグルスイッチの値を読み取り、その値をモータードライバに伝えることにします。これで4つのトグルスイッチで2つのモーターを自在に制御できるはずです。

プログラムは以下のようになります。今回はQはHIGH固定にしています。11バイトならトグルスイッチでのプログラム入力も簡単です。

0000- 1        *
0000- 2        * Motor driver program 1 for COSMAC
0000- 3        * SB-Assembler
0000- 4        *
0000- 5        * SW input -> motor (forward <->reverse)
0000- 6        *
0000- 7        * BUS0 --- AIN1
0000- 8        * BUS1 --- AIN2
0000- 9        * BUS2 --- BIN1
0000- 10        * BUS3 --- BIN2
0000- 11        * Q    --- PWMA/B
0000- 12        *
0000- 13                .CR     1802    ;To load the 1802 cross overlay
0000- 14                .OR     $0000
0000- 15        *
0000-F8 0A            16 (   2) START   LDI     #IOR    ;D <- #IOR
0002-A5               17 (   2)         PLO     5       ;R(5).0 <- D
0003-E5               18 (   2)         SEX     5       ;X <- 5
0004-7B               19 (   2)         SEQ
0005-6A               20 (   2) LOOP1   INP     2       ;M(R(5)) <- BUS; D <- BUS
0006-64               21 (   2)         OUT     4       ;BUS <- M(R(5)); R(5)++
0007-25               22 (   2)         DEC     5       ;R(5)--
0008-30 05            23 (   2)         BR      LOOP1   ;Branch to LOOP1
000A- 24        *
000A-00               25        IOR     .DB     0       ;IO Register
000B- 26
000B- 27                .EN

トグルスイッチをON-OFFしたところ、無事モーターが動くことを確認しました。正転、逆転も自由自在です。

YouTubeにもアップしておきました。

これで動作確認もできましたので、シールド基板を発注しました。

Maker Faire Tokyo 2019では、これらのシールド基板を使って、何か作る予定ですのでお楽しみに。

Hugo で構築されています。
テーマ StackJimmy によって設計されています。