![]()
6.Arduinoによる周辺デバイスとの通信 (2021.12.6-2024.2.21)
RasPiと同様にArduinoでもSPIやI2C通信が使用できます。自動走行実験車の制御にはArduinoを考えているので、周辺デバイスとの間で通信を使おうと言うのが今回のテーマです。昨今ではマイコンを支援する様々な周辺チップがこうした機能に対応していて、システムを構築しやすくなっています。実験車では近接センサーの値を読み取るためにADコンバーターを使用する計画で、SPI通信可能なチップを使うことでハードを簡略化します。近接センサーは前に2個、後ろに4個の計6個使う予定で、8個のアナログ入力を持つMCP3208が最適です。ADコンバーターで全センサーの値を読み取り、SPI通信によってArduinoに送り、ターミナル経由でPCの画面に表示する実験を行います。

その他に中距離センサー(4個)や車輪のエンコーダー(2個)等のI/O入力が多いため、RasPiで実験したI/OエキスパンダーMCP23017を使う予定です。このチップはI2C通信を使うため、同時に確認しておきたいと思います。I/Oエキスパンダは出力にも使えるので、ヘッドライトやウインカー、ストップランプ等の制御にも使います。チップ1個で16個の入出力に対応できることから、これ1個で全てをまかなえそうです。

この実験ではSPI/I2C通信がメインなので、各デバイス1入力でデータ収集を試します。これらの通信ではマスター1に対して複数のチップを接続できます。Arduinoがマスターとなり周辺チップはスレーブとして動作、マスターからの指示によって特定のスレーブが応答することになります。
準備中・・・
![]()