Rapsberry Pi と Python

Created Date: 2016-05-15/ updated date: 2018-03-13
Owner & Collaborators
License
Summary
Raspberry Pi (以降ラズパイと記す) の勉強会の資料です。
この記事は Raspberry Pi 勉強会 の一部です。

Memo

WiringPi

posted by ohwada on June 06, 2016
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

Comments