WiringPi
WiringPi とは、ラズパイのGPIOのためのC言語のライブラリです。
Python のラッパーが用意されています。
ラズパイのGPIO制御は、RPi.GPIO が定番ですが。
ハードウェアPWM がありません。
WiringPi は、ハードウェアPWMがあります。
サーボに対してより精度の高い制御ができます。
インストール
$ sudo apt-get update
$ sudo apt-get install python-dev
$ sudo apt-get install wiringpi
$ sudo pip install wiringpi2
- WiringPi LED Bllnk
P11(GPIO17)とP6(GND)の間に、LEDと330Ωの抵抗を直列に入れます。
- WiringPi LED Command
- WiringPi LED Fade
P12(GPIO18)とP6(GND)の間に、LEDと330Ωの抵抗を直列に入れます。
WiringPiのPWMの設定
- pinMode
pin のモードとして、PWM_OUTPUT を設定します。
- pwmSetMode
PWMのモードとして、マーク・スペース (mark:space)を設定します。
- pwmSetClock
クロックの分周比を設定します。
PWMのクロックは、19.2 MHz です。
パルス幅 0.5ms に対して、制御の刻みを 100 とすると、分周比は 96 です。
0.5ms / 100 = 5μs (200 KHz)
19.2 MHz / 200 KHz = 96
- pwmSetRange
PWMの周期となるクロック数を設定します。
サーボのパルス周期は、20ms なので、クロック数は 400 です。
20ms / 5μs = 4000
- pwmWrite
パルス幅となるクロック数を設定します。
1.5ms のときは、300 です。
1.5ms / 5μs = 300
赤は Pin4 (+5v)、黒は Pin6 (GND)、白は Pin32 (GPIO12)に接続します。
- WiringPi Servo Pulse
- WiringPi Servo Speed