----------------------------------------------------------------------
　　　　Interface2023年10月号
　　　　特集
　　　　第2部第2章　空中に描いた文字を6軸センサとTensorFlow Lite推論エンジンで認識

　　　　ダウンロード・データ
        IF2310_2b2s
　　　　Interface編集部
　　　　CQ出版(株)
　　　　公開：2023年8月25日
----------------------------------------------------------------------

====================================
ダウンロード・サービスご利用者各位
====================================
　毎度，小誌ご愛読を賜り，誠にありがとうございます．
　このたびはダウンロード・サービスをご利用いただき，誠にありがとうございます．
　筆者のご厚意により，本記事の関連データをこのアーカイブに収録しました．

================
概要
================
　このアーカイブには，表題の記事の中で作成したプログラム・ファイルやデータ・ファイルが収録されています．
　詳しくは該当記事を参照してください．
　アーカイブは，ZIP形式によって圧縮されています．

================
動作確認
================
　プログラムは筆者の元で動作を確認済みです．

=================
アーカイブの内容
=================
・emulate_xdd.py
・air_pen.zip


=================
内容物の補足1
=================
emulate_xdd.py は、TensorFlow Liteモデルバイナリファイルを、C言語のバイト配列
に変換する python スクリプトです。Linux の xdd -i コマンドと同等の働きをします。

変換対象は、result.tflite ファイルです。出力される C言語ソースファイルは model.cc です。
バイト配列変数名は、const unsigned char result_tflite[] です。
スクリプト内部の定数設定を変えることで、任意に変更することができます。


=================
内容物の補足2
=================
air_pen.zip アーカイブは、M5Stack ATOM Matrix マイコン用の、ESP-IDF環境プロジェクトファイルです。
記事の手順に従って、ESP-IDF環境を構築します。

新規プロジェクトを、以下のフォルダで新規作成します。

TensorFlow Lite for Microcontrollers の Git展開フォルダ※1
     | --- components
     | --- scripts
     | --- examples
                | --- hello_world
                | --- micro_speech
                | --- person_detection
                | --- < 新規プロジェクトフォルダ >

※1 https://github.com/espressif/tflite-micro-esp-examples


すると、新規プロジェクトフォルダ直下は次の通り、自動的に生成されます。
main.c は使わないので削除しておきます。

< 新規プロジェクトフォルダ >
     | --- CMakeLists.txt
     | --- main
              | --- CMakeLists.txt
              | --- main.c
              | --- ...

配布の air_pen.zip を展開すると、以下の通りになっています。
air_penフォルダ直下のすべてのファイル・フォルダを、新規プロジェクトフォルダ直下に上書きコピーします。

air_pen フォルダ
     | --- CMakeLists.txt
     | --- sdkconfig
     | --- partitions.csv
     | --- dependencies.lock
     | --- main
             | --- CMakeLists.txt
             | --- main.cpp
             | --- main_functions.cpp
             | --- model.cc
             | --- model.h
             | --- NewMPU6886.cpp
             | --- NewMPU6886.h
             | --- NormalizedAcceleration.cpp
             | --- NormalizedAcceleration.h
             | --- NumberLed.cpp
             | --- NumberLed.h
             | --- quaternion.cpp
             | --- quaternion.h
             | --- SerialLed.cpp
             | --- SerialLed.h
             | --- trace2D.cpp
             | --- trace2D.h

============
免責
============
(1)プログラムやデータの使用により，使用者に損失が生じたとしても，著作権者とＣＱ出版(株)は，その責任を負いません．
(2)プログラムやデータにバグや欠陥があったとしても，著作権者とＣＱ出版(株)は，修正や改良の義務を負いません．

===========
著作権
===========
　収録したプログラム，データおよびドキュメントなどの著作権は，各著作権者（すなわち筆者）にあります．
　Copyright (C) 2023　Tadashi　Kato 