これに対して「Lチカ」というのはLEDを点滅させることなので英語では“Blink”ですが、マイコンの初心者が“Hello, World”と同様に最初に書いてみるコードとなります。“Blink”とはまばたきのことで、たまにウインクの意味になることもあります。
「Lチカ」は、マイコンの初心者だけでなく経験者も利用します。例えば、今まで使っていたマイコンとは異なるマイコンを使うときや、同じマイコンでもファームウェアが替わったときなどには、「Lチカ」で動作を確認してから開発に着手します。
これは、「開発チェーン(開発プロセス/ツールチェーン)」が正常に動作しているのか、マイコンそれ自体が動作するのかをチェックするための大切な初期工程となります。開発チェーンはIDE(統合開発環境)と呼ばれることもあり、ソースコード編集機能(エディタ)に加えて、コンパイラあるいはアセンブラ、リンカー、ローダーがこれに含まれます。さらに、プログラムをマイコンのメモリに書き込むライターあるいはプログラマー(書き込み機)もあります。
これら全てのチェーンがターゲットのマイコンで動作しているかを「Lチカ」によって確かめます。もっと言えば、ターゲットのマイコンは開発ボードや評価ボードなど何らかの基板上に搭載されていますので、これらのボードとマイコンも含めて正常に動作しているかをこの「Lチカ」で確かめられるのです。
リスト2は、Arduinoマイコンでプログラムを開発するときに用いられるIDEから参照できる「Lチカ」(Blink)のサンプルリストの一部です。一応、「Lチカ」として動作するコードは全て含まれていますが、全文をご覧になりたい方は、リスト内記載のURLから参照できます。
/*
This example code is in the public domain.
http://www.arduino.cc/en/Tutorial/Blink
*/
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
以前に、坂井氏の“Hello, World”のフレームワークをそのまま拝借して「Lチカ」本を書いてみようかな、という話を坂井氏にしたことがあります。かれこれ10年ほど前のことで、坂井氏と筆者が山梨県内で開催された「セキュリティ・ミニキャンプ」の講師を務めた後、帰りの中央線の電車で交わした会話だったかと思います(セキュリティ・ミニキャンプは、先述のセキュリティ・キャンプと同じ運営団体の主催事業として全国で開催されています)。
この話には坂井氏も結構興味を持たれたようで「共著しませんか」という話も出たのですが、筆者は断りました。当時から、坂井氏はコンピュータ技術書籍の分野では大御所であり、共著するとなると筆者の存在が“食われる”と思ったからです。
ただし、筆者はその後、セキュリティ・キャンプの講師をした際の選考課題に「Lチカ」問題を出すなどいろいろと経験を積みました。そして現在、両者ともセキュリティイノベーターを育成する長期ハッカソンプログラム「SecHack365」のトレーナーを務めており、そこで10年前にあった「Lチカ」本の共著の話が再燃したわけです。なお、さらなる後押しの大きな力になったのは、「Lチカ」本のためにはLEDの発光現象を物理的な見地からも書く必要があると思っていたところ、このあたりの知見を持ったトレーニーが2026年度のSecHack365の今岡ゼミに入ってきて、共著の意思を確かめたところポジティブだったこともあります。
そんなわけで、この話は今回のMONOistの記事が初出ということになりますが、書籍の出版を検討しているところです。
今回は「Lチカ」の仕組みを紹介しようと思っていたのですが、前置きだけで終わってしまいました。次回こそきちんと解説しようと思いますのでお待ちください。(次回に続く)
赤外線発光ダイオードを使って光信号を送受信する
光通信のデジタル変調の基礎「振幅偏移変調(ASK)」を試す
光通信入門事始め――古代の人々ののろしと同じように光で信号を送ってみよう
USBシリアル変換モジュールが必要なら、代わりにArduinoを使えばいいじゃないCopyright © ITmedia, Inc. All Rights Reserved.
組み込み開発の記事ランキング
コーナーリンク