RaspberryPi3でLED点滅までやってみた(前編)
おはこんばんにちは
さて、今回はRaspberryPi3を使ってLEDをチカチカ(通称Lチカ)をしたいと思います。 回路を組んでLED点灯からコードを書いてLEDを点滅させるところまでやるので、いつもよりも 内容多めの記事になってしまうので、前編と後編に分けさせていただきます。
記事の流れは以下のような感じで
- LED点灯
- スイッチを押したときにLEDを光らせる
- ピンからの入力を受け取る
LED点滅のコードはPyhtonを使って実装します。
使用した備品は以下の通り
- RaspberryPi3(OSはRaspbian、SSH接続設定済み)1個
- ブレッドボード 1個
- 抵抗 10Ω 1個
- LED 1個
- タクトスイッチ 1個
- ジャンパーワイヤ(無くてもよい) 1本
- ジャンパーワイヤ(オス-メス) 2本
1.LED点灯
回路を組んでみる
まずは回路を組むところから RaspberryPi3のGPIOピンやグランドの位置などは以下のように なっています。
引用元:Raspberry Pi 3 Model B GPIO 40 Pin Block Pinout | element14 | Raspberry Pi 3
今回使うピンは
- GPIO25
- グランド(今回はPin#39の方) です。
実際に組んでみた回路がこちら
接続の仕方としては
GPIO25→抵抗(ジャンパーワイヤで繋ぐ) 抵抗→LED(長い方) LED(短い方)→グランド(ジャンパーワイヤで繋ぐ) といった感じです。 これで回路は完成。次はこの回路に実際に電流を流してみましょう。
LEDを点灯させてみる
RaspberryPi3の電源を入れて、SSHでログインしましょう。 GPIOにアクセスするためにはroot権限が必要なのでrootになります。
pi@raspbian01:~ $sudo su root@raspbian01:/home/pi#
rootになったら今回使うGPIO25にアクセスするための準備をします。
root@raspbian01:/home/pi# echo 25 > /sys/class/gpio/export
こうすることで/sys/class/gpio/gpio25/
というディレクトリが新しく作成されます。
次はこのディレクトリ内で作業することになるので、ディレクトリを移動しておきましょう。
root@raspbian01:/home/pi# cd /sys/class/gpio/gpio25/ root@raspbian01:/sys/class/gpio/gpio25#
次に、LEDを点灯させるために接続されているGPIO25を出力用とするように設定します。
root@raspbian01:/sys/class/gpio/gpio25# echo out > direction
設定したら以下のコマンドを実行することでLEDが光るはずです。
root@raspbian01:/sys/class/gpio/gpio25# echo 1 > value
LEDが光ったら成功です! RaspberryPiではこのようにファイルを操作することによってGPIOを制御できます。 次はタクトスイッチを実装して、スイッチを押したときだけ LEDが光るようにします。めっちゃ簡単なのでさくっとやります。
2.スイッチを押したときにLEDを光らせる
まず作成した回路ですがこんな感じ
抵抗とLEDの間にスイッチを挟んだだけですね。 ただ、スイッチの向きだけ気を付けてください。 スイッチの仕組みとしては抵抗寄りの2つのピンとLED寄りの2つのピンは 普段は繋がっていないのですが、スイッチを押しているときだけ繋がります。 では、GPIO25をONの状態にしてスイッチを押してみましょう。 スイッチが押されている時だけLEDが光っていると思います。
次はLEDが光っている状態を入力用のGPIOを使って取得してみます。
3.ピンからの入力を受け取る
回路に入力用のGPIOを追加してみる
入力用のピンを設定するのですが、今回はGPIO24を使います。 新しいジャンパーワイヤを追加することで回路がごちゃごちゃになりそうだったので、 スイッチがある部分とLEDの部分を分けて、回路を青いジャンパーワイヤで繋ぎました。 また、入力用のGPIO24とブレッドボードは赤いジャンパーワイヤで繋ぎました。 組み立てた回路はこんな感じ
ちょっとワイヤが混み合ってきましたが回路的には、赤いジャンパーワイヤが 前の回路の間に入っただけですね。 ここでスイッチを押したときにLEDが光るかどうかも確認してみてください。 確認したら次は実際にGPIO24から回路の状態(ON or OFF)を取得してみましょう。
GPIO24への入力値を取得
GPIO25からの出力を受け取るためのGPIO24を新しく設定します。 GPIO25と同じようにGPIO24をエクスポートしましょう。 そして新しくできたディレクトリへ移動しておきます。
root@raspbian01:/sys/class/gpio/gpio25# echo 24 > /sys/class/gpio/export root@raspbian01:/sys/class/gpio/gpio25# cd /sys/class/gpio/gpio24
GPIO24を入力用に設定
root@raspbian01:/sys/class/gpio/gpio24# echo in > direction
設定が完了しましたので、入力値を取得してみましょう。
root@raspbian01:/sys/class/gpio/gpio24# cat value 0
スイッチを押していなければ0が出力されると思います。 次はスイッチを押したまま先ほどのコマンドを実行してみてください。 1が出力されれば成功です!
この続きは後編でやります
Raspberry Piをはじめよう (Make: PROJECTS)
- 作者: Matt Richardson,Shawn Wallace,船田巧
- 出版社/メーカー: オライリージャパン
- 発売日: 2013/09/26
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (4件) を見る
Raspberry Pi3 Model B ボード&ケースセット 3ple Decker対応 (Element14版, Clear)-Physical Computing Lab
- 出版社/メーカー: TechShare
- メディア: エレクトロニクス
- この商品を含むブログ (4件) を見る
- 出版社/メーカー: Raspberry Pi
- 発売日: 2016/05/31
- メディア: Personal Computers
- この商品を含むブログを見る