こんにちは、組み込みエンジニアのtomozoです。
今回は、ラズベリーパイを使ってLEDの点灯・消灯(通称Lチカ)
について解説したいと思います。
この記事は
組み込みエンジニア志望の方
向けの記事です。
組み込みエンジニアを目指している方でも
学校などでプログラミング学習をしていると思いますが
自宅で電子工作をして何か作ったりっていうのはあまり
していないのではないでしょうか?
今回説明する内容は物の手配や準備を除くと
休日の半日~1日あればできる内容です。
お金と時間がかかりますが、
やりきると充実した一日を過ごせて勉強になるので
たまにはこういったことをやってみてはどうでしょうか?
この記事を読めば
ラズベリーパイを使ってLEDを点灯・消灯する方法
が分かるようになります。
それでは解説を始めます。
目次
ラズベリーパイとは
まずはラズベリーパイを紹介します。
知っている方は読み飛ばしてもらって結構です。
ラズベリーパイというのは、ARMというCPUが載った基板です。
もはや小さいパソコンと言えるレベルです。
イギリスのラズベリーパイ財団によって作られていて
通称ラズパイって呼ばれます。
このページでも以下ラズパイと呼ばせていただきます。
主に教育用として製作されたものですが、
非常にできがよく組み込みの開発現場でも試作に使われたりします。
2012年に発売されてからバージョンアップ改良が繰り返されています。
さらに詳しい情報はwikipediaや公式サイトを参照ください。
tomozo
(目的)何をするか
それではラズパイを使ってLEDを点灯(ON)/消灯(OFF)する(通称Lチカ)
ことを学んでいきましょう。
ラズパイの出力ポート(GPIOと言います)を制御してLEDをON/OFFするのですが、
回路図を書くと以下のようになります。
抵抗はLEDに流す電流を調整します。
GPIOは「汎用入出力(general purpose input/output)」の略称です。
GND(グランド)は電位を決める基準で基本的には0Vです。
電流は電位の高いほうから低いほうへ流れます。
簡単な内容ですが、
将来組み込みエンジニアをやっていこうと考えているのであれば
こういったことが考えて作るのが楽しいと思えるかどうかが重要です。
どんなCPUを扱う場合でも組み込みでは信号のON/OFFは必ず行います。
tomozo
準備する物
ラズパイでLチカをやるための準備しましょう。
必要なものは以下です。
- ラズパイ(+モニター/キーボードなど動かせる環境含む)
- ブレッドボード
- ジャンパーケーブル
- LED
- 抵抗
ラズパイ
ラズパイは購入しただけでは使えないのでセットアップが必要です。
セットアップ手順は以下の通りです。
- パソコンでOS(Raspberry Pi OS)をダウンロード
- ダウンロードしたOSを解凍
- パソコンでマイクロSDカードに解凍したOSをコピー
- ラズパイにマウス、キーボードとモニターを接続
- マイクロSDをラズパイにセットしラズパイの電源ON
- 指示に従いセットアップ操作を行う
セットアップの詳細を書くと長くなるので今回は省略します。
ラズパイのセットアップから始める方は公式サイトなどを参考に
セットアップしてくださいね。
またWiringPiというGPIOを制御するための
ライブラリも今回の説明の中で使用するので
インストールしておきましょう。
以下のコマンドでWiringPiをインストールできます。
sudo apt install wiringpi
どこで買えるの?
すべてアマゾンや楽天などのネットで購入することができます。
- ラズパイ
今の最新版は4Bです。
- ブレッドボードとジャンパー線
ラズパイからの信号をLEDに伝える回路を構成します。
- LEDと抵抗
こういうキットを一つ持っておくと便利ですね。
いくらくらいかかるの?
一式そろえると10000円弱必要です。
少し高価ですが、買っておけばLチカ以外にも色々勉強できますし
ブレッドボードやジャンパー線は他の電子工作をする時に使えるので
無駄にはなりませんよ。
ラズパイはパソコンの代わりに使ったり、
自宅サーバーに利用したりすることもできます。
大量生産しているのでこの位の手に入れやすい価格で
ラズパイを購入することができますが、
この基板を少量で生産したら、数倍はかかる代物です。
ハードウェア作成
ブレッドボードを利用してラズパイとLEDを接続しましょう。
tomozo
LEDはプラス(アノード)とマイナス(カソード)があります。
間違うと光りませんので差し込む向きに注意してくださいね。
ブレッドボードは縦横につながっています。
tomozo
プログラム作成
プログラミングをやっていきましょう。
組み込みですから、C言語でやっていきましょう。
プログラムは以下の内容です。
#include <wiringPi.h>
#define pin 8 //使用するピンで番号を書き変えてください
int main (void)
{
wiringPiSetup();
pinMode(pin, OUTPUT);
for (;;) {
digitalWrite(pin, HIGH); //点灯
delay(500);
digitalWrite(pin, LOW); //消灯
delay(500);
}
return 0;
}
デスクトップにblink.cというファイルで保存してください。
blinkというサイトで紹介されているコードを参考利用しました。
500msの周期でON/OFFを繰り返すプログラムです。
簡単なプログラムですが、ラズパイで入出力ポートを使うときは
wiringpiというのを使うのが一般的なようで
GPIOが2でもWiringPiのポートは8と違う数字になることだけ注意してくださいね。
tomozo
ラズパイではC言語を使わなくても、コマンドラインで
GPIOの出力を変化させることもできます。
動作確認
それではハードウェアとソフトウェアができたので動作確認しましょう。
まずはC言語なのでコンパイルします。
ラズパイで以下のコマンドを入力してください。
$ gcc -Wall -o blink blink.c -lwiringPi
コンパイルを実行すると実行形式ファイルが作成されます。
それではいよいよ実行です。
ラズパイで以下のコマンドを入力してください。
$ ./blink
お疲れ様です。
無事にLEDを点滅させることができました。
ラズパイで他にどんなことができる?
周辺回路は必要ですが
同様にLEDの制御信号をモータードライバに入力すれば
モーターを回したりできます。
ただモーターを回すだけでは全然面白くありませんが、
モーターにメカ機構を付けて、
その機構の動作の位置をセンサで読み取れば
簡単な組み込み機器の一部になっていきますよ。
まとめ
ラズベリーパイとは電子工作に使える小さなコンピュータ
ラズパイにLEDをつないでC言語で書いたプログラムを実行して点滅には
準備する物
- ラズパイ(+モニター/キーボードなど動かせる環境含む)
- ブレッドボード
- ジャンパーケーブル
- LED
- 抵抗
やること
- ハードウェアをつなぐ
- プログラムする
- プログラムを実行する
LED点滅以外にもメカ制御など挑戦しよう
参考になったとか、もっとここが知りたいなど一言でも
コメント、意見などいただけると励みになります。
こちらの記事で組み込みエンジニアの実習例をまとめています。
もしよければご覧ください。
組み込みソフトウェアの実習例/自宅でできる電子工作他5選【まとめ】