Raspberry pi 3B+を買いました。 その3

Raspberry Pi 3B+ にやっとハードウェアを接続してみます。
間が空いたけど、まず手始めにまずは L チカから。
間が空いた原因がブレッドボードの在庫が見つからなかったせいで、2 回アキバに行ってたからなんて言えない

目次

gpio4 を使用して LED をチカチカさせます。

配線

回路図は配線は以下の通り、

わかりやすい写真が取れなかったので、
文字に起こすと以下のようになる。
[gpio4]-[抵抗 10Ω]-[LED]-[GND]
(配線図を描くツールなどは調べてみたい。)

物理的な作業はここまで。
次からはもう実行

shell コマンドで実行

ラズパイにログインして、
以下のコマンドを順に実行する。

  1. gpio4 を使用する宣言をする。

    1
    echo 4 > /sys/class/gpio/export
  2. gpio4 を出力に使用することを宣言する。

    1
    echo out > /sys/class/gpio/gpio4/direction
  3. gpio4 に 0 を送る=> LED は消える

    1
    echo 0 > /sys/class/gpio/gpio4/value
  4. gpio4 に 1 を送る=> LED は消える

    1
    echo 1 > /sys/class/gpio/gpio4/value
  5. gpio4 を開放する

    1
    echo 4 > /sys/class/gpio/unexport

1 と 2,5 は必須です。
3 と 4 のコマンドで、LED の点灯消灯ができます。

shell スクリプトでループ実行

Lchika という名前で以下を保存します。

1
2
3
4
5
6
7
8
9
10
11
12
#! /bin/bash

echo 4 > /sys/class/gpio/export;
echo out > /sys/class/gpio/gpio4/direction;

while :
do
echo 0 > /sys/class/gpio/gpio4/value;
sleep 1s;
echo 1 > /sys/class/gpio/gpio4/value;
sleep 1s;
done

sudo sh lchikaのコマンドで実行します。
停止はctrl + cで行います。
1 秒間隔で、明滅するようになったと思います。

二回目実行すると、echo: I/O errorという内容でエラーが出ます。
ctrl + cで止めていて、echo 4 > /sys/class/gpio/unexportを実行していないのが原因のようです。
確かにecho 4 > /sys/class/gpio/exportecho 4 > /sys/class/gpio/unexportを実行しないで、
2 回実行すると、-bash: echo: 書き込みエラー: デバイスもしくはリソースがビジー状態です
今回はこの件はあまり詰めないです。

感想とか

とりあえず、L チカができました。
今回のecho 4 > /sys/class/gpio/exportのコマンドは、仮想ファイルの使用を宣言するという操作になるそうです。
仮想ファイルに関して少し調べたら、物理ピンの 0/1 をファイルアクセスのように取得・設定できる機能ということで理解しました。
確かにファイルに書き込むようにecho 0 > /sys/class/gpio/gpio4/value
on/off を設定することができています。
今のところ挫折していない。良い。

次回

次は、サーボモーターを動かすか、
Raspberry Pi + node.js でメールを送ってみたいと思います。

ではでは