🐧 Linux 総合学習プラットフォーム

実機制御 GPIO/I2C/SPI・RTの用語集(17語)

実機制御 GPIO/I2C/SPI・RTに関する Linux 用語を、読み・意味・補足つきでまとめました。

CSV追記しーえすぶいついき
1行=1レコードのCSVファイル末尾に、新しい行を足していく記録方法。
「日時,値」のような1行を、シェルの追記リダイレクト(>>)でファイルの末尾に加える手法。上書き(>)と違い既存の行を消さないため、実行のたびにデータが積み上がり時系列の記録になる。cronと組み合わせれば定期的にレコードが増え、後から表計算で読み込んでグラフ化するのも容易。
dialoutグループだいあるあうとぐるーぷ
シリアルポート等の通信デバイスへのアクセスを許すユーザーグループ。
多くのLinuxディストリで、/dev/ttyUSB0のようなシリアルデバイスの所有グループになっている。一般ユーザーがsudoなしでこれらを開くには、usermod -aG dialout で自分をこのグループに追加する。追加は現在のセッションには即反映されず、再ログインや再起動が必要。「設定したのにPermission deniedが直らない」多くはこの反映待ちが原因。
GPIOじーぴーあいおー
汎用入出力ピン。LED点灯やボタン読み取りなど実機制御の土台。
General Purpose Input/Output。チップ名とライン番号で個々のピンを指定する。
I2Cあいすくえあシー
SDA/SCLの2線で複数機器を接続するシリアル通信。各機器をアドレスで識別。
i2cdetectで機器一覧、i2cget/i2csetでレジスタを読み書き。センサやRTC接続に多用。
libcameraりぶかめら
Raspberry Pi等でカメラを扱う新しめのライブラリとツール群。
カメラの露出やピントの制御を担う比較的新しい枠組みで、Raspberry Piのカメラモジュールはこの系統で扱うのが主流。静止画のrpicam-still、動画のrpicam-vidなどのツールがある。ツール名は raspistill → libcamera-still → rpicam-still と世代で改名されてきたため、手元の環境で動く正確な名前は公式ドキュメントで確認するのが安全。
libgpiodりぶじーぴーアイオーディー
現在標準のGPIO操作ライブラリ/ツール群(gpioget/gpioset等)。
/dev/gpiochipN を介して操作し、プロセス終了時にラインを自動解放する。旧sysfs方式の後継。
PREEMPT_RTぷりえんぷとあーるてぃー
Linuxにリアルタイム性を与えるカーネルパッチ/構成。
カーネル処理の多くをプリエンプト可能にし割り込み応答の最悪値を抑える。uname -aで確認。
PWMぴーだぶりゅーえむ
HIGHの時間比(デューティ比)を変えて擬似アナログ制御する手法。
LED調光・モータ速度・サーボ角度に使う。/sys/class/pwm でperiodとduty_cycleを設定。
SPIえすぴーあい
MOSI/MISO/SCLK/CSの4線を使う高速な全二重シリアル通信。
I2Cより速いがデバイスごとにCS線が必要。/dev/spidevX.Y を介して通信する。
sysfs方式(GPIO)しすふぁいるしすてむほうしき
/sys/class/gpio にexportして操作する旧方式。現在は非推奨。
Linux 4.8以降deprecated。プロセスが落ちてもピンが解放されない等の問題がありlibgpiodへ移行。
UARTゆーあーと
2本の信号線で文字を非同期にやり取りする、最も基本的なシリアル通信。
Universal Asynchronous Receiver/Transmitterの略。送信(TX)と受信(RX)を交差でつなぎ、GNDを共通にして通信する。共通クロック線を持たないため、双方であらかじめ速度(ボーレート)を合わせる必要がある。仕組みが単純で壊れにくく、画面もネットワークも無い基板と対話できる「最後の命綱」として組込みで多用される。
V4L2ぶいふぉーえるつー
Linuxで映像入力機器を統一的に扱う標準の枠組み。/dev/video0等で見える。
Video4Linux2の略。種類の違うカメラやキャプチャ機器を、アプリから同じ作法で扱えるようにする共通の窓口。多くのUSBカメラは挿すと/dev/video0として現れる。v4l2-ctlで接続機器や対応解像度を調べられる。Raspberry Piのカメラモジュールは近年libcamera系で扱うことが多く、そこは住み分けがある。
センサロギングせんさろぎんぐ
センサの測定値を定期的に読み取り、時系列で記録し続けること。
温度や湿度などをI2Cなどで一定間隔ごとに読み、日時とともにファイルへ蓄積する仕組み。読み取り・変換・追記を1本のスクリプトにまとめ、cronで定期実行するのが定番。物理世界の変化をデジタルの数字にして保存する、組込み入出力の基本パターンで、対象センサが変わっても骨格は共通。
タイムラプスたいむらぷす
一定間隔で撮った連番の静止画を並べ、変化を早送りで見せる手法。
cronなどで定期的に1枚ずつ撮影し、日時入りのファイル名で連番画像を溜め、後で順に再生することで、花の開花や空の移ろいといったゆっくりした変化を短時間に凝縮して見せる。定点観測カメラの自然な発展形で、静止画を撮る仕組みさえ作れば、あとは間隔と枚数を決めるだけで作品にできる。
プルアップ/プルダウンぷるあっぷぷるだうん
入力ピンを既定でHIGH/LOWに固定する抵抗設定。
未接続時の電位を安定させ、ノイズによる誤検出を防ぐ。ボタン回路で重要。
ボーレートぼーれーと
シリアル通信で1秒あたりに送る信号の速さ。両端で一致が必須。
UARTなどで1秒間に何ビット送るかを表す速度。共通クロックを持たないUARTでは、送る側と受ける側でこの値を揃えないと区切りがずれ、文字化けした記号の羅列になる。組込みでは115200が事実上の標準で、ほかに9600などもある。よく「115200 8N1」(速度・データ8bit・パリティなし・ストップ1bit)の形で表記される。
レイテンシれいてんし
事象の発生から処理されるまでの遅延時間。
リアルタイム用途では平均より「最悪値」が重要。cyclictestで実測評価する。

▶ 学習アプリで「引く」を使う