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

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

Materials

    Tools

      Blueprints

        Making

        • 下記のページからArduinoをインストールします。

          https://www.arduino.cc/en/Main/Software
          • パソコンの環境に合わせた,JUSTDOWNROADを選択するとダウンロードが開始されます。
          • アノードとカソードを見分け,アノードに+(ピンの番号),カソードにー(グラウンド)をさす。
          • ボードの種類,シリアルポートをツールから確認し,プログラムを打ち込む.
            プログラムが出来たら「→」でマイコンボードに書き込む.

            int r_eye=5;

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

        • 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);
          }
          • #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);
            }

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

        • NOOBSのダウンロード

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

          2 解凍

          (20分ほどかかります)
          • 解答したファイルをSDカードに書き込む
            (中のフォルダをコピーし,空のSDカードに貼り付ける)


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

            (注意:20分ほどかかる)
          • 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サーバー nginx(エンジンエックス)をインストール
            pi@raspberry:~ $ sudo apt-get install nginx
              再起動すると自動的にnginxが起動 /var/www/html/の中にHTMLファイルを入れると外部のPCのWebブラウザからアクセス可能に
          • (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

          • (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
          • (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
        • Tera Termをダウンロード
          • Raspberry Piに対してパソコンが認識していることを確認すること
            (接続に失敗していると,Cyberduckとの接続も失敗する)
          • 1 jQuery/jQueryMobileをdownload

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

            (単純なコピー&ペーストでは,home/piのなかでしか,コピーできないため,コマンドラインからSSHでhtmlにコピーする)
          • 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
          • 1 操作インターフェースのHTMLファイルをSSHで転送する



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

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

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

          pi@raspberry:~ $ sudo chmod +x /home/pi/mugbot-talk-1.1.sh
          • 1 実際に音声合成をしてみる

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

        References

          Usages

            Project comments