組み込みProgrammerのチラシの裏

Raspberry Pi Hello World #1

| Comments

Raspberry pi版のHello Worldでは、コンソールからbashのみを利用してLEDチカチカを行う。 追加で必要なライブラリもないため、一番簡単に実施できる。

  • Raspberry : Raspberry pi 3 2023-10-10(bookworm)
  • 環境 : Mac
  • デフォルトユーザー : pi

概要

sysfsのgpioはdeprecatedとなった。 詳細はsysfsのgpioはdeprecatedを参照。

以下のようにGPIO4にLEDを接続する。

回路図

pinout

GPIOの番号と基板の場所を知りたければ、pinoutコマンドで調べることができる。 以下はその例。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$ pinout
...
   3V3  (1) (2)  5V
 GPIO2  (3) (4)  5V
 GPIO3  (5) (6)  GND
 GPIO4  (7) (8)  GPIO14
   GND  (9) (10) GPIO15
GPIO17 (11) (12) GPIO18
GPIO27 (13) (14) GND
GPIO22 (15) (16) GPIO23
   3V3 (17) (18) GPIO24
GPIO10 (19) (20) GND
 GPIO9 (21) (22) GPIO25
GPIO11 (23) (24) GPIO8
   GND (25) (26) GPIO7
 GPIO0 (27) (28) GPIO1
 GPIO5 (29) (30) GND
 GPIO6 (31) (32) GPIO12
GPIO13 (33) (34) GND
GPIO19 (35) (36) GPIO16
GPIO26 (37) (38) GPIO20
   GND (39) (40) GPIO21

gpioグループに追加(OSインストール後、1回だけ実施)

GPIOを操作するには、gpio権限が必要となる。 そのため、デフォルトユーザーであるpiをgpioグループに所属させることで上記を満たす。

1
$ sudo usermod -aG gpio pi

pin設定(OS起動後、1回だけ実施)

1
2
3
4
# GPIO4を使用する
$ echo 4 > /sys/class/gpio/export
# GPIOを出力ピンとして利用する
$ echo out > /sys/class/gpio/gpio4/direction

LED変更

ON

1
$ echo 1 > /sys/class/gpio/gpio4/value

OFF

1
$ echo 0 > /sys/class/gpio/gpio4/value

サンプル

ON/OFF切り替え

1秒ごとにON, OFFを切り替えます

1
$ while true; do echo 1 > /sys/class/gpio/gpio4/value; sleep 1; echo 0 > /sys/class/gpio/gpio4/value; sleep 1; done

Comments