ATOM Echo で おしゃべりティラノくんを作製

アバター画像 お父ちゃん  2020.6.21 
Home > IoT > ATOM Echo で おしゃべりティラノくんを作製
すき 0
うんこ 0

前回は ATOM Echo に定時発話させるためのシステムをNode-REDを活用して構築しました。

ATOM Echo のための定時発話システム構築 -Node-RED の利用-

ここでは、ATOM Echoの購入理由であった おしゃべりティラノくん を実現いたしましたので報告いたします。

 

 

おしゃべりコンシェルジュ ティラノくん

おしゃべりティラノくんとは以前ラズパイで作った我が家のコンシェルジュです。
定時で発話したり気圧センサの測定値を報告してくれます。
スマートスピーカAlexaとも連動しています。

もう2年近く元気に毎日動いてくれております。

AquesTalk と Node-RED と ラズパイで おしゃべりティラノくん作製

ちょっとラズパイZEROはもっと違うことに使いたくなってきましたし
ここで低額のATOM Echoに変更することにしました。

構成

ティラノくんの口を動かすためのサーボモータと気圧センサをATOM Echoに接続しました。
スピーカも壊れてしまったため、高出力のモノに交換しております。

部品

  • ATOM Echo

     
  • サーボモータ
    制御線はATOMのG25ピンに接続

     
  • 気圧センサ
    ATOMのGroveピンに接続してI2Cで通信

     
  • スピーカ 8Ω-8W
    純正スピーカが故障してしまったので交換

 

システム概要

以下がティラノくんの動作システムの概要図です。

前回同様に定期的に発話させるmp3のURLをラズパイサーバからATOMにUDPで送信します。
URLを受けてストリーミング再生し、その後に気圧センサの測定値をサーバにUDPで返します。

気圧測定値を受けてサーバで気圧報告用の発話mp3 URLをATOMに送ってストリーミング再生します。

ATOMでのストリーミング再生中にサーボをランダムで動かしてティラノくんの口を動かします。

動作

サーボと気圧センサを接続して動かしてみました。

発話中にサーボをランダムに動かうようにしました。

定時発話後に気圧センサの値をサーバに返して、更に気圧用の発話mp3 URLを受け取り発話します。

 

Node-RED

以下が今回のシステムの Node-RED フローです。
①~③は前回と同じで気圧測定値の受信と気圧報告用の発話生成部を追加しました。

④ UDP受信ノード

ATOMで測定した気圧を文字列としてUDPで受け取ります。
ポートを指定します。

⑤ functionノード

前段で受信した気圧測定値を受けて、気圧報告発話文を生成し
②のgoogle-ttsノードに渡してATOMにmp3 URLをUDP送信します。

ATOM Echo用 Arduinoコード

気圧センサBMP280のライブラリは以下を使用しました。
 https://github.com/Seeed-Studio/Grove_BMP280

以下の修正を施して使用しています。

  • センサのI2Cアドレス修正
    Seeed_BMP280.h
     #define BMP280_ADDRESS   0x77 → 0x76に変更
     
  • I2C通信ピン指定
    Seeed_BMP280.cpp
     Wire.begin(); → Wire.begin(26, 32); //SDA, SCLに変更

 

ESP32用のサーボモータライブラリESP32Servoも使用しました。
 https://github.com/madhephaestus/ESP32Servo
 

 

Node-REDからのmp3 URLをUDPで受信してストリーミング再生しています。
再生後に気圧センサの測定値をサーバにUDP送信します。

mp3ストリーミング再生中はデュアルコアにしてもう一方のコアでサーボをランダムに動かします。

 

ティラノくん

システムが出来上がりましたのでティラノくんを組み立てます。

サーボとティラノくんはヒモでつなげて口を動かします。

動作

定時発話の後に気圧を報告してくれます。

 
 
 
 
 
この投稿をInstagramで見る
 
 
 
 
 
 
 
 
 

Our concierge

HomeMadeGarbage(@homemadegarbage)がシェアした投稿 –

おわりに

目的としていたATOM Echoを用いたおしゃべりティラノくんの制作が実現できました。

次回はスマートスピーカAlexaとの連動を考えてみたいと思います。

コメントはこちらから

メールアドレスが公開されることはありません。コメントのみでもOKです。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください