Intel Edisonの物理ピンの出力電圧を制御する。

前回は、「Intel Edisonの上にWebサーバを起動する。」で、EdisonをWebサーバとして使う方法を書きました。

今回は、やっとテスターが登場して電子工作っぽくなります。

Intel Edisonのピンの配置について

Breakout Boardに接続したEdisonを裏返すと、スルーホールが並んでいます。

SONY DSC

上から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です。ローレベルになっています。

SONY DSC

今度は、1を入力します。

echo 1 > /sys/class/gpio/gpio13/value

物理品の電圧レベルは、1.8Vになりました。ハイレベルの電圧が出ています。

SONY DSC

このピンから直接負荷を駆動することはできないので、一度トランジスタなどで増幅をする必要はありますが、これでEdisonから外部の様々なものを動作させられるようになりました!

About katty0324

Scroll To Top