m5stack/tools/esptool_py/3.0.0/esptool.py: no such file or directory の解決方法
新Macにm5 atomを接続したところ、色々と手こずったのでブログに残しておく。
これはatomだけじゃなくm5stackも同じだと思われる。
エラー内容
Arduino IDEからコードを書き込もうとするとエラーが発生した。
Arduino:1.8.16 (Mac OS X), ボード:"M5Stack-ATOM, Default, 1500000, None" fork/exec /Users/k_ikemura/Library/Arduino15/packages/m5stack/tools/esptool_py/3.0.0/esptool.py: no such file or directory ボードM5Stack-ATOMに対するコンパイル時にエラーが発生しました。
esptool.py が見つからないらしい
解決方法
同じエラーを抱えている人は世界中にいるようで、このIssueに解決方法が載っていた。
arduino-esp32 projects fail on macOS 11 "Big Sur" · Issue #4408 · espressif/arduino-esp32 · GitHub
esptool.py を上記Issueの通りコピーする。
まず画像のパスからesptool.pyをコピーして
下記パスに貼り付ける
コピーしただけだと esptool.py: permission denied
というエラーになるので、chmodで実行権限を付与してあげる。
chmod 755 esptool.py
これでesptool.pyは大丈夫、と思いきや、今度は違うエラーが発生する。
Traceback (most recent call last): File "/Users/k_ikemura/Library/Arduino15/packages/m5stack/tools/esptool_py/3.0.0/esptool.py", line 37, in <module> import serial ImportError: No module named serial exit status 1 ボードM5Stack-ATOMに対するコンパイル時にエラーが発生しました。
serial
がimportできないようだ。
これも上記Issueに対応方法が載っている。
python2のpipでpyserialをMacにインストールする必要がある。
まずはpython2のpipをインストールするスクリプトをダウンロードする。
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py
あとは get-pip.py を実行する。
python2 get-pip.py
pipがインストールされたので、ようやくserialを取得できるようになった。
python2 -m pip install pyserial
Successfully installed pyserial
が表示されたらOK
Jetpack Compose Desktopの参考になるRepositoryを集めた
ComposeでのDesktopがどうレイアウトしていいのか分からない。
そういう時に参考になるGitHub Repositoryを探してきた。
探し方はGitHub Repositoryをcompose-desktop
タグで検索した。
joreilly / PeopleInSpace
有名なRepositoryで、KMMの参考としてもよく名前が上がってくる
theapache64 / stackzy
Win, Mac, Linuxのバイナリ作成も用意されており、参考になりそう
JetBrains Compose Playground
情報量の多いJetpack Compose example project
モバイル / desktop / web と3Platformが揃っている
ComposeSlackDesktop
Slackアプリのクローン版
klokk
時計アプリ
針の動きがキモカッコいい
Compose-Desktop-PlayGround
Ktorを使用したdesktop サンプルアプリ
画像ギャラリーのようだが、段々になっているグリッド形式がカッコいい
compose-desktop-template
動作が一通り揃っているテンプレのようだ
- Architecture (MVVM) with Android-ish structure (SingleActivity)
- Dependency Injection (Dagger2)
- Navigation (Decompose)
- Launcher Icons (for all platforms)
- A separate data module
- Testing (both unit tests and UI tests)
- Theme
- Logging
- Font (GoogleSans)
npmコマンドもあるようで、便利そう
WeatherCards-ComposeDesktop
スター数は少ないが、自分が作りたいレイアウトと似ているのでチョイス
M5Stack Basicセットアップ (2021年version)
2年ぶりにM5Stack Basicで遊ぼうとしたら、M5Stack環境が色々と進化していた。
MacのドライバやらソフトウェアをUpdateして、どうにかM5Stack Basicと接続&アプリ実行できるようになったので、雑なメモを残す。
セットアップ情報は公式ドキュメントだけを見よう
そこらのブログやQiitaやZennの記事はもう古い!(新しい記事もあるかもしれないが)
公式ドキュメントを見よう!
今回はUIFlow Quick Startを参考にしてすすめた。
(2021/08時点なので、数年後にはUIFLowも古くなっているかもしれない)
大きくやることは3つ
- Driverインストール
- M5Burnerでfirmwareを焼く
- UIFlowでアプリ作成
これらは上記の公式ドキュメントurlにすべて載っている。
自分は細かく説明しないが、ざっくり説明だけ
1. Driverインストール
CP210Xドライバをインストールして、PCとM5Stackを接続できるようになるらしい。
自分はMacなのでMacOSを選択してdmgをインストールした。
2. M5Burnerでfirmwareを焼く
M5Burnerをインストールして、M5Stackのfarmwareをupdateできる。
自分のデバイスはM5Stack Basicなので「UIFLOW(CORE)」を選択してBurnした。
インストール方法は公式ドキュメントを見るべし
3. UIFlowでアプリ作成
UIFlowを使うにはインターネット経由とUSB経由の2つがある。
要は、オンラインとオフラインの違いだ。
オンラインでUIFlowを使うためにAPIKeyが必要だが、これははM5Stackデバイスで取得できる。
そのAPIKeyを https://flow.m5stack.com/ に接続して入力する。
オフラインの場合はAPIKeyは必要なく、UIFlow-Desktop-IDEをインストールして、macからtype-Cケーブル経由でアプリを実行できる。
IoT関連で気になった記事 2021/08/05
個人的に面白そうとおもったIoT記事をピックアップする。
今日はこの2つ
スタンフォードのエンジニアは、正確なウェアラブルカロリー燃焼カウンターを設計
- スタンフォード大学のエンジニアは、小型で安価で正確な新しいカロリー燃焼測定システムを開発
- 太ももとふくらはぎにセンサーを2つ設置して動きを検出する
- 脚が動いているときの加速度を回転を測定する
- スマートウォッチとスマートフォンでカロリー消費を計測するよりも、このシステムの方が正確に計れる
海岸のタバコの吸い殻を、自動運転するビーチローバーできれいにする
- タバコの吸い殻は海に対して有毒
- 移動式のビーチクリーナーマシン
- BeachBotというプロトタイプを作った
- AIに学習させるため、たばこの吸い殻の写真を何千枚も集める必要があった
- MicrosoftTroveという写真収集サービスを使ってAI用の画像を2000枚集めた
- このプロトタイプマシンで30分で10本の吸い殻を集めた Cigarette butts are poisoning shoreline animals. This beach rover may help clean all that up – Microsoft News Centre Europe
感想
脚でカロリー計測するのは「なるほどなー」と思った。
確かにこの方が正確に運動量を計測できるかも。
Microsoft Trove というサービスを初めて知った。
AI開発者のために、ユーザーが画像をアップして報酬をもらえるサービスらしい。
このビーチローバーはぜひ故郷の西表島にも欲しい
IoT関連で気になった記事 2021/05/10
IoTのネタ探しとして面白そうな記事を見つけたので、雑に紹介する。
床にあるPi4でAIを強化する
Raspberry Pi4で歩行中の足音から人を識別する
PURE (Passive mUlti-peRson idEntification)で、足音から個人を検出できるらしい。
円形マイクアレイとRaspberryPi 4で足音を取得し、Tensorflowで実装された機械学習で実行されるぽい
1回の足音だけなら88.6%
2〜3回の足音なら96.53%の精度らしい
なにそれすごい、そして怖い
Arduino EdgeControlスマート農業の未来を感じる
屋外環境向けに最適化されたリモート監視および制御ソリューション
展開が簡単なため、遠隔地でのスマート農業、精密農業、およびその他のインテリジェント制御アプリケーションに適している。
農業ロボットはレーザーで1時間あたり100,000の雑草を殺す
雑草を識別し、高出力レーザーで破壊するスマート農業ロボット
12台のカメラが地面をスキャンします。AIを搭載した車載コンピューターが雑草を識別し、ロボットの炭酸ガスレーザーが植物をザッピングして殺します。
1時間あたり100,000を超える雑草を除去し、1日で15〜20エーカーの作物を除草できます。
値段はとても高額で、数十万ドルらしいが、既に売り切れている(マジすか!)
Riot.jsに触れてみた
会社の同僚がRiot.jsの本を出版したので、応援の意味も込めて購入した。
Amazon.co.jp: Riot.jsで簡単Webアプリ開発 eBook: 桑原聖仁: Kindleストア
自分はVue.jsを自己学習しつつ下手なサイトを作った事はあるが、他のFWを試してみたかった。
やったこと
plunkというサイトでお試し実装してみた。
(本当に簡単な実装だけなので、あまり見る価値はない)
感想
まず本を執筆する、という行動がすごい。
本の内容はRiot.jsの入門用だが、Web知識の薄い自分でも読み進めることはできた。
(まだ全部は読み終えてないが)
Riot.js自体はまだよく分かっていない。
正直、Vue.jsと書き方があまり変わらない感じがしたし、使い勝手も良さそう。
実家のHPにでも組み込んでみようかなーと企んでいる。
Macでflacをm4aに変換する方法
やりたいこと
flacファイルをm4aに変換したい!
購入した海外アーティストの曲ファイルがflacだった。
flacが再生できる環境なら問題ないのだが、我が家のカーナビがflacに対応できず再生できなかった。
m4aファイルなら再生できるのは確認済みなので、flacから変換したい。
CLIの方が楽だし、大量のファイルを扱えるしね。
結論
以下の3つの方法を試したが、XLDが一番ベストだった。
理由は、コマンドもシンプルだし音楽タグも正常に引き継がれて、カーナビで問題なく再生することができた。
- XLD
- Afconvrert
- ffmpeg
XLD
インストール
brew install xld
変換コマンド
xld hoge.flac -f aac // 一括で変換するパターン ls *.flac | xargs -I{} xld {} -f aac
参考
Afconvrert
macにはAfconvrert
がプリインストールされていた。
わざわざXLDをインストールせずとも、Afconvrertでflacからm4aに変換することはできた。
が、タグ情報が全て消えてしまう。。。
音楽タグが全て消えるのは困るので、この方法は微妙。
(タグが不要なファイルならこの方法でもいいと思う)
変換コマンド
afconvert -f m4af -d alac ファイル名.flac
参考
macos - What are the command line options for afconvert? - Ask Different
タグが消えるのは困るので、この方法はボツ
ffmpeg
ffmpegでもm4aに変換はできた。
しかし、変換したm4aがカーナビで再生できなかった。
ちゃんと変換できてないのだろうか...
変換コマンド
ffmpeg -i 変換前ファイル.flac -vn -acodec alac 変換後ファイル.m4a
変換できても再生できなければ意味がないので、この方法はボツ
感想
CLIで変換することはできたが、恥ずかしながら自分がshコマンドに精通していないため、xargs
の存在を初めて知った。
メッチャ便利だね、xargs
今回、シェルコマンドにも興味が出たので、勉強していきたい。