Raspberry Piを買ったので、ちょっと触ってみた
昔からArduinoを触ったことがあったけど、電子回路が正直苦手・・・
そこでOSが載っているRaspberry Piの方が色々使い方のイメージが湧いてくるかなーと思ってた
最近やっと買ってきてたので「Hello World」ごとく少しいじってみた。
買ってきたもの
Hello World的なこと
こういうものの「Hello World」みたいなことといえば、とりあえずLEDを光らせる
「Raspberry pi led」で一番上に表示されるサイトを真似しながらLEDを光らせてみた。
↓参考サイト
GPIOを制御するライブラリをインストールする
GPIO Pythonライブラリをインストール
$ sudo apt-get install python-rpi.gpio
最初はインストールコマンドがコケた。パッケージの更新をやったところ、うまくGPIO Pythonライブラリを インストールすることができた。
$ sudo apt-get update
PythonでGPIOを制御する
とりあえず参考サイトのソースをコピペ。
2秒間LEDを点灯させ、その後2秒間LEDを消灯させるプログラム
#!/usr/bin/env python import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BOARD) GPIO.setup(11, GPIO.OUT) while True: GPIO.output(11, True) time.sleep(2) GPIO.output(11, False) time.sleep(2)
このプログラムを「/home/pi/work/led_test.py」に保存した
Raspberry Pi と LED をつなげる
参考サイトとほぼ同じ回路をブレッドボードで組み立てた
プロフラムの実行
以下のコマンドでプログラムを実行する。
pi@raspberrypi ~ $ cd work/
pi@raspberrypi ~/work $ python led_test.py
↓ついた!
Raspberry Piのピンの指定方法
とりあえずコードをコピペしたサイトでは、
GPIO.setmode(GPIO.BOARD)は、ハードウェアのリビジョン等に関係なく常にGPIOのピン番号を示します。
基本的にGPIO.setmode(GPIO.BOARD)を設定しておけばよいです。
と書いてあり、他のピンの指定方法があるらしい。
調べてみると、以下のサイトに詳しい内容があった。
改めて内容を記載すると、
Raspberry Piの使用するGPIOのピンの指定方法は以下の2通り
- GPIO.setmode(GPIO.BOARD)
ピンの順番の番号で指定する方法。各Raspberry Piモデルの差異を吸収しやすいらしい(本当かなぁ?) - GPIO.setmode(GPIO.BCM)
IO●●の後ろの番号で指定する方法。ブレッドボード接続基板を使ってたら分かりやすい
以下のサイトにある画像が、直感的にわかりやすいと思う
Simple Guide to the RPi GPIO Header and Pins
なので、「Raspberry Pi 2 Model B」で「BCM」方式に書き換えると以下のようになる
#!/usr/bin/env python import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setup(17, GPIO.OUT) while True: GPIO.output(17, True) time.sleep(2) GPIO.output(17, False) time.sleep(2)