Home Made Garbage

Raspberry Pi Zero W 単体でラジコンカー自作

ホーム
電子工作
Raspberry Pi
WordPress
IOT

前回Raspberry Pi Zero Wでサーボモータを制御してみてラズパイでなにかしらを制御するのはシンドいなぁという感想を得たのですが。。。デジタル信号制御なら問題ないだろということで、I2C入力のモータドライバでラジコン作りました。

Raspberry Pi Zero W と Blynk で サーボモータ制御

ここではスマホアプリ Blynk とラズパイでI2C入力のモータドライバを介してモータをコントロールします。

構成

部品

I2Cモータードライバ・モジュール DRV8830

I2C入力によって、モータ供給電圧(スピード)と供給電圧方向(回転方向)を制御します。円形ロボットシャーシキットの左右のモータを制御するため2個のモジュールを使用しました。

I2Cアドレス設定

2個のモジュールを制御する必要がありますので、それぞれ異なるI2Cアドレスを設定します。

本モジュールは基板上のジャンパA1, A0のステートによって以下の表のようにアドレスを指定することができます。

表のアドレスxは読み込み時には1、書き込み時は0をしてします。ここでは書き込みのみ使用します。左モータ用モジュールのジャンパを両方GND (アドレス:0x60)、右モータ用モジュールのジャンパを両方Open (アドレス:0x64)としました。

書き込みI2Cデータ

アドレス0x00に8bitの情報を書き込むことでモータを制御します。
各ビットの設定は以下の通り

blynk設定

ここではblynk の2個のジョイスティックのx軸を使用して左右のモータを制御します。

新規プロジェクトを作成します。ハードウェアはラズパイ zeroがまだないのでとりあえずRaspberry Pi 3Bを選択。Conection TypeにはWiFiを指定します。
AUTH TOKENはコードコンパイル時に使用しますのでメール送信してメモしておきます。

ウィジェットとしてジョイスティックを2個配置します。

2個のジョイスティックの設定はそれぞれのx軸をヴァーチャルピンV0, V1に出力させ、値は-63~63としました。

プログラム

サーボ制御同様にC++を採用しました。

Blynkライブラリインストール

ラズパイにBlynkライブラリをインストールします。
詳細は https://github.com/blynkkk/blynk-library/tree/master/linux 通りでターミナルを起動して

$ git clone https://github.com/blynkkk/blynk-library.git

でOK

ラズパイI2C有効化

Raspberry Piの設定を開きインターフェースのタグでI2Cの有効を選択しRebootします。

C++プログラミング

Blynkライブラリがインストールされるとホームにblynk-library/linuxフォルダが生成されます。linuxフォルダをコピーするなどして、その中のmain.cppを以下のように書き換えます。

BlynkのV0, V1で値を受けてモータの回転方向とスピードを制御しています。

wiringPiのI2Cライブラリを使用しています。

コンパイル

main.cppのあるフォルダに移動して以下を実行。

$ make clean all target=raspberry 

Blynk実行

つづいて以下を実行

$ sudo ./blynk --token=Blynkアプリで取得したAuthToken 

上図のようにReadyで準備OK!

動作

 

#ラズパイ 単体でラジコン #blynk

Home Made Garbageさん(@homemadegarbage)がシェアした投稿 –

いい感じ!デジタル通信による制御であればラズパイでも問題なく色々できそうです♪

コメントを残す

メールアドレスが公開されることはありません。コメントのみでもOKです。

TOP