前回は、「Intel Edisonの上にWebサーバを起動する。」で、EdisonをWebサーバとして使う方法を書きました。
今回は、やっとテスターが登場して電子工作っぽくなります。
Intel Edisonのピンの配置について
Breakout Boardに接続したEdisonを裏返すと、スルーホールが並んでいます。
上からJ17〜J20、右から1〜14という番号がついています。これらのうちのいくつかは汎用に使えるピンになっています。
下記はmraaというライブラリのドキュメントですが、ピン配置についても言及されています。
mraa: Intel Edison
これを見ると、グラウンドピンはJ19-3です。裏返した状態で、上から3行目、右から3列目の穴です。
汎用ピンはたくさんありますが、今回はJ18-1を使うことにしました。上から2行目、右から1列目の穴です。これは、GPIOの13番という番号がついています。GPIOというのは、General Purpose Input/Outputの略で、汎用入出力のことです。
役割 | ピン |
GND | J19-3 |
GPIO 13 | J18-1 |
テストワイヤを繋ぐためにハンダ付けすることもできますが、下記のスルーホール用のテストワイヤを使うと、ハンダ付けなしで回路の接続ができます。
サンハヤト スルホール用テストワイヤ TTW-200
これは便利です。
Intel Edisonの物理ピンの制御をしてみる
グラウンドがJ19-3番のピンで、GPIOの13番ポートがJ18-1という配置でした。
もちろんグラウンドは制御するものではないので、今回制御しようとしているのはGPIOの13番ポートです。下記を参考に電圧を制御してみます。
Intel Edison と ruby で Lチカ – Qiita
物理ピンの制御をするというのは、そこから出てくる電圧を上げたり下げたりするということです。
GPIOの使用の準備
まずは、GPIOの13番を使用することを宣言します。GPIO13が使える状態だと、下記のパスにファイルが存在しますが、今はまだありません。
$ ls /sys/class/gpio/gpio13
ls: /sys/class/gpio/gpio13: No such file or directory
ここで、exportというファイルに対して、13という文字列を入力します。
echo 13 > /sys/class/gpio/export
すると、先ほど存在しなかったパスにファイルが用意されます。
$ ls /sys/class/gpio/gpio13
active_low device direction edge power subsystem uevent value
これでピン自体が制御できるようになりました。
GPIOポートを出力用に設定
GPIO13が使える状態になったら、これを出力用として宣言します。各ピンは、入力専用、出力専用ではなく、切り替えられるようになっています。
入出力の方向は、directionというファイルに記述されています。
$ cat /sys/class/gpio/gpio13/direction
in
最初はin、つまり入力ピンとして宣言されていますので、これをout、出力ピンに変更します。
echo out > /sys/class/gpio/gpio13/direction
これでGPIO13ポートが、出力ピンとして使える状態になりました。
$ cat /sys/class/gpio/gpio13/direction
out
これで準備が完了です。
ハイレベル、ローレベルの電圧を出力する
valueというファイルに0を入力すると、物理ピンの出力がローレベルになります。
echo 0 > /sys/class/gpio/gpio13/value
テスターで測定してみると、0Vです。ローレベルになっています。
今度は、1を入力します。
echo 1 > /sys/class/gpio/gpio13/value
物理品の電圧レベルは、1.8Vになりました。ハイレベルの電圧が出ています。
このピンから直接負荷を駆動することはできないので、一度トランジスタなどで増幅をする必要はありますが、これでEdisonから外部の様々なものを動作させられるようになりました!
コメント
[…] 「Intel Edisonの物理ピンの出力電圧を制御する。」で、Edisonの出力をプログラムで制御しました。 […]