さあて。ここからが本題。ラズベリーパイの汎用I/O(GPIO[*1])を使って、小型PCでフルカラーLEDをチカチカ点灯することができる「制御プログラム」を作ってみる。これまでの実験で分かった電子機器回路はこれだ(↓)。うんうん。それっぽい。
*1: GPIO = General Purpose Input/Output
(1)Raspberrypi.orgの公式サイトからNOOBSをダウンロードしてZipファイルを解凍する。
(2)MicroSDカードをSDFormatter4でフォーマットして、解凍しておいたフォルダの中身をすべてSDカードにコピーします。
(3)コピーが完了したSDカードをラズパイにセットして、キーボード、マウス、HDMIケーブルでモニタを接続したら電源オン。起動に成功するとインストールするOS一覧が表示されるので、「Raspbian」を選択。
(4)15分程度でOSインストールが終了してラズパイのロゴとともにX-windowが起動します。
(5)OSを最新にする。
$ apt-get update # 更新ファイルの確認 $ apt-get upgrade # 更新パッケージのダウンロードとアップデート実行 $ opt-set install fonts-vlgothic uim uim-anthy # 日本語フォント
LEDの点灯を制御するプログラムは、覚えたてのpythonで書きます。Windowsのテキストエディタで「led.py」というファイルを作成して、以下のプログラムを書き込みます。作成したプログラムファイルは、winSCPでラズパイへ転送して実行。
#!/usr/bin/env python # -*- coding: utf-8 -*- # ファイル名: led.py import RPi.GPIO as GPIO import time # 初期設定 # GPIO.BOARD: PIN番号 # GPIO.BCM: GPIO番号 GPIO.setmode(GPIO.BCM) contRed = 17 contGreen = 23 contBlue = 27 contON = 0 contOFF = 1 GPIO.setup( contRed, GPIO.OUT ) GPIO.setup( contGreen, GPIO.OUT ) GPIO.setup( contBlue, GPIO.OUT ) # サブルーチン def led( intR, intG, intB ): GPIO.output( contRed, intR ) GPIO.output( contGreen, intG ) GPIO.output( contBlue, intB ) time.sleep(1) # メインルーチン if __name__ == '__main__': try: while True: # 1秒毎に赤、緑、青の点灯を繰り返す led( contON, contOFF, contOFF) led( contOFF, contON, contOFF) led( contOFF, contOFF, contON) finally: # GPIOを解放して終了。 GPIO.cleanup()
フルカラーLEDを点灯させるプログラムをpythonで書いて、赤色、緑色、青色、に1秒ずつ色を変えて点灯する制御が可能になりました。複雑になるのでプログラムには書きませんでしたが、同時に色を点灯すると様々な色を点灯できます。例えば赤と緑を同時点灯すると黄色に、緑と青の同時では水色に。そして、何が凄いかっていうとこのトライアルで分かったのは、小型パソコンで外部機器を操作できるから、何か分からないけど凄い事が出来そうな可能性があるということだねっ!
フルカラーLEDチカチカの動画はこちら(↓)約10秒。
次は、ラズパイにスピーカーを接続して音楽を流してみよう。