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

概要
この例では、SDカード(BMP形式)を使用してLCD画面に複数の画像(目)を表示し、内蔵ボタンとジャイロスコープを使用してユーザーと対話する方法を示します。
特徴
左ボタン: 前の画像(目)
中央ボタン: アニメーション
右ボタン: 次の画像(目)
ジャイロ: ボードの向きに応じて目が動く
必要なArduinoライブラリ
LCD画面ライブラリ
Seeed_Arduino_LCD
をインストールしてください。詳細は Wio Terminal LCD を参照してください。SDカードライブラリ
Seeed_Arduino_FS
をインストールしてください。詳細は Seeed-Arduino-FS を参照してください。内蔵加速度センサーライブラリ
Seeed_Arduino_LIS3DHTR
をインストールしてください。詳細は Seeed_Arduino_LIS3DHTR を参照してください。RawImage.h
ライブラリをインストールしてください。詳細は 画像の読み込み を参照してください。
Arduinoの手順
Emoji_face.ino
とRawImage.h
ファイルをダウンロードし、Arduino IDE
を使用して Wio Terminal にアップロードしてください。すべてのライブラリがインストールされていることを確認してください。face
ファイル(すべての画像を含む)をSDカードに保存してください。Wio Terminal を動かしてインタラクションを開始してください!
コード
- LCD画面の初期化
TFT_eSPI tft;
void setup() {
...
tft.begin();
tft.setRotation(3);
...
}
- SDカードの初期化
void setup() {
...
if (!SD.begin(SDCARD_SS_PIN, SDCARD_SPI)) {
while (1);
}
...
}
- 内蔵加速度センサーの初期化
LIS3DHTR<TwoWire> lis;
void setup () {
...
lis.begin(Wire1);
lis.setOutputDataRate(LIS3DHTR_DATARATE_25HZ); // 加速度センサーの出力レート
lis.setFullScaleRange(LIS3DHTR_RANGE_2G); // スケール選択
...
}
void loop() {
...
float x_raw = lis.getAccelerationX(); // x軸の生データを読み取る
float y_raw = lis.getAccelerationY(); // y軸の生データを読み取る
...
}
- 内蔵ボタンの初期化
void setup() {
...
pinMode(BUTTON_1, INPUT); // 左ボタン
pinMode(BUTTON_2, INPUT); // 中央ボタン
pinMode(BUTTON_3, INPUT); // 右ボタン
...
}
- 画像の初期化と描画
この例では、画像は320x240のフルサイズではないため、描画時に画像の開始位置を指定する必要があります。画像はまずバッファにロードされ、Wio Terminal の揺れによる画像遅延を防ぎます。
詳細は 画像の読み込み を参照してください。
void loop() {
...
Raw8 * eyes = newImage<uint8_t>(eye[eye_count]); // 8ビット画像の初期化
writeToBuffer(x_axis, y_axis, eyes); // まずバッファに書き込む。完全なコードでこの関数を確認してください。
...
}