配線・デバイスマッピング¶
シリアルデバイスの実体(/dev/ttyUSB* など)は接続順や環境で変化するため、
QUESTiX では udev ルール でエイリアスを固定し、設定ファイルから安定して参照します。
デバイスパス一覧¶
| 論理名 | 用途 | 既定の参照先 | 備考 |
|---|---|---|---|
| サーボ | tilt / trigger サーボ | /dev/servo |
udev エイリアス(固定化) |
| UART コントローラ | 操縦入力 | /dev/ttyAMA0 |
Pi 内蔵 UART (GPIO14/15) |
| DDT モーター | 走行 | RS-485 変換器 | RS-485 バス上で ID 識別 |
| YDLiDAR | スキャン | USB | ドライバの設定に従う |
udev とデバイス固定化¶
hardware_interfaces / robot_autostart ロールが udev ルール(50-questix-robot.rules)を
適用し、シリアルデバイスのエイリアスやアクセス権限を設定します。これにより
/dev/servo のような安定した名前でデバイスを参照できます。
# 現在のシリアルデバイスを確認
ls -l /dev/serial/by-id/
ls -l /dev/servo # udev エイリアスが解決されているか確認
# udev ルールの再読み込み(変更時)
sudo udevadm control --reload-rules
sudo udevadm trigger
アクセス権限(グループ)¶
各デバイスへアクセスするには、対応するグループへの所属が必要です。
| グループ | 対象 |
|---|---|
dialout |
シリアルポート(/dev/ttyAMA0, /dev/servo, RS-485 変換器 等) |
gpio |
GPIO(/dev/gpiochip4) |
input |
入力デバイス(Joy 等) |
raspberry_pi_setup ロールがユーザーをこれらのグループに追加します。systemd サービスも
SupplementaryGroups=gpio input dialout を設定しています
(自動起動 (systemd))。
# 現在のユーザーのグループを確認
groups
# 手動で追加する場合(反映には再ログイン or 再起動が必要)
sudo usermod -aG dialout,gpio,input "$USER"
UART の有効化¶
Pi 内蔵 UART(/dev/ttyAMA0)を使うには、/boot/firmware/config.txt で UART を有効化し、
シリアルコンソールを無効化する必要があります。hardware_interfaces ロールが I2C / SPI を含む
これらの設定を行います。設定変更後は再起動してください。
接続が見つからないとき
dmesg | tailでデバイスの認識を確認する。ls -l /dev/serial/by-id/で実体パスを確認する。groupsでアクセス権限(dialout/gpio)を確認する。- ボーレート(モーター 57600 / サーボ 115200 / UART 115200)が設定と一致しているか確認する。