WiringPi-Python最新対応

WiringPiはPi2として最新化されているが、Python対応はメンテが止まったように
見えて困っていた。
次のUpdateによるインストールで、4.4系や4.9系のPython,Python3 共に対応できた
のでまとめておく。

1)Raspbianの、この時点の最新バイナリをダウンロードしインストールする。
  https://downloads.raspberrypi.org/raspbian_latest
2)4.9系にUPしたい人は、次を実施する。
  sudo rpi-update
  sudo reboot
3)sudo apt-get update;sudo apt-get upgrade -y
4)sudo apt-get install -y python-dev python-setuptools swig
5)WiringPiのPython wrapper をダウンロードする。
  git clone https://github.com/Gadgetoid/WiringPi2-Python.git
  cd WiringPi2-Python
6)WiringPi部分を最新化する。
  wget -O wiring.tar.gz https://git.drogon.net/?p=wiringPi;a=snapshot;h=96344ff7125182989f98d3be8d111952a8f74e15;sf=tgz
    (?とp=は空けないこと)
  tar xzf *.gz
  cp -r wiringPi*/* WiringPi
7)setup.py の Extension の途中に次の行を追加
    extra_link_args=[‘-lrt’,’-lcrypt’],
8)不要ファイルの削除
  WiringPi/devLib 配下の不要な piFaceOld.c を削除
9)wiringpi.i の398行目の修正
  PyString_FromStringAndSize( ⇒ PyUnicode_FromStringAndSize(
10)./build.sh で最終インストール
  build.sh はPython とPyhton3 を同時にインストールできるように編集

swig2.0 -python -threads wiringpi.i
sudo python setup.py build install
sudo python3 setup.py build install
sudo python test.py
sudo python3 test.py

カテゴリー: RaspberryPi パーマリンク

WiringPi-Python最新対応 への1件のフィードバック

  1. fujii のコメント:

    PWM関連は、sudo python , sudo python3 で起動します。

    # -*- coding: utf-8 -*-
    import wiringpi2
    
    PWM_PIN = 18 # GPIOの18番ピン
    DUTY = 0 # Duty比の値(0から1024)
    
    wiringpi2.wiringPiSetupGpio() #winringPiの初期設定
    # PWM出力として18番pinを設定
    wiringpi2.pinMode(PWM_PIN, wiringpi2.GPIO.PWM_OUTPUT)
    #「Balanced」→「mark:space」Modeに変更
    wiringpi2.pwmSetMode(wiringpi2.GPIO.PWM_MODE_MS)
    # Clockを50Hzにする。18750/周波数=375
    wiringpi2.pwmSetClock(375)
    
    try:
        while True:
            for DUTY in range(0, 1025, 1): #フェードイン
                wiringpi2.pwmWrite(PWM_PIN, DUTY)
                wiringpi2.delay(10) #0.01sec
            wiringpi2.delay(500) #0.5sec
            for DUTY in range(1024, 1, -1): #フェードアウト
                wiringpi2.pwmWrite(PWM_PIN, DUTY)
            wiringpi2.delay(10)
            wiringpi2.delay(500)
    except KeyboardInterrupt:
        pass
    finally:
        wiringpi2.pwmWrite(PWM_PIN, 0) # LEDを消灯
    

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です