ここは、USP MAGAZINE 2013 Spring(2013年3月21日発売)の特集記事「UNIXネイティブの電子工作塾」中の「O先生のレクチャー」の中で参照されているページです。
USP MAGAZINE 2013 Spring → 特集:UNIXネイティブの電子工作塾 (Gadget Colloquia for UNIX Natives) → O先生のレクチャー
Lチカとモールス信号通信
- 初版公開日:2013年3月21日
- 前回更新日:2013年3月25日
- 次回更新予定日:2013年3月27日
- 現状:公開中
今回、Lチカ関連では以下を行っています。
- 単にLEDを点滅させるだけ(いわゆるLチカ)
- LEDでモールス信号の送信(LED点滅とブザー鳴動)
- 電球(AC 100V 10W)を点滅させる、もうひとつのLチカ。
一般的には、Lチカといったら最初の例を指すのですが、さらに一方踏み込んだ例、予想外の例を示すのが、電子工作塾流です。以下、これらについて説明します。
(1)シンプルなLチカ
LEDを点滅させるだけですが、LEDを点滅させるだけでもさまざまな方法があるところが、Raspberry PiらしさというかLinuxらしさというかUNIXらしさです。
ちょっと考えただけでも以下があります。
- シェルスクリプトで。やや遅いけどシンプル。
- python や ruby で。お手軽かつ実用的。
- C言語で arduino 風ライブラリを用いて。arduinoでの経験が生きる。
- C言語で I/O 空間を mmap() して直接アクセス。最も高速。
Raspberry Pi の “Pi” は python のことらしいので、これらの中では No.2が本流なのかもしれません。
しかし、中の人1号は No.3に魅力を感じます。No.3は、Wiring Pi というライブラリを使って実現します。Wiring Pi のページの冒頭には以下のように書かれています。
WiringPi is an Arduino wiring-like library written in C and released under the GNU LGPLv3 license which is usable from C and C++ and many other languages with suitable wrappers
ね、興味湧きますよね?
さて、上記のようなさまざまな方法で、Lチカさせた場合にどのくらいの速度(周波数)が出るのかを実験した結果がWEB上で公開されています。ソースコードも好評されているので、一読に値します。
Benchmarking Raspberry Pi GPIO Speed
この結果を引用すると以下のようになります。
- シェルスクリプトで、3.4KHz
- Python で 20KHz〜44KHz
- Perl でも同程度
- C言語で arduino風ライブラリを使って 7MHz程度
- C言語で I/O空間を mmap() して 20MHz 程度
多様性と適材適所、まさに UNIX の面目躍如というところですね。お好みの方法でお試しあれ!
(2)Lチカでモールス信号送出
単なるLチカができたので、その応用としてシェルスクリプトでモールス信号を送出させてみました。
読者の皆さん、シェルスクリプトですよ、シェルスクリプト!(HA風で)
LED をブザーに置き換えるとより臨場感が出ます。モールス信号を聞き取れる方のために、オーディオ出力を You Tube にて公開する準備を進めています。モールス通信ができる方ならおわかりかと思いますが、結構きれいに聞こえます。次回更新時までに対応できると思います。
(3)AC100Vを制御して、一般的な電球の点滅(電球チカ?)
LEDを点灯できるのであれば、それはSSR(ソリッドステートリレー)を駆動できること意味します。SSR を駆動できるのなら、SSRを適切に選べば AC100Vやそれ以上の高圧のオンオフを行えます。
今回は秋月電子のキットを使いました。
ソリッド・ステート・リレー(SSR)キット 25A(20A)タイプ
そしてこんなふうにくみ上げてみました。
次回更新時にはもう少し追記します。
Last update: 3/24/2013 by hohno