LoginSignup
4
2

ElixirでRaspberry Piのピン配置を確認

Last updated at Posted at 2024-01-23

はじめに

ElixirRaspberry Pi のピン配置を確認します。

pinout パッケージとは

pinout パッケージ は、Raspberry PiBeagleBone を含む一般的な組み込みデバイスを検出し、ピン配置図を出力します。

pinout パッケージ が提供する便利な関数いくつか試してみます。

pinout パッケージをインストール

お手元にElixirの使える組み込みデバイスがない方もいらっしゃると思いますので、ここでは PC 上のIExpinout パッケージを試してみることにします。

PC のターミナルでIExを起動します。

PCのターミナル
iex

以下のコードを実行してpinout パッケージをインストールします。

IEx
Mix.install([{:pinout, "~> 0.1.3"}])

現在のボードのピン配置を印字

使い方は簡単です。Pinout.print/0 で現在のボードのピン配置図を印字します。
デバイスが検知できなかった場合は、Unknown Board が印字されます。

IEx
Pinout.print()

おそらく PC はサポート対象外なのでデバイスの検知ができないことと思いますが、Raspberry Pi Zero W 上で実行した場合は以下のとおり出力されます。

出力例
╭------------------------╮
|  oooooooooooooooooooo  |
|  1ooooooooooooooooooo  |
|  Raspberry Pi Zero W   |
|  ╭---╮     ╭--╮  ╭--╮  |
╰--╰---╯-----╰--╯--╰--╯--╯
        3v3 Power  [1] [2]  5v Power
  GPIO 2/I2C1 SDA  [3] [4]  5v Power
  GPIO 3/I2C1 SCL  [5] [6]  Ground
    GPIO 4/GPCLK0  [7] [8]  GPIO 14/UART TX
           Ground  [9] [10] GPIO 15/UART RX
          GPIO 17 [11] [12] GPIO 18/PCM CLK
          GPIO 27 [13] [14] Ground
          GPIO 22 [15] [16] GPIO 23
        3v3 Power [17] [18] GPIO 24
GPIO 10/SPI0 MOSI [19] [20] Ground
 GPIO 9/SPI0 MISO [21] [22] GPIO 25
GPIO 11/SPI0 SCLK [23] [24] GPIO 8/SPI0 CE0
           Ground [25] [26] GPIO 7/SPI0 CE1
GPIO 0/EEPROM SDA [27] [28] GPIO 1/EEPROM SCL
           GPIO 5 [29] [30] Ground
           GPIO 6 [31] [32] GPIO 12/PWM0
     GPIO 13/PWN1 [33] [34] Ground
   GPIO 19/PCM FS [35] [36] GPIO 16
          GPIO 26 [37] [38] GPIO 20/PCM DIN
           Ground [39] [40] GPIO 21/PCM DOUT

他のボードを確認してみたい場合

実は、現在のボード以外のボードのピン配置図を確認することもできます。

まず、pinout パッケージ がサポートしているボードの名称を列挙します。

IEx
Pinout.known_boards()
戻り値の例
["BeagleBone Black", "BeagleBone Black Wireless", "BeagleBone Blue",
 "BeagleBone Green Wireless", "GRiSP2", "MangoPi MQ-Pro", "NPi i.MX6 ULL",
 "PocketBeagle", "Raspberry Pi 2B", "Raspberry Pi 3B", "Raspberry Pi 3B+",
 "Raspberry Pi 400", "Raspberry Pi 4B", "Raspberry Pi T-Cobbler",
 "Raspberry Pi Zero 2 W", "Raspberry Pi Zero W"]

これらのボード名を識別子としてPinout.print/1に渡すと、現在のボードに関係なくピン配列を印刷できます。

IEx
Pinout.print("Raspberry Pi 4B")
出力例
╭----------------------------------╮
|  oooooooooooooooooooo       ╭-----╮
|  1ooooooooooooooooooo       |     |
|                             ╰-----╯
|                             ╭-----╮
|       Raspberry Pi 4B       |     |
|                             ╰-----╯
|                           ╭-------╮
|          ╭------╮         |       |
|  ╭--╮    |      |         ╰-------╯
╰--╰--╯----╰------╯-----------------╯
        3v3 Power  [1] [2]  5v Power
  GPIO 2/I2C1 SDA  [3] [4]  5v Power
  GPIO 3/I2C1 SCL  [5] [6]  Ground
    GPIO 4/GPCLK0  [7] [8]  GPIO 14/UART TX
           Ground  [9] [10] GPIO 15/UART RX
          GPIO 17 [11] [12] GPIO 18/PCM CLK
          GPIO 27 [13] [14] Ground
          GPIO 22 [15] [16] GPIO 23
        3v3 Power [17] [18] GPIO 24
GPIO 10/SPI0 MOSI [19] [20] Ground
 GPIO 9/SPI0 MISO [21] [22] GPIO 25
GPIO 11/SPI0 SCLK [23] [24] GPIO 8/SPI0 CE0
           Ground [25] [26] GPIO 7/SPI0 CE1
GPIO 0/EEPROM SDA [27] [28] GPIO 1/EEPROM SCL
           GPIO 5 [29] [30] Ground
           GPIO 6 [31] [32] GPIO 12/PWM0
     GPIO 13/PWN1 [33] [34] Ground
   GPIO 19/PCM FS [35] [36] GPIO 16
          GPIO 26 [37] [38] GPIO 20/PCM DIN
           Ground [39] [40] GPIO 21/PCM DOUT

Nerves + Livebook

まだ、実際の組み込みハードウェア(Raspberry Pi 等)を使ったことがない方、組み込みの経験があるけど ElixirNerves を使ったことがない方にはNerves Livebookをオススメします。

Nerves Livebookを使用すると、何も構築せずに実際のハードウェアで Nerves プロジェクトを試すことができます。 数分以内に、Raspberry PiBeagleboneNerves を実行できるようになります。 Livebook でコードを実行し、ブラウザーで快適に Nerves チュートリアルを進めることができます。

有志の方々が Nerves Livebook のセットアップ方法ついてのビデオを制作してくださっています。ありがとうございます。

Livebook のノートブック上でコードを実際に実行しながら進められるので、楽しく効率的に学べます。例えばブラウザ上で Wi-Fi の設定もできます。

pinout パッケージ にもノートブックがあります。

Run in Livebook

インターネットで Raspberry Pi のピン配置確認

https://pinout.xyz も便利です。

:tada::tada::tada:

最後に一言

本記事は 闘魂 Elixir #65 の成果です。ありがとうございます。

toukon-qiita-macbook_20230912_091808.jpg

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2