シェルからの ハード操作超入門

第 2 特集
第
2章
ご購入はこちら
第 2 章 第 2 特集ハード操作超入門
ステップ・バイ・ステップでメカニズムを確認!
シェルからの
ハード操作超入門
中村 和敬
①/sys/class/gpio/exportに使用するGPIOポート番号を
書き込む
書き込み
gpio/export
シェル
HDMI
ディスプレイ
ネットワーク
(インターネット)
ラズベリー・パイ
gpio/gpio17
作 成
イーサ
ネット
カーネル
USB
②カーネルが書き込みを検知して,操作用のデバイス・ファイル
群を作成
USB
HDMI
プロセッサ
GPIO
(a)
ステップ1:デバイスファイルを作成する
③/sys/class/gpio/gpio17/valueに値を書き込み
書き込み
シェル
gpio17/value
キーボード
マウス
チカ
LED
図 2 シェルを使ったハードウェア操作のメカニズムをステップ・
バイ・ステップで確かめてみる
4107044_ME05
GPIO17番ピン
操 作
カーネル
④カーネルが書き込みを検知して,対応する操作を実行
(b)
ステップ2:デバイス・ファイルを操作
(=ハードウェアを操作)する
図 1 デバイス・ファイルを通じた GPIO ポート制御の仕組み
汎用 OS ボード・コンピュータの特徴
●マイコンと比べてソフト開発の比率が高い
Linux が動作する代表的なボード・コンピュータと
して,ラズベリー・パイがあります.GPIO や I2C と
いった組み込み向けのインターフェースから,イーサ
ネットや USB といった PC 向けのインターフェースま
でそろっていて,ちょっとしたガジェットを作る際の
ベースとして,定番になった感があります.
ラズベリー・パイのような Linux ベースのボード・
コンピュータを利用する場合,マイコンを用いた機器
開発と比べてソフトウェア開発の比率が格段に高まり
ます.
● ムダにたくさん書く必要はない…
ハードの操作はむしろ簡単
OS が載っているためにできることが制限されたよ
2016 年 10 月号
うに思うことがあるかもしれません.
しかし,ラズベリー・パイの標準の OS,Raspbian
は,ちょっと気の利いた小物を開発する際に便利なさ
まざまな機能を提供しています.シェルを通じてそれ
らを組み合わせることで,初心者でも簡単にさまざま
な機能を持った機器を作ることができます.
また,Raspbian 上からも,簡単な手順で GPIO など
の低レベル・ポートを直接操作することができます.
こういった操作はシェルを通じて行うことができるの
で,対話的に周辺機器を操作して動作を確認しながら
開発を進めることができます.
つまりシェルの使い方を学ぶことで,一からプログ
ラムを書かなければならない場合と比べてはるかに簡
単に開発を進めることができます.
UNIX ハード制御の基本メカニズム
●ファイルの読み書きでデバイスを制御できる
UNIX では仮想ファイルにデータを書き込むことに
よって,さまざまなデバイスの制御を行うことができ
ます.UNIX は仮想ファイルへの書き込みをデバイス
の操作と解釈し,内部でファイルに対応するデバイ
ス・ドライバを呼び出し,対応する操作を行います
(図 1)
.今回は LED の点滅ということで,出力の例を
示します.入力についても同じようにファイルを読み
75