勝手な電子工作・・

勝手なオリジナル電子工作に関する記事を書きます

Micro:bitに喋らせる

マイクロビットの端子は単にPCBむき出しです。ミノムシクリップで簡単に取り出せますが、隣へずれたりするので今一つですね。そこで、マイクロビット用のブレークアウト・アダプターが各種出回っています。価格も数百円~千円未満という感じです。

ネット通販に注文した次の写真のブレークアウト・アダプターが到着したので試してみました。

f:id:a-tomi:20180907113952j:plain

これを使えば、ピンへの接続はArduinoと同じでとても楽ちん。

さて、試しに使ってみます。マイクロビットは開発環境が進んでいますが、私はmicro Pythonを使います。

これで喋らせてみました。

www.youtube.com

とはいってもテスト用のコーディングは、わずか20行ですからあっという間にできます。ただし、マイクロビットのスピーチライブラリーにとっては発音が苦手な文もちらほらありますので、そういうところは文をとりかえてみました。

    
from microbit import *
# display.scroll("Micro:bit")
import speech
while True:
    display.show(Image.HAPPY)
    speech.say("Hi, everybody.   Can you hear me?", speed=80)
    display.show(Image.SURPRISED)
    speech.say(" You are the micro bit, arn't you??? ", pitch=128,speed=65,mouth=128, throat=128)
    display.show(Image.HAPPY)
    speech.say("Yes, I can do a lot of things.")
    display.show(Image.SURPRISED)
    speech.say("   what most of people won't imagine.", pitch=128,speed=70,mouth=128, throat=128)
    display.show(Image.HAPPY)
    speech.say("Thank you. It's my pleasure!")
    display.show(Image.SURPRISED)
    speech.say("By the way, do you speak Japanese ??",pitch=128,speed=65,mouth=128, throat=128)
    display.show(Image.SAD)
    speech.say(" No, not yet. Very sorry.")
    display.show(Image.SMILE)
    speech.say("     Woops..  ")
    display.scroll("Tominaga Labs -- ")

 大昔のトーキーという感じです。

さて、マイクロビットから出す音声はPWMです。どのマイコンもそうですね。

これを測ってみると驚いたことに、基本の周波数はずいぶん低い31.25kHzです。

f:id:a-tomi:20180907115908j:plain

これだと人間には聞こえなくとも猫に聞こえてしまいますね^^

例えばArduinoですと62.5kHzですから、こうもりには聞こえますかね。

一方で音を取り出すのに、一般的な4Ωや8オームの低いインピーダンスのスピーカー直結では無理があります。100Ω程度ならかすかには聞こえるでしょうが。そこで、いきなりではなくアンプを経由する必要があります。今や例えば3Wステレオのアンプモジュールは1個数十円で手に入る状態(海外通販)。大きさも切手のサイズなのでスピーカの入れ物の中にとりつければ済みます。そして3Vでも十分働くのでマイクロビットにはぴったり。

ところが現代のアンプはほぼすべてがデジタルアンプ(D級アンプ)なので、その内部ではPWM変調をしています。例えば3WステレオアンプAM8403モジュール。これは0.2ドル程です。最近の購入歴では30個で送料込み678円で購入しています。

f:id:a-tomi:20180907204652j:plain

このアンプは206kHz付近を使っています。Arduinoの場合の62.5kHzとは干渉をして、合計周波数とか差額周波数から派生したうなりも出しますから、少しやっかいです。

そこで、アンプの入り口でマイコンから来ているPWMをハイカットするわけです。計算したローパスフィルタをいれるのが妥当なのですが、テスト向けなら簡易な次の様な回路で問題が防げます。(蛇足ですがスピーカの片側をグランドに落とさないでください。Out-はグランドではありませんで、もしそうするとデジタルアンプはすぐに壊れます。左右スピーカ用のOut-同志をつないでもいけませんね。)

f:id:a-tomi:20180907121416j:plain

さて、マイクロビットの場合はどうかというと、PWMが31.25kHzなので、上の例のアンプで実験の結果、殆ど干渉しません。0.1μFを取り去ってもあまり問題は出ません。ですが、テストツールとしてスピーカを用意しておくのなら、他のマイコンでの汎用性のためにつけておいた方が無難ですね。

下の写真で上はアンプのPWM、下はマイクロビットのPWMです。これだけかけ離れていればそれほど問題がないわけです。とはいえ、人間以外の動物に聞こえる周波数はあまり頂けないような気もしますが・・。そこは割り切りなんでしょうね。

f:id:a-tomi:20180907121843j:plain

今回は喋るところだけでしたが、マイクロビットにはジャイロや他のセンサーも積まれていますから、好きなことができます。これを児童に無償で配る英国はすばらしい。実際STEM教育も進んでいるし、電子測定機器などでは他国の上をいってますね。1980年代からBBCがやってきた電子立国?化は本当に効果を出していますね。

マイクロビットで珍しいものを作ったときにまたご紹介することにします。

 

(c)2018 Akira Tominaga, All rights reserved.