Lチカとモールス信号通信 (QR416)

QR416

QR416

ここは、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チカ関連では以下を行っています。

  1. 単にLEDを点滅させるだけ(いわゆるLチカ)
  2. LEDでモールス信号の送信(LED点滅とブザー鳴動)
  3. 電球(AC 100V 10W)を点滅させる、もうひとつのLチカ。

一般的には、Lチカといったら最初の例を指すのですが、さらに一方踏み込んだ例、予想外の例を示すのが、電子工作塾流です。以下、これらについて説明します。

 

(1)シンプルなLチカ

LEDを点滅させるだけですが、LEDを点滅させるだけでもさまざまな方法があるところが、Raspberry PiらしさというかLinuxらしさというかUNIXらしさです。

ちょっと考えただけでも以下があります。

  1. シェルスクリプトで。やや遅いけどシンプル。
  2. python や ruby で。お手軽かつ実用的。
  3. C言語で arduino 風ライブラリを用いて。arduinoでの経験が生きる。
  4. 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)タイプ

そしてこんなふうにくみ上げてみました。

http://t.co/VT6CtTAw 

次回更新時にはもう少し追記します。

 

Last update: 3/24/2013 by hohno