見出し画像

Apple II ▷ タッチディスプレイ工作記(10)

▷ Arduinoと74HC595(シフトレジスタ)
タッチディスプレイの工作に関するこれまでの記事でのArduino (Metro Mini 328)の役割は,タッチパネルから出力された座標データを処理をしてデジタルポテンショメータを制御することでした.今回の記事ではデジタル値のまま汎用インタフェースに引き渡す役割を与えることを考えます.
MC6821はパラレルインタフェースです.したがってArduinoが果たすべき役割は,シリアルで送信する座標データをMC6821がパラレルとして受け取ることができるように変換することです.もちろん単純にはArduinoにたくさんあるポートを利用してそのまま出力してしまうという手もあるのでしょうけれど,ここではArduinoでシフトレジスタ74HC595を制御してシリアルーパラレル変換する方法を採用します.図1に74HC595のピン配列を示します.

図1.74HC595(シフトレジスタ)

Arduinoで74HC595を制御してシリアルーパラレル変換の例題はたくさんあります.たとえばLEDフラッシャをチカチカさせるといった工作を実際に試したことがあるひともおられるのではないでしょうか.

▷ シリアルーパラレル変換
xy座標データを送信するために,74HC595を用いてシリアルーパラレル変換のビット数を拡張することを考えます.具体的には,x座標とy座標のそれぞれに74HC595を一つずつ割り当て,MC6821の入出力ポートA0-A7,B0-B7にそれぞれ座標データを引き渡します.そのための回路は図2のようになります.向かって左側がapple II の汎用インタフェースカードのMC6821に,左側が Arduinoに接続されることになります.

図2.シリアルーパラレル変換回路

この回路で74HC595のSRCLKとRCLKはArduinoからの制御信号を並列に分配して受けています.いっぽうでSERは上流にある74HC595がArduinoからの制御信号を受け,H'端子から下流にある74HC595のSERに流すようになっています.このしくみはたいへん便利です.というのもタッチパネルでマルチタッチを検出する場合,図2の回路で下流を増やせば座標データを複数個引き渡すことができるからです.もっともこれではApple II 側のMC6821をいたずらに増やすだけのことですので,あまり現実的とは言えませんね.

この記事が気に入ったらサポートをしてみませんか?