arrow-righthamburgerlogo-marksocial-facebooksocial-githubsocial-twitter
2018.06.14

Lチカ入門者がロボット入門!歌ったり喋ったりする顔面ロボット作ってみた

へっぽこまるこ

まるこのロボット制作
   このエントリーをはてなブックマークに追加  

都内でひっそりOLやってるへっぽこまるこです。

電子工作でLチカを覚えたので、そろそろロボット作れるんじゃないかな……。無知が故、そんなことを思い立ってしまったのでロボット(的なのもの)制作に挑戦してみました!

最初は2分の1サイズぐらいの人型ロボットを作りたかったのですが、なんせLチカ入門レベルでしたので、全身を作って制御するのは厳しいことに気づきました。そこでひとまずは顔面ロボットから挑戦しました!

を制作してみたので、作例と作り方を紹介していきます。

マイコンボードとコピペと気合いで意外とやれるので、「ロボットって難しいでしょ?」と思っている方、ぜひ試してみてください!

顔面ロボット制作の基本

顔面ロボットはその名の通り、顔のロボットです……。顔の造形を作って、目や口などの動かせそうなパーツをマイコンボードから制御します。

動作制御

動作制御に使うのは、基本的にサーボモータSG90)です。

servo1
サーボモータは回転方向や角度を細かく調整でき、ロボットのパーツ制御に向いています。SG90はお手頃価格(400円程度)なので、試行錯誤も躊躇せずできてうってつけですね。

servo2
顔面パーツを動かすには主にサーボホーン(サーボモータの羽の部分)をどうごにょごにょするかを試行錯誤します。

サーボモータの仕組みについては、ドキュメントの「PWM制御(サーボモータの仕組み)」に詳しく書いてありますので、ぜひそちらをご覧ください!

外装

ロボットの外装は主に3Dプリンタで制作します。

そんな機材ないよ!という方は、既存のものを動かしたり、ファブリケーションスペース(工作機材を利用できる施設)を利用したりしてみてください!

それでは、ここからは出来上がった顔ロボットと作り方を紹介させていただきます!

初号機(あけみ)

あけみちゃんです。

浮世絵の中の美人を立体にしてみたい、そんなことを思いついて、生まれてしまったのがあけみちゃんです。

book
浅草ギ研さんの「自作ロボット製作入門」という書籍から、機構の動かし方なんかを参考にさせていただきました! (久しぶりにamazonでみたらめっちゃ値上がりしてる!!)

外装を制作

akemi1
まずは粘土で、作りたい顔のベースを造形します。

akemi2
作った造形を3Dスキャンし、3Dプリントで出力します。

akemi3
出力した造形を元に、パーツ(皮膚や目ん玉やら)を作成します。あけみちゃんの場合、皮膚はラテックス、目ん玉は樹脂粘土でできています。

※写真はラテックスの皮膚を作るためのシリコーン型を作っているところです。

動く機構を作る

ここでは、サーボホーンに繋がるところがどのようにしたら連携できるかを考え作成します。あけみちゃんは下記2つが実現できるよう、いじりながら模索しました。

akemi4

とりあえず自分が扱えるもの(発砲スチロールやプラ板やアルミの棒など)で無理矢理動くように仕上げたので、なかなかひどいことになっていますね。

回路を組む

どのサーボモータが何度動けばいいか考えながら、電子部品の配線やプログラムを準備します。

akemi5
あけみちゃんはGR-SAKURAというArduino互換のボードを利用しました。Arduino Unoでも同じ配線・プログラムで動かすことができます!

akemi6

こんな適当な作りでも、どこがどう動いて欲しいか、サーボの動きがどこと連携しているか、なんとなーくわかっていれば、動くものは作れるぞ、と悟ることができました。

弐号機(お誕生日ケーキ)

お世話になっていた社長さんが誕生日!サプライズケーキを作ろう!!!

ということで、弐号機はお誕生日ケーキの顔面ロボットを制作しました。 驚いていただきたかったので、生クリームは本物を使用しました!

外装を制作

この時は、Fusion360というCADソフトを使ってデータ作成をし、3Dプリント出力をしました。 造形部分についてはFusion360ののファンサイトFUSION BASEでも紹介していただいています!

録音した歌を歌わせる

cake1
今回はバースデーソングを歌わせたかったので、簡単に実装できそう且つ安価なISD1820というチップを使った音声録音・再生モジュールを使いました。

事前に適当な音源を録音しておき、Lチカの要領でデジタル出力するだで簡単に音声を再生できます。

cake2

ただしこの方法だと、音声に合わせて一文字一文字サーボの角度を調整しなければいけません。一文字の音声が何秒かを測って、口の開閉に何秒かけるかを一つ一つ書く、という地味作業をやっていました。


////口の開閉の制御 一部抜粋

  //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っぽくしてみました。

あんぱんが喋る機構を制作

あんぱんの中身はこんな感じです。

anpan1
Internetを使いたかったので、マイコンボードはがじぇるねのGR-CITRUS + WA-MIKANを使用しています。

ESP8266というWi-Fiモジュールが搭載されているので、公式サイトのチュートリアルを参考に簡単にインターネット連携のアプリケーションを作ることができます。

anpan2

LINE連携であんぱんが喋るプログラム

Node Girls主催のLINE BOT開発ハンズオンを参考に(というかほぼ丸っと使わせていただき)、LINE通知をトリガーとして、サーボモータ動かす&音声再生を実行するようにしています。

またLINEから送られたデータの受け取りは簡単にリアルタイムなデータやりとりを実現できるMilkcocoaを利用しました。

外装を制作

anpan3
機構にカバーをつけて、

anpan4
あんぱん(西友で購入)でデコレーション(?)して完成です。

まとめ

電子工作の技術的には初心者レベルなものばがりですが、 それでも自分で作ったものが動くのは感動です。

初心者でも玄人でも、自由なものづくりって楽しいですよね!

   このエントリーをはてなブックマークに追加