(1) マグボットに赤外線センサーを取付けます
以前にスピーカーを設置していた部分が空いていたので、きれいに取付けができました
        
        (2) 赤外線センサーをRaspberry Piに接続します
      第6回 マグボットにセンサーをつけてしゃべらせてみる
    
    (1) マグボットに赤外線センサーを取付けます
以前にスピーカーを設置していた部分が空いていたので、きれいに取付けができました
        
        (2) 赤外線センサーをRaspberry Piに接続します
      (1) PythonライブラリのPySerialをインストールします
pip install pyserial
今回はPythonのシリアル通信を使って、Arduinoに送信します
(1) Cyberduckを使用して、/home/pi にsensor.pyファイルを作成する
/home/pi/sensor.py
              #!/usr/bin/env python
              #-*- coding: utf-8 -*-
              import serial
              import time
              import RPi.GPIO as GPIO
              import subprocess
              import random
              SLEEPTIME = 1
              RUNTIME_SLEEP = 5
              SENSOR_PIN = 18
              GPIO.setmode(GPIO.BCM)
              GPIO.setup(SENSOR_PIN, GPIO.IN)
              while True:
                if(GPIO.input(SENSOR_PIN) == GPIO.HIGH):
                  # シリアル通信の設定
                  ser = serial.Serial('/dev/ttyACM0', 9600)
                  rand = random.randint(1, 3)
                  if(rand == 1):
                    # マグボットの音声データの設定
                    cmd = "sudo sh /home/pi/mugbot-talk-1.1.sh こんにちは"
                    # シリアル通信で送信する
                    ser.write(b'r')
                  elif(rand == 2):
                    # マグボットの音声データの設定
                    cmd = "sudo sh /home/pi/mugbot-talk-1.1.sh 私はマグボットです"
                    # シリアル通信で送信する
                    ser.write(b'd')
                  elif(rand == 3):
                    # マグボットの音声データの設定
                    cmd = "sudo sh /home/pi/mugbot-talk-1.1.sh ようこそシステムリンクへ"
                    # シリアル通信で送信する
                    ser.write(b'p')
                  # シリアル通信を閉じる
                  ser.close()
                  # 音声データの実行
                  subprocess.call( cmd, shell=True )
                  time.sleep(RUNTIME_SLEEP)
                else:
                  print("反応なし")
                time.sleep(SLEEPTIME)
          
(2) Tera Termを使用して、/etc/rc.local に起動時の設定を追加します
pi@raspberry:~ $ sudo nano /etc/rc.local
/etc/rc.local
              # 感知センサープログラムの起動
              python /home/pi/sensor.py &
          
追加イメージ
      (1) Arduino IDEを起動して、mugbot_arduino_1.1.inoに処理を追加します
case文の最後に追加してください
mugbot_arduino_1.1.ino
              case 'r': //Rasberry Piからrを受け取ると「こんにちは」のアクションを行う。
                analogWrite(l_eye, 255);
                analogWrite(r_eye, 255);
                eye_servo.write( 105 );
                delay( 100 );
                eye_servo.write( 75 );
                delay( 100 );
                eye_servo.write( 105 );
                delay( 100 );
                eye_servo.write( 90 );
                digitalWrite(mouse, HIGH);
                delay( 3000 );
                digitalWrite(mouse, LOW);
                analogWrite(l_eye, eye_light_default);
                analogWrite(r_eye, eye_light_default);
                break;
              case 'd': //Rasberry Piからdを受け取ると「私はマグボットです」のアクションを行う。
                analogWrite(l_eye, 255);
                analogWrite(r_eye, 255);
                delay( 100 );
                analogWrite(l_eye, 255);
                analogWrite(r_eye, 0);
                delay( 500 );
                analogWrite(l_eye, 0);
                analogWrite(r_eye, 255);
                delay( 500 );
                analogWrite(l_eye, 255);
                analogWrite(r_eye, 0);
                delay( 100 );
                analogWrite(l_eye, 255);
                analogWrite(r_eye, 255);
                eye_servo.write( 105 );
                delay( 100 );
                eye_servo.write( 75 );
                delay( 100 );
                eye_servo.write( 105 );
                delay( 100 );
                eye_servo.write( 90 );
                digitalWrite(mouse, HIGH);
                delay( 3000 );
                digitalWrite(mouse, LOW);
                analogWrite(l_eye, eye_light_default);
                analogWrite(r_eye, eye_light_default);
                break;
              case 'p': //Rasberry Piからpを受け取ると「ようこそシステムリンクへ」のアクションを行う。
                analogWrite(l_eye, 255);
                analogWrite(r_eye, 255);
                head_servo.write( 60 );
                delay( 200 );
                head_servo.write( 90 );
                delay( 200 );
                head_servo.write( 120 );
                delay( 200 );
                head_servo.write( 90 );
                digitalWrite(mouse, HIGH);
                delay( 3000 );
                digitalWrite(mouse, LOW);
                analogWrite(l_eye, eye_light_default);
                analogWrite(r_eye, eye_light_default);
                break;
          
(2) Arduinoと接続して、プログラムを書き込みます
センサーで感知した時に、ランダムで動作します
(1) こんにちは
(2) 私はマグボットです
(3) ようこそシステムリンクへ