はじめに
IoTデバイス開発をやっていると、(特にモバイル用途で)バッテリーは欠かせない存在になってくるのですが、Li-ionバッテリーを使うと残量が気になります。
スマホだと残量が画面右上に出てたりするんですが、バッテリーが切れたら静かにお亡くなりになるデバイスは悲しいので、Li-ionバッテリーの残量を計測できるチップ「MAX17048」を搭載したQduino Miniを動かしてみました。
用意するもの
- Qduino Mini
- MicroUSBケーブル
- Li-ionバッテリー
- ArduinoIDE
- パソコン
やってみた
とりあえず、SparkfunのDocumentってところに、Quickstartのリンクがあったので、これを頼りに進めていきます。
Qduino Mini Quickstart Guide
ちなみに、QduinoのMicroUSBは、給電・充電・通信が行えるようです。
接続
USBを繋ぐと、いきなりLEDがピカピカ光ります!
結構まぶしい。
上に置いてあるのが今回検証したいLi-ionバッテリー。この時点で残量不明。
PC側はデバイスのインストールダイアログが出ますがとりあえず無視。。
ArduinoIDEにボードを追加する
いきなりQuickstartに裏切られました。
https://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Board_Manager/package_sparkfun_index.json
を追加すると、ボードマネージャにQtechknow Boards
が出てくると書いてありますが、出てきません。。
おそらくと思って、こちら(SparkFun AVR boads)をインストールしてみます。
ドライバのインストール
2度目の裏切りです。
Step 2.5 (Windows users only) - Signed driver
Navigate to \Arduino15\packages\Qduino Mini\hardware\avr\1.0.6\ and install the signed drivers like below:
謎のディレクトリを指定されていて見つかりません。。
ググった結果下記にあるようです。
https://github.com/sparkfun/Arduino_Boards/tree/master/sparkfun/avr/signed_driver
私のPCではCOM4に接続されているようなので、ArduinoIDEからボードとシリアルポートを選択しておきます。
サンプルスケッチ rgbLED を動かしてみる
Quickstartのキャプチャとちょっと違うけど、rgbLEDを選んでみます。
わかりづらいですが、紫色に光ってます。
というか、レインボーに光るみたい。
サンプルスケッチ fuelGauge を動かしてみる
fuelGaugeをマイコン転送します。
シリアルモニタで確認。
まだLi-ionバッテリー繋いでないけど104%とか出てる。。
気を取り直して、バッテリーを繋いでみます。
LEDは勝手に光ってますね。
徐々に値が増えてきました。充電はされているようですね。
ただ、78%と79%が混在しています。
小数以下四捨五入されているのか、単純に整数化したときのセンサーの誤差か。。
「○○%以上なら~」の条件で場合分けする時は要注意と思われます。
まとめ
QduinoはArduino互換でAtmelのATmega32を搭載しています。
Li-ionバッテリーをそのまま繋ぐことができるPHコネクタソケットを搭載していて、充電&残量計測までできます。
持ち運びできるIoTデバイスの開発が捗りますね!
次回
「RaspberryPiからQduinoのMAX17048に直結させて、Node.jsで残量を取得する」(ほんとはこれがしたかった)
乞うご期待!