I Shall Foot It! ~あるいてく~

銀河系を巻き込んだ親子喧嘩に加担した密輸業者の宇宙船の模型を作ってます

デアゴ ミレニアムファルコン作製記 Episode 054 [Raspberry Piで多数のLEDの制御ができた!]

      2016/07/31

これまで作ってきた電飾回路は、ほとんどPICの出力ピン1本に対して、PICの出力電圧5.0Vの範囲で発光できるLEDの本数(白・青は1本、その他は2~3本)をつなげる感じで作っていました。

たくさんのLEDを接続する方法

コクピット、廊下照明、船倉については、ホログラムチェステーブルやコンピュータ類に加えて、どうやら間接照明や点検口下など、組み上げていくうちに必要なLEDがどんどん増えています。

更に、タラップ昇降などこの先も電流を多く消費するような仕組みも追加される予定のため、配布された電池ボックス(1.5V×単三電池4本=6.0V)から取れる電流を考えると、力不足感が否めません。

昇圧コンバータによる10個直列接続

先日動作確認を行った、10個のLEDを直列接続を可能とする昇圧コンバータモジュールでの実装は、割とすんなりできました。

 

ただし、この接続だと、10個の点滅は同時に点灯・消灯を行うことしかできません。

 

 

IMG_7449

例えば、廊下の照明などに用途があります。

 

8ビットシフトレジスタで、机上論理で無制限のLED制御が可能

PICを複数のPICを用いてLEDの数を増やすことはできますが、PIC同士の連携など考えると回路が複雑になってしまいます。

先日入手してRaspberry piの入門書を見ていたところ、SN74HC595NというIC(8ビットシフトレジスタ)を使えば、より多くのLEDを制御できる事を知りました。

誤解を恐れずだいたいの動きを説明すると、8ビットシフトレジスタは、8つの端子のON/OFFが制御できるICチップです。これを連結して接続することで、実質的にプログラムから多数のLEDを別々に制御することが可能になります。

こちらのサイト様も参考になります。

 

さっそく部品を取り寄せ、やってみました。

2つのレジスタを連結し、電源を除くとRaspberry側の端子を3つ使うだけで、8×2、16個のLEDをプログラム(Raspberryの推奨のPython使用)から自由にコントロールできるようになりました。

これは、コクピット・船倉、廊下、外殻のポジションランプ、クチバシのライト等、すべてをRaspberry Piからコントロールできる事を意味します。

10連LEDや既に作り上げたPICに対しては、このシフトレジスタからのHIGHの信号をこれらのスイッチとして認識させれば良いと考えています。

更に、Raspberry Piをサーバとして動作させればスマホからの操作も可能となります。

なので、ファルコンにRaspberry piが仕込めるかどうかは分かってませんが、面白そうなので突っ走ってます。

あと、この動画ではRaspberry piの3.3VポートからLEDの電源を確保していますが、将来的には不足してしまうため、別の方法(外部から電源を確保する)を模索中です。

 

外部電源の取得(7/16 19:30追記)

16番PIN(Vcc)への電源供給を、ACアダプター(5.0V 1.0A)から供給したら、うまく動きました。

回路図は次の様になりました。

RaspberryPi+SN74HC595N

  • 抵抗は、全て330Ω
  • Vccへ、外部電源(5.0V 1.0A)のACアダプタを接続

 

このように、SN74HC595Nを直列に接続していくことで多数ののLEDが増設でき、しかも点滅制御も可能になります。

 

ランダム点滅プログラム(Python)

とりあえず、プログラムを貼っときます。コメントアウトした変数、LEDdata99(99は1~16)に置き換えると、1個が流れるように光るパターンに変更できます。

レジスタの格納順序が逆になるため、配列を逆から見たパターンがセットされるため、ループ内の変数は、後ろ側からセットしています。これは直感的でないので、反転するプログラムがあると楽かも。後日の課題とします。

 

ファルコン本体の方は。。。ちょっと放置してます。

。。。明日は作業台の日曜大工をしてるかも(/・ω・)/

 

Raspberry Pi 参考書籍

幾つか関連書籍を見比べた結果、下記2冊が解説が丁寧で、順だってスキルを習得するのに良いと思いました。本ブログの内容は、「実例で学ぶ~」の方に記載されています。

 

 

 

  関連記事

関連記事

 - デアゴ ミレニアムファルコン , , ,