ラズベリーパイで電子工作のはじめ方
ラズベリーパイで電子工作をする際のはじめの一歩であるLチカのやりかたの解説をしていきます。Lチカとは、「LEDをチカチカ点灯させる」ことの略で、英語では”Blinking LED”と呼ばれます。
プログラミングの世界で入門者が最初に行う儀式を 「“Hello World”と表示させる」ことと同じように、ハードウェアの分野ではこの”Blinking LED”、いわゆるLチカが定番となっています。
準備
ラズベリーパイの購入
まず、どのラズパイを購入すべきか分からない場合、ラズベリーパイの種類と選び方をごらんください。
現在ラズベリーパイは以下のショップ・店舗で取り扱っていますが、キーボード一体型のRaspberry Pi 400、およびPicoシリーズ以外、今の所品薄で入手が困難な状況です。
・SwitchScience
・KSY
・千石電商
・秋月電子
以下の通販サイトにもありますが、転売価格で定価の倍以上します。どうしても今ラズパイが必要な場合のみ見てみてください。
・Amazon
・AliExpress
ラズパイ周辺機器の購入
ラズベリーパイの周辺機器の選び方を参考に、必要な周辺機器を揃えましょう。
OSのインストールと初期設定
ラズベリーパイのOSインストールと初期設定を参考に、下準備を行ってください。
電子工作パーツの購入
店舗、もしくはネットショップで以下のパーツを揃えましょう。それぞれのパーツについては、次の電子工作の基礎のセクションで解説しています。
・LED(VFが3.3V以下)
・抵抗(1/4W, 100〜510Ω)
・ミニブレッドボード
・ジャンパーコード
ラズパイスクールでもネット販売を行っています。詳しくはお問い合わせください。なお、本記事で使用したパーツは以下です。
・低消費5mm青色LED(VF=2.8V, IF=1mA)
・カーボン抵抗(1/4W, 510Ω)
・ミニブレッドボード(スケルトン)
・ジャンパーワイヤー(オス-メス、15cm黒・黄)
電子工作の基礎
ラズベリーパイで電子工作を始める際の電子パーツなどについて紹介します。
LED
LEDはLight Emitting Diodeの略で、日本語では発光ダイオードと呼ばれます。ダイオードとは、電気を一方方向にしか流さない性質を持った電子パーツのことで、そのダイオードのうち、電流が流れた時に光るものをLEDと呼びます。
LEDは豆電球と違って、プラス・マイナスの向きがあります。プラス側は足が長くなっているのでよく見ると分かります。なお、プラスとマイナスを逆につなぐと光りません。
また、豆電球と比べてとても小さな電流で光ります。
抵抗
日本語では抵抗とひとくくりに呼ばれますが、正式名称は抵抗器(Resistor)といい、その大きさは抵抗値(Electrical Resistance)と呼ばれます。
ラズパイにそのままLEDをつなぐと、大きな電流が流れてラズパイやLEDが壊れることがあります。これを防ぐのが抵抗です。
ブレッドボード
ラズパイで電子工作を行う場合、電子パーツをつないだり外したり、場所を移動したり、といった具合に作ってはばらして、を繰り返すことが多いです。この時、いちいちはんだ付けをしていたのでは大変ですよね。
そこで役立つパーツがブレッドボードです。ブレッドボードを使用すると、電子回路をはんだ付けなしで簡単に作ることができます。
昔の人はパンを切る板(ブレッドボード)上で電子回路を作ったりばらしてたりしていたので、そのなごりです。
ジャンパーケーブル(ジャンパーワイヤー)
ラズパイのGPIOはヘッダーと呼ばれるオス型のピンがついています。これとブレッドボードに挿したLEDをつなぐには、線が必要です。この時に使用するのが、ジャンパーケーブルです。
先が色々なタイプがありますが、今回使うのは、オス―メスのタイプです。オス側をブレッドボードに、メス側をラズパイに接続して使用します。
ピンアウト
ラズパイの40本のGPIOピンですが、どれが何のピンかを表したものをピンアウト図といいます。
電子回路図とわかりやすい回路図
回路図記号で記載した電子回路を電子回路図といいます。
電子回路図にはブレッドボードは登場せず、実際にどう電子パーツをつないだらいいかわからない場合もあります。その時は、以下のような実際の見た目に近い図で表現することもできます。
ラズパイで扱えるのは0と1(0V と3.3V)
ラズパイはコンピューターでしたね。コンピューターは0と1しか扱えないというのはよく聞く話だと思います。実際にはコンピューター内部では、0Vを0、3.3Vを1、という具合に認識します。
外部との架け橋になっているGPIOピンを入力用にし、ピンに外部から0Vの電圧をかけると0、 3.3Vをかけると1という具合にラズパイは認識してくれます。
逆にGPIOピンを出力用にし、プログラムから1を出力すると、そのピンに3.3Vの電圧がかかります。0を出力すると0Vがかかるわけですね。この時LEDをつないでおくと、光ったり消えたりします。
まとめると、外部の電圧をプログラムで0や1として取得したり、プログラム内部の1や0が、現実世界の光となって現れます。
実際にやってみよう
それでは実際にラズベリーパイで電子工作のはじめの一歩、LEDをチカチカさせてみましょう!
電子回路の作成
まずは電子回路を作成します。以下の図と写真を参考に、回路を作ってみてください。
プログラムの作成
次にプログラムを作成します。今回使うのはこちらのプログラムです。ざっと眺めるだけで大丈夫です。
import RPi.GPIO as GPIO import time led = 26 GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) GPIO.setup(led,GPIO.OUT) while True: GPIO.output(led, 1) time.sleep(1) GPIO.output(led, 0) time.sleep(1)
プログラムの実行
ラズパイ上でThonnyエディターを開き、プログラムをペーストしてRun▷ボタンをクリックしましょう。
動作チェック
このように1秒間隔でLEDがチカチカしましたか?
解説
まずは必要なライブラリをインポートします。GPIOを操作するにはRPi.GPIOライブラリが必要です。timeは一時停止を行うsleep()で必要です。
import RPi.GPIO as GPIO
import time
LEDをつないだピンを指定します。このプログラムではGPIOはBCMタイプを使用しますので、GPIO26番ピンとして26と指定します。
led = 26
GPIOの設定を行います。まずsetmode()でBCMタイプを指定し、GPIOの番号でピンを指定できるようにします。さらに、setup()でGPIOを出力モードにします。
GPIO.setmode(GPIO.BCM)
GPIO.setup(ledPin,GPIO.OUT)
次に、while文の条件をTrueとすることで永遠に繰り返しを行えるようになります。
while True:
そしてoutput(LEDのピン, 1)とすることで、GPIOに3.3Vが出力されます。
GPIO.output(ledPin, 1)
その後sleep(1)で1秒間待ちます。
time.sleep(1)
次にoutput(LEDのピン, 0)とすることで、GPIOが0Vになります。
GPIO.output(ledPin, 0)
その後sleep(1)で1秒間待ちます。
time.sleep(1)
この4ステップがwhileの中にいますので、永遠に繰り返され、1秒ごとにLEDがチカチカします。
おわりに
いかがだったでしょうか? ここがラズベリーパイで電子工作をする時の入り口です。これから先、もっと楽しいことが待っていますので、一緒にとりくんでいきましょう😊