2025年8月10日日曜日

DFR0745と格闘

某案件用に手頃なボイスレコーダー基板を探したところ、
DFRobotのDFR0745を発見。
スイッチサイエンスにて販売していたので、早速入手してみました。

ちなみにスイッチサイエンスでのページはこれ。
DFR0745 

小型で、電源も3.3~5Vとワイド対応。
データーは内蔵フラッシュに記録される為、SDカードに起因するトラブルとは無縁。
内蔵フラッシュ容量も16MBと結構な大容量。
最大40分まで録音可能とは十分すぎます。
何より特筆なのは、USBポートにより記録したデーターを取り出せる事。

USBでPCに繋ぐと、データー格納域がフォルダーとして見れます。
録音データーはMP3ファィルとして見えるので、
それをそのままPCにコピーして取り出すことが出来るのです。 

とまぁ、これらを見ると非常に良さげなデバイスに思われます。

 

そもそも某案件での使用目的は、APR9600搭載基板からの置き換え。

上記の仕様を見る限り十分な気がしましたが、
実際に動かしてみないと結論は出せません。

というわけで、テスト環境下で実際に動かしてみました。

 

・・・・・う~ん、結論から申し上げるとAPR9600からの置き換えは難しいです。 

難点その1  操作I/Fの差異 

  APR9600基板では、単純な接点信号だけで再生スタート出来ました。

  ではDFR0745を見ると、一見すると接点信号で再生できるように見えます。
  ところが実際に難が有るんですね。

  DFR0745ではデフォルトの状態がスリープモードなのです。
  再生ボタンを1回押すとスリープモードから再生待機モードになります。 
  その状態でまた再生ボタンを押すと、やっと再生が開始されるのです。

  更にやっかいなのは、余計な音声案内が付随している点。

  この基板、しゃべるのです(笑)
  スリープモードから再生待機モードへ移行する際、モードをしゃべるのです。
  音声ファイルの状況によっては、再生終了時にもしゃべります。 
  組込みで使おうと重さ寺、さすがにこれは使えません。
  ちなみに発声は中国語です。

 難点その2  リピート再生

  APR9600基板では再生はワンショットでした。
  接点信号1回につき、1度しか再生されません。

  ところがDFR0745ではリピート再生なのです。
  再生停止させる為のボタン操作を行わないと、何度も再生されます。
  そういうのが重宝する用途も有るんでしょうが、今回はダメなのです。

難点その3  音声ファイルのフォーマット

  音声データーのファイルをPCから読み書きできる旨は先に述べた通り。
  ならば再生するファイルをPC側で用意して、DFR0745へ転送したいとこですが、
  実はこれ、うまくいかないのです。

  ファイルの書き込みは普通にできるのですが、再生でトラブるのです。
  そもそもDFR0745の音声データーファイルはMP3形式とは言っても、
  ちと特殊な様でして、そこら辺に問題があるのかと。 
  参考までに、以下がDFR0745でエンコードしたファイルのフォーマット。


    ですので、再生データーはDFR0745側でエンコードする必要あるわけですが、
  ここでもまた難が出てくるのです。

  DFR0745のアナログ入力はマイク端子しかありません。
  そのマイク端子はオンボードのマイクとパラ接続されているのです。

  ですので、マイク端子からアナログ信号を入力中、
  マイクからの周辺雑音も混ざってしまうわけですね。
  まぁ、オンボードマイクを物理的に排除する手も有りますが・・・・ 

 

とまぁこんな感じでして、私の方としてはDFR0745の使用は断念します。
もしかしたら、シリアル信号線経由でユニットを制御すれば、
上記の問題点は いくつか解決できるのかもしれませんが、
その検証については他の方にお任せいたします。(笑) 

 

2025/8/11 追記

DFR0745に載ってる石のデーターシートを覗いてみると、
シリアル通信制御のコマンド一覧が有りました。
先に書いた再生動作についてはシリアル制御すれば解決できるっぽいです。
ただ、モジュールがしゃべる件については不明。
これをディセーブルするコマンドというのが見当たらないからです。
実機確認するしかない模様です。 

 

2025/8/11 追記2

気になったので、DFR0745をシリアルでアクセスしてみました。

最初、自家製EIA-574レベルを噛ませ、
TeraTermから手打ちでコマンドを送信してみたが、なぜかうまく通信できず。
DFR0745をコールドブートさせると"OK"が届くので、ハード的な問題で無い模様。

もしやと思いTeraTermではなくシリアルコマンドエクスプローラー2を使用し、
コマンドを送ってみると正常に通信出来ました。
要するに手打ちだと文字間が開き過ぎてタイムアウトしてた感じかと。

改めてシリアルコマンドで色々試した結果、
ファイルフォーマットの問題以外は全て解決出来る事が判明。
DFR0745がしゃべる件は、「PROMPT」というパラメーターでON/OFF可能でした。
データーシートには、このパラメーターの意味が書いてなかったので、
実際に動かして確かめるしかなかったわけですが、
もう少し解り易く書いて欲しかったところですが、まぁ中華製ですし(笑)

何にせよ、シリアルコマンド制御で使うには、何等かのマイコンが必要となります。
APR9600基板からの置き換えという観点だと、ちと手間が増えてしまいますね。 

0 件のコメント:

コメントを投稿