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)  #適当
示例#2
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)
示例#3
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__)
示例#4
0
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
示例#5
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)
示例#6
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)
示例#7
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()
示例#8
0
 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)
示例#9
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)
示例#10
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)
示例#11
0
    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
示例#12
0
 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)
示例#13
0
	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)
示例#14
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)
示例#15
0
 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)
示例#16
0
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)
示例#17
0
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)
示例#18
0
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
示例#19
0
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
示例#20
0
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()
示例#21
0
    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
示例#23
0
    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)
示例#24
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)
示例#26
0
    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
示例#27
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)
示例#28
0
    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
示例#29
0
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)
示例#30
0
#!/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)
示例#31
0
 def set_clock(self):
     self.clock = int(
         float(19200000) / (self.range * float(1000) / self.get_period()))
     wiringpi.pwmSetClock(self.clock)
示例#32
0
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
示例#33
0
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
示例#34
0
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)
示例#36
0
    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)
示例#37
0
文件: pwm_clk.py 项目: ecelis/sck
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);
示例#38
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
示例#39
0
文件: pwm.py 项目: ecelis/sck
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)
示例#40
0
# 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)
示例#41
0
# 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)
示例#42
0
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)
示例#43
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()
示例#45
0
 def setClock(self, clock):
     self.clock = clock
     wiringpi.pwmSetClock(clock)
示例#46
0
文件: hata.py 项目: shima11/FlagRobot
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)
示例#47
0
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)
示例#48
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
示例#49
0
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)