2020年12月24日木曜日

[IoT] M5Stack ATOMでマイクロSDXCカードのexFATにR/Wする方法

標準ライブラリSDではR/W出来ないexFATなSDXCカード

M5Stack ATOMにはATOM GPS Development KitATOM TF-Card Reader Development Kit up to 16GBのTFカードスロットが付いた拡張モジュールがあります。これでマイクロSDカードが読み書き出来ます。

事の発端は開発中のATOM GPS Development Kitをテストしようとした時。SDメモリカードフォーマッターで初期化した64GB マイクロSDXCカードを挿して持ち出し外出先で動かそうとしたら認識しなかったのです。原因はexFATにあるとすぐにわかりました。同じカードでFAT32の時は認識していたからです。

標準サンプルプログラムにも使われ私も使っていたArduino SD LibraryはFAT16/32にしか対応しておらず最大容量32GBのマイクロSDHCまでしか使えません。製品名では16GB上限となっていますが大人の事情だと思います。

exFATに対応したSdFat Ver.2を使う

exFATに対応したSdFat Ver.2を見つけました。examples(例)のコードを見てもArduino SD Libraryと書き方が異なっていてプログラム実行時の使い方も書かれていません。お約束の近道"ググる"をしてみたもののATOMでの稼働事例は見当たりません。悪戦苦闘の末に動かすことが出来たので次節に結論から書きます。

すぐ動くコード

GitHubの私のリポジトリにsmiura/SdFat/examples/M5Atom/rename/rename.inoを作りました。これをダウンロードしてArduino IDEで開き、ライブラリ管理でM5Atom Ver.0.0.1とSdFat Ver.2.0.2をインストールすれば使えます、多分。使えなかったら不足分をインストールしてください。

使い方は、ATOMとPC等をUSBケーブルで繋いだままにしてシリアルモニタを立ち上げます。ATOMのリセットボタンが側面にあるのでそれを押して再起動するとメッセージが表示されます。Type any character to start.で止まるので画像赤矢印の送信ボタン押してください。

実行後にSDカードを他の機器で見ると/dir2/DIR3/NAME3.txtというディレクトリ(フォルダ)とファイルが出来ていて4行ほど文字が書かれているはずです。それでテストは成功しています。

examples(例)rename.inoがやっている事

具体的な内容はプログラムの81行目以降を参照なのですが、ファイル操作に必要なオープン・クローズの他にディレクトリとファイルの作成移動削除と書き込みをしています。

データロガーを作りたい場合に最低限必要なファイルへの書き込み例がわかりやすく書かれています。

なぜ動かなかったのか?

プログラムの修正箇所をGitHubの履歴差分表示を使って表示出来るようにしました。

M5Atomライブラリ固有コードの追加は容易に想像が付いたのですが、問題は冒頭のSD_FAT_TYPESD_CONFIG SdSpiConfigです。

SD_FAT_TYPEは0が指定された場合は/src/SdFatConfig.hのSDFAT_FILE_TYPEに基づくのですがそのままだと1 FAT16/FAT32が選択されてしまいます。そのため強制的に3を指定してexFATも使えるようにします。

SD_CONFIG SdSpiConfigSD_SCK_MHZ(16)を追加しています。これはSDカードにSPIモードで通信した時のクロック数でSDカードによって変わってきます。数字が大きければ高速な反面、SDカードが古いタイプだと非対応でエラーになります。
77行目のsd.begin(SD_CONFIG)で使われているので、もし想定するSDカードが幅広いようならそこで直接指定してクロックを大きい数字から片っ端から試してエラーにならないところを探るという乱暴な方法もあります。

Arduino SD Libraryではその辺の指定なくSDカードへアクセス出来るのですがどうやってるのでしょ?気になるので時間あったら調べてみたいです。

最後にSDカードは難しいよって話

今回はexFATを取り扱う事に限定して簡単に書きました。SDカードそのものの話をすると、M5Stackが提供するプログラム例AtomicTFAtomicGPSはSDカードのホットプラグを想定されていません。
あくまで例 examplesだからと思われるかもしれません。しかし、回路図を見てわかるように必要最低限の結線のみなので正規の手順で処理しようにも出来なかったりします。小型化低コスト化ゆえなので仕方のない事です。

だからこそ、こういうハードウェアのプログラムを作るのって楽しいんですけどね😉
お読みいただきありがとうございました。様々な日記ブログを執筆しています。そちらもご覧いただけると幸いです。
まったねー(^o^)

2020年12月20日日曜日

12月第3週(12/13~12/19) ダイエットサマリー 
体重再び上昇 
今週の茶道具 
今週のITツール

セグロカモメ

セグロカモメが地元春日部にやってきました。シンボルの鳥 ユリカモメよりお早い飛来です。
内陸のしかもだいぶ奥にカモメがいるのも不思議な光景なのですが、大昔はこのあたりも海の底だったので名残なのかもしれませんね。

体重再び上昇

体重は再び増加に転じ元の60kg台に返り咲き。
やはり油断したらすぐに戻りました。

1日平均値ではかろうじて60.0kg台でも1つ1つの数字では61.0kg台の日も出てきてます。今までこの体重台をキープしていた期間は短いのでよくやっているほうなのですが、できればもう少し頑張りたいという気持ちはあります。
色々な事が重なるとすぐに崩れるのが減量ダイエット。捨てる勇気も必要です。もったいないですけどね。
散々だった2020年も残りわずか。最後まで気を引き締めて駆け抜けたいです。

正常に戻ったトレーニング

先週発覚したトレーニングの順序は正しました。筋トレ19日、ランニング6日先行のまま1週間予定通り終了です。
冷え込みが日に日に厳しくなりついに最低気温が氷点下の日も出てきました。ランニングが億劫で仕方ないのですが、汗だくになってもいいからとにかく暖かい格好で走るようにしています。
モチベーション維持するのも大変です。

今週の茶道具

懐紙3点セットが届きました。無地が2種類でうち1種類が紙製懐紙入れとプラ楊枝付き、もう1つは松葉柄の模様が入ったものです。サイズは17.5x20.6(cm)の男性用の大きいタイプ。現在使っているダイソーのものは女性用の小型のタイプです。
もういくつ寝るとお正月。松葉柄の懐紙でお正月の御抹茶と御菓子を頂きたいですね🍵

今週のITツール

マイクロSDカード サンディスク エクストリーム 64GB SDSQXA2-064G-GN6MNです。
M5Stack ATOM GPSキットでマイクロSDカードが必要になりRaspberry Pi 2で使っていたものを一時流用したため、その補充のために購入しました。今主流の128GBを当初考えていたのですが安かったのでこちらに。このシリーズって容量少ないと若干R/W速度が遅くなるのがネックですが、それでも十分速いのでヨシとしました。

ロジクール ワイヤレスマウス Bluetooth Unifying 7ボタン M585GPです。現在使っているワイヤレスキーボード ロジクール K270のUnifyingレシーバーで使うために購入しました。Bluetoothにも対応してるので試しにiPad Air 2にペアリングしたら普通に使えました。

今週も所用でサイクリングしてきました。ついでにATOM GPSキットUNIT ENV.Ⅱのテストもと持ち出したらまさかのマイクロSDXCカード標準のexFAT未対応で使えませんでした。もちろんプログラムは自前なので私の考慮漏れ。ハードウェア的には使用できます。悪戦苦闘の末なんとか対応できたので、その事は後日別の記事で書きたいと思います。

お読み頂きありがとうございました。次回もお楽しみに!

2020年12月13日日曜日

12月第2週(12/6~12/12) ダイエットサマリー 
体重微減 
献血してきました 
今週のITツール 
今週のキッチンツール

黄色い電車🚃🚃

田舎駅のような風景ですよね。2両編成の電車。
場所は北春日部駅。東武8000系亀戸線大師線運用の昭和30年代試験塗装2両編成車両が停車していました。奥に小さく見えるあそこで整備されるのか単に留置しておくだけかはわかりません。
いろいろ見られて楽しい場所です。

体重微減

体重がわずかに減少し始めました。今週は献血があってその日を境に減り始めています。
今週もイレギュラーな食事をしていたので意外でした。

実数値を見ると100g単位なのでぬか喜びな可能性もあります。気を許せばすぐにまた増えるでしょう。
季節もすっかり冬になり12月21日は1年で日が最も短い冬至です。
体調管理に気をつけて引き続き頑張りたいです。

どこかで間違ってたトレーニング

今週もいつも通りトレーニングを終えましたと言いたいところですがトラブル発生。実施項目を間違えていました。
ブログをチェックしたところ11月第3週までは正常だったのでそれ以降です。
毎日同じことの繰り返しなのでどっちかわからなくなることがあります。1日分の間違えですし先行日を考えると気にすることは無いのですが、同じ部位を連日やると疲労の蓄積で違和感あるんですよね。来週は正常化した姿でご報告したいです。
筋トレ19日、ランニング6日先行日のまま、献血マークが久々についた週でした。

献血してきました

前回400ml全血献血から12週間が経ったので成分献血をしてきました。
新型コロナの流行で厳しい状況が続いているそうなので、協力可能な方や出来るかどうかわからなくて迷ってる方はぜひご協力ください。

血液検査結果は異常なし。個別項目も普段と変わりません。
回数を重ねると色々ありますし思うことも出てきます。今はただ自分に出来ることをするだけに集中して続けたいです。

今週のITツール

前回ブログに掲載したM5STACK ATOM GPSキット・TailBAT・UNIT ENV.Ⅱの続きです。
プログラムの開発が進み実際に外に持ち出してテストしました。1回目は見事撃沈。SDカードに情報が記録されていませんでした。SDカードの認識状態が不明なのとGPS測位状態のLED点滅時間が短すぎてわかりにくい2つの課題が見つかりました。

改良してテスト2回目。SDカードが認識してる時は緑していない時は黒(消灯)にし、記録時のGPS測位状態の点灯時間を100→300ミリ秒に伸ばしました。結果は良好。テスト中に一旦電源を落として再開するとSDカードが認識されない事がありましたが抜き差しで回復。状態表示がわかりやすくなりました。

帰宅後にSDカードをチェックすると記録も出来ていました。CSVフォーマットをGPXフォーマットに変換しGPX Editorで視覚化すると綺麗に軌跡が描かれました。主目的の温度湿度気圧の地点観測情報の解析はその処理プログラムをまだ作っていないので出来次第ご報告します。

今週のキッチンツール

エムケー精工 ヨーグルト・甘酒メーカー容器セット(YA-100W YA-200W用) を購入しました。自家製ヨーグルト用です。
アイリスオーヤマの容器が4本あるのですが一時的に足りなくなる事があったので追加購入しました。サイズはほぼ同じですが蓋や目盛りが微妙に異なっています。試しに蓋を取り替えてみたらちゃんと閉まったので万が一間違えても大丈夫そうです。

お次はよつ葉 北海道脱脂粉乳 1箱12袋(12kg)です。10月第4週のブログで紹介した商品のリピ買いです。
1週間に1袋のペースで使っていて計算だと1月中に使い切る予定でした。最初のがまだ5袋+開封済み1袋残っているので検品だけしてしばらく締まっておきます。

自分でプログラミングしたIoT機材の実地テストはほんと楽しいです。この歳になってもワクワク感が込み上げてきます。そんな道中をRelive動画にしましたので良かった御覧ください。
お読み頂きありがとうございました。次回もお楽しみに!

2020年12月6日日曜日

12月第1週(11/29~12/5) ダイエットサマリー 
体重相変わらず横ばい 
今週のITツール

Apple🍎

今シーズン初めてのリンゴを頂きました🍎
適度な水分量と甘さで美味しかったです。今年は例年とは異なる気象条件だったため作物の当たりハズレがあるようですが当たりでした。
ご馳走様でした🙏

体重相変わらず横ばい

体重は先週に続き今週も横ばいの1週間でした。
食事も相変わらずなので安定しています。

献血日が近いため禁酒しています。そのおかげもあるかと思います。
お酒も付き合い方が大切です。私は食事の一品として味わう事が目的の1つ。もう1つは薬として利用しています。
並の運動量なら気にする事はないのですが、高負荷なトレーニングを続けているとどうしても安静期の血圧心拍数の落ち込みが大きくなり、時にはそれが回復の足かせになることもあります。それを補うために一時的強制的に上げるためにお酒を用いります。
飲みすぎは万病の元です。つい飲みすぎるという方にはオススメできない方法ですので万人向けではないことを付け加えておきます。

普段どおりのトレーニング

体重同様、トレーニングも普段どおりでした。筋トレ19日、ランニング6日先行のままです。
寒さも一段と厳しくなりランニング時の服装も少しずつ厚着になっています。
時間の余裕を作るため一緒に買い物もしてきたりと試行錯誤。おかげでトレーニングに追われる日々から脱しつつあります。
この調子で続けたいです。

今週のITツール

中国の光棍節(こうこんせつ)、通称独身の日のセールの購入品が届きました。

窒化ガリウムUSB充電器 UGREEN Power Delivery Fast Charger GaN X 65w 70773

窒化物半導体 窒化ゲルマニウムを使った充電器で従来品より小さいのが特徴です。
海外製品のためプラグ形状がUSプラグとなっていましたが穴空きの日本対応品でした。

マルチプロトコル対応で手持ちの3万mAhモバイルバッテリーも9V急速充電出来ました。
USB-Cコネクタが広がりつつありこの商品も4ポート中3ポートがそれです。我が家のガジェットも増えつつあるので少しずつ切り替えていきたいです。

お次は独身の日の後に発注して届きました
[ M5STACK ]
ATOM GPS キット
TailBAT
UNIT ENV.Ⅱ

自分でプログラムを書き込んで動作させるワンボードマイコンで、レゴ テクニックシリーズで使うマイコンを意識しています。UNIT ENV.Ⅱの丸穴もレゴ用のものです。

登山時の気温と測定場所を記録したくて買いました。プログラム作成中なのですが提供されているサンプルコードは問題が多かったため、公開されている汎用ライブラリをお借りして作成中です。
完成したらテストも兼ねて山登りに行きたいです⛰️

所用で外出がありこの日もサイクリング。途中で三州製菓 S-terrasseに立ち寄り新発売のペヤング やきそば 超大丸せんべい キャベツ入りを買いました。思っていたのと違ったソフトせんべい🍘でどこか懐かしい駄菓子感覚でした。このブログを書きながら食べていましたがほんと美味しいです。お試しあれ。

今週もお読みいただきありがとうございました。次回もお楽しみに!