3.30. まとめ¶
スクリプトが物理世界とやり取りする際に真っ先に出てくる machine モジュールの各部分を、ひととおり見てきました。
GPIO の出力と入力 -- LED やトランジスタの駆動、ボタンやリミットスイッチの読み取り。あらゆるハードウェアプロジェクトが土台とする構成要素であり、信頼性が求められる読み取りのためのプルアップ/プルダウン抵抗とソフトウェアによるデバウンスを備えます。
アナログ信号 -- ADC でセンサーやポテンショメータ、その他あらゆる連続的に変化する電圧を読み取ること。そして DAC が使えない場合に、PWM とローパス RC フィルタで制御された電圧を生成すること。
PWM の応用 -- LED の調光、H ブリッジを介した DC モータの速度可変、サーボの位置決め。1 つの波形に対して、異なる物理的な平均化(人の目、モータのインダクタンス)と異なる枠組み(デューティ比対絶対パルス幅)があります。
シリアルバス -- 非同期のポイントツーポイントリンク向けの
UART、デバイスごとに 1 つのチップセレクトを持つ高速なオンボードペリフェラル向けのSPI、わずか 2 本の線で低速のマルチデバイスセンサーバスを構成するI2C、モジュール間の堅牢なマルチマスタフィールドバス向けのCAN。実運用のパターン -- ハングからの復帰のためのウォッチドッグタイマー、バッテリーを長持ちさせるためのスリープモード。どちらもカメラが初めて作業台を離れたときに不可欠になります。
これだけあれば、組み込みデバイスの センス -- プラン -- アクト のループを構築できます。I2C / SPI / ADC でセンサーを読み取り、Python で判断を下し、PWM / GPIO でアクチュエータを駆動し、UART / CAN でステータスを報告し、イベントの合間にスリープする、というループです。
3.30.1. このリファレンスを後で活用する¶
ハードウェアの各章は、一度読み通すものではなく、リファレンス資料として扱ってください。machine モジュールのリファレンスページには、「この呼び出しの正確な名前は何か」だけが知りたいときに、すべてのクラスとメソッドが 1 か所にまとめられています。ここにある章ごとのページは、リファレンス資料だけでは得られない「どのつまみが何をするのか、そしてなぜか」という視点に立ち返るための場所です。
3.30.2. 次に進むべき場所¶
ビジョンセンサー が次の大きなトピックです。このセクションがほぼすべての MCU に登場する汎用ペリフェラル(Pin、ADC、PWM、UART、SPI、I2C、CAN)を扱ったのに対し、次のセクションではカメラの 本質的な ペリフェラルを非常に深く扱います。それはイメージセンサーであり、光子がガラスに当たってから RAM 上のピクセルのバッファになるまでの間の、光学系、シリコン、信号処理の長い連鎖です。ツールキットは csi モジュールと image モジュールへと移りますが、GPIO の駆動、I2C を介した通信、PWM の使用について学んだことはすべてそのまま引き継がれます。ストロボ、トリガー、センサーシールドはいずれも、今ちょうど扱ったのと同じバスを使います。