スピーカーを使わずに声を出す

ChemiCo-SAN Project

まずは動画をご覧ください

今回も動画からです。ロボットが声を出せるようになりました。とはいっても音が出せるようになっただけで会話するといったようなことはまだまだ先の話です。実際の動作などは動画のほうを見ていただくということで、こちらではパーツやソフトウェアについて説明します。

ボイスユニットについて

ボイスユニットのSTLファイルはこちらです。ChemiCo-SAN/STL/Voice_unit at main · eeAI-works/ChemiCo-SAN · GitHubいちおう動画内で組み立てていますが、組み立ては難しいと思います。今回から3Dプリンターをダヴィンチ 1.0 ProからElegoo 光造形方式3Dプリンター『Saturn2』 (skhonpo.com)に変更しています。造形精度の問題でFDMの3Dプリンターでは難しかったです。Saturn2でも可動部のすり合わせのため、出力後にあちこち削っておりますので、ご注意ください。仮ボディのSTLファイルはBodyフォルダにNo_Arm_Breast.STLとして入れてありますが、サイズが大きいのでそのままではダヴィンチ1.0ProでもSaturn2でも出力できません。分割出力するか、外部の出力サービスをご利用ください

モータードライバーの変更

モータードライバーとしてASX0003の代わりにL298Nを使うことにしました。ASX00003は組み込みの外部入力電圧測定がありとDCモーターを4個駆動できますが、L298Nは駆動できるDCモーターが2個までです。電圧測定はL298NのHブリッジ0側をHigh-Highにして駆動を止めながらGNDとの間に10kΩ-AnalogPoint-4.7kΩの分圧回路を入れて測定しています。これはLiPo2セルバッテリー用の回路なので3セルなどに変更するときは抵抗の値を変更してください。ChemiCo-SAN/FirmWare/Chemico-san_neck_L298N at main · eeAI-works/ChemiCo-SAN · GitHub

ボイスユニットホルダーの昇降にもL298Nを使用しています。こちらはステッピングモーター使用のリニアアクチュエーターです。L298Nは単体で1個のステッピングモーターを駆動できますが、昇降に2基のリニアアクチュエーターを使っていますのでL298Nも2個使用しています。電圧測定は上記の分圧回路用のソフトウェアをそのまま使っていますが、2相ステッピングモーターでHブリッジをHigh-Highにするのはあまり良くありません、ステッピングモーターの隣の極に誘導電流が発生してしまいます。短時間なのでそのまま使っていますが、なんとかしたいとは思っています。ということで公開はしますが、ご自分で直せる方以外は使用しないでください。ChemiCo-SAN/FirmWare/Chemico_san_shoulder at main · eeAI-works/ChemiCo-SAN · GitHub

サーバサイドプログラムについて

いままで機能ごとにサーバー側のプログラムを変えていましたが、今後はapp.pyに統一します。ChemiCo-SAN/app.py at main · eeAI-works/ChemiCo-SAN · GitHub

Flaskはエントリーポイントを変えることで、各クライアントからの処理を振り分けできます。今後はnginx + uWSGI + Flaskで運用する予定です。ソースはapp.run対応になっていますがnginxを使う場合は最後の2行をコメントアウトしてくだい。

上記の仕様変更により今後のサーバサイドプログラムは、最新エントリーでしか動作を保証できません。差しさわりのない部分はそのまま残しますが、最新エントリー以外はクライアント側に変更がなくても正常動作しない可能性があります。後方互換をとる予定もないので、app.pyのバージョンアップ履歴だけは残しますが動作保証はしないつもりです。

リテラル不使用について

動画中ではうやむやにしてごまかしましたが、ブログではそうもいかないか?(笑)

機械学習不使用に続いての、非主流宣言ですが、どっちかというとこっちのほうが酷いかな。機械学習でもリテラル不使用というのはあります。ただ、ラベルもリテラルの一種という急進派もいますから、そこまで外すとほとんどないし、ましてや両方使わないなどというのは時代を50年戻すようなものです。ま、そこが狙いといえば狙いですが…、最初は華々しくぶちあげてあとは適当に妥協していく感じになるのかな。がんばれるだけ、がんばろうとは思います。

コメント

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