Home Made Garbage

M5StickC でスマートな電池を作製 M5Stick-Cell

お父ちゃん お父ちゃん  2019.6.18 
ホーム
電子工作
Raspberry Pi
IOT
WEB

ついに購入しました!M5StickCを。
M5StickCは大人気のM5Stackの小型版です。M5Stackは持っていなかったのですがM5StickCのカワイイ色やサイズそして何と言っても2千円以下の家計に優しい価格にやられて速攻購入した次第です。

ここではM5StickCを用いて製作した実にスマートな電池 M5Stick-Cell を紹介いたします。
 

 

M5Stick-Cell 構成

I2CモータドライバDRV8830を用いて電圧出力します。BlynkというスマホアプリでBluetoothを介してM5StickCと通信して出力電圧をコントロールできる電池をを実現します。

部品

M5StickCar組み立て

ユニバーサル基板を程度なサイズにカットしてM5StickCとつなぐコネクタとモータドライバを搭載しました。

M5StickC

設計環境にArduino IDEを使用いたしました。設定方法は以下の公式サイトを参照ください。

A delightfully simple theme system for docsify.js. Features multiple themes with rich customization options, an improved desktop and mobile experience, and legacy browser support (IE10+).

小型でカワイイですがカラーLCDディスプレイ、マイク、赤外線LED、BLEやWiFi機能など盛りだくさんです。しっかりしたパッケージにコンパクトに収まっているので非常に扱いやすいです。詳細は以下の通りです。

 https://github.com/m5stack/M5StickC

Blynk設定

スマホとM5StickCはスマホアプリのBlynkを用いてBluetooth通信させます。Blynkアプリのバージョンは2.27.6です。

新規プロジェクトを作成します。HARDWRE MODELはESP32 Dev Boardを選択。CONNECTION TYPEはBluetoothを選択。AUTH TOKENはArduinoコード生成時に使用します(アカウント登録したメールに送信されます)。

 

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

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

I2Cモータードライバ DRV8830

DRV8830はI2C入力によって、モータ供給電圧(スピード)と供給電圧方向(回転方向)を制御するものです。つまり正負の電圧を生成できるということです。

I2Cアドレス設定

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

表のアドレス末尾xは読み込み時には1、書き込み時は0をしてします。ここでは書き込みのみ使用します。両方Openのアドレス:0x64としました。

書き込みI2Cデータ

アドレス0x00に8bitの情報を書き込みます。
各ビットの設定は以下の通り。上位6ビットで電圧を設定し、下位2ビットで正負を指定できます。

 
 

Arduino IDEプログラム

以下のBlynkのArduino用ライブラリを使用してプログラムしました。バージョンは0.6.1。
 https://github.com/blynkkk/blynk-library

ライブラリのコード例のESP32_BT.ino を参考にプログラムしました。

ここではBluetoothを使用してM5stickCと通信します。WiFiでもよかったのですが現状まだBlynkが正式にM5stickCをサポートしていないため、Blynk WiFiライブラリとM5stickCライブラリとの併用ができませんでした。Bluetoothは大丈夫でした。

Blynkのジョイスティックの値0~20の数値を受けて0~1.6Vの電圧を出力します。ジョイスティックが上部にあるときは正、下部にあるときは負の電圧となります。

ディスプレイ表示

LCDにはM5stickC本体のバッテリ残量と出力電圧を表示しています。

バッテリ残量は内部のバッテリ電圧を読んで4.2Vを100%、0Vを0%とする簡単で乱暴な表示です。ちょっと使用されている電源ICのAXP192の仕様をみきれておらず。。。(だって漢字だらけなんだもん)。 まぁおいおい改善しますw

電池残量に応じて電池のグラフィックも変化します。電池残量はBlynkのタイマー割り込みで1秒ごとに計測して表示しています。

M5stickCライブラリによるディスプレイ表示に関する関数は以下の通りです。
  https://github.com/m5stack/m5-docs/blob/master/docs/en/api/lcd_m5stickc.md

 

 

Blynk Bluetooth接続

BlynkプロジェクトのBluetoothウェジットをクリックして設定します。

“Connect Bluetooth device”をクリックして “Blynk”が表示されたらOKをクリックして接続する。

動作

スマートな電池ができました♪極性を変えれるのでモータ動くおもちゃだとスピード制御に加えて逆走もできちゃいます。

 

いやーM5stickCマジで買ってよかった。中身見えないから扱いにくかったりカスタマイズしにくいのではないかと思ったけど全然逆。超使いやすいし故に色々アイディア浮かぶの。

うれしい!今後のヘビーユーズ必至。

追記 (19/6/20)

本体バッテリ残量表示を修正

 

 

ミニ四駆に載せてみた

出力を±3.0Vまで拡げました。

めっちゃすぐ電池なくなる。。。

Related Posts

コメントはこちらから

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください