5/10日記 ===== プログラム ===== * 色々調べながら色々やった。 * https://sgry.jp/blog/2011/04/24/429/ * 下記は以前も貼ったけど、また必要になってしまった。 * https://turningp.jp/virtualization/virtual_box/manual-mount * https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-guides/tools/idf-py.html ---- * なんでかというとこれ買ったのです。 * https://docs.m5stack.com/en/core/Tab5 * これ単体でドラムマシンやシンセ作れるのでは?と考えてちょっと買ってみた。 * 音声の性能はあまりよくないので調整は必要だけど、あとは問題なさそう。 * で、気になるのは「どうやってプログラムを作ればいいのか」 * https://github.com/m5stack/M5Tab5-UserDemo * これをビルドさせながら色々試してみた。 * ただ、問題があって、M5StackCoreとだいぶ勝手が違うようで、更にビルドツールはCoreが前提になっている模様。 * つまり設定とかは別途調べないとダメらしい。 * とりあえず設定についてはM5Burnerの書き込む内容を確認してオプションを持ってくることができたのでよしとする。 * https://docs.m5stack.com/en/download ---- * 問題は、ビルドに使う「idf.py」というツールが、プロジェクトを作ってフラッシュするまで一気に行うようになっていること。 * https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-guides/tools/idf-py.html * https://blog.goediy.com/?p=807 * ビルド環境はlinuxを前提にしているため、Windowsでビルドしようとすると細かい部分で問題が出る。 * 実際WindowsではTab5のサンプルアプリのビルド自体が通らないため、これをどうにかしないと話にならない。 * よって、ビルドはLinux、Windowsでシリアルポートに反映という形にしたい。 * この環境構築にだいぶ時間がかかってしまった。 * まだ出たばかりのハードなので、各種ソースコードがこなれてない状態。 * よってWindows環境に対応しないなんてのが結構ある。実際サンプルでもあるんだから仕方ない。 * ということでこれらを回避してなんとかWindows環境で準備するという環境構築してた。 * 手順はざっくり以下の通り。 ---- * まずVirtualBoxでUbuntu環境を構築 * Ubuntu上でソースコードの準備する。下記の手順のうち「Fetch Dependency」を実行。 * https://github.com/m5stack/M5Tab5-UserDemo * 下記ページの「IDFのインストール方法」「IDFの使い方→コンソールの準備」を実行 * https://blog.goediy.com/?p=807 * サンプルのビルド手順の「IDF Build」を実行。 * 同じフォルダ内で「idf.py merge-bin -o <好きな名前>.bin」を実行 * 下記の手順でWindowsとの共有フォルダを指定する * https://turningp.jp/virtualization/virtual_box/manual-mount * さっき作った.binファイルを共有フォルダに格納 * Windowsから見た共有フォルダにさっき作った.binファイルが格納されているのを確認する。 * Windows側で下記のソフトをインストールする * https://docs.espressif.com/projects/esp-idf/en/stable/esp32/get-started/windows-setup.html * コマンドラインからidf.pyが使えるようになるので、それを使った状態でさっきの共有フォルダに移動する * コマンド入力 * 「python -m esptool --chip auto --port --baud 1500000 --before default_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0x000 <さっきつくったバイナリの名前>.bin」 * これで書き込みができるはず。 ---- * あとは毎回以下手順を行えば準備ができることになる。 * 「Linux側のesp-idfのexport.shを実行」「Linux側で共有ドライブ設定」「Windows側でidf.py用のコマンドプロンプト起動」 ---- * エディタとかはnanoがあるし、最悪microを持ってくるとかでもよさそうなのでよしとする。 * あとVSCodeも動くみたいだし。 * ソースコードの構成はこれから見る。まずビルドができないとどうしようもなかったのでそれを優先した。 * 環境が整備されてないが故の作業だったので、いずれArduinoやPlatformIOで作れるように整備されてくことでしょう。 * あと公式のコードも修正されてくことでしょう。 ---- * と思ったらPlatformIOの設定を使わせてもらうと準備もちょっぱやでできることが発覚。 * https://github.com/3110/m5stack-platformio-boilerplate-code/tree/develop * これをつかうのが一番カンタンな気がした。 * で、初めてM5Unified使ってみたんだけど、だいぶ取り扱いが簡単。 * しばらくこれでアプリ作ってみよう。 ---- * どうも出回ってる情報のほとんどが古いみたい。 * これが公式で正しい情報ぽい。 * https://espressif-docs.readthedocs-hosted.com/projects/arduino-esp32/en/latest/api/timer.html ===== その他 ===== * 目医者いってきた。 * いつものお病気さんの検査。 * 年1回の検査予約してきたけど、それが2ヶ月後とのこと。どうなるやら。 ---- * あと歯のトラブル発生。来週予約入れた。どうしたものやら。