def __init__(self, PIN_IN1_L=5, PIN_IN2_L=6, PIN_IN1_R=7, PIN_IN2_R=8, PIN_VREF_L=12, PIN_VREF_R=13): self.PIN_IN1_L = PIN_IN1_L self.PIN_IN1_R = PIN_IN1_R self.PIN_IN2_L = PIN_IN2_L self.PIN_IN2_R = PIN_IN2_R self.PIN_VREF_L = PIN_VREF_L self.PIN_VREF_R = PIN_VREF_R GPIO.setmode(GPIO.BCM) GPIO.setup(self.PIN_IN1_L, GPIO.OUT) GPIO.setup(self.PIN_IN2_L, GPIO.OUT) GPIO.setup(self.PIN_IN1_R, GPIO.OUT) GPIO.setup(self.PIN_IN2_R, GPIO.OUT) wp.wiringPiSetupGpio() wp.pinMode(self.PIN_VREF_L, wp.GPIO.PWM_OUTPUT) wp.pinMode(self.PIN_VREF_R, wp.GPIO.PWM_OUTPUT) wp.pwmSetMode(wp.PWM_MODE_MS) wp.pwmSetRange(Drive.MaxdutyRange) wp.pwmSetClock(400) #適当
def setup_servo(): wiringpi.wiringPiSetupGpio() wiringpi.pinMode(18, 2) # hardware pwm only works on GPIO port 18 wiringpi.pwmSetMode(0) wiringpi.pwmSetClock(375) wiringpi.pwmSetRange(1024) wiringpi.pwmWrite(18, 0)
def __init__(self, name, pwm_port, backward_port, forward_port): self.name = name self.pwm_port = pwm_port self.backward_port = backward_port self.forward_port = forward_port self.backward_value = 0 self.forward_value = 0 # initialize Raspberry Pi ports for output wiringpi2.pinMode(self.pwm_port, wiringpi2.GPIO.PWM_OUTPUT) wiringpi2.pinMode(self.backward_port, wiringpi2.GPIO.OUTPUT) wiringpi2.pinMode(self.forward_port, wiringpi2.GPIO.OUTPUT) # experimentally found values (use test_pwm.py): # frequency = 19200 (not hearable) # divisor = 2 # range = 500 # dead zone <= 53% self.mapping_u = [0, 1, 100] self.mapping_pwm = [0, 20, 100] wiringpi2.pwmSetMode(wiringpi2.GPIO.PWM_MODE_MS); # 480 Hz self.divisor = 40 self.pwm_range = 1000 wiringpi2.pwmSetRange(self.pwm_range) wiringpi2.pwmSetClock(self.divisor) # pwmFrequency in Hz = 19.2 MHz / pwmClock / pwmRange self.logger = logging.getLogger(__name__)
def main(): print "Starting PWM" wiringpi.wiringPiSetupGpio() wiringpi.pinMode(18,2) wiringpi.pwmSetMode(0) wiringpi.pwmSetClock(400) wiringpi.pwmSetRange(1024) wiringpi.pwmWrite(18,0) wiringpi.pinMode(13,2) wiringpi.pwmSetMode(0) wiringpi.pwmSetClock(400) wiringpi.pwmSetRange(1024) wiringpi.pwmWrite(13,0) dtMin, dtMax = 60, 120 dt = 72 while True: try: print dt wiringpi.pwmWrite(18,dt) wiringpi.pwmWrite(13,dt) dt += 10 if dt > dtMax: dt = dtMin time.sleep(1) except: wiringpi.pwmWrite(18,0) wiringpi.pwmWrite(13,0) print "Exiting." break
def _playLoop(self, freq, music): divisor = (19.2 * (10**3)) / freq Music = import_module(music) wiringpi2.pwmSetClock(int(divisor)) for note, beat in Music.melody: if note == ' ': wiringpi2.pwmWrite(self.SPEAKER, 0) else: period, dutyCycle = self._calcParams(note) wiringpi2.pwmSetRange(period) wiringpi2.pwmWrite(self.SPEAKER, dutyCycle) wiringpi2.delay(Music.tempo * beat) if note[len(note) - 1:] == ':': wiringpi2.pwmWrite(self.SPEAKER, 0) wiringpi2.delay(Music.tempo) elif note[len(note) - 1:] == ';': wiringpi2.pwmWrite(self.SPEAKER, 0) wiringpi2.delay(int(Music.tempo / 2)) # Make sure that music stop wiringpi2.pwmWrite(self.SPEAKER, 0)
def setup_servo(): wiringpi.wiringPiSetupGpio() wiringpi.pinMode(18,2) # hardware pwm only works on GPIO port 18 wiringpi.pwmSetMode(0) wiringpi.pwmSetClock(375) wiringpi.pwmSetRange(1024) wiringpi.pwmWrite(18,0)
def __init__(self): Pi_rev = wiringpi2.piBoardRev() #@TODO: use this? self.GPIOS = { 'internal_buzzer': 11, 'latch': 7, 'unlock_LED': 15, 'deny_LED': 13, 'buzzer': 12, 'doorStatus1': 19, 'doorStatus2': 21, } #set up I/O pins wiringpi2.wiringPiSetupPhys() wiringpi2.pinMode(self.GPIOS['unlock_LED'], 1) wiringpi2.pinMode(self.GPIOS['deny_LED'], 1) wiringpi2.pinMode(self.GPIOS['latch'], 1) wiringpi2.pinMode(self.GPIOS['internal_buzzer'], 1) wiringpi2.pinMode(self.GPIOS['doorStatus1'], 0) wiringpi2.pinMode(self.GPIOS['doorStatus2'], 0) GPIO.setup(9, GPIO.IN) GPIO.setup(10, GPIO.IN) #GPIO.add_event_detect(9, GPIO.FALLING, callback=self.arm_security, bouncetime=300) #Set up Hardware PWM - Only works on GPIO 18 (Phys 12) wiringpi2.pwmSetMode(0) # set PWM to markspace mode wiringpi2.pinMode(self.GPIOS['buzzer'], 2) # set pin to PWM mode wiringpi2.pwmSetClock(750) # set HW PWM clock division (frequency) wiringpi2.pwmWrite(self.GPIOS['buzzer'], 0) proc = subprocess.Popen(['nfc-list'], stderr=subprocess.PIPE) result = proc.stderr.read() self.PN532 = False if 'Timeout' in result else True if not self.PN532: self.nfc = NFC.MFRC522()
def set_pwm(self): wiringpi.wiringPiSetupGpio() wiringpi.pinMode(self.gpio_pin, 2) wiringpi.pwmSetMode(0) wiringpi.pwmSetClock(self.clock) wiringpi.pwmSetRange(self.range) wiringpi.pwmWrite(self.gpio_pin, 0)
def _playLoop(self, freq, music): divisor = (19.2*(10**3))/freq Music = import_module(music) wiringpi2.pwmSetClock(int(divisor)) for note, beat in Music.melody: if note == ' ': wiringpi2.pwmWrite(self.SPEAKER, 0) else: period, dutyCycle = self._calcParams(note) wiringpi2.pwmSetRange(period) wiringpi2.pwmWrite(self.SPEAKER, dutyCycle) wiringpi2.delay(Music.tempo*beat) if note[len(note)-1:] == ':': wiringpi2.pwmWrite(self.SPEAKER, 0) wiringpi2.delay(Music.tempo) elif note[len(note)-1:] == ';': wiringpi2.pwmWrite(self.SPEAKER, 0) wiringpi2.delay(int(Music.tempo/2)) # Make sure that music stop wiringpi2.pwmWrite(self.SPEAKER, 0)
def __init__(self): wiringpi.wiringPiSetupGpio() wiringpi.pinMode(SERVO_PIN,2) wiringpi.pwmSetMode(0) wiringpi.pwmSetClock(375) angle = 90 dutyCycle = int(angle/180.0*(0.14*1024)) + 6 wiringpi.pwmWrite(SERVO_PIN,dutyCycle)
def __init__(self, freq = 100.0): self.freq = freq output_pins.append(12) wp.pinMode(12, PWM) wp.pwmSetRange(4000) #range can go up to 4096, 4000 is good because it's large and a multiple of 100 clock = 19.2e6 / (4000.0 * freq) #set the divisor so the frequency comes out right wp.pwmSetClock(int(clock)) #this function needs an int wp.pwmSetMode(0) # necessary or else it's in a weird mode where nothing works wp.pwmWrite(12, 0) # stop for safety
def __init__(self, base0 = 27, base90 = 73): wiringpi.wiringPiSetupGpio() wiringpi.pinMode(18,2) wiringpi.pwmSetMode(0) wiringpi.pwmSetClock(400) wiringpi.pwmSetRange(1024) wiringpi.pwmWrite(18, 0) self.base0 = base0 self.base90 = base90 self.setAngle(90)
def __init__(self,in1,in2,in3): self.in1 = in1 self.in2 = in2 self.in3 = in3 GPIO.setmode(GPIO.BCM) GPIO.setup(self.in1,GPIO.OUT) GPIO.setup(self.in2,GPIO.OUT) wiringpi.wiringPiSetupGpio() wiringpi.pinMode(self.in3, wiringpi.GPIO.PWM_OUTPUT) wiringpi.pwmSetMode(wiringpi.GPIO.PWM_MODE_MS) wiringpi.pwmSetClock(375) wiringpi.pwmWrite(self.in3,0)
def __init__(self): self.thrd_sleep_duration = 0.2 # sec self.light_pin = 18 self.started = False self.exit_flag = threading.Event() self.brightness = 0.0 # 0.0 to 1.0 self.ctrl_events = [] if not TEST_MODE: IO.wiringPiSetupGpio() IO.pinMode(self.light_pin, IO.GPIO.PWM_OUTPUT) IO.pwmSetClock(1920) IO.pwmSetRange(100)
def __init__(self, pin): self.dtMin, self.dtMax, self.dtMed = 35, 120, 65 self.dt = self.dtMed self.pin = pin self.direction = '' wiringpi.wiringPiSetupGpio() wiringpi.pinMode(self.pin, 2) wiringpi.pwmSetMode(0) wiringpi.pwmSetClock(400) wiringpi.pwmSetRange(1024) try: wiringpi.pwmWrite(self.pin, 40) except Exception as e: print str(e)
def init(): GPIO.setmode(GPIO.BCM) wiringpi.wiringPiSetupGpio() wiringpi.pinMode(LEFT_MOTOR_PWM, 2) wiringpi.pinMode(RIGHT_MOTOR_PWM, 2) wiringpi.pwmSetMode(0) wiringpi.pwmSetClock(CLK_DIVISOR) wiringpi.pwmSetRange(MAX_SPEED) wiringpi.pwmWrite(LEFT_MOTOR_PWM, 0) wiringpi.pwmWrite(RIGHT_MOTOR_PWM, 0) GPIO.setup(LEFT_MOTOR_A, GPIO.OUT) GPIO.setup(LEFT_MOTOR_B, GPIO.OUT) GPIO.setup(RIGHT_MOTOR_A, GPIO.OUT) GPIO.setup(RIGHT_MOTOR_B, GPIO.OUT)
def setupIO(): # Initialisation des entrées sorties sur le GrovePi # grovepi.pinMode(relay_pin,"OUTPUT") grovepi.pinMode(RGB_pin,"OUTPUT") grovepi.pinMode(PIR_pin, "INPUT") grovepi.chainableRgbLed_init(RGB_pin,8) # On génère un PWM hardware de fréquence 50Hz # # La largeur de l'impulsion est entre 0,8 et 2ms # wiringPi.wiringPiSetupGpio() wiringPi.pinMode(PWM_GPIO, 2) wiringPi.pwmSetMode(0) wiringPi.pwmSetClock(384) wiringPi.pwmSetRange(1024) wiringPi.pwmWrite(PWM_GPIO,75)
def io_init(): global io_initialized if io_initialized: return wiringpi2.wiringPiSetupGpio() wiringpi2.pinMode(12, wiringpi2.GPIO.PWM_OUTPUT) wiringpi2.pinMode(13, wiringpi2.GPIO.PWM_OUTPUT) wiringpi2.pwmSetMode(wiringpi2.GPIO.PWM_MODE_MS) wiringpi2.pwmSetRange(MAX_SPEED) wiringpi2.pwmSetClock(2) wiringpi2.pinMode(5, wiringpi2.GPIO.OUTPUT) wiringpi2.pinMode(6, wiringpi2.GPIO.OUTPUT) io_initialized = True
def listener(): rospy.init_node('listener', anonymous=True) rospy.Subscriber("chatter", String, callback) wiringpi.wiringPiSetupGpio() wiringpi.pinMode(pin,2) wiringpi.pwmSetMode(0) wiringpi.pwmSetClock(400) wiringpi.pwmSetRange(1024) wiringpi.pwmWrite(pin,0) wiringpi.pinMode(pin_dir[0],1) wiringpi.pinMode(pin_dir[1],1) # spin() simply keeps python from exiting until this node is stopped rospy.spin()
def main(self): wiringpi2.pwmSetClock(int(self.divisor)) for i, note in enumerate(Music.melody): if len(note) == 0: wiringpi2.pwmWrite(self.SPEAKER, 0) else: period, dutyCycle = self.calcParams(note) wiringpi2.pwmSetRange(period) wiringpi2.pwmWrite(self.SPEAKER, dutyCycle) wiringpi2.delay(Music.delay*(Music.beats[i]+1)) if note[len(note)-1:] == ':': wiringpi2.pwmWrite(self.SPEAKER, 0) wiringpi2.delay(Music.delay) curses.endwin() wiringpi2.pinMode(self.SPEAKER, 0)
def io_init(): global io_initialized if io_initialized: return wiringpi2.wiringPiSetupGpio() wiringpi2.pinMode(MODE, wiringpi2.GPIO.OUTPUT) wiringpi2.digitalWrite(MODE, LOW) wiringpi2.pwmSetMode(wiringpi2.GPIO.PWM_MODE_MS) wiringpi2.pwmSetRange(PWM_RANGE_HIGH) wiringpi2.pwmSetClock(2) wiringpi2.pinMode(AIN1, wiringpi2.GPIO.PWM_OUTPUT) wiringpi2.pinMode(BIN1, wiringpi2.GPIO.PWM_OUTPUT) wiringpi2.pinMode(AIN2, wiringpi2.GPIO.OUTPUT) wiringpi2.pinMode(BIN2, wiringpi2.GPIO.OUTPUT) wiringpi2.softPwmCreate(AIN2, PWM_RANGE_LOW, PWM_RANGE_HIGH) wiringpi2.softPwmCreate(BIN2, PWM_RANGE_LOW, PWM_RANGE_HIGH) io_initialized = True
def main(self): wiringpi2.pwmSetClock(int(self.divisor)) for i, note in enumerate(Music.melody): if len(note) == 0: wiringpi2.pwmWrite(self.SPEAKER, 0) else: period, dutyCycle = self.calcParams(note) wiringpi2.pwmSetRange(period) wiringpi2.pwmWrite(self.SPEAKER, dutyCycle) wiringpi2.delay(Music.delay * (Music.beats[i] + 1)) if note[len(note) - 1:] == ':': wiringpi2.pwmWrite(self.SPEAKER, 0) wiringpi2.delay(Music.delay) curses.endwin() wiringpi2.pinMode(self.SPEAKER, 0)
def Init(): global on wiringpi.wiringPiSetupGpio() wiringpi.pinMode(13, 2) wiringpi.pwmSetMode(0) wiringpi.pwmSetClock(400) wiringpi.pwmSetRange(1024) wiringpi.pinMode(18, 2) wiringpi.pwmSetMode(0) wiringpi.pwmSetClock(400) wiringpi.pwmSetRange(1024) SetSP(1, 0.0) SetSP(2, 0.0) on = True procComms.PrintLog('Initialized servo control.')
def __init__(self, node_name="servo_control"): rospy.init_node(node_name) sub = rospy.Subscriber("deg_control", Int16, self.callback) signal.signal(signal.SIGINT, self.exit_handler) self.gp_out = 18 wiringpi2.wiringPiSetupGpio() wiringpi2.pinMode(self.gp_out, wiringpi2.GPIO.PWM_OUTPUT) wiringpi2.pwmSetMode(wiringpi2.GPIO.PWM_MODE_MS) wiringpi2.pwmSetClock(375) self.RIGHT = 56 self.CENTER = 76 self.LEFT = 96 self.current_deg = self.CENTER wiringpi2.pwmWrite(self.gp_out, self.current_deg) wiringpi2.delay(500)
def __init__(self, node_name="telemouse_avoidance"): rospy.init_node(node_name) sub = rospy.Subscriber("disconfort", Int16, self.callback) pygame.mixer.init() self.hit_sound = pygame.mixer.Sound("n_418d125.wav") signal.signal(signal.SIGINT, self.exit_handler) self.gp_out = 18 wiringpi2.wiringPiSetupGpio() wiringpi2.pinMode(self.gp_out, wiringpi2.GPIO.PWM_OUTPUT) wiringpi2.pwmSetMode(wiringpi2.GPIO.PWM_MODE_MS) wiringpi2.pwmSetClock(375) self.RIGHT = 56 self.CENTER = 76 self.LEFT = 96 self.rest_counter = 0
def main(): # use BCM GPIO numbers wp.wiringPiSetupPhys() # enable PWM0 wp.pinMode(12,2) # switch from default mode to mark:space mode wp.pwmSetMode(PWM_MODE_MS) wp.pwmSetClock(200) wp.pwmWrite(12, 0) while True: try: wp.pwmWrite(12, 2) time.sleep(3) # turn then wait wp.pwmWrite(12,128) time.sleep(3) # turn then wait wp.pwmWrite(12, 256) time.sleep(3)
def startup_event(self, db, cfg): # config pwm wiringpi2.pinMode(self.PWM_PIN, wiringpi2.GPIO.PWM_OUTPUT) wiringpi2.pwmSetMode(wiringpi2.GPIO.PWM_MODE_MS) wiringpi2.pwmSetRange(self.PWM_RANGE) # 19.2 / 32 = 600KHz - Also starts the PWM wiringpi2.pwmSetClock(self.PWM_CLK_DIV) self.logd("Finding minimum fan speed...") if not self._find_minspeed(): return False self.logd("Minimum fan speed: {}%".format(self._minspeed)) self.set_highest_profile() # self.set_profile(40) if not self.add_requests( [["cpu_temp_profile", dict(profile="int")], ["cpu_fan_user", dict(speed="int")], ["cpu_fan_auto", dict()]]): return False return True
def unlock(): print "Unlock Key" param = sys.argv setdegree = int(90) print setdegree wiringpi2.wiringPiSetupGpio() wiringpi2.pinMode(servopin,2) wiringpi2.pwmSetMode(wiringpi2.GPIO.PWM_MODE_MS) wiringpi2.pwmSetClock(375) wiringpi2.pwmWrite(servopin,133) for i in range(133,73-1,1): print i wiringpi2.pwmWrite(servopin, i) wiringpi2.delay(500) wiringpi2.pwmWrite(servopin,26) wiringpi2.delay(500) wiringpi2.pwmWrite(servopin,74)
#!/usr/bin/python import wiringpi2 as gpio import time #init the GPIO #prepare PWM pins gpio.wiringPiSetupGpio() gpio.pinMode(12, gpio.GPIO.PWM_OUTPUT) gpio.pinMode(13, gpio.GPIO.PWM_OUTPUT) #prepare PWM channels gpio.pwmSetMode(gpio.GPIO.PWM_MODE_MS) gpio.pwmSetRange(480) gpio.pwmSetClock(2) #prepare direction pins gpio.pinMode(5, gpio.GPIO.OUTPUT) gpio.pinMode(6, gpio.GPIO.OUTPUT) #movements def straight_fw(speed): gpio.digitalWrite(5, 1) gpio.digitalWrite(6, 1) gpio.pwmWrite(12, speed) gpio.pwmWrite(13, speed) def straight_bw(speed): gpio.digitalWrite(5, 0) gpio.digitalWrite(6, 0) gpio.pwmWrite(12, speed) gpio.pwmWrite(13, speed)
def set_clock(self): self.clock = int( float(19200000) / (self.range * float(1000) / self.get_period())) wiringpi.pwmSetClock(self.clock)
dt_min = 125 dt_max = 175 dt_horizontal = 150 dt_vertical = 150 # changing PWM verticalPWM = 0 verticalPWMSpeed = 0.5 # enable PWM0 wiringpi.pinMode(pwm_pin_horizontal, 2) wiringpi.pwmSetMode(0) wiringpi.pwmSetClock(pwm_clock) wiringpi.pwmSetRange(pwm_range) # enable PWM1 wiringpi.pinMode(pwm_pin_vertical, 2) wiringpi.pwmSetMode(0) wiringpi.pwmSetClock(pwm_clock) wiringpi.pwmSetRange(pwm_range) #led faceFoundPin = 5 wiringpi.pinMode(faceFoundPin, 1) faceLost = True faceLostStart = -1 faceLostPwm = -1
import wiringpi2 import sys pin = 31 #wiringpi2.wiringPiSetup() #wiringpi2.wiringPiSetupSys() #wiringpi2.wiringPiSetupGpio() wiringpi2.wiringPiSetupPhys() wiringpi2.pinMode(pin,2) #PWM_OUTPUT while 1: #wiringpi2.pwmWrite(pin,128) print "===== set clock" wiringpi2.pwmSetClock(0) # 24M/120 * 256 = 781HZ wiringpi2.delay(1000) wiringpi2.pwmSetClock(1);# 24M/180 * 256 = 520.8HZ wiringpi2.delay(1000) wiringpi2.pwmSetClock(2);# 24/240 * 256 = 390HZ wiringpi2.delay(1000) #wiringpi2.pwmSetRange(255); # wiringpi2.pwmWrite(pin,1); # wiringpi2.delay(1000) # wiringpi2.pwmWrite(pin,128); # wiringpi2.delay(1000) # wiringpi2.pwmWrite(pin,255) # wiringpi2.delay(1000) # print "================>>>>" # pwmSetMode(0); #wiringpi2.pwmWrite(pin,128)
duty_range = 1024 duty_ratio = upper_pulse / interval hz = 1 / (interval * 0.001) clock = int(18750 / hz) duty = int(duty_ratio * duty_range) print("pin = ", PWM18, " interval[ms] = ", interval, " upper_pulse[ms] = ", upper_pulse) print("clock = ", clock, " duty=", duty, " duty_ratio=", duty_ratio) # 初期設定 wiringpi.wiringPiSetupGpio() wiringpi.pinMode(PWM18, wiringpi.GPIO.PWM_OUTPUT) wiringpi.pwmSetMode(wiringpi.GPIO.PWM_MODE_MS) # ClockとDutyを設定してPWMを生成する wiringpi.pwmSetClock(clock) wiringpi.pwmWrite(PWM18, duty) wiringpi.pwmSetRange(duty_range) #max min値を計算 min_duty = int((under_pulse / interval) * duty_range * 1.1) max_duty = int((upper_pulse - under_pulse) / interval * duty_range + min_duty * 0.9) print("min_duty = ", min_duty, " max_duty=", max_duty) value = min_duty def DagToVal(dag): par_dag = (max_duty - min_duty) / 180.0 return int(dag * par_dag + min_duty)
port_motor_left_pwm, port_motor_right_pwm, port_encoder_left_a, \ port_encoder_left_b, port_encoder_right_a, port_encoder_right_b # ./test_pwm_encoder.py 20 100 pwm_divisor = int(sys.argv[1]) pwm_range = int(sys.argv[2]) wiringpi2.pinMode(port_motor_left_pwm, wiringpi2.GPIO.PWM_OUTPUT) wiringpi2.pinMode(port_motor_right_pwm, wiringpi2.GPIO.PWM_OUTPUT) wiringpi2.pinMode(port_motor_left_forward, wiringpi2.GPIO.OUTPUT) wiringpi2.pinMode(port_motor_right_forward, wiringpi2.GPIO.OUTPUT) wiringpi2.pwmSetMode(wiringpi2.GPIO.PWM_MODE_MS) wiringpi2.pwmSetRange(pwm_range) wiringpi2.pwmSetClock(pwm_divisor) # pwmFrequency in Hz = 19.2 MHz / pwmClock / pwmRange frequency = 19200000 / pwm_divisor / pwm_range print ("frequency={} Hz (divisor={}, range={})".format(frequency, pwm_divisor, pwm_range)) #encoderLeft = EncoderReader(port_encoder_left_a, port_encoder_left_b) encoderRight = EncoderReader(port_encoder_right_a, port_encoder_right_b) def shutdown(): wiringpi2.pwmWrite(port_motor_left_pwm, 0) wiringpi2.pwmWrite(port_motor_right_pwm, 0) wiringpi2.digitalWrite(port_motor_left_backward, wiringpi2.GPIO.LOW) wiringpi2.digitalWrite(port_motor_left_forward, wiringpi2.GPIO.LOW)
import wiringpi2 import sys pin = 31 #wiringpi2.wiringPiSetup() #wiringpi2.wiringPiSetupSys() #wiringpi2.wiringPiSetupGpio() wiringpi2.wiringPiSetupPhys() wiringpi2.pinMode(pin, 2) #PWM_OUTPUT while 1: #wiringpi2.pwmWrite(pin,128) print "===== set clock" wiringpi2.pwmSetClock(0) # 24M/120 * 256 = 781HZ wiringpi2.delay(1000) wiringpi2.pwmSetClock(1) # 24M/180 * 256 = 520.8HZ wiringpi2.delay(1000) wiringpi2.pwmSetClock(2) # 24/240 * 256 = 390HZ wiringpi2.delay(1000) #wiringpi2.pwmSetRange(255); # wiringpi2.pwmWrite(pin,1); # wiringpi2.delay(1000) # wiringpi2.pwmWrite(pin,128); # wiringpi2.delay(1000) # wiringpi2.pwmWrite(pin,255) # wiringpi2.delay(1000) # print "================>>>>" # pwmSetMode(0);
GPIO.setmode(GPIO.BCM) # ピンの名前を変数として定義 SPICLK = 11 SPIMOSI = 10 SPIMISO = 9 SPICS = 8 # SPI通信用の入出力を定義 GPIO.setup(SPICLK, GPIO.OUT) GPIO.setup(SPIMOSI, GPIO.OUT) GPIO.setup(SPIMISO, GPIO.IN) GPIO.setup(SPICS, GPIO.OUT) wiringpi.wiringPiSetupGpio() # GPIO名で番号を指定する wiringpi.pinMode(18, wiringpi.GPIO.PWM_OUTPUT) # PWM出力を指定 wiringpi.pwmSetMode(wiringpi.GPIO.PWM_MODE_MS) # 周波数を固定するための設定 wiringpi.pwmSetClock(375) # 50 Hz。ここには 18750/(周波数) の計算値に近い整数を入れる # PWMのピン番号18とデフォルトのパルス幅をデューティ100%を1024として指定。 # ここでは6.75%に対応する69を指定 wiringpi.pwmWrite(18, 69) adc_pin0 = 0 try: while True: inputVal0 = readadc(adc_pin0, SPICLK, SPIMOSI, SPIMISO, SPICS) duty = servo_duty_hwpwm(inputVal0) wiringpi.pwmWrite(18, duty) sleep(0.2) except KeyboardInterrupt: pass
import wiringpi2 import sys pin = 31 #wiringpi2.wiringPiSetup() #wiringpi2.wiringPiSetupSys() #wiringpi2.wiringPiSetupGpio() wiringpi2.wiringPiSetupPhys() wiringpi2.pinMode(pin,2) #PWM_OUTPUT while 1: #wiringpi2.pwmWrite(pin,128) print "111111 set clock" wiringpi2.pwmSetClock(0) # 24M/120 wiringpi2.delay(1000) wiringpi2.pwmSetClock(1); wiringpi2.delay(1000) wiringpi2.pwmSetClock(2); wiringpi2.delay(1000) print "222222 pwmWrite" #wiringpi2.pwmSetRange(255); wiringpi2.pwmWrite(pin,1); wiringpi2.delay(1000) wiringpi2.pwmWrite(pin,128); wiringpi2.delay(1000) wiringpi2.pwmWrite(pin,255) wiringpi2.delay(1000) print "================>>>>" # pwmSetMode(0); #wiringpi2.pwmWrite(pin,128)
# period = 0.002272728*1000000 # period = 2272.728 # 3) Ciclo de trabalho # dutyCycle = period(µs) / 2p # dutyCycle = 2272.728 / 2 # dutyCycle = 1136.364 # 4) Divisor do clock # divisor = clock base / frequencia de afinação # Tendo que o clock base do pwm é 19.2mhz: # divisor = (19.2x1000)/440 # divisor = 43.6363636364 divisor = (19.2*(10**3))/440 wiringpi2.pwmSetClock(int(divisor)) def calcParams(freq): period = (1/freq)*(10**6) dutyCycle = period/2 return (int(period), int(dutyCycle)) try: while True: for freq in range(500, 1001, 1): period, dutyCycle = calcParams(freq) wiringpi2.pwmSetRange(period) wiringpi2.pwmWrite(SPEAKER, dutyCycle) wiringpi2.delay(1) for freq in range(1000, 499, -1): period, dutyCycle = calcParams(freq)
# test module for testing PWM control of hobby servos # import wiringpi2 as wiringpi import time # OK input for servos seems to be between 30 and 110, it jitters if PWM exceeds those lo = 30 hi = 110 t = 5 wiringpi.wiringPiSetupGpio() wiringpi.pinMode(13, 2) wiringpi.pwmSetMode(0) wiringpi.pwmSetClock(400) wiringpi.pwmSetRange(1024) wiringpi.pinMode(18, 2) wiringpi.pwmSetMode(0) wiringpi.pwmSetClock(400) wiringpi.pwmSetRange(1024) wiringpi.pwmWrite(13, hi) time.sleep(t) wiringpi.pwmWrite(18, hi) time.sleep(t) wiringpi.pwmWrite(13, lo) time.sleep(t) wiringpi.pwmWrite(18, lo) time.sleep(t)
import wiringpi2 as wiringpi import time wiringpi.pwmSetMode(0) # PWM_MODE_MS = 0 wiringpi.wiringPiSetupGpio() wiringpi.pinMode(18, 2) # pwm only works on GPIO port 18 wiringpi.pwmSetClock(6) # this parameters correspond to 25kHz wiringpi.pwmSetRange(128) wiringpi.pwmWrite(18, 0) # minimum RPM time.sleep(1) wiringpi.pwmWrite(18, 128) # maximum RPM time.sleep(1) wiringpi.pwmWrite(18, 0)
# -------------------------------------------------------------------- import sys import RPi.GPIO as GPIO from time import sleep import wiringpi2 as wiringpi # -------------------------------------------------------------------- sys.stderr.write("*** 開始 ***\n") # PWM0 = 18 PWM1 = 19 wiringpi.wiringPiSetupGpio() # GPIO名で番号を指定する wiringpi.pinMode(PWM0, wiringpi.GPIO.PWM_OUTPUT) # PWM出力を指定 wiringpi.pinMode(PWM1, wiringpi.GPIO.PWM_OUTPUT) # PWM出力を指定 wiringpi.pwmSetMode(wiringpi.GPIO.PWM_MODE_MS) # 周波数を固定するための設定 wiringpi.pwmSetClock(375) # 50 Hz。18750/(周波数) の計算値に近い整数 # PWMのピン番号18とデフォルトのパルス幅をデューティ100%を1024として指定 # ここでは6.75%に対応する69を指定 wiringpi.pwmWrite(PWM0, 69) wiringpi.pwmWrite(PWM1, 69) count = 0 try: while True: sys.stderr.write("%d\n" % count) count += 1 wiringpi.pwmWrite(PWM0, 69) sleep(1) wiringpi.pwmWrite(PWM0, 36) sleep(1) wiringpi.pwmWrite(PWM0, 102)
# speedPrev = 0 newTrack = 0 goalComponentPrev = 0 listPosition = [LatLon(0, 0)] # GPIO.setmode(GPIO.BCM) GPIO.setup(LED_RED, GPIO.OUT) GPIO.setup(LED_GREEN, GPIO.OUT) GPIO.setup(LED_BLUE, GPIO.OUT) pi.wiringPiSetupGpio() pi.pinMode(SAIL_SERVO_PIN, 2) pi.pinMode(RUDDER_SERVO_PIN, 2) pi.pwmSetMode(0) pi.pwmSetRange(1024) pi.pwmSetClock(375) # sailValue = (SAIL_FULLCLOSE + SAIL_FULLOPEN) / 2 if (SAIL_FULLCLOSE < 35 or SAIL_FULLOPEN > 55 or SAIL_FULLCLOSE > SAIL_FULLOPEN): exit() sailCntl = SailController(sailValue) # time.sleep(30) # rudderValue = RUDDER_CENTER if (rudderValue < 40 or rudderValue > 76 or RUDDER_FULLRIGHT < 40 or RUDDER_FULLLEFT > 76 or RUDDER_FULLRIGHT > RUDDER_FULLLEFT): exit()
def setClock(self, clock): self.clock = clock wiringpi.pwmSetClock(clock)
from twisted.internet.protocol import Protocol, Factory from twisted.internet import reactor import RPi.GPIO as GPIO import wiringpi2 as wiringpi import time wiringpi.wiringPiSetupGpio() wiringpi.pinMode(18, wiringpi.GPIO.PWM_OUTPUT) wiringpi.pwmSetMode(wiringpi.GPIO.PWM_MODE_MS) wiringpi.pwmSetClock(400) wiringpi.pwmSetRange(1024) # 速度の調整 duty = 3 unduty = -3 set_time = 0.01 class RaspberryLight(Protocol): def connectionMade(self): self.factory.clients.append(self) def connectionLost(self, reason): self.factory.clients.remove(self) def dataReceived(self, data): if (data == "start"): print "start" # 回転角の調整 for deg in range(0, 171, duty): wiringpi.pwmWrite(18, deg / 2 + 910)
midiOutput = pygame.midi.Output(port) midiOutput.set_instrument(instrument) def getServoDutyForWebIOPi(val): val_min = 0.0 val_max = 1.0 servo_min = 48 servo_max = 90 duty = int((servo_max-servo_min)*(val-val_min)/(val_max-val_min) + servo_min) return duty wiringpi.wiringPiSetupGpio() # GPIO名で番号指定 wiringpi.pinMode(CAMERA_SERVO, wiringpi.GPIO.PWM_OUTPUT) wiringpi.pwmSetMode(wiringpi.GPIO.PWM_MODE_MS) # 周波数固定 wiringpi.pwmSetClock(375) # 50 Hz wiringpi.pwmWrite(CAMERA_SERVO, getServoDutyForWebIOPi(0.5)) # デバッグ出力を有効に webiopi.setDebug() # GPIOライブラリの取得 GPIO = webiopi.GPIO # WebIOPiの起動時に呼ばれる関数 def setup(): webiopi.debug("Script with macros - Setup") # GPIOのセットアップ GPIO.setFunction(PWM1, GPIO.PWM) GPIO.setFunction(PWM2, GPIO.PWM)
from ports import port_motor_left_forward, port_motor_right_forward, \ port_motor_left_pwm, port_motor_right_pwm pwm_divisor = int(sys.argv[1]) pwm_range = int(sys.argv[2]) percentage = int(sys.argv[3]) wiringpi2.pinMode(port_motor_left_pwm, wiringpi2.GPIO.PWM_OUTPUT) wiringpi2.pinMode(port_motor_right_pwm, wiringpi2.GPIO.PWM_OUTPUT) wiringpi2.pinMode(port_motor_left_forward, wiringpi2.GPIO.OUTPUT) wiringpi2.pinMode(port_motor_right_forward, wiringpi2.GPIO.OUTPUT) wiringpi2.pwmSetMode(wiringpi2.GPIO.PWM_MODE_MS) wiringpi2.pwmSetRange(pwm_range) wiringpi2.pwmSetClock(pwm_divisor) # pwmFrequency in Hz = 19.2 MHz / pwmClock / pwmRange frequency = 19200000 / pwm_divisor / pwm_range pwm_value = pwm_range * percentage / 100 print ("frequency={} Hz (divisor={}, range={}, value={})".format(frequency, pwm_divisor, pwm_range, pwm_value)) for i in range(1, 5): print "on" wiringpi2.digitalWrite(port_motor_left_forward, wiringpi2.GPIO.HIGH) wiringpi2.digitalWrite(port_motor_right_forward, wiringpi2.GPIO.HIGH) wiringpi2.pwmWrite(port_motor_left_pwm, pwm_value) wiringpi2.pwmWrite(port_motor_right_pwm, pwm_value) time.sleep(2)