超小型SBC『LicheePi Nano』を触る! その3 〜GPIO操作(Lチカッ!)編〜
今回はLicheePi nanoのGPIOを操作する方法をまとめていきます。
『LicheePi nanoの記事第三回にしてLチカのかよ!』と思われますが、Arduinoやラズパイのように操作方法が簡単に分からなかったので第三回目での記事になります。
ラズパイではPythonなどでライブラリが用意されていましたが、LicheePi nanoの標準OSでは容量の関係なのか簡単な操作コマンド等は見当たりませんでした。
なのでコマンドを幾つか叩いてGPIOを制御する方法を紹介します。
記事シリーズ
学習内容
- LicheePi nanoでLチカする
- LinuxでコマンドからGPIOを制御
事前実践準備
- 前回までの記事を確認
- LicheePi Nano本体
- USBシリアル変換モジュール(cp2104等)
- ブレッドボードなどの配線機材
- Arduino IDE(シリアル通信ソフトならなんでも良い)
- 電子工作の配線知識
- Linuxの基礎知識
- 砲弾型LED
- 抵抗 330Ω
1. LEDの配線
GPIOを触るということで、おなじみのLチカ
をするためにまずLEDの配線をしていきます。
LicheePi nanoのピンアサインは下の図を参考にD7
ピンとLEDを適当な抵抗を挟んで配線します。
上の図からわかると通り、LicheePi nanoはラズパイと違ってGNDピンが1ピンしか用意されていません。
なのでブレッドボードを使う場合は、下の写真のように正極とGND用の列が用意された物を使うと良いです。

こういう仕様をみるとLicheePi nanoのコンセプトが電子工作ではなく、あくまで小型コンピュータを作ることが目的であることが読み取れるかもしれません。
2. コマンドを叩いてGPIO操作
今回筆者はボードに取り付けられたSPIフラッシュ内蔵のOSからGPIO操作を確認しました。
microSDに書き込んだOSからも同じように操作できるはずですが、筆者は試していないので同じ手順でできない可能性がありますので注意してください。
早速LicheePi nanoにログインできたら、以下のコマンドでGPIO操作に関連するディレクトリを確認します。
$ ls /sys/class/gpio/

幾つかファイルやフォルダが出てきましたが、重要なのはexport
ファイルです。
このファイルにGPIOのピン番号
を書き込むことでGPIOを操作するためのディレクトリが出来上がります。
ここで注意が必要で、上記のピン番号
というのはLicheePi nanoのピン番号ではなく、SOC(CPU)であるF1C100S
のピン番号を指しています。
そのためLicheePi nanoとSOCのピン関係を知るために以下の回路図PDFデータを参考にしてtamesiniLicheePi nanoのD7
ピンを確認していきます。
https://fdvad021asfd8q.oss-cn-hangzhou.aliyuncs.com/migrate/Lichee_nano.pdf
ここからLicheepi nanoのD7
ピンは、SOCのPE10
ピンであることがわかります。
わかりやすい図を下に載せています。
PE10
はポートEの10番目のピンと解釈します。E10
という文字列はexport
ファイルに書き込めないので、以下のように計算をして数字を導き出します。
Eはアルファベット順の`5`番目なので、 (5 - 1) * 32 + 10 = 138 <- `138`をコマンドでexportファイルに書き込む
今回はこの情報を元にGPIOの操作をしていきます。
以下のコマンドでexport
ファイルに数字を書き込みます。
$ echo 138 > /sys/class/gpio/export
すると以下のように/sys/class/gpio/
ディレクトリにgpio138
フォルダができ上がります。

ディレクトリを確認したら、中をみてみると以下のようになっているはずです。

ここで今回重要なのはdirection
とvalue
ファイルです。direction
ファイルではGPIOを出力か入力かを管理しています。
出力ならout
、入力ならin
が記述されています。
今回は出力で使用したいので、以下のコマンドで出力モードにします。
$ echo out > /sys/class/gpio/gpios138/direction
次にvalue
ファイルは出力モードの場合電流を出力するかしないかを制御できます。1
で出力して、0
で出力しないを制御します。
以下のコマンドでD7
ピンから電流を出力してLEDが光るか確かめましょう。
$ echo 1 > /sys/class/gpio/gpio138/value
コマンドを入力してエラーが出なければ写真通りLEDが点灯します。

これでLチカまでの一通りの作業が終わりました。
実はこの作業はSOCピン番号さえわかればラズパイでも同じことができます。
ですがラズパイではライブラリの方が充実しているので、この方法を試す機会はあまりなさそうです。
個人的に以下のリポジトリでコマンドから簡単にGPIOのON・OFFを制御できる実行ファイルをGoで作成してみました。
故障等は自己責任になりますが、試したい方がぜひ触ってみてください。
GPIOの操作がわかったので少しは用途が増えてよかったです。
まとめ
- LicheePi nanoでLチカができた!
- Linux上でコマンドからGPIOを制御する方法がわかった
コメント
コメントを投稿