OrangePi-PCを使ってみる

ハードウェアPWMでサーボモータを動かす その2

Raspberryではサーボモータを動かすためにpigpio ライブラリがよく使われます。
pigpioライブラリはクライアント・サーバで構成されていて、サーバはバックグラウンドで動きます。
サーバがバックグラウンドで動くので、クライアントは好きな時にサーボモータを動かすことができます。

そこで、ハードウェア PWMドライ バーを使ったサーバプロセスとコマンドラインツールを作りました。
まず、こちらの ページに従ってハードウェアPWMドライバーをインストールします。
次に、以下の手順でコンパイルとサーバ側プロセスを起動します。
git clone https://github.com/nopnop2002/pwmlib-opi
cd pwmlib-opi
cc -o pwmc pwmc.c
cc -o pwmd pwmd.c pwm.c -lwiringPi
su
./pwmd &
exit

クライアント側は以下のコマンドを使います。
pwmc period active
period : サーボモータのPWM Period(mSec)
active : サーボモータのActive Pulse(mSec)

SG90の場合のPWM Periodは20mSec、Active Pulseは以下のようになります。
ポジション Activeなパルス幅
1.45mSec
+90° 2.35mSec
-90° 0.625mSec

以下のスクリプトでSG90が 0°→ -90° → +90° → 0° に動きます。
サーバ側動作が完了するまで、クライアントは待たされるので、コマンドの後のsleepは不要です。
#!/bin/bash
echo "Move to Center"
./pwmc 20.0 1.45
echo "Move to +90"
./pwmc 20.0 2.35
echo "Move to -90"
./pwmc 20.0 0.625
echo "Move to Center"
./pwmc 20.0 1.45

色々と紹介してきましたが、こちらでOrangePi-PCの個人的な評価 を紹介します。