【Teensy4.1】MTPモードでSDカード抜かずにWin10へマウント<TyToolでPgm切替便利>

超高速マイコンTeensyの能力を生かすには、USBを使いまくるのがよいので、USBを使っていろいろトライしてます。 USB HOST機能は、一通りいじったので、次に、SDカードをPCに読みこむ場合、マイコンを防水ケース内に埋め込んであるので、SDカードを抜き差しがフィールドでは困難なので、Teens4.1をカードリーダーにしてしてしまうMTPプログラムを見つけました。MTPとは、スマホやデジカメでおなじみの機能で、PCにUSB接続するとスマホ、デジカメのSDカードがWINDOWSのドライブとして読み書きできる便利な機能です。
※USBメモリーと全く同じ扱いになるので、何個でも同時にPC接続できますので、マイコンでログしたデータを大量に迅速な処理が可能となります。大量データをフィールドで計測を行う場合は、役立つシステムです。
※2024年7月別の方法作りました SDカード抜かずにアップロードする方法」
SDカードを抜かずにUSBケーブルをPCへ接続するだけで、SDファイルを高速でアップロードするシステムを作りました。本記事では、Win10へマウントする方法でPCへ取り込みますが、既存TOOLを使うため、準備操作が多いのですが、USBアップロード専用のプログラムを2本作りました。Teensy側アップロード関数とPC側C#コンソールのアップロードアプリを用意することで、
数十MbsでSDカードが読めます。以下3本の記事を読めば自分の使い方でアップロードシステム自作できます。
【STA24】SDカードからログファイル超高速アップロードその0<Teensy4.1とC#で17Mbps出た>

【STA24】SDカードからログファイル超高速アップロードその1<シングルTaskで簡単>

【STA24】SDカードからログファイル超高速アップロードその2<キー入力ゴミBufferクリア必須>

=>C#初めての方は、丁度良い入門学習レベルでアップローダープログラム作れます。シングルタスクでシリアル受信しているので簡単です。
初めてでも1か月程度で作れるようになると思います。
【C#】Visual Studio2022いじる<シリアル通信サンプルを動かす>

余分に輸入してストックしてあるTeensyをメルカリで販売してます。Teensy4.1 イーサネット無 5000円 (2024年8月29日~)
本記事の読者様には、500円値引きしてご購入いただけます。メルカリのコメントにブログ記事みて購入したいと言っていただければ
値引き価格4500円でお売りいたします。https://jp.mercari.com/item/m99133661345

前提:Teensy4.1で、プログラム作成できる環境ができてること
1,SDカード挿してデータを保存してある
2,WIN10PCにUSBケーブルで接続したある状態からスタート

①ダウンロードと準備
1)TyTool Arduinoのプログラムを切り替えるTOOLダウンロード
https://github.com/Koromix/tytools/releases
WIN64版をダウンロード TyUploader.exeを使います。
2)Teensyライブラリ MTP_t4-master.zipをダウンロード
してArduinoライブラリーにインクルード

https://github.com/WMXZ-EU/MTP_t4

3)Teensyライブラリ sdFAT-master.zipをダウンロード
してArduinoライブラリーにインクルード

https://github.com/greiman/SdFat

4)切り替えたいPgmのHEXファイルを作る
切り替え用フォルダー(任意)にコピー保存しておく。
HEXの作り方リンク https://www.jh4vaj.com/archives/28795
4-1通常のSerialモード用:今回は、sdinfo.inoを使って、MTPモードからの切り替え方を練習します。
ArduinoIDEのTool-USB TypeはSerialに設定してあるのを確認してください。
ArduinoIDEのファイルースケッチ例ー一番下のカスタムライブラリーのスケッチ例ーSdFat-Sdinfoを開きます。
HEXファイル(バイナリ出力とも呼びます)コンパイルは、
スケッチーコンパイルしたバイナリーを出力を押すと、ファイルがinoファイルのあるフォルダーに出来ます。
SdInfo.ino.TEENSY41.hexという名前できているのでこれを切り替え用フォルダーにコピーしておきます。

4-2MTPDisk用:mtp-basic.ino.hexで、MTPモードを作成できる。作り方は下記

●MTPモードを作るプログラムを一旦試してみる mtp-basic.ino
いくつか、サンプルプログラムがありますが、使うのはmtp-basic.inoです。走らせるとWIN10
MTP-t4ライブラリーがインクルードされていることが前提です。

ArduinoIDEのツールTool-USB TypeがMTP Diskに変更してからコンパイルすることが肝です。
①ファイルースケッチ例ーMTP_t4ーmtp- basic.inoで、ソースを読み込みコンパイルします。

②コンパイルの設定
ツールーUSB TypeをMTP DISK(experimental)に設定します。USBでMTPを使えるようにします。
<USBをMTPモードにするので、このプログラムを走らせている間は、USBシリアルは使えませんが、
USB TypeをSerialに設定してコンパイルしたプログラム(普通に使っている)を走らせるとUSBシリアルモードに戻ります。>

③コンパイル、書き込み
ソースコードはいじらないでそのままコンパイル、書き込みます。TeensyLoaderの使い方は、ご存じだと思いますが、もし、初めての方なら、こちらTeensyのガイドページをみてください。

コンパイルしたら、TeensyLoaderがAutoになっている場合はボタンを押さなくても自動書き込みしてくれます。
プログラムが書き込まれたら、自動的にSDカードがWIN10へマウントされて、teensyドライブフォルダーが立ち上がります。Teensy¥sdioフォルダー下にログしたファイル群があります。

teensyドライブを開くと sdioフォルダーがあります。

sdioフォルダを開くと、ログしたファイル群が見えます。WINDOWSアプリでいろいろ処理ができます。
コピー、ペースト、CUT、消去など普通に使う機能は使えます。アプリから直接アクセスもできます。

5)作ったHEXファイル2個の切り替え操作の練習

ZIP解凍したTyToolフォルダー内の TyUploader.exeを立ち上げて、書き込みたいHEXファイルを選択してUpLoadするだけで、切り替えOKです。
5-1 MTP-basicをアップロード
すると、
下図のように、WIN10 ドライブteensyのSDカードがマウントされて
ファイルの各種操作(コピー、カット、ペースト)がExplorerで普通にできます。
※注意:MTPモードではUSBシリアルは認識されないので、使えなくなってます。USBはMTP Diskとなってます。

5-2 Sdinfoをアップロード、USB Typeを通常のSerialに戻せる。
MTP Diskモードを通常のSerialモードに戻すには、Serialモードで作成したHEXファイルをアップロードすればもとに戻ります。下図は、Sdinfoを走らせて、TeraTermで、USBシリアル接続してSDカード情報を読み込んでます。

上記、MTP-basicとその他通常のプログラムをTyUploader.exeで切り替えて使うことでSDカードログデータのPCへの読み込み時間と手間が劇的に改善されます。

 

●以後
MTPの基本的な動作確認ができたので、実際の使い方の工夫をして、スキーターンアナライザシステムへ
組み込みます。最近は、Win10がラズパイサイズのワンボードで動作するようになってきてますので、
マイコンで苦労していろいろプログラムを作るより、その場でPCに渡してしまったほうが、使い慣れた
アプリとか、VB.NETで作ったプログラムだけで高度な処理を高速で処理できるので、マイコンにかかる手間と時間の無駄が省けて、生産性があがります。2022年は、脱マイコンで、できるだけマイコンで苦労しないようにしたいと思います。


●USB HOST注意点として、500Kbpsを超える信号線の結線は、しっかりした太い線で、固定をしっかりさせて、応力が半田部分にかからないようにして、ノイズ対策もシールド線のGNDもしっかりとらないといけない点です。アンテナしかり、460800bpsシリアル線、USBシリアル線も太くてしっかりしたシールド線を使うようにこころがけることが重要です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です