ラズパイ!< Raspberry Pi 4 ModelB/4GB > 初めてのLチカでPython入門 ~ソフトウェア編~
こんにちは、レオハルです。
前回の続きです。
今回は、ラズパイでPythonを使って、Lチカのソフトウェアを作成し、動作確認まで実施したいと思います。
今回の作戦
「ブレッドボードを利用して、LEDをGPIOからの出力により点滅させる」です。
①電子工作キットより必要品を取り出す。
②本体とブレッドボード接続する。
③LED、抵抗、ジャンパー線をブレッドボードに差し込む。
④Pythonで点滅プログラムを作成する。
⑤実際に点滅させてみる。
今回は④⑤です。
Python環境の構築
最初から構築済みという衝撃
新しい言語を使い始めるとなると、「まずは開発環境の構築からだな」と意気込んでおりました。会社のwindowsパソコンに新しいマイコンの開発環境を導入するとなると一苦労です。
しかし、ラズパイにおけるPython環境は、初期状態から構築済みでした。
プログラミング初心者の頃は、最初に環境を構築するだけで嫌になりそうでしたが、それがありません。初心者に優しく、すぐにプログラミングに取り掛かることができます。
これから電子工作やプログラミングに取り組もうとする方には、おススメできます。
使ってみた二つの総合開発環境
さらっと確認しただけでもいくつか開津環境が用意されていました。
使いやすそうだったものを2つ紹介します。プログラムの中身については、後述します。
Geany
開発環境というか、テキストエディタに当たるんですかね、これは?
私は使ったことなかったんですが、動作が高速でおススメされている記事も見かけました。コンパイルから実行までメニューバーに分かりやすく並んでいました。
ソースコードを記述して、紙飛行機ボタンを押せば、プログラムが実行できます。
Thonny
ラズパイに標準でインストールされているGUIエディタです。
実行時には、変数のデータが表示され、デバッグ時には便利そうでした。
プログラムを作成する
既にLチカのプログラムに対する解説記事は、山のようにありますので真似して実装していきます。
プログラミングの第一歩は真似するところから始まるのです!
自分のやりたいことをできるようにするためには、どうやって真似すればいいのかを検索できる技術が始めは大事です。優秀なプログラマは、目的の情報にたどり着く検索ワードを考えるのがうまいと大学の頃、講義で聞かされたことがあります。
さて、若干話がそれましたが、以下のプログラムを実装いたしました。
import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setup(17,GPIO.OUT) for x in range(5): GPIO.output(17,True) time.sleep(1) GPIO.output(17,False) time.sleep(1) GPIO.cleanup()
簡単に解説しておきます。
Pythonでは、誰かが作った便利なライブラリがたくさん用意されており、これらをインポートして利用することができます。
今回は、ラズパイでGPIOを使うのに必要な「RPi.GPIO」と時間を扱う「time」というライブラリをインポートしました。
import モジュール名 as 好きな名称
で、ファイル内で使う名前を変更することができます。
次にGPIOに対する初期設定を行います。
GPIO.setmode(GPIO.BCM)
GPIOの番号で設定するモードに設定します。他に端子番号で設定する「BOARD」という設定もあります。
GPIO.setup(17,GPIO.OUT)
こちらは、GPIO17を出力に設定する記述です。
for以降でLEDをチカチカさせる処理を記述しています。
for x in range(5):
5回ループします。Pythonでは、インデントをつけることで処理のブロックを表現します。C言語の { } の代わりがインデントになるわけです。
GPIO.output(17,True) / GPIO.output(17,False)
GPIO17のON/OFF操作です。
time.sleep(1)
1秒間の処理を止めます。
GPIO.cleanup()
最後にGPIOピンを開放して終了します。実行しないで終了すると、次回起動時に警告が出るらしいので、おまじないのように入れておきます。
動作確認
作成したプロうグラムを実行して、動作確認してみました。
無事に点滅させることができました。
以上、初めてのラズパイ&Python Lチカでした。
【今回使った電子工作キット】
【RaspberryPi4スターターキット】
【RaspberryPi4の開封記事はこちら】