「AWS IoT ボタン」を用いずにインターネット経由でスマホによるラジコン操作
ブレッドボードを用いて I2C デバイスの動作設定を行う (2日目) 2ページ目 (全 6 ページ)
注目の記事

ブレッドボードで回路を組む

以下のように回路を組みます。動作検証ですので、ブレッドボードを利用します。

Uploaded Image

globally-remote-controllable-bulldozer

ACM1602NI と Grove I2C モータードライバモジュールの動作電圧が 3.3v および 5v と異なるため、厳密に作るならば I2C の電圧レベルを変換する必要がありますが、今回のような簡単な回路ではあまり気にせずにそのまま接続しても動きます。

Connecting the 5V Arduino directly to a single 3.3V-powered I2C chip usually works, even though it violates official specifications in multiple ways.
http://playground.arduino.cc/Main/I2CBi-directionalLevelShifter

ピン配置の参考資料

I2C デバイスの動作確認

Uploaded Image

事前設定

制御プログラムを動作させるための Raspberry Pi 設定を事前に行います。

IP 固定

無線 LAN 接続の設定を行ったら「Raspberry Pi 無線接続時の IP 固定」を参考に IP を固定しておきます。

SSH が切れにくくするための設定

Raspberry Pi 3 より前のモデルで無線 LAN 接続を行うためには USB 無線 LAN 子機が必要でした。この方法の場合、通信が途中で切れてしまう現象が発生します。「Raspberry Pi で ssh 通信が切れる場合の対応例」等、何らかの対策を行っておきます。

パッケージの管理情報を最新にする

Raspberry Pi パッケージ管理コマンド (NOOBS)」にも記載の apt-get コマンドでパッケージの管理情報を最新にしておきます。

sudo apt-get update

I2C を利用するための設定

Raspberry Pi で I2C を利用するための設定」を参考に I2C 設定を有効にしておきます。

I2C デバイスの動作検証

ACM1602NI

先程のページの後半に記載のあるサンプルコードを用いて ACM1602NI の動作検証を行っておきます。

Grove I2C Motor Driver

以下のコマンドで、モータードライバの出力電圧が制御できることを確認します。

参考資料

注意事項

  • モータードライバモジュールの上部にある、リセットボタンを押してから実行してください (モータードライバの電源を入れてから Raspberry Pi の電源を入れてください)
  • モーターの耐電圧は 3.0V です。誤って高電圧をかけないように電圧レベルの設定値に注意してください。
  • 電圧レベルと向きの両方を指定する必要があります。片方だけでは出力に失敗します。

出力電圧 0V

i2cset -y 1 0x0f 0x82 0x00 0x00 i

出力電圧 2.5V (9V 電源の場合。M1、M2、両方)

i2cset -y 1 0x0f 0x82 0x46 0x00 i
i2cset -y 1 0x0f 0x82 0x00 0x46 i
i2cset -y 1 0x0f 0x82 0x46 0x46 i

電圧の向きが左右同じ (前進、後退)

i2cset -y 1 0x0f 0xaa 0x0a 0x01 i
i2cset -y 1 0x0f 0xaa 0x05 0x01 i

電圧の向きが左右逆 (右回転、左回転)

i2cset -y 1 0x0f 0xaa 0x09 0x01 i
i2cset -y 1 0x0f 0xaa 0x06 0x01 i