Posted at

Raspberry Pi ロボットをゼスチャーで操作する【GrovePi/Python3】

More than 1 year has passed since last update.

RaspberryPiロボットは 以前 Node.jsとArduinoを利用して作ったのですが、Pythonで動作出来るように改造してみました。

音声入力を使わず、今回はゼスチャーセンサーを利用して操作してみます。まずは3種類の動作をさせてみました。

「Wave」のゼスチャーで、うなずきながらこちらに寄ってきます。

「Forward」のゼスチャーで、首を振りながらあとすざりします。

「Clockwise」のゼスチャーで、ダンスをします。(ちょっとダンスっぽくないけど)


環境


  • Raspberry Pi2 ModelB(RASPBIAN JESSIE WITH PIXEL 4.4/Python 3.4.2)

  • PLANEX 無線LAN子機 (USBアダプター型) GW-USNANO2A (FFP)

  • Raspberry Pi カメラモジュール Raspberry Pi Camera Board

  • cheero Canvas 3200mAh IoT 機器対応

  • ステレオプラグインスピーカー ASP-2188K

  • Arduino工作用の中国製ロボットキット(アクリルボード・モーター・タイヤ・単4電池ケース・超音波センサ・サーボモーター用アームなど)

  • PCA9685 16Channel 12bit PWM

  • SG90サーボモータ

  • 電池ケース 単3×3本用(4.5V)、単3×2本用(3.0V)

  • GrovePi

  • GROVE - ジェスチャー

  • GROVE - RGBバックライト液晶モジュール

  • GROVE - I2C モータードライバ

  • GROVE - 超音波距離センサモジュール

ずらずらと書きましたが、RaspberryPiにGrovePiを接続し、モーターやセンサー類の制御を行っています。カメラマウント用のサーボモーターは電圧の関係でGroveシステムを使って制御出来ないので、別途モータードライバを用意します。

GrovePi(要はArduino)をRaspberryPiの上部にマウント出来るので少しスリムに出来ました。


Python3

プログラミングは手抜きをして、メーカーが用意しているPythonライブラリを使用します。Groveシステムとサーボモータードライバのサンプルコードを利用してこんな風に記述してみました。

app.py - Gist

必要なライブラリは以下のライブラリよりインポートします。

サーボモータードライバー

Adafruit_Python_PCA9685/Adafruit_PCA9685/PCA9685.py - GitHub

i2cモータードライバー

GrovePi/Software/Python/grove_i2c_motor_driver/grove_i2c_motor_driver.py - GitHub

ゼスチャーセンサー

GrovePi/Software/Python/grove_gesture_sensor/grove_gesture_sensor.py - GitHub

カラーLCD液晶

GrovePi/Software/Python/grove_rgb_lcd/grove_rgb_lcd.py - GitHub


まとめ

今回はチャットの文字入力や音声入力を利用せずセンサーで動作させてみました。

これだけでは面白くないので、次回ロボットに簡単な感情エンジンを搭載してみたいと思います。(続く)