この文章では,小型センサロガーのピンアサインとともにRaspberry Pi(RPi) zeroのピンアサインも示します.RPiの各ピンには,一部を除き汎用端子として利用できるようになっており,それらはGPIO_**という名前が割り振られています.Pi4JではこのGPIO_**を使ってピンを制御をします.例えば,ピン番号38の端子を汎用出力ピンにするのであれば,次に示すようになります.

final GpioController gpio = GpioFactory.getInstance();
final GpioPinDigitalOutput pin = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_28, "MyLED", PinState.HIGH);

 ここで,インスタンスgpioはPi4Jにおいて汎用入出力ピンを管理するもの(ファクトリという)であり,そのgpioのメソッドであるprovisionDigitalOutputPinにより,ピン番号38すなわちGPIO_28のピンをディジタル出力端子にしてインスタンスpinとして生成します.なお,ピン番号とPi4Jでの名称の対応については,この文章の一番下に表にして示します.

Raspberry PiにはPWM(Pulse Width Modulation)を出力できるピン(ピン番号12,GPIO_01)が1個だけあります.この端子からPWM出力するには,上記gpioのインスタンスprivisionPwmOutputPinを用います.下にその例を示します.

final GpioPinPwmOutput motorSpeed = gpio.provisionPwmOutputPin(RaspiPin.GPIO_01);

 特定のピンにはI2CやSPI,UART通信を行えるようになっており,GPIO名とは別の名前が割り振られています.例えばピン番号03,GPIO_08はI2CのSDA,ピン番号05,GPIO_09はI2CのSCLとして動作させることができます.これらの端子をI2Cとして利用するには,これまでのようにGPIO_**を使うのではなく,下に示すような方法となります.

I2CBus i2cbus = I2CFactory.getInstance(I2CBus.BUS_1);

 この例では,I2Cのチャネル1のインスタンスを生成し,i2cbusとしています.そして,I2C通信するにはインスタンスi2cbusのインスタンスを用います.


下の表はRaspberry Pi zeroのピン番号,Pi4Jでのピンの名称,一般的なピンの名称,汎用端子以外の役割とともに,小型センサロガーに備わる電子デバイスとの接続についても記しておきます.なお,各デバイスの接続状況を回路図でもお確かめください.

 

ピン番号Pi4Jでの名称ピン名称汎用端子以外の役割接続されているデバイス
01 - 3.3[V] 3.3[V]電源 -
02 - 5[V] 5[V]電源 -
03 GPIO_08 GPIO08 / SDA1 I2C通信のデータ線 温湿度センサ(SDA)
04 - 5[V] 5[V]電源 -
05 GPIO_09 GPIO09 / SCL1 I2C通信のクロック線 温湿度センサ(SCL)
06 - GND グランド -
07 GPIO_07 GPIO07 / GCLK グローバルクロック 温湿度センサ(観測完了)
08 GPIO_15 GPIO15 / TXD0 UART送信 無線通信モジュール(TX)
09 - GND グランド -
10 GPIO_16 GPIO16 / RXD0 UART受信 無線通信モジュール(RX)
11 GPIO_00 GPIO00 - 7セグメントLED(セグメントF) 
12 GPIO_01

GPIO01 /

PCM_CLK / PWM0

PCM音源用クロック /

PWM出力用端子

ファンドライバ(速度) 
13 GPIO_02 GPIO02 - 7セグメントLED(セグメントG) 
14 - GND グランド -
15 GPIO_03 GPIO03 - 7セグメントLED(セグメントE) 
16 GPIO_04 GPIO04 - 7セグメントLED(セグメントD) 
17  - 3.3[V] 3.3[V]電源 -
18 GPIO_05 GPIO05 - 7セグメントLED(セグメントA) 
19 GPIO_12 MOSI SPI通信のMOSI ファンドライバ(停止・逆転) 
20  - GND グランド -
21 GPIO_13  MISO SPI通信のMISO 7セグメントLED(セグメントB) 
22 GPIO_06 GPIO06 - 7セグメントLED(セグメントC) 
23 GPIO_14 CLK SPI通信のクロック 7セグメントLED(セグメントDP) 
24 GPIO_10 CE0 SPI通信のチップイネーブル0 7セグメントLED(DP4のカソードコモン) 
25 - GND グランド -
26 GPIO_11 CE1 SPI通信のチップイネーブル1 7セグメントLED(DP3のカソードコモン) 
27 - EEPROM ID EEPROMのID(GPIO不可) -
28 - EEPROM ID EEPROMのID(GPIO不可) -
29 GPIO_21 GPIO21 - 7セグメントLED(DP2のカソードコモン) 
30 GND グランド -
31 GPIO_22 GPIO22 - 7セグメントLED(DP1のカソードコモン) 
32 GPIO_26 GPIO26 - タクトスイッチ(SW5) 
33 GPIO_23 GPIO23 - トグルスイッチ(SW4) 
34 - GND グランド -
35 GPIO_24 GPIO24 - トグルスイッチ(SW3) 
36 GPIO_27 GPIO27 - トグルスイッチ(SW2) 
37 GPIO_25 GPIO25 - トグルスイッチ(SW1) 
38 GPIO_28 GPIO28 - LED 
39 - GND グランド -
40 GPIO_29 GPIO29 - 無線通信モジュール(リセット)