教科横断型コミュニケーションロボット

Created Date: 2016-09-20/ updated date: 2016-10-14
  • Medium dsc 9056
Owner & Collaborators
License
By
Summary
学校教育現場で教材として扱うコミュニケーションロボットの開発についてです。
マグボットのお友達「ステマ―君」です。 レシピは随時公開

Materials

    Tools

      Blueprints

        Making

        • Arduinoのインストール

          0
          Thumb img 1872
          下記のページからArduinoをインストールします。

          https://www.arduino.cc/en/Main/Software
          Small android bluetooth arduino
          • JUST DOWNROAD

            0
            Thumb img 1872
            パソコンの環境に合わせた,JUSTDOWNROADを選択するとダウンロードが開始されます。
            Small 12
          • LED

            0
            Thumb img 1872
            アノードとカソードを見分け,アノードに+(ピンの番号),カソードにー(グラウンド)をさす。
            Small 14
          • LEDを1つ点灯させる

            0
            Thumb img 1872
            ボードの種類,シリアルポートをツールから確認し,プログラムを打ち込む.
            プログラムが出来たら「→」でマイコンボードに書き込む.

            int r_eye=5;

            void setup ()
            {
            pinMode(r_eye,OUTPUT);
            }
            void loop()
            {digitalWrite(r_eye,HIGH);
            }

            Small 13
        • ①LED(Arduino編)  2つのLEDを同時に点灯する

          0
          Thumb img 1872
          Arduinoを用いたLEDの点灯
          (loop方法)
          int r_eye=5;
          int l_eye=6;

          void setup ()
          {
          pinMode(r_eye,OUTPUT);
          pinMode(l_eye,OUTPUT);
          }
          void loop()
          {digitalWrite(r_eye,HIGH);
          digitalWrite(l_eye,HIGH);
          delay(1000);
          digitalWrite(r_eye,LOW);
          digitalWrite(l_eye,LOW);
          delay(1000);
          }
          Small 2ko
          • ②#defineで、2個のLEDを交互に点滅させる

            0
            Thumb img 1872
            #define R_EYE 5
            #define L_EYE 6
            void setup() {
              pinMode(R_EYE,OUTPUT);
              pinMode(L_EYE,OUTPUT);
            }

            void loop() {
              digitalWrite(R_EYE,HIGH);
              digitalWrite(L_EYE,LOW);

              delay(1000);
               digitalWrite(R_EYE,LOW);
               digitalWrite(L_EYE,HIGH);
               delay(1000);
            }

          • ③for文でLEDの明るさを変える

            0
            Thumb img 1872
            #define R_EYE 5
            #define L_EYE 6
            void setup() {
            }
            void loop() {
              int i;
              for(i = 0; i <=255;i++){
              analogWrite(R_EYE,i);
              analogWrite(L_EYE,i);
              delay(10);
              }
              for(i = 255; i >0;i--){
             analogWrite(R_EYE,i);
             analogWrite(L_EYE,i);
              delay(10);
              }
            }
          • intとdefineの違い

            0
            Thumb img 1872
            intはLEDの数だけ変数を宣言しなければならない。
            そのため,LEDの数が増えるとプログラムが読みにくくなるため,これを防ぐためにdefinenを用いてプログラムを書く。
            一度,プログラムにdefineで設定しておくとそれを書き直すだけでプログラムの当該箇所すべてが書き換わり数値のみの変更でプログラムを指示することが出来る.

        • raspberry pi編(ソフトの導入)

          0
          Thumb img 1872
          NOOBSのダウンロード

          1 noobsのdownload zipをクリック
           
          → https://www.raspberrypi.org/downloads/noobs/
           
          (注意:noobs liteではない)

          2 解凍

          (20分ほどかかります)
          Small
          • 書き込み

            0
            Thumb img 1872
            解答したファイルをSDカードに書き込む
            (中のフォルダをコピーし,空のSDカードに貼り付ける)


            Small 1
          • Raspberry Piの起動

            0
            Thumb img 1872
            書き込んだSDカードをRaspberry Piに差込み,起動する。
            Raspbianのインストール画面が出てきたら,インストールを開始する

            (注意:20分ほどかかる)
            Small sota 2203
          • Raspbianの設定

            0
            Thumb img 1872
            locationの設定
            Small sota 2206
          • 日本語フォントのインストール

            0
            Thumb img 1872
            1 sudo apt-get install update(パッケージ情報のアップデート)

            2 sudo apt-get install upgrade(パッケージのアップグレード)

            3 sudo apt-get install fonts-takao

            4    sudo apt-get install ibus-mozc
          • httpサーバーのインストール

            0
            Thumb img 1872
             HTTPサーバー nginx(エンジンエックス)をインストール
            pi@raspberry:~ $ sudo apt-get install nginx
              再起動すると自動的にnginxが起動 /var/www/html/の中にHTMLファイルを入れると外部のPCのWebブラウザからアクセス可能に
          • Ruby関連のインストール①

            0
            Thumb img 1872
            (1) Rubyのバージョン確認
            pi@raspberry:~ $ ruby -v
            (2) RubyGemsをアップデート
            pi@raspberry:~ $ gem update
            (3) RubyGemsのバージョン確認
            pi@raspberry:~ $ gem -v
            (4) ruby-devのインストール
            pi@raspberry:~ $ sudo apt-get install ruby-dev
            (5) EventMachineのインストール
              ※ WebSocketサーバーを作るためのライブラリ
            pi@raspberry:~ $ sudo gem install eventmachine

          • Ruby関連のインストール②

            0
            Thumb img 1872
            (6) EM-websocketのインストール
              ※ WebSocketサーバーを作るためのライブラリ
            pi@raspberry:~ $ sudo gem install em-websocket
            (7) シリアルポートのライブラリのインストール
              ※ WebSocketサーバーとArduinoがシリアル通信するためのライブラリ
            pi@raspberry:~ $ sudo gem install serialport
            (8) インストールしたライブラリの確認 (最後にこれまでインストールしたRubyのライブラリを確認)
            pi@raspberry:~ $ gem list
          • 音声合成システムのインストール

            0
            Thumb img 1872
            (1) Open JTalk 本体
            pi@raspberry:~ $ sudo apt-get install open-jtalk
            (2) 形態素解析エンジンMeCab、辞書
            pi@raspberry:~ $ sudo apt-get install open-jtalk-mecab-naist-jdic
            (3) 音声合成エンジン
            pi@raspberry:~ $ sudo apt-get install libhtsengine1
            (4) 音声データ pi@raspberry:~ $ sudo apt-get install hts-voice-nitech-jp-atr503-m001
        • SSH接続でRaspberry Piを管理

          0
          Thumb img 1872
          Tera Termをダウンロード
          • FTPソフト(Cyberduck)をダウンロード

            0
            Thumb img 1872

          • Raspberry Pi に接続

            0
            Thumb img 1872
            Raspberry Piに対してパソコンが認識していることを確認すること
            (接続に失敗していると,Cyberduckとの接続も失敗する)
            Small 5
          • SSHでファイルを移動

            0
            Thumb img 1872

            Small 7
          • jQuery/jQueryMobileをインストール

            0
            Thumb img 1872
            1 jQuery/jQueryMobileをdownload

            2 ダウンロードし,解凍したファイルを/var/www/htmlにコピー

            (単純なコピー&ペーストでは,home/piのなかでしか,コピーできないため,コマンドラインからSSHでhtmlにコピーする)
          • webSocketサーバーをつくる

            0
            Thumb img 1872
            1 下記のファイルをSSHで転送する

            2 Tera Termを使用して、コピーしたファイルに実行権を付与する

               pi@raspberry:~ $ sudo chmod +x /home/pi/mugbot-server-1.1.rb

            3 Raspberry Piの起動時にWebSocketサーバーが自動起動するように設定する
               pi@raspberry:~ $ sudo nano /etc/rc.local
          • 操作インターフェースを作る

            0
            Thumb img 1872
            1 操作インターフェースのHTMLファイルをSSHで転送する



              (要注意:HTMLの中に,IPアドレスや操作インターフェースの種類を固定する必要がある。つまり,前の手順でダウンロードしhtmlファイルに転送したjQueryなどにあわせて固定する必要がある。そうしなければ,ページ(html)の中の埋め込み情報とRaspberry Piの中にインストールした情報が異なり,接続されなくなるため)
        • 音声合成

          0
          Thumb img 1872
          1 ソフトをインストールする

          2 /home/pi/のディレクトリに(mugbot-talk-1.1.sh)をコピー

          3 Tera Termを使用して、コピーしたファイルに実行権を付与します

          pi@raspberry:~ $ sudo chmod +x /home/pi/mugbot-talk-1.1.sh
          • 音声合成を行う

            0
            Thumb img 1872
            1 実際に音声合成をしてみる

            2 スピーカーから音が出ないようであれば,下記のコードをコマンドラインで命令する
          • かわいい声にする

            0
            Thumb img 1872
            1 MMDAgentのダウンロード

            2 mei_happyディレクトリの転送


          • スクリプトの修正

            0
            Thumb img 1872
            SSHで修正する
        Add Card Order

        References

          Usages

            Convert State

             to Annotation.

            Select the numebr of the state to annotate.

            OK
            cancel
            Loading

            facebook

            , data-width="400", data-show-faces="true" data-send="true"
            , data-width="400", data-order-by="reverse_time"