PWM制御を用いたLEDの輝度調整

FPV-TANKの車体が概ね完成したので、pwm制御でLEDを調光してみました。

ラズパイ本体と、pca9685、USBのゲームコントローラーがあれば、このプログラムでLEDをコントローラーで光らせられますよ!

pca9685をまだインストールしていない方は、以下のリンクを見てみて下さい。

インストールが済んでいれば、このプラグラムでLEDの調光ができます。

import pygame
import Adafruit_PCA9685

# pygame初期設定
pygame.init()
joy = pygame.joystick.Joystick(0) # joystickのインスタンスを作成
joy.init() # joyの初期化

# PCA9685初期設定
pwm = Adafruit_PCA9685.PCA9685() # PCA9685のインスタンスを作成
pwm.set_pwm_freq(60) # PWMの周波数を60Hzに設定

Led = 0 #初期輝度(pwm値なので、0~4095)

while True:
    
    if pygame.event.get():        
        Led = int((joy.get_axis(2) + 1)*2048) # 私のゲームコントローラーは、axis(2)がLTでした。
        print('pwm",Led)
        
    pwm.set_pwm(5, 0, Led) # 5chがヘッドライトのチャンネルになっています。

実行するとこんな感じです。

送っているpwm値とLEDの明るさが連動しているのが分かるでしょうか?

ラズパイ本体だけでもpwm制御は出来るのですが、pwm制御できるピンが1つしかなく、pwm信号をシュミレートするプログラム(ソフトウェアpwm)を使って、それ以上のpwmも出力できるのですが、私は専門職の子会社に任せてしまいました。

ただ、FPV-TANK としては、ヘッドライトは点灯と消灯の2パターンだけあれば良いので、アナログ軸は使わずに、ボタンで ON,OFF しています。

以上ヘッドライトで遊んでみた記事でした。

コメント

タイトルとURLをコピーしました