番外編 UPボード (2) GPIOピンでLチカ
UPボード(UP Squared)は、GPIOが用意されています。ラズパイと同じ40ピンです。データシートによれば、割り付けられている信号は異なりますが、電源関係は同じです。
物理ピン番号 | 機能 | 物理ピン番号 | 機能 |
---|---|---|---|
1 | +3.3V | 2 | +5V |
3 | I2C1_SDA | 4 | +5V |
5 | I2C1_SCL | 6 | GND |
7 | ISH_GPIO0 | 8 | UART_TX |
9 | GND | 10 | UART_RX |
11 | SD2_CMD | 12 | I2S2_CLK |
13 | SD2_CLK | 14 | GND |
15 | SD2_SD0 | 16 | SD2_SD1 |
17 | +3.3V | 18 | SD2_SD2 |
19 | SPI2_MOSI | 20 | GND |
21 | SPI2_MISO | 22 | SD2_SD3 |
23 | SPI2_CLK | 24 | ISH_SPI2_CS0 |
25 | GND | 26 | ISH_SPI2_CS1 |
27 | I2C0_SDA | 28 | I2C0_SCL |
29 | ISH_GPIO2 | 30 | GND |
31 | ISH_GPIO3 | 32 | PWM0 |
33 | PWM1 | 34 | GND |
35 | I2S2_FRM | 36 | GPIO27 |
37 | GPIO13 | 38 | I2S2_RX |
39 | GND | 40 | I2S2_TX |
|
●RPi-GPIOライブラリでLチカ
ラズパイにもあるRPi-GPIOライブラリを導入します。pythonライブラリを管理してくれるpipを利用します。Pythonは、執筆時点で2.xと3.xがあります。python2.xは2019年末でサポートが終わりますから、python3.xを利用します。ラズパイと同じく両方のバージョンが入っているので、ライブラリの導入は、バージョン3を意識して行います。ライブラリは、デフォルトだとバージョン2にインストールされます。
sudo apt-get install python3-pip pip3 install RPi.GPIO |
pip3をインストールして、そのpip3を使ってRPi.GPIOライブラリをインストールします。
pip3 list |
で、本マシンにインストールされたライブラリ一覧が表示されます。バージョン0.7.0が入ったようです。
このライブラリ、ピン番号はラズパイに合わせて記述します。LEDを4につないでいます。GPIO4は物理ピンでは7番です。LEDは定電流ダイオード内蔵を使っているので、電流制限抵抗をつけていません。
import RPi.GPIO as GPIO
import time
# Pin Definitons:
ledPin = 4
# Pin Setup:
GPIO.setmode(GPIO.BCM)
GPIO.setup(ledPin, GPIO.OUT) # LED pin set as output
print("Here we go! Press CTRL+C to exit")
try:
while 1:
GPIO.output(ledPin, GPIO.HIGH)
time.sleep(0.5)
GPIO.output(ledPin, GPIO.LOW)
time.sleep(0.5)
except KeyboardInterrupt: # If CTRL+C is pressed, exit cleanly:
GPIO.cleanup() # cleanup all GPIO
現在のラズパイでは、GPIO、I2C、SPI、UARTなどは、ユーザpiのグループに属していて、root権限なしでアクセスができます。今回インストールしたubilinuxではそのような対応はされていません。
上記のプログラムをテキスト・エディタKateにコピーし、home/ubilinuxにled1.pyで保存します。ターミナルから、
sudo python led1.py |
で実行します。
●I2Cインターフェース
i2cdetectなどのツールは、i2c-toolsという一連のインストール・ファイルに入っています。apt-getすると、すでに最新版が入っているといわれました。
sudo i2cdetect -y 1 |
しかし、内部にあるデバイスは表示されますが、GPIOにつないだセンサなどは表示されませんでした。/devの下にたくさんのI2C-xがあります。0、1、2に何らかのデバイスがつながっているようです。もし、GPIOにつながったデバイスが利用できるようになったら、続きの記事を書く予定です。