import gpioexp import wiringpi import math import random from time import sleep # scp gpioexp.py [email protected]:/home/pi/prog # scp index.py [email protected]:/home/pi/prog exp = gpioexp.gpioexp() b = {3: [994, 1017], 4: [993, 1016], 5: [993, 1016]} def angle(angle, bounds): mapped = angle / 180.0 dif = bounds[1] - bounds[0] res = mapped * dif # return bounds[0] + math.floor(dif * mapped) # return bounds[0] + math.ceil(dif * mapped) return bounds[0] + round(dif * mapped) def all(pins, apins): exp.pwmFreq(50) # abounds = [995, 1017] # abounds = [994, 1017] # bounds = [994, 1017] for p in pins: exp.analogWrite(p, angle(90.0, b[p])) for p in apins: exp.analogWrite(p, angle(90.0, b[p]))
# библиотеки для работы с расширителем портов и работы со временем import gpioexp, time exp = gpioexp.gpioexp() # создаём объект для работы с расширителем портов pot = 2.5 # положение сервопривода начальное out = 0.0 exp.pwmFreq(60) while True: # меняем положение сервопривода на порте 1 каждые 5 секунд # 2.5-12.5 % заполнения управляющего сигнала if pot < 12.5: pot = pot + 0.1 else: pot = 2.5 out = pot/100 # значение от 0 до 1! exp.analogWrite(1,out) print(pot) time.sleep(5)