Freenove Media Kit for ESP32-S3 (FNK0102)

情報記事

Freenove Media Kit for ESP32-S3 (FNK0102) チュートリアル完全まとめ

  1. ボード概要
    1. 2つのモデル
    2. 主要ハードウェア
  2. 全チュートリアル一覧
    1. Chapter 0: 組み立て (Assembly)
    2. Chapter 1: LEDPixelテスト
    3. Chapter 2: バッテリー電圧検出
    4. Chapter 3: 5方向ナビゲーションスイッチ
    5. Chapter 4: SDカード読み書き
    6. Chapter 5: シンプルトーンテスト
    7. Chapter 6: MP3再生
    8. Chapter 7: ビデオWebサーバー
    9. Chapter 8: TFT時計
    10. Chapter 9: カメラTFTテスト
    11. Chapter 10: 録音テスト
    12. Chapter 11: ESP32_SR(音声認識)
    13. Chapter 12: LVGL基礎
    14. Chapter 13: LVGL LEDPixel
    15. Chapter 14: LVGL カメラ
    16. Chapter 15: LVGL 画像表示
    17. Chapter 16: LVGL 音楽プレーヤー
    18. Chapter 17: LVGL ボイスレコーダー
    19. Chapter 18: LVGL マルチ機能(UI 1)
    20. Chapter 19: LVGL マルチ機能(UI 2)
  3. AIボイスアシスタント
    1. XiaoZhi AI ベース
    2. OpenAI Realtime Model ベース
  4. 開発環境
    1. 必要ライブラリ
  5. 目次
  6. 製品概要
    1. 2つのモデル
  7. ハードウェア仕様
    1. 搭載機能一覧
    2. スピーカー仕様
      1. 1.14インチモデル
      2. 3.5インチモデル
    3. バッテリー・電源
      1. 充電インジケーター
  8. GPIOピン割り当て
    1. 機能別ピンマップ
    2. カメラピンマップ
    3. PSRAM使用ピン
  9. 開発環境セットアップ
    1. 必要なソフトウェア
    2. Arduino IDE 設定
    3. 必要なライブラリ
    4. TFT_eSPI ライブラリ設定
  10. チュートリアル一覧
    1. 基礎編
      1. Chapter 0: 組み立て
      2. Chapter 1: LEDPixel テスト
      3. Chapter 2: バッテリー電圧検出
      4. Chapter 3: 5方向ナビゲーションスイッチ
      5. Chapter 4: SDカード読み書き
    2. オーディオ編
      1. Chapter 5: シンプルトーンテスト
      2. Chapter 6: MP3再生
      3. Chapter 10: 録音テスト
    3. ディスプレイ編
      1. Chapter 7: ビデオWebサーバー
      2. Chapter 8: TFT時計
      3. Chapter 9: カメラTFTテスト
    4. 音声認識編
      1. Chapter 11: ESP32_SR
    5. LVGL GUI編
      1. Chapter 12: LVGL基礎
      2. Chapter 13: LVGL LEDPixel
      3. Chapter 14: LVGL カメラ
      4. Chapter 15: LVGL 画像表示
      5. Chapter 16: LVGL 音楽プレーヤー
      6. Chapter 17: LVGL ボイスレコーダー
      7. Chapter 18 & 19: LVGL マルチ機能
  11. AIボイスアシスタント
    1. XiaoZhi AI ベース
      1. 動作モード
      2. 対応言語
    2. OpenAI Realtime Model ベース
      1. 注意事項
  12. 参考リンク
    1. 公式ドキュメント
    2. ライブラリ・フレームワーク
    3. サポート
  13. 5方向ナビゲーションスイッチ操作ガイド
    1. 関連記事:

ボード概要

製品名: Freenove Media Kit for ESP32-S3 型番: FNK0102 マイコン: ESP32-S3-WROOM-1(デュアルコア240MHz、8MB PSRAM、8MB Flash)

2つのモデル

項目1.14インチモデル3.5インチモデル
画面解像度135×240 (ST7789)320×480 (ST7796)
スピーカー8Ω/1W/18mm×18mm4Ω/3W/35mm×25mm
バッテリーサイズ702035103450

主要ハードウェア

WS2812 LED、TFT LCD、カメラモジュール、MEMSマイク、スピーカー+3.5mmジャック、1GB SDカード、5方向ナビゲーションスイッチ、バッテリー充電回路


全チュートリアル一覧

Main Tutorial — fnk0102-docs v1.0.0 documentation

Chapter 0: 組み立て (Assembly)

ハードウェアの組み立て方法を解説。カメラ接続、ESP32-S3ボードの装着、バッテリー接続、筐体の取り付け手順を説明。1.14インチと3.5インチモデルで手順が若干異なる。


Chapter 1: LEDPixelテスト

内容: WS2812 RGB LEDの制御方法 学習内容:

  • Freenove_WS2812_Lib_for_ESP32ライブラリの使用
  • GPIO48を使用したWS2812制御
  • 赤・緑・青・白の順次点灯

Chapter 2: バッテリー電圧検出

内容: ADCを使用したリチウムバッテリー電圧の読み取り 学習内容:

  • GPIO20でのADC読み取り
  • 12ビット解像度、11dB減衰設定
  • 20回サンプリングによるフィルタリング処理
  • 電圧範囲: 3.2V〜4.2V

Chapter 3: 5方向ナビゲーションスイッチ

内容: 5方向ボタン(上下左右+中央押し)の操作 学習内容:

  • GPIO19のADC値による方向検出
  • ボタンデバウンス処理
  • driver_buttonライブラリの使用

Chapter 4: SDカード読み書き

内容: SDMMCプロトコルによるSDカード操作 学習内容:

  • 1ビットバスモードのSDMMC通信
  • ディレクトリ作成/削除、ファイル読み書き
  • SDカードのフォーマット方法(FAT/FAT32)

Chapter 5: シンプルトーンテスト

内容: I2Sを使用した音階出力 学習内容:

  • ESP_I2Sライブラリの使用
  • ドレミファソラシの音階生成
  • 矩形波によるトーン生成

Chapter 6: MP3再生

内容: SDカードからMP3ファイルを再生 学習内容:

  • ESP32-audioI2Sライブラリの使用
  • SDカードからの音声ファイルデコード
  • 音量調整(0〜21)

Chapter 7: ビデオWebサーバー

内容: カメラ映像をWi-Fi経由でストリーミング 学習内容:

  • esp_cameraライブラリの使用
  • Wi-Fi接続とWebサーバー起動
  • ブラウザからのリアルタイム映像閲覧

Chapter 8: TFT時計

内容: TFTディスプレイにアナログ時計を表示 学習内容:

  • TFT_eSPIライブラリの設定と使用
  • グラフィック描画(円、線、テキスト)
  • リアルタイム時計表示

Chapter 9: カメラTFTテスト

内容: カメラ映像をTFT画面に表示+写真撮影 学習内容:

  • カメラとTFTの統合
  • RGB565フォーマットでの画像表示
  • 5方向ボタンでの写真撮影・SDカード保存

Chapter 10: 録音テスト

内容: MEMSマイクで録音しWAVファイル保存 学習内容:

  • I2Sによるオーディオ入力
  • WAVファイル形式での録音
  • 録音と再生の切り替え操作

Chapter 11: ESP32_SR(音声認識)

内容: オンデバイス音声認識 学習内容:

  • ESP-SRフレームワークの使用
  • ウェイクワード検出(”Hi ESP”)
  • カスタム音声コマンドの生成
  • LED制御などの音声操作

Chapter 12: LVGL基礎

内容: LVGLグラフィックライブラリの基本 学習内容:

  • LVGLライブラリの設定
  • ラベル・ボタンの作成
  • 5方向ボタンによるGUI操作
  • イベントコールバック処理

Chapter 13: LVGL LEDPixel

内容: LVGLとWS2812 LEDの統合 学習内容:

  • GUI経由でのLED色・明るさ調整
  • スライダーUIの実装

Chapter 14: LVGL カメラ

内容: LVGLとカメラの統合 学習内容:

  • GUI上でのカメラプレビュー表示
  • ボタン操作での写真撮影
  • SDカードへの画像保存

Chapter 15: LVGL 画像表示

内容: SDカードから画像を読み込みGUIで表示 学習内容:

  • 画像ブラウザUI
  • 画像ファイルの選択・表示

Chapter 16: LVGL 音楽プレーヤー

内容: GUIベースの音楽プレーヤー 学習内容:

  • MP3ファイルの選択・再生
  • 音量調整スライダー
  • 再生コントロール

Chapter 17: LVGL ボイスレコーダー

内容: GUIベースの録音アプリ 学習内容:

  • 録音/再生モードの切り替え
  • 録音時間表示
  • WAVファイル保存

Chapter 18: LVGL マルチ機能(UI 1)

内容: 複数機能を統合したアプリ 機能: カメラ、音楽、録音、LEDPixelをメニューから選択


Chapter 19: LVGL マルチ機能(UI 2)

内容: Chapter 18と同機能だがUIデザインが異なる


AIボイスアシスタント

XiaoZhi AI ベース

内容: 小智AIサーバーと連携したボイスアシスタント

  • オンライン版: xiaozhi.meサーバー使用(無料試用)
  • オフライン版: ローカルサーバー構築
  • 対応言語: 中国語(普通話・広東語)、英語、日本語、韓国語
  • 通信: WebSocketプロトコル

OpenAI Realtime Model ベース

内容: OpenAI GPT-4o Realtime APIを使用したボイスアシスタント

  • 対応モデル: GPT-4o Realtime、GPT-4o Mini Realtime
  • 注意: 有料API(OpenAIへの課金が必要)
  • 対応地域: OpenAIサービス提供地域のみ

開発環境

IDE: Arduino IDE 必須ドライバ: CH343 必須ソフト: Python 3.x ESP32設定: PSRAM有効化、適切なパーティションスキーム選択が必要

必要ライブラリ

  • Freenove_WS2812_Lib_for_ESP32
  • TFT_eSPI + TFT_eSPI_Setups
  • lvgl
  • ESP32-audioI2S
  • esp_camera
  • ESP_I2S / ESP_SR

このチュートリアルは初心者から上級者まで、段階的にESP32-S3のマルチメディア機能を学べるよう設計されています。

Notionに保存

全部の情報をまとめたいからMDにして清書してくれる?あと、チュートリアルはリンクとか入れて参照しやすいようにしてね。

Freenove Media Kit for ESP32-S3 (FNK0102) 完全ガイド

目次

  1. 製品概要
  2. ハードウェア仕様
  3. GPIOピン割り当て
  4. 開発環境セットアップ
  5. チュートリアル一覧
  6. AIボイスアシスタント
  7. 参考リンク

製品概要

項目内容
製品名Freenove Media Kit for ESP32-S3
型番FNK0102
マイコンESP32-S3-WROOM-1
プロセッサXtensa® デュアルコア 32ビット LX7、最大240MHz
メモリ8MB PSRAM (OPI)、8MB Flash
無線2.4GHz Wi-Fi、Bluetooth LE
アンテナPCBオンボードアンテナ

2つのモデル

本製品は画面サイズの異なる2つのモデルがあります。チュートリアルは両モデル共通です。

仕様1.14インチモデル3.5インチモデル
画面解像度135 × 240 px320 × 480 px
ディスプレイドライバST7789ST7365 / ST7796
表示エリア14.9mm × 24.9mm48.96mm × 73.44mm
スピーカー8Ω / 1W / 18mm×18mm4Ω / 3W / 35mm×25mm
推奨バッテリー702035 (7.5×20×35mm)103450 (10×34×50mm)

ハードウェア仕様

搭載機能一覧

コンポーネント説明
TFT LCDSPI通信、3.3V動作
カメラカメラモジュール内蔵
マイクMEMSマイクロフォン(高感度・高S/N比)
オーディオ出力内蔵スピーカー + 3.5mm ヘッドホンジャック
SDカード1GB SDカード付属(SDMMC通信)
入力デバイス5方向ナビゲーションスイッチ
LEDWS2812 RGB LEDピクセル
電源USB給電 または リチウムバッテリー(3.7V-4.2V、PH2.0 2Pコネクタ)

スピーカー仕様

1.14インチモデル

項目
定格インピーダンス
定格電力1W
周波数範囲550Hz〜20kHz
最大音圧レベル96±3dB
サイズ18mm × 18mm

3.5インチモデル

項目
定格インピーダンス
定格電力3W
周波数範囲550Hz〜20kHz
最大音圧レベル98±3dB
サイズ35mm × 25mm

バッテリー・電源

  • 電源方式: USB給電 または リチウムバッテリー
  • バッテリー電圧: 3.7V〜4.2V
  • コネクタ: PH2.0mm 2P
  • 極性: 赤線=プラス(+)、黒線=マイナス(-)

⚠️ 注意: バッテリーは別売です。極性を必ず確認してから接続してください。

充電インジケーター

状態LED表示
充電中青LED点滅
充電完了青LED点灯
バッテリー未接続青LED点滅
バッテリー駆動中緑LED点灯

GPIOピン割り当て

機能別ピンマップ

機能GPIO説明
WS2812 LEDGPIO48WS2812_DIN
TFT LCDGPIO21LCD_SDA
GPIO47LCD_SCK
GPIO45LCD_D/C
GPIO20LCD_RST
マイクGPIO14MIC_WS
GPIO3MIC_SCK
GPIO46MIC_SD
デジタルアンプ (NS4168)GPIO41NS4168_LRCLK
GPIO42NS4168_BCLK
GPIO1NS4168_SDATA
5方向スイッチGPIO19PowerButton_COM
SDカードGPIO38SD_CMD
GPIO39SD_CLK
GPIO40SD_D0

カメラピンマップ

GPIO機能GPIO機能
GPIO4SIODGPIO5SIOC
GPIO6CSI_VSYNCGPIO7CSI_HREF
GPIO8CSI_Y4GPIO9CSI_Y3
GPIO10CSI_Y5GPIO11CSI_Y2
GPIO12CSI_Y6GPIO13CSI_PCLK
GPIO15XCLKGPIO16CSI_Y9
GPIO17CSI_Y8GPIO18CSI_Y7

PSRAM使用ピン

OPI PSRAM使用時、GPIO35〜GPIO37は他の用途に使用不可。


開発環境セットアップ

必要なソフトウェア

ソフトウェア用途
Arduino IDE開発環境
CH343ドライバUSB-シリアル変換
Python 3.xツール実行用

Arduino IDE 設定

  1. ボードマネージャURL追加https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
  2. ボード選択ESP32S3 Dev Module
  3. 推奨設定:
    • PSRAM: OPI PSRAM
    • Partition Scheme: プロジェクトに応じて選択

必要なライブラリ

ライブラリ用途インストール方法
Freenove_WS2812_Lib_for_ESP32LED制御ZIP追加
TFT_eSPITFTディスプレイZIP追加
TFT_eSPI_SetupsTFT設定ZIP追加
lvglGUIZIP追加
ESP32-audioI2Sオーディオ再生ZIP追加

📁 ライブラリは Freenove_Media_Kit_for_ESP32-S3/Libraries/ フォルダに同梱

TFT_eSPI ライブラリ設定

  1. %USERPROFILE%\Documents\Arduino\libraries\TFT_eSPI_Setups を開く
  2. User_Setup_Select.h を編集
  3. 使用モデルに応じてマクロ定義をアンコメント:
    • 1.14インチFNK0102A_1P14_135x240_ST7789
    • 3.5インチFNK0102B_3P5_320x480_ST7796

チュートリアル一覧

基礎編

Chapter 0: 組み立て

📖 Assembly

項目内容
概要ハードウェアの組み立て手順
内容カメラ接続、ESP32-S3装着、バッテリー接続、筐体取り付け
注意組み立て済み製品の場合はスキップ可

Chapter 1: LEDPixel テスト

📖 LEDPixel Test

項目内容
概要WS2812 RGB LEDの制御
使用ピンGPIO48
ライブラリFreenove_WS2812_Lib_for_ESP32
学習内容LED初期化、色設定、明るさ調整
Copy// 主要コード
Freenove_ESP32_WS2812 strip = Freenove_ESP32_WS2812(1, 48, 0, TYPE_GRB);
strip.setLedColorData(0, 255, 0, 0);  // 赤色設定
strip.show();

Chapter 2: バッテリー電圧検出

📖 Battery Voltage Detection

項目内容
概要ADCによるバッテリー電圧測定
使用ピンGPIO20
ADC設定12ビット解像度、11dB減衰
電圧範囲3.2V〜4.2V
Copy// 主要コード
analogReadResolution(12);
analogSetAttenuation(ADC_11db);
int adc_value = analogReadMilliVolts(20);

Chapter 3: 5方向ナビゲーションスイッチ

📖 5-Way Navigation Switch Test

項目内容
概要5方向ボタンの操作検出
使用ピンGPIO19
検出方式ADC電圧値による方向判定
ライブラリdriver_button
方向キー値
未押下0
中央1
2
3
4
5

Chapter 4: SDカード読み書き

📖 SD Card Read & Write Test

項目内容
概要SDMMCプロトコルによるSDカード操作
使用ピンGPIO38(CMD), GPIO39(CLK), GPIO40(D0)
通信方式SDMMC 1ビットバスモード
フォーマットFAT / FAT32
Copy// 主要コード
sdmmc_init(39, 38, 40);
create_dir("/mydir");
write_file("/foo.txt", data, size);
read_file("/foo.txt", buffer, size);

オーディオ編

Chapter 5: シンプルトーンテスト

📖 Simple Tone Test

項目内容
概要I2Sによる音階出力
使用ピンGPIO42(BCLK), GPIO41(LRC), GPIO1(DOUT)
ライブラリESP_I2S
出力ドレミファソラシ(矩形波)
Copy// 音階周波数 (Hz)
const int frequencies[] = { 261, 293, 329, 349, 392, 440, 493 };

Chapter 6: MP3再生

📖 Play MP3 Test

項目内容
概要SDカードからMP3ファイルを再生
ライブラリESP32-audioI2S
音量範囲0〜21
準備SDカードに/musicフォルダとMP3ファイルを配置
Copy// 主要コード
Audio audio;
audio.setPinout(42, 41, 1);
audio.setVolume(2);
audio.connecttoFS(SD_MMC, "/music/Jingle Bells.mp3");

Chapter 10: 録音テスト

📖 Record Test

項目内容
概要MEMSマイクで録音しWAVファイル保存
マイクピンGPIO3(SCK), GPIO14(WS), GPIO46(DIN)
保存形式WAV

3つのプロジェクト:

  1. Project 10.1: 5秒間録音してSDカードに保存
  2. Project 10.2: ボタン操作で録音・再生
  3. Project 10.3: 5方向ボタンによる高度な録音・再生制御

ディスプレイ編

Chapter 7: ビデオWebサーバー

📖 Video Web Server

項目内容
概要カメラ映像をWi-Fi経由でストリーミング
ライブラリesp_camera
アクセス方法ブラウザでESP32のIPアドレスにアクセス
Copy// Wi-Fi設定
const char* ssid = "********";
const char* password = "**********";

解像度オプション:

定数解像度
FRAMESIZE_QVGA320×240
FRAMESIZE_VGA640×480
FRAMESIZE_SVGA800×600
FRAMESIZE_HD1280×720

Chapter 8: TFT時計

📖 TFT Clock

項目内容
概要TFTディスプレイにアナログ時計を表示
ライブラリTFT_eSPI
機能リアルタイム時計、時分秒針表示

Chapter 9: カメラTFTテスト

📖 Camera TFT Test

項目内容
概要カメラ映像をTFT画面に表示+写真撮影
フォーマットRGB565
機能リアルタイムプレビュー、写真撮影、SDカード保存

2つのプロジェクト:

  1. Project 9.1: カメラ映像のTFT表示
  2. Project 9.2: 5方向ボタンで写真撮影

音声認識編

Chapter 11: ESP32_SR

📖 ESP32_SR

項目内容
概要オンデバイス音声認識
フレームワークESP-SR
ウェイクワード“Hi ESP”
対応言語英語

セットアップ手順:

  1. 音声モデルをアップロード(Upload_Sr_Models
  2. カスタム音声コマンドを生成(Get_Sr_Commands
  3. スケッチをアップロード
Copy# カスタムコマンド生成例
python3 gen_sr_commands.py "Turn on the light;Turn off the light"

デフォルトコマンド:

コマンド動作
“Turn on the light”LED点灯
“Turn off the light”LED消灯

LVGL GUI編

Chapter 12: LVGL基礎

📖 LVGL

項目内容
概要LVGLグラフィックライブラリの基本
ライブラリlvgl(カスタム版)
機能ラベル、ボタン、イベント処理

LVGLの特徴:

  • 豊富なウィジェット(ボタン、スライダー、チャートなど)
  • アニメーション、アンチエイリアス対応
  • 低メモリ消費(64KB Flash、16KB RAM〜)
  • C言語実装(C++互換)
Copy// 主要コード
lv_obj_t *label = lv_label_create(lv_scr_act());
lv_label_set_text(label, "Hello LVGL!");
lv_obj_t *btn = lv_btn_create(lv_scr_act());

Chapter 13: LVGL LEDPixel

📖 LVGL LEDPixel

項目内容
概要GUI経由でWS2812 LEDを制御
機能RGB値調整、明るさ調整
操作5方向ボタンでパラメータ選択・調整

Chapter 14: LVGL カメラ

📖 LVGL Camera

項目内容
概要GUIベースのカメラアプリ
機能プレビュー表示、写真撮影、SDカード保存

Chapter 15: LVGL 画像表示

📖 LVGL Picture

項目内容
概要SDカードから画像を読み込み表示
機能画像ブラウザ、サムネイル表示
準備Chapter 14で撮影した写真が必要

Chapter 16: LVGL 音楽プレーヤー

📖 LVGL Music

項目内容
概要GUIベースの音楽プレーヤー
機能MP3選択・再生、音量調整
準備SDカードに/musicフォルダとMP3ファイルを配置

Chapter 17: LVGL ボイスレコーダー

📖 LVGL Sound Recorder

項目内容
概要GUIベースの録音アプリ
機能録音/再生モード切替、録音時間表示
操作中央ボタン長押しで録音開始

Chapter 18 & 19: LVGL マルチ機能

📖 LVGL Multifunctionality (UI 1) 📖 LVGL Multifunctionality (UI 2)

項目内容
概要複数機能を統合したアプリ
機能カメラ、音楽、録音、LEDPixel
違いChapter 18と19はUIデザインが異なる

操作方法:

  • ボタン2/3: 機能選択
  • ボタン1: 決定
  • ボタン4/5: ホーム画面に戻る

AIボイスアシスタント

XiaoZhi AI ベース

📖 AI Voice Assistant Based on XiaoZhi AI

項目内容
概要小智AIサーバーと連携したボイスアシスタント
GitHubFreenove/xiaozhi-esp32
通信WebSocketプロトコル

動作モード

モード説明サーバー
オンラインxiaozhi.meサーバー使用無料試用可
オフラインローカルサーバー構築xiaozhi-esp32-server

対応言語

  • 中国語(普通話・広東語)
  • 英語
  • 日本語
  • 韓国語

⚠️ オンラインサービスはxiaozhi.meが提供。サービス終了時は関連ドキュメントも削除されます。


OpenAI Realtime Model ベース

📖 AI Voice Assistant Based on OpenAI Realtime Model

項目内容
概要OpenAI GPT-4o Realtime APIを使用したボイスアシスタント
GitHubFreenove/openai-realtime-embedded
対応モデルGPT-4o Realtime、GPT-4o Mini Realtime

注意事項

項目内容
料金有料(OpenAIへの課金が必要)
対応地域OpenAIサービス提供地域のみ
APIキーユーザー自身で取得が必要

参考リンク

公式ドキュメント

リンク説明
Freenove FNK0102 ドキュメント公式チュートリアル
ESP32-S3 データシートESP32-S3仕様書
ESP32-S3-WROOM-1 データシートモジュール仕様書

ライブラリ・フレームワーク

リンク説明
TFT_eSPITFTディスプレイライブラリ
LVGL組み込みGUIライブラリ
ESP-SRESP32音声認識フレームワーク
Freenove WS2812WS2812 LEDライブラリ

サポート

項目連絡先
メールsupport@freenove.com
GitHubFreenove/Freenove_Media_Kit_for_ESP32-S3

5方向ナビゲーションスイッチ操作ガイド

多くのチュートリアルで使用される5方向スイッチの操作方法です。

        [2: 前/上]
            ↑
[4: 左] ← [1: 中央] → [5: 右]
            ↓
        [3: 後/下]
ボタン一般的な機能
1 (中央)決定/確認
2 (前)上移動/値増加
3 (後)下移動/値減少
4 (左)左移動/前の項目
5 (右)右移動/次の項目

最終更新: 2025年12月

タイトルとURLをコピーしました