こんにちは!なかぢです。
だんだん、職業がブロガーなりつつありますが
(実は、かくかく、しかじか、いのししいのししで…w)
今日この頃、如何お過ごしでしょうか?
ブログを執筆するネタも尽き果てそうだったので、今週は、本社でRaspberryPi(以下、ラズバイと称す)なるものを触れせて頂けるというとこで、ラズパイについて、書きたいと思います。
Raspberry Piとは?
ARMプロセッサを搭載したシングルボードコンピュータの事で、簡単に言うと色々な機能を持った基盤で、手軽にIoTを実施することができる優れモノなのです。
※最新版だと Raspberry Pi 3のようです。
(※値段も、ラズパイ本体なら、4~5千円で購入できますし、LEDなどの最低限必要な入門キットも2千円程度で購入できます。
では、ラズパイの本体ってどんなの?と思いますので、本体はこちらです。
緑色の基盤が本体になります。これに、USBのマウスやらキーボードやら、HDMI端子を繋いで電源を差し込むと起動します。
(※ただし、初期状態はOSが入っていないので、OSを入れる必要があります。)
起動するとOSの画面はこんな感じ。
さて、ラズパイを使って様々なことができますが、私自身、初めての内容なので
入門編として、LEDを使ってやってみようと思います。
用意するものは次の通りです。
Raspberry Pi 2 Model B(セットアップ済みのもの、OSはRaspbian)
330Ωの抵抗 1本
赤色LED 1個
ブレッドボード
ブレッドボード用ジャンパーワイヤ(オス-メス) 2本
LED点灯するための一番簡単な配線は次の通りに配線を組み上げます。
緑色の配線を、GPIOの任意のPINへ挿して、白い線は、「GND」に差します。
(※GPIOならびにGNDピンのピン配置表については、 検索キーワードで「RaspberryPi PinOut」と検索すると出てきます。)
緑色の配線と白い配線を結線させますと…
おぉ~!点いたw点いたw
上記の基本を応用して複数のLEDと配線を結線させて見た結果。。。
おぉ~!点いたw点いたw
でも、待てよ? これって、ただ単に電気の導線を作っただけで、プログラムじゃないよね?
なので、プログラマブルに動作するLEDの制御を実装したいと思います。
直近で勉強したPythonをさっそく実装できるチャンスがやってまいりました。
まず初めに、1つのLEDを光らせたい場合の実装方法について書きたいと思います。
1 2 3 4 |
import RPi.GPIO as GPIO GPIO.setmode(GPIO.BCM) GPIO.setup(17,GPIO.OUT) GPIO.output(17,GPIO.HIGH) |
分解して説明しますと
1行目で、GPIOにアクセスするライブラリをインポートします。
2行目で、GPIOの数字で指定する宣言をします。
3行目で、対象のGPIOのポート番号(記載上だと、17番)を出力設定にします。
4行目で、点灯させます。
この記述をして、ファイルを保存します。(ファイル拡張子は「.py」)
んで、ターミナルで、「sudo python 〇〇〇.py」と入力して、エンターキーを押すと、LEDが点灯するはずです。
この記述を応用して、複数のLEDを一定間隔点灯・消灯させ、最後に全部点灯して消灯するプログラムを書いてみました。 ご参考までに。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
import RPi.GPIO as GPIO import time i=0 while True: '''Red''' GPIO.setmode(GPIO.BCM) GPIO.setup(17,GPIO.OUT) GPIO.output(17,GPIO.HIGH) GPIO.sleep(1) GPIO.output(17,GPIO.LOW) '''Green''' GPIO.setup(27,GPIO.OUT) GPIO.output(27,GPIO.HIGH) GPIO.sleep(1) GPIO.output(27,GPIO.LOW) '''Yellow''' GPIO.setup(22,GPIO.OUT) GPIO.output(22,GPIO.HIGH) GPIO.sleep(1) GPIO.output(22,GPIO.LOW) '''White''' GPIO.setup(04,GPIO.OUT) GPIO.output(04,GPIO.HIGH) GPIO.sleep(1) GPIO.output(04,GPIO.LOW) '''All''' GPIO.setup(17,GPIO.OUT) GPIO.output(17,GPIO.HIGH) GPIO.setup(27,GPIO.OUT) GPIO.output(27,GPIO.HIGH) GPIO.setup(22,GPIO.OUT) GPIO.output(22,GPIO.HIGH) GPIO.setup(04,GPIO.OUT) GPIO.output(04,GPIO.HIGH) time.sleep(1) GPIO.output(17,GPIO.LOW) GPIO.output(27,GPIO.LOW) GPIO.output(22,GPIO.LOW) GPIO.output(04,GPIO.LOW) i+=1 if(i==10): break time.sleep(1) GPIO.cleanup() |
実行結果は次のようになりました。
結構簡単にプログラマブルな動きをするようにできました!
如何でしたでしょうか? ラズパイを使えば、LEDの点灯だけでなく、様々なセンサー(基本キットにはついていませんが、別で購入することができます。)
を使用して、実現させたいこと(例えば、人感知センサーとカメラを複合させて、監視カメラをラズパイで作成するなど)がかなり広がると思います。
私自身、来月にでも購入しようと画策中ですw。 結構面白いです!
しばらくは、はまりそうですねw 以上、なかぢでしたw