AquesTalk ESP32でかしこいおしゃべり貯金箱を製作してみた

M5STACK

はじめに

製作の動機は何かおしゃべりをする電子工作品を作ってみたくなり、貯金箱に硬貨を入れるときに金額をしゃべったり貯金箱の中の金額がわかると面白いかもと思い製作しました。

硬貨の種類を選別する方法としては重さセンサーを使用し、硬貨の重さで金額を特定する仕組みです。
発声は、音質の良いスピーカを内蔵しているATOM EchoとAquestalk pico for ESP32を使用することで実現しました。

さらに、今まで貯金箱に入れた合計金額も覚えていて、貯金箱からお金を取り出して数えなくても、ワンプッシュで教えてくれる機能も実装しています。

電子工作投稿サイトのProtopedia:おしゃべり貯金箱 ~Talking Bank ~にも投稿していますのでそちらもご参考にしてください。

金額を認識する仕組み

動作のシーケンスはそれほど難しいことはしていないですが次の通りになります。

1.重さユニット(HX711)とロードセル(500g用)を使用して硬貨受けにのった硬貨の重さを計測します。

2.硬貨の重さを条件にして金額を判別します。

3.サーボモータを回転させて硬貨を下に置いた硬貨入れに落とします。

4.音声合成APIであるAquesTalk ESP32 を使用して投入硬貨の金額を発声します。

5.累積の投入金額はEEPROMライブラリを使用することでM5ATOMEchoの不揮発性メモリ内に加算し記録します。これにより電源OFFしても貯金した総額の情報は保持されます。  

6.ATOM Echoのボタンをクリックすると不揮発性メモリから貯金額の累積総額を読み込み発声します。

7.ボタンの2秒長押しで累積貯金額を「0円」にリセットできます。

図1

硬貨は図1の表に記載しているように、それぞれ硬貨の種類で重さが異なっていることにより選別することができるのですが、5円玉(3.75g)と50円玉(4g)や10円玉(4.5g)と100円玉(4.8g)のように重さが0.3g程度しか差がない硬貨の選別が難しいです。
しかし、重さユニットとロードセルの測定精度の高さが素晴らしくほぼ正確に選別することができ、今回の作品の機能を実現することができました。

使用した部品

私が実際に使用したスイッチサイエンスで購入したものとアマゾンで販売されているものを紹介しておきます。

1.ATOM Echo – スマートスピーカー開発キット — スイッチサイエンス (switch-science.com)
  コントロール用のマイコンです。

2.ロードセル – 500 g(TAL221) — スイッチサイエンス (switch-science.com)
  アマゾンではより安価に販売していると思います。

3.Servo Kit 180‘ — スイッチサイエンス (switch-science.com)
  特に耐久性は特にこだわらないのでアマゾンで販売している安価なもので問題ないと思います。

4.M5Stack用重さユニット(HX711) — スイッチサイエンス (switch-science.com)
  こちらも参考にアマゾンで販売されているものを紹介しておきます。

回路構成は簡単

電気的な接続は図1のブロック図に記載の通りで、ATOM ECHOにサーボモータと重さユニットをそれぞれGPIOで接続します。ロードセルの信号線4本は重さユニットの入力端子に結線します。
キーパーツのロードセルとサーボモータの接続は、ロードセルの固定用貫通孔にボルトとナットを通してサーボホーンにワイヤで固定しました(図2)。

図2

キャビネットの製作

今回は基本機能の検証としてプロトタイプとして作成したもので外観は段ボール工作のため少々チープですが、3Dプリンタで工夫してお洒落な形状を作成したり、色紙を貼ってデコレーションするなど改善すればより良いものになると思っています。

図3

動いてしゃべっているところ

実際の貯金箱の内部の動きとおしゃべり具合を動画でご確認いただければと思います。
AquesTalkは古くからある老舗の合成音声で、いわゆるゆっくりさんボイスで良い感じではないでしょうか?

【動画】おしゃべり貯金箱

おわりに

金額の発声だけでなく、お金を貯金する事で毎日の占いをしてくれるなどのアレンジしてみるととても良い感じになると思いますよ。
どうですか、ちょっとお金を入れたくなりませんか?

コメント

タイトルとURLをコピーしました