• 電気通信大学、プログラミング教室、東京都調布市

なんでもかんでもraspberryPiを使うのはやめにしよう! こんにちは学生講師の風間です。 raspberryPiの登場によって電子回路をwebと連携させるなど今まで初心者には難しかったことができるようになりました。 raspberryPiでなんでも作れます。 しかし、raspberryPiで環境を作るのはとてもめんどくさい。ちょっとした回路を確認するだけでもssh接続をして、低速な動作に耐えながらライブラリのインストールやソースコードの配置をしなければならないのです。 ならば普通のPCから直接的に電子回路を制御してしまおう!!

レガシーインターフェースを制御する。

古い端子には動作が単純でラズパイのgpio端子に似たことのできるものもあります。 今回私が目をつけたのはパラレルポートです。 古いパソコンについていたポートで主にプリンター用に使われていました。でかい上に通信速度も遅いので今はほとんど使われていません。 しかし動作が単純でプログラムで簡単に制御できるという利点もあります。 [amazon_link asins=’B00BWQS436′ template=’ProductAd’ store=’atarasi09-22′ marketplace=’JP’ link_id=’de2f926f-8d7c-11e7-bd72-5932ad36f28d’ width=”300″]

回路の作成

パラレルポートのデータ出力端子は以下のようになっています。 [caption id="attachment_1958" align="alignnone" width="300"] http://lab.net.hiroshima-u.ac.jp/microrac/man/ipv6acppctl.htmlより引用[/caption] ここで例えば0x0Fというデータを送ると2進数で00001111なので
D8 D7 D6 D5 D4 D3 D2 D1
0 0 0 0 1 1 1 1
となって1になった端子に5Vの電圧がかかります。 LEDつなぐだけなんで回路はこんな感じ抵抗値はLEDに合わせて任意に変えてください。

プログラムの作成

今回はPythonで制御します。

モジュールのインストール

パラレルポートを操作するためのモジュールをインストールします。 これ→https://github.com/pyserial/pyparallel ダウンロードしたら同じディレクトリに入ってコマンドラインから

$ python setup.py install
を実行すると使えるようになります。

プログラムの作成

今回はLEDチカチカだけなので簡単です。
import parallel
import time
p = parallel.Parallel()
while True:
p.setData(0xFF) # 全部つける
time.sleep(0.5) # 0.5秒待つ
p.setData(0x00) # 全部消す
time.sleep(0.5)
以上です。 どうでしたか? パラレルポートにはまだまだ無限の可能性があると思うのでみんなのpcにも増設しよう!!]]>