NVIDIA JetBot製作でのモバイルバッテリについてメモしておきます。
NVIDIAおすすめのモバイルバッテリ
JetBot WikiのBOM(部品表)
https://github.com/NVIDIA-AI-IOT/jetbot/wiki/Bill-of-Materials
INIU 10000mAh Portable PowerBank(2x 5V/3A output)がおすすめとなっているが、日本のアマゾンで13,000円となっている。2ポートでそれぞれ単独に3Aずつ出力されるとあり、スペック上かなりの優れものに見える。
検討の経緯
最初手持ちのモバイルバッテリ(2.1A+1.0A)で試したところ、サンプルプログラムのCollision Avoidanceで電源が落ちてしまった。カメラ・モーター・GPUとフル稼働するため、このデモが電源的にかなりシビアとなる。
JetBotの3Dプリントのサイズに合うもので、OwltechのOWL-LPB10006を購入し、Type-C 5V/3.0AをJetson nanoに、Type-A 5V/2.4Aをモータードライバにそれぞれ供給するとnanoがシャットダウンしなかった。
しかし、最近のモバイルバッテリはオートパワーオフ機能がついていて一定時間経つと電源供給が切れるため、モータードライバ側に電源が供給されなくなる場合もあり、なんらかの対応が必要である。
対応方法(案)
-
オートパワーオフ機能のない、3A出力のモバイルバッテリーを探す。
-
モータードライバへの電源供給は乾電池(単四×3本)で行う。
-
定期的にモーター側の電源を切らないように電流を流す基板を作る。
そこで自分も以下のサイトを参考に、Digisparkで作成してみた。
(参考:モバイルバッテリーのオートパワーオフキャンセラー
https://make.oldcyclist.com/2019/02/autopoweroff-canceller/)
Owltechのモバイルバッテリーのパワーオフ時間が約35秒くらいだったので、500msの間に200mAくらいを流したら25秒スリープするプログラムにした(オンの時間をもう少し短くできそう)
/*
Power off canceller for mobile battery(digispark)
*/
#define ledpin 1
#define ctlpin 0
void setup() {
pinMode(ledpin, OUTPUT);
pinMode(ctlpin, OUTPUT);
}
void loop() {
digitalWrite(ledpin, HIGH);
digitalWrite(ctlpin, HIGH);
delay(500);
digitalWrite(ledpin, LOW);
digitalWrite(ctlpin, LOW);
delay(25000);
}
まとめ
以前IoT向けに電流を流し続けるCheero Canvas(for cheero Sleepion and IoT devices)というのがあったが最近ではこの手のモバイルバッテリが見当たらないので、設置スペースの問題もあるが案2の電池での別電源が一番やりやすい。
また電子工作に心得のある人は案3でスペースをとらない方法もいいと思います。