Big Mouth Billy Bass + Alexa
コンポーネントと消耗品
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
必要なツールとマシン
> |
|
このプロジェクトについて
材料
トロントツールライブラリの手術室にいるビリーバス。
- ビッグマウスビリーバス*
- EchoDot第2世代
- Arduino Uno
- Arduinoモータードライバーシールド
- LM386アンプ
- 3.5mmオーディオケーブル
- 少なくとも4個のCセル電池
*このBillyBassは私のものに最も近いようです。いずれも機能するはずですが、モーターが2つしかないものもあります。
ビリーバスの分解
1. Billy Bassの背面には、かなりわかりやすいネジが付いているはずです。あなたの本能を信頼し、単にそれらを緩めて(ネジを節約して)、魚から背中を引っ張ってください。これが開くと、魚側のモーターとバックプレートのバッテリーパックが表示されます。
<図>2.すべてのワイヤが接続されたPCBが内部に表示されます。モーターからのワイヤーを追跡し、ビリーPCBボードからワイヤーを切り離して、できるだけ多くのワイヤーを残します(十分な数があるはずです)。これらのワイヤーにテープを貼るか、印を付けます。バッテリーからのワイヤーを特定し、PCBからそれらを切り離します。これらは後でモーターシールドを介してArduinoに電力を供給するために使用されます。
3.(オプション)魚のモーションセンサーのオンとオフを切り替えるために使用されるスイッチを特定します。ワイヤーを切断し、バッテリー端子からのプラスのリード線をはんだ付けして、代わりにこのスイッチを通過させ、モーターへのビリーの電源のオンとオフに使用できるようにします。これは便宜上のものであり、厳密には必要ありません。
<図>
4.モーターシールドをArduinoに取り付け、モーターからのプラス線とマイナス線をモーターシールドの最初の3つのモーターポート(M1、M2、M3のラベル)に接続します。ビリーのバッテリーパックからのプラスとマイナスのリード線をEXT_PWRというラベルの付いた端子に接続します。
3本のモーターワイヤーが取り付けられたモーターシールド-下部に2本、上部に1本、右側のバッテリーパックからの電力と黒と赤のワイヤー。白い線は、次のセクションで説明するオーディオアンプに接続されています。
<図>
モーターの制御
すべてのワイヤーを取り付けたら、最初のスケッチをArduinoにアップロードして、モーターが期待どおりに機能していることを確認できます。まず、サイトの指示に従って、モーターシールドを制御するためのAdafruitモーターライブラリをインストールする必要があります。それが完了したら、このモーター診断スケッチをArduinoにアップロードして、M1、M2、およびM3を順番に駆動する必要があります。
Arduinoスケッチで同じ名前のモーターによって頭、口、尾を制御できるようになるまで、このステップを続ける必要があります。これは、より高度なアクションを追加するときに必要になります。
これが機能しない場合は、スケッチの頭、口、尾の変数を、接続方法に基づいて別のモーター番号に割り当てる必要がある場合があります。さらに、口、尾、または頭が間違った方向に動いているように見える場合は、モーターシールドに接続されている2本のワイヤーを逆にすることができます。
Echo DotTeardownとオーディオ検出
1. Echo Dot(2nd Generation)の底からゴムをはがします。これにより、透明な接着層が現れ、これもはがすことができます。これにより、4本のトルクスネジが表示されます。これらの4本のネジを緩めて外すと、ドットが複数の部分にバラバラになります。
2つの回路基板に関心があります。 2つのPCBを接続するリボンケーブルに注意してください。これは私にとって約20回プラグが抜かれたので、すぐに魚のケースに取り付けたいと思うかもしれません(私がどのように取り付けたかについては、この投稿の最後にある写真を参照してください)。
<図>
2.3.5mmオーディオケーブルをジャックのすぐ近くで切断します。ゴムをはがして、ジャックのベースにある接点を明らかにします。これには、左、右、およびアースケーブルが含まれます(多くの小さな緩いワイヤーの形で)。ある長さのワイヤーをLとRの両方にはんだ付けし(信号をモノラルに変換)、緩んだワイヤーを撚り合わせてアース線を形成します。オーディオジャックの詳細については、この非常に役立つ投稿を確認してください。この段階で、ポータブルスピーカーを使用してオーディオ出力が引き続き機能することをテストできます。
<図>
3.信号線(LおよびRモノラル)をLM386アンプボードのINピンに接続し、アースピンをオーディオ信号アースに接続します。 Arduino5V出力/ GNDからアンプのVCCおよび2番目のGNDピンに配線します(VCCおよびGNDにBilly Bassバッテリーパックを使用することもできます)。次に、BillyBassのスピーカーからアンプにワイヤーを接続します。
この時点で、3.5mmオーディオジャックをEcho Dotに接続し、スピーカーからAlexaを聞くことができるはずです。音楽が聞こえない場合は、アンプの小さなネジ(ポテンショメータ)を回してゲインを上げてみてください。ただし、これによりノイズが発生するため、ゲインをできるだけ低く保つようにしてください。
<図>
4.アンプの4つのピンを下に向けると、「上」に2つのスピーカーワイヤー端子があります。左上のスピーカー端子に追加のワイヤーを接続し、これをArduinoのアナログピン0に接続します。テストの目的で、これはモーターシールドを取り付けずに行うことができます。ただし、動作したら、これをA0とマークされたモーターシールド接続にはんだ付けする必要があります(実際、私は誤ってA1を使用しました-アナログピンで十分です) 。
オーディオ診断Arduinoスケッチ
上記の手順を正しく実行した場合、正しい方向に進んでいることを確認するための2つのテストがあります。次のステップに進む前に、これら2つのチェックが機能していることを確認する必要があります。
1. Echoから音楽を再生すると(「Alexa、Slayerを再生」)、実際に何かが聞こえます。
これが機能しない場合は、アンプに入る電源が正しく設定されていることを確認し、3.5mmオーディオからのワイヤーが正しく接続されていることを確認してください。
2.このオーディオ診断スケッチをArduinoにロードし、シリアルモニター(9600ボー)を開くと、音楽が再生されているかどうかを示すログメッセージが表示されます。また、音楽の再生中は点灯し、それ以外の場合は消灯するArduinoのオンボードLEDを見ることができます。
手順2が機能しない場合は、アンプからのスピーカーポートのもう一方の端子にアナログワイヤを接続してみてください。また、スケッチの「quietThreshold」値を調整して、サウンドが再生されないように正しく調整する必要がある場合もありますが、次のステップでは、この値を平均してより安定させます。
すべてをまとめる
すべてのモーターを動かすことができ、音楽を再生し、音楽の再生中にArduinoから測定できることを独自に判断した後、コンポーネントを組み合わせるだけです。
これは、アンプ信号をモーターシールドのA0ポートに接続し、すべてのモーターを接続するだけで実行できます。オーディオ信号の読み取りといくつかのより高度なモーターの動きを組み合わせたこのスケッチをArduinoにプッシュすると、音楽が再生されているときはいつでも魚のアニメーションがトリガーされるはずです。
Echoを電源に接続し、3.5mmオーディオケーブルに接続すると、魚がAlexaの個性を引き継ぐのを見ることができます。私たちは今、ホームストレッチにいます。
<図>
あとは、ビリーのケースの中に電子部品を取り付けて、元に戻すだけです。ビリーバスのプラスチック製スペーサータブを使用して、下部PCBをケースに接着し、上部PCBを介して、半分にカットしたケースの既存のスクリューライザーの1つにネジを取り付けてドットを固定しました。アンプはバッキングプレートに接着され(スピーカーからできるだけ離れて、互いに接近するとパチパチという音がするため)、残りのスペースにArduinoが熱接着されました。これをもう一度分解したい場合があるので、長いまたは取り外し可能なワイヤー接続を使用することを覚えておいてください。
<図>
<図>
最後に、オーディオがEcho Dotのマイクに簡単に伝わるように、ビリーのプラスチックにいくつかの穴を開けることをお勧めします。また、ビリーのケースの側面に穴を開けて、本体から2本のUSBケーブルを引き出せるようにしました。 1つは、いじくり回し続けたい場合にArduinoをプログラミングするためのもので、もう1つは、Echo Dotに電力を供給するためのものです(ポータブルUSBバッテリーパックを使用)。ビリーのバッテリーパックにUSBケーブルを配線すれば、そこから直接Echo dotに電力を供給することもできると思いますが、私の1回の試みは失敗しました。なんとかできたらこのページを更新します。
<図>
結論
ビリーバスを賢い魚にする方法についてのもう1つのブログ投稿があります。 RaspberryPiの代わりにEchoDotを使用することで、ドロップイン通話などのファーストパーティのAlexa機能をすべて利用できます。そうは言っても、ビリーがどんな音を出しているのかについては、それほど賢くはありません。 Raspberry PiのAlexaでこれを再検討して、音声が検出されたときにいくつかの異なるアニメーションを記述したり、魚が水中にいるように聞こえるようにオーディオ処理の別のレイヤーを追加したりするのは楽しいかもしれません。しかし、私はそれを雨の日のために残さなければなりません。
あなたが書き込みと幸運のハッキングを楽しんだことを願っています!
コード
要点
https://gist.github.com/benrules2/f9268a320d99863fe9dbd330351af56a
要点
https://gist.github.com/benrules2/9b6c730084e6fbb46ca1c8b4036e8c9c
製造プロセス