Skip to main content

Wio Terminal シャーシバッテリー(650mAh)

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

Wio Terminal バッテリーシャーシは、Wio-Terminal 開発ボードにとって必須の拡張ボードです。これは、Wio Terminal に外部電源を提供し、その携帯性とコンパクトさを向上させます。650mAhの充電式リチウムポリマー電池、バッテリー充電/放電状態LED、4つのGroveアナログ/デジタルポート、1つのGrove I2Cポート、1つのGrove UARTポート、そして美観と保護のためのABSエンクロージャを備えています。 また、Wio Terminal バッテリーシャーシの背面には、追加の拡張が可能なRaspberry Pi互換の40ピンGPIOも搭載されています。

新しいバージョンのWio Terminal バッテリーシャーシには、Texas InstrumentのBQ27441-G1A が追加されました。この自己校正型、I2Cベースの燃料ゲージはリチウムポリマー(LiPo)バッテリー用で、バッテリーの電圧を測定して充電率と残容量を推定することができます!

特徴

  • 内蔵650mAh充電式リチウムポリマー電池
  • バッテリー充電/放電状態LED
  • バッテリーオン/オフボタン
  • LiPoバッテリー用内蔵BQ27441-G1A燃料ゲージ
  • USB Type-C充電
  • 過電流保護
  • ヒカップモード/ヒカップ保護
  • 4 x Groveアナログ/デジタルポート
  • 1 x Grove I2Cポート
  • 1 x Grove UARTポート
  • エンクロージャ内に隠された磁石により、ホワイトボードに貼り付け可能!

仕様

項目詳細
電源供給4.75V - 5.25V
内蔵バッテリー650mAh
充電電流最大: 660mA
バッテリーボードモード緑色LED: 点灯はボードが充電中を意味します。

赤色LED: 点灯はOTG(バッテリー放電)が有効であることを意味します。

黄色LED: 点灯はオスインターフェースが5Vの出力/入力を行っていることを意味します。
GPIO出力最大電圧: 5.15V

最大電流: 380mA
トリクル充電電流30mA
GroveインターフェースGroveアナログ/デジタル *4, Grove I2C* 1, Grove UART * 1

ハードウェア概要

注意事項

  • ボードが充電モードの間にバッテリーが取り外されると、ボードは故障モードに切り替わり、緑色のライトが1Hzの頻度で点滅します。

  • バッテリーボードを使用していない場合は、ボタンを押してスリープモードに入り、すべてのLEDが消灯します。

LiPoバッテリーの状態を検出する

  1. SparkFun_BQ27441_Arduino_Libraryのリポジトリにアクセスし、リポジトリ全体をローカルドライブにダウンロードしてください。

  2. 次に、ライブラリをArduino IDEにインストールします。Arduino IDEを開き、スケッチ -> ライブラリを含める -> ZIP形式のライブラリを追加をクリックし、先ほどダウンロードしたSparkFun_BQ27441_Arduino_Libraryファイルを選択してください。

InstallLibrary

サンプルコード

以下のコードを使用して、バッテリーチャーシスの状態を読み取ることができます。

#include <SparkFunBQ27441.h>
#include"TFT_eSPI.h"

TFT_eSPI tft;
TFT_eSprite spr = TFT_eSprite(&tft); // スプライト
#define FF17 &FreeSans9pt7b

const unsigned int BATTERY_CAPACITY = 650; // Wio Terminal バッテリーの容量を設定

void setupBQ27441(void)
{
// lipo.begin()を使用してBQ27441-G1Aを初期化し、接続と通信を確認します。
if (!lipo.begin()) // begin()は通信が成功した場合にtrueを返します
{
// 通信が失敗した場合、エラーメッセージを表示して無限ループに入ります。
Serial.println("エラー: BQ27441との通信ができません。");
Serial.println("配線を確認して再試行してください。");
Serial.println("(バッテリーはBattery Babysitterに接続されている必要があります!)");
tft.setTextColor(TFT_RED);
tft.setCursor((320 - tft.textWidth("バッテリーが初期化されていません!"))/2, 120);
tft.print("バッテリーが初期化されていません!");
while (1) ;
}
Serial.println("BQ27441に接続されました!");

// lipo.setCapacity(BATTERY_CAPACITY)を使用してバッテリーの設計容量を設定します。
lipo.setCapacity(BATTERY_CAPACITY);
}

void printBatteryStats()
{
// BQ27441-G1Aからバッテリーの状態を読み取ります
unsigned int soc = lipo.soc(); // 残量(%)を読み取る
unsigned int volts = lipo.voltage(); // バッテリー電圧(mV)を読み取る
int current = lipo.current(AVG); // 平均電流(mA)を読み取る
unsigned int fullCapacity = lipo.capacity(FULL); // 最大容量(mAh)を読み取る
unsigned int capacity = lipo.capacity(REMAIN); // 残容量(mAh)を読み取る
int power = lipo.power(); // 平均消費電力(mW)を読み取る
int health = lipo.soh(); // 健康状態(%)を読み取る

// これらの値を出力します:
String toPrint = String(soc) + "% | ";
toPrint += String(volts) + " mV | ";
toPrint += String(current) + " mA | ";
toPrint += String(capacity) + " / ";
toPrint += String(fullCapacity) + " mAh | ";
toPrint += String(power) + " mW | ";
toPrint += String(health) + "%";

Serial.println(toPrint);

// LCDグラフィックス
tft.setTextColor(TFT_BLUE);
tft.drawRoundRect(10, 10, 300, 220, 10, TFT_BLUE);
tft.setTextColor(TFT_MAGENTA);
tft.drawString("残量:", 20, 30);
tft.drawString("バッテリー電圧:", 20, 55);
tft.drawString("平均電流:", 20, 80);
tft.drawString("残容量:", 20, 105);
tft.drawString("最大容量:", 20, 130);
tft.drawString("平均消費電力:", 20, 155);
tft.drawString("健康状態:", 20, 180);

// データ
spr.createSprite(80, 170);
spr.fillSprite(TFT_BLACK);
spr.setFreeFont(FF17);
spr.setTextColor(TFT_WHITE);
spr.drawString(String(soc)+" % ", 0, 0);
spr.drawString(String(volts)+" mV ", 0, 25);
spr.drawString(String(current)+" mA ", 0, 50);
spr.drawString(String(capacity)+" mAh ", 0, 75);
spr.drawString(String(fullCapacity)+" mAh ", 0, 100);
spr.drawString(String(power)+" mW ", 0, 125);
spr.drawString(String(health)+" % ", 0, 150);
spr.pushSprite(170, 30);
spr.deleteSprite();
}

void setup()
{
Serial.begin(115200);
tft.begin();
tft.setRotation(3);
tft.fillScreen(TFT_BLACK);
tft.setFreeFont(FF17);
setupBQ27441();
tft.setTextColor(TFT_GREEN);
tft.setCursor((320 - tft.textWidth("バッテリーが初期化されました!"))/2, 120);
tft.print("バッテリーが初期化されました!");
delay(1000);
tft.fillScreen(TFT_BLACK);
}

void loop()
{
printBatteryStats();
delay(1000);
}

回路図オンラインビューア

リソース

技術サポート

弊社製品をお選びいただきありがとうございます!お客様が弊社製品をスムーズにご利用いただけるよう、さまざまなサポートを提供しております。お客様のご希望やニーズに応じた複数のコミュニケーションチャネルをご用意しています。

Loading Comments...