RaspberryPi

Raspberry piで何かする サーボモータを動かす

前回、Raspberrypiの準備が終わったので実際にサーボモータを動かしていきます。実際にやってみると簡単なので気楽な気持ちでやっていきます。

今回は使うRaspberrypiの種類はRaspberrypi zero WHを使っていきます。

サーボモーターの紹介

サーボモーターはOSOYOOの「SG90」を使っていきます。SG90のカタログスペックは以下のOSOYOOのサイトに載っています。

Micro Servo – SG90: http://osoyoo.com/ja/2017/05/micro-servo-mg90-9g/

私は、この10個セットをAmazonで3000円程で購入しました。購入の決め手は安さです。ギアが金属ではないので大きなトルクをかけたりすると壊れてしまうので注意してください。

Raspberry Pi zero WHでRPi.GPIOを準備する

RaspberryPiではGPIOにサーボ モーターを接続してコントロールします。下にGPIOを使う前の準備を書いていきます。この作業はインストールしたRaspianによって不必要な可能性がありますので注意してください。まずはrootでapt-getをしてGPIOを制御する為のpigpioというライブラリをインストールします。root権限の設定をしていない方はrootのパスワードの設定をしてからインストールしてください。

//rootのパスワードを設定していない場合は設定しておきます
$ sudo passwd root

//apt-getでpigpioをインストールします
$ sudo apt-get install pigpio python-pigpio python3-pigpio

GPIOの配置については下の写真のようになっています。このGPIOの配置が書いてあるシートはセンサー購入時のおまけで付いてきました。

プログラムを書いていく

CUIなので、nanoやviでコードを書いていきます。下がコードです。コード内に色々と説明を書いていきます。あらかじめテスト用のプログラムを置く用のディレクトリを作っておくことをオススメします。

# -*- cding: utf-8- -*-
# servo-test1.py
import pigpio
import time

servo_motor = pigpio.pi()
servo_motor.set_servo_pulsewidth(18, 1400)

上のコードを実行する前にpigpioのデーモンを起動します。その後に作成したコードを実行します。python3系で実行したいのでpython3を使います。

$ sudo pigpiod
$ python3 servo-test1.py

動いてる!!!!!!!!

ちなみにRaspberrypiとsg90はジャンパーピンで接続しています。写真には写っていなのですが、Raspberrypiとサーボモーターはモバイルバッテリーからの電力で動いています。サーボモーターが一個の場合はモバイルバッテリー一個で十分ですが、複数になると別のバッテリーが必要になります。

初めてサーボーを動かしてみて

実際に動いての見ると感動します。意味もなく何回もコードを実行してサーボーモーターをキュイキュイと動かしてしまいます。

まだまだサーボモータが一台動いてるだけですが、これがロボットアームだと考えると関節の一つが完成したということです。

言い換えてみると大きな一歩だと思います。この調子でロボットアーム完成まで一歩ずつ進んでいこうと思います。

次回は複数のサーボを動かしておこうと思います。