Lチカ入門者がロボット入門!歌ったり喋ったりする顔面ロボット作ってみた
都内でひっそりOLやってるへっぽこまるこです。
電子工作でLチカを覚えたので、そろそろロボット作れるんじゃないかな……。無知が故、そんなことを思い立ってしまったのでロボット(的なのもの)制作に挑戦してみました!
最初は2分の1サイズぐらいの人型ロボットを作りたかったのですが、なんせLチカ入門レベルでしたので、全身を作って制御するのは厳しいことに気づきました。そこでひとまずは顔面ロボットから挑戦しました!
- 顔のパーツが動く基本の顔面ロボット
- 歌う顔面ロボット
- IoTな顔面ロボット
を制作してみたので、作例と作り方を紹介していきます。
マイコンボードとコピペと気合いで意外とやれるので、「ロボットって難しいでしょ?」と思っている方、ぜひ試してみてください!
顔面ロボット制作の基本
顔面ロボットはその名の通り、顔のロボットです……。顔の造形を作って、目や口などの動かせそうなパーツをマイコンボードから制御します。
動作制御
動作制御に使うのは、基本的にサーボモータ(SG90)です。 [
顔面パーツを動かすには主にサーボホーン(サーボモータの羽の部分)をどうごにょごにょするかを試行錯誤します。
サーボモータの仕組みについては、ドキュメントの「PWM制御(サーボモータの仕組み)」に詳しく書いてありますので、ぜひそちらをご覧ください!
外装
ロボットの外装は主に3Dプリンタで制作します。
そんな機材ないよ!という方は、既存のものを動かしたり、ファブリケーションスペース(工作機材を利用できる施設)を利用したりしてみてください!
それでは、ここからは出来上がった顔ロボットと作り方を紹介させていただきます!
初号機(あけみ)
あけみちゃんです。
浮世絵の中の美人を立体にしてみたい、そんなことを思いついて、生まれてしまったのがあけみちゃんです。
[
外装を制作
まずは粘土で、作りたい顔のベースを造形します。
作った造形を3Dスキャンし、3Dプリントで出力します。
出力した造形を元に、パーツ(皮膚や目ん玉やら)を作成します。あけみちゃんの場合、皮膚はラテックス、目ん玉は樹脂粘土でできています。
※写真はラテックスの皮膚を作るためのシリコーン型を作っているところです。
動く機構を作る
ここでは、サーボホーンに繋がるところがどのようにしたら連携できるかを考え作成します。あけみちゃんは下記2つが実現できるよう、いじりながら模索しました。
- 目ん玉が左右に動く
- 口が開閉する
とりあえず自分が扱えるもの(発砲スチロールやプラ板やアルミの棒など)で無理矢理動くように仕上げたので、なかなかひどいことになっていますね。
回路を組む
どのサーボモータが何度動けばいいか考えながら、電子部品の配線やプログラムを準備します。
あけみちゃんはGR-SAKURAというArduino互換のボードを利用しました。Arduino Unoでも同じ配線・プログラムで動かすことができます!
こんな適当な作りでも、どこがどう動いて欲しいか、サーボの動きがどこと連携しているか、なんとなーくわかっていれば、動くものは作れるぞ、と悟ることができました。
弐号機(お誕生日ケーキ)
お世話になっていた社長さんが誕生日!サプライズケーキを作ろう!!!
ということで、弐号機はお誕生日ケーキの顔面ロボットを制作しました。 驚いていただきたかったので、生クリームは本物を使用しました!
外装を制作
この時は、Fusion360というCADソフトを使ってデータ作成をし、3Dプリント出力をしました。 造形部分についてはFusion360ののファンサイトFUSION BASEでも紹介していただいています!
録音した歌を歌わせる
今回はバースデーソングを歌わせたかったので、簡単に実装できそう且つ安価なISD1820というチップを使った音声録音・再生モジュールを使いました。
事前に適当な音源を録音しておき、Lチカの要領でデジタル出力するだで簡単に音声を再生できます。
ただしこの方法だと、音声に合わせて一文字一文字サーボの角度を調整しなければいけません。一文字の音声が何秒かを測って、口の開閉に何秒かけるかを一つ一つ書く、という地味作業をやっていました。
////口の開閉の制御 一部抜粋
//mouth1 start
//は
m_open(); //口を開ける関数
delay(v4); //v4 待機時間の変数
m_close(); //口を閉じる関数
//ぴ
m_open();
delay(v2);
m_close();
//ば
m_open();
delay(v4);
m_close();
//す
m_open();
delay(v2);
m_close();
//で
m_open();
delay(v6);
m_close();
//とぅ
m_open();
delay(v6);
m_close();
//ゆ
m_open();
delay(v12);
m_close();
参号機(リアルアンパンマン)
ケーキを作り終え、せっかくだからIoTLTで登壇しようと「食べるIoT」で申し込んでいたのですが、よく考えてみたら、こいつ、Internetに繋がってない……ただのThingsじゃねーか……!と気づいてしまいました。
食べるIoT……食べられる顔面……あんぱんまん……これだ!
ということで、リアルアンパンマンと題してこんなものを作ってしまったのでした。
リアルアンパンマンなのであんぱんは本物です。
また、「お腹すいた」というLINEを送ったらあんぱんが喋る、という機能をつけてIoTっぽくしてみました。
あんぱんが喋る機構を制作
あんぱんの中身はこんな感じです。
Internetを使いたかったので、マイコンボードはがじぇるねのGR-CITRUS + WA-MIKANを使用しています。
ESP8266というWi-Fiモジュールが搭載されているので、公式サイトのチュートリアルを参考に簡単にインターネット連携のアプリケーションを作ることができます。
LINE連携であんぱんが喋るプログラム
Node Girls主催のLINE BOT開発ハンズオンを参考に(というかほぼ丸っと使わせていただき)、LINE通知をトリガーとして、サーボモータ動かす&音声再生を実行するようにしています。
またLINEから送られたデータの受け取りは簡単にリアルタイムなデータやりとりを実現できるMilkcocoaを利用しました。
外装を制作
機構にカバーをつけて、
あんぱん(西友で購入)でデコレーション(?)して完成です。
まとめ
電子工作の技術的には初心者レベルなものばがりですが、 それでも自分で作ったものが動くのは感動です。
初心者でも玄人でも、自由なものづくりって楽しいですよね!