def tone(note, duration): if note == 0: time.sleep(duration) time.sleep(duration * 0.8) else: pwm = GPIO.PWM(32, note) pwm.start(50) time.sleep(duration) pwm.stop() time.sleep(duration * 0.8)
def pwm_led_test(): pwm = GPIO.PWM(32, 50) pwm.start(100) for i in range(0, 10): for x in range(0, 101, 5): pwm.ChangeDutyCycle(x) time.sleep(0.05) for x in range(100, -1, -5): pwm.ChangeDutyCycle(x) time.sleep(0.05)
def servo(angle): dutyCycle = (angle + 45) / 18 #convert degrees to duty cycle GPIO.setmode(GPIO.ASUS) GPIO.setwarnings(False) servo = 32 GPIO.setup(servo, GPIO.OUT) pwm = GPIO.PWM(servo, 50) pwm.ChangeDutyCycle(dutyCycle) time.sleep(1)
def setUp(self): # GPIO.setmode(GPIO.BCM) GPIO.setup(self.in1, GPIO.OUT) GPIO.setup(self.in2, GPIO.OUT) GPIO.setup(self.en, GPIO.OUT) GPIO.output(self.in1, GPIO.LOW) GPIO.output(self.in2, GPIO.LOW) self.p = GPIO.PWM(self.en, 1000) self.p.start(self.speeds[1])
def __init__(self, pwm_pin, n1_pin, n2_pin, tick_pin, m_pr_tick, pwm_speed=100, control_loop_hz=100.0): # pins self.pwm_pin = pwm_pin self.n1_pin = n1_pin self.n2_pin = n2_pin self.tick_pin = tick_pin # options self.pwm_speed = pwm_speed self.control_loop_hz = control_loop_hz self.m_pr_tick = m_pr_tick self.p_gain = 0 self.i_gain = 0.01 # variables self.last_tick = rospy.get_rostime() self._set_speed = 0.0 self.speed = 0.0 self.direction = 0.0 self.p_reg = 0.0 self.i_reg = 0.0 self.last_pwm = 0.0 self.got_tick = False self.direction = 0 # Pin setup self.N1 = GpioTogglePin(self.n1_pin) self.N2 = GpioTogglePin(self.n2_pin) GPIO.setup(self.pwm_pin, GPIO.OUT) GPIO.setup(self.tick_pin, GPIO.IN, pull_up_down=GPIO.PUD_UP) self.pwm = GPIO.PWM(self.pwm_pin, self.pwm_speed) self.pwm.start(0.0) GPIO.add_event_detect(self.tick_pin, GPIO.FALLING, callback=self.tick_callback, bouncetime=1) rospy.Timer(rospy.Duration(1.0 / self.control_loop_hz), self.control_loop) rospy.Timer(rospy.Duration(0.1), self.speed_resetter)
def __init__(self): #GPIOs self.led_pin = 7 self.fan_pin = 8 self.reset_pin = 3 self.power_pin = 5 self.check_pin = 10 #vars self.fan_hysteresis = 5 self.fan_starttemp = 60 self.fan_hysteresis_pwm = 20 self.fan_starttemp_pwm = 60 self.reset_hold_short = 100 self.reset_hold_long = 500 self.debounce_time = 0.1 self.counter_time = 0.01 self.delay_until_reset = 2 self.is_pwm = False #path self.kintaro_folder = "/opt/KintaroSnes/" self.start_folder = "start/" self.intro_video = self.kintaro_folder + self.start_folder + "intro.mp4" self.config_file = self.kintaro_folder + self.start_folder + "kintaro.config" # self.temp_command = 'vcgencmd measure_temp' #Set the GPIOs GPIO.setmode(GPIO.BOARD) # Use the same layout as the pins GPIO.setwarnings(False) GPIO.setup(self.led_pin, GPIO.OUT) # LED Output GPIO.setup(self.fan_pin, GPIO.OUT) # Fan normal Output GPIO.setup(self.power_pin, GPIO.IN) # set pin as input GPIO.setup( self.reset_pin, GPIO.IN, pull_up_down=GPIO.PUD_UP ) # set pin as input and switch on internal pull up resistor GPIO.setup(self.check_pin, GPIO.IN, pull_up_down=GPIO.PUD_UP) if self.return_config_bool("PWM_FAN"): self.is_pwm = True self.pwm = GPIO.PWM(self.fan_pin, 50) self.pwm.start(0)
def servo(): pwm = GPIO.PWM(32, 50) pwm.start(2.5) # min 2.5, max 11.5 180 degrees for i in range(0, 3): pwm.ChangeDutyCycle(2.5) print("0 degree") time.sleep(1.0) pwm.ChangeDutyCycle(7.0) print("90 degree") time.sleep(1.0) pwm.ChangeDutyCycle(11.5) print("180 degree") time.sleep(1.0) pwm.ChangeDutyCycle(7.0) print("90 degree") time.sleep(1.0) pwm.start(0)
def pinUpdate(self, pin, value,type = 'plain',stepDelay = 0.003): print "pinUpdate p,v,t,pwmref: ",pin,value,type,self.pinRef[pin] print "pin",pin print "pvalue",self.pinValue self.pinValue[pin] = value self.mFreq = max(5,abs(value/2)) if (self.ledDim < 100) and (type == 'plain'): type = "pwm" value = value * self.ledDim try: print pin,value,type,self.pinUse[pin] if type[0:3] == "pwm": # print "processing pwm" #return if (self.pinInvert[pin] == True): # Invert data value (needed for active low devices) value = 100 - abs(value) print "motor freq calc", self.mFreq try: print "try jsut updating pwm" self.pinRef[pin].ChangeDutyCycle(max(0,min(100,abs(value)))) # just update PWM value if type == "pwmmotor": #print "motor freq used a", self.mFreq self.pinRef[pin].ChangeFrequency(self.mFreq) # change freq to motor freq elif type != "pwmbeep": #print "motor freq used a", self.mFreq self.pinRef[pin].ChangeFrequency(self.pFreq) # change freq to motor freq print "updating pwm suceceed" except: print "pwm not set so now setting up" try: GPIO.remove_event_detect(pin) self.callbackInUse[pin] = False except: pass GPIO.setup(pin,GPIO.OUT) # Setup if type == "pwmmotor": #print "motor freq used b", self.mFreq self.pinRef[pin] = GPIO.PWM(pin,self.mFreq) # create new PWM instance elif type != "pwmbeep": #print "motor freq used a", self.mFreq self.pinRef[pin] = GPIO.PWM(pin,self.pFreq) # create new PWM instance self.pinRef[pin].start(max(0,min(100,abs(value)))) # update PWM value print "pwm setup on pin",pin, "now has ref",self.pinRef[pin] self.pinUse[pin] = self.PPWM # set pin use as PWM elif type == "plain": print "Plain processing- Pin " , pin , " commanded to be " , value print "pinUpdate p,v,t,pwmref: ",pin,value,type,self.pinRef[pin] if (self.pinInvert[pin] == True): # Invert data value (useful for 7 segment common anode displays) value = 1 - abs(value) if (self.pinUse[pin] == self.POUTPUT): # if already an output GPIO.output(pin, int(value)) # set output to 1 ot 0 print 'pin' , pin , ' was already an output. Now set to' , value elif (self.pinUse[pin] in [self.PINPUT,self.PINPUTNONE,self.PINPUTDOWN]): # if pin is an input try: GPIO.remove_event_detect(pin) self.callbackInUse[pin] = False except: pass self.pinUse[pin] = self.POUTPUT # switch it to output GPIO.setup(pin,GPIO.OUT) GPIO.output(pin, int(value)) # set output to 1 to 0 #print 'pin' , pin , ' was an input - change to output value' , value elif (self.pinUse[pin] == self.PUNUSED): # if pin is not allocated self.pinUse[pin] = self.POUTPUT # switch it to output GPIO.setup(pin,GPIO.OUT) GPIO.output(pin,int(value)) # set output to 1 or 0 print 'pin' , pin , ' was ununsed - now out value ' , value elif (self.pinUse[pin] == self.PPWM): # pin was set as pwm print "pinUpdate p,v,t,pwmref: ",pin,value,type,self.pinRef[pin] print "pwm pin", pin , " sent digital on off: ",value value = 100 if value else 0 self.pinRef[pin].ChangeDutyCycle(value) except ValueError: print "mistake made in trying to update an invalid pin" print pin,value,type pass
import ASUS.GPIO as GPIO import unittest import time GPIO.setmode(GPIO.ASUS) GPIO.setup(252, GPIO.OUT) pwm = GPIO.PWM(252, 50) pwm.start(100) while True: for i in range(0, 3): for x in range(0, 101, 5): pwm.ChangeDutyCycle(x) time.sleep(0.1) for x in range(100, -1, -5): pwm.ChangeDutyCycle(x) time.sleep(0.1)
#!/usr/bin/python import select import socket import ASUS.GPIO as GPIO import time import sys import Queue GPIO.setwarnings(False) GPIO.setmode(GPIO.BOARD) GPIO.setup(32, GPIO.OUT) pwm = GPIO.PWM(32, 50) pwm.start(2.5) # min 2.5, max 11.5 180 degrees HOST = '' # Symbolic name meaning all available interfaces PORT = 50007 # Arbitrary non-privileged port # Create a TCP/IP socket server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.setblocking(0) # Bind the socket to the port server.bind((HOST, PORT)) # Listen for incoming connections server.listen(5) # Sockets from which we expect to read inputs = [ server ]
#Testing for software PWM import ASUS.GPIO as GPIO import unittest import time GPIO.setmode(GPIO.ASUS) while True: gpiovalue = int(input("Enter the gpio number:")) freqvalue = int(input("Enter the frequency value:")) GPIO.setup(gpiovalue, GPIO.OUT) pwm = GPIO.PWM(gpiovalue, freqvalue) pwm.start(50)
import ASUS.GPIO as GPIO import time GPIO.setmode(GPIO.ASUS) GPIO.setwarnings(False) myservo = 238 GPIO.setup(myservo,GPIO.OUT) pwm = GPIO.PWM(myservo,50) # 50hz yani 20mslik periyod pwm.start(2.5) # 0 derece try: while True: print "0 derece" pwm.ChangeDutyCycle(2.5) #0 derece time.sleep(1) # wait 1sec print "90 derece" pwm.ChangeDutyCycle(7.5) #90 derece time.sleep(1) print "180 derece" pwm.ChangeDutyCycle(12.5) #180 derece time.sleep(1) print "90 derece" pwm.ChangeDutyCycle(7.5) time.sleep(1) except KeyboardInterrupt: print "Hoscakal canim" GPIO.cleanup()
print 'Number of arguments:', len(sys.argv), 'arguments.' print 'Argument List:', str(sys.argv[1]) colorArg = str(sys.argv[1]) speedArg = int(sys.argv[2]) timeArg = int(sys.argv[3]) #Color pins RED = 187 BLUE = 188 GREEN = 223 GPIO.setup(GREEN, GPIO.OUT) GPIO.setup(RED, GPIO.OUT) GPIO.setup(BLUE, GPIO.OUT) pwmGREEN = GPIO.PWM(GREEN, 100) pwmRED = GPIO.PWM(RED, 100) pwmBLUE = GPIO.PWM(BLUE, 100) pwmGREEN.start(0) pwmRED.start(0) pwmBLUE.start(0) green = [100, 0, 0] red = [0, 100, 0] blue = [0, 0, 100] blueStr = "blue" purple = [0, 100, 100] yellow = [100, 100, 0] cyan = [100, 0, 100]
import ASUS.GPIO as GPIO import time # BOARD MODE GPIO.setmode(GPIO.BOARD) GPIO.setup(3, GPIO.OUT) GPIO.setup(5, GPIO.OUT) GPIO.setup(7, GPIO.OUT) p = GPIO.PWM(7, 0.01) GPIO.setup(19, GPIO.OUT) GPIO.setup(21, GPIO.OUT) GPIO.setup(23, GPIO.OUT) p1 = GPIO.PWM(23, 0.01) while True: GPIO.output(3, GPIO.HIGH) GPIO.output(5, GPIO.LOW) GPIO.output(21, GPIO.HIGH) GPIO.output(19, GPIO.LOW) p.start(100) p1.start(100)
#!/usr/bin/env python3 import ASUS.GPIO as GPIO import time import datetime print('Starting script at: %s ' % datetime.datetime.now()) GPIO.setmode(GPIO.ASUS) GPIO.setwarnings(False) myservo = 238 sleepTime = 5 GPIO.setup(myservo, GPIO.OUT) pwm = GPIO.PWM(myservo, 5) pwm.start(100) time.sleep(sleepTime) try: while True: actual_temp = 41000 #in case of problem with file reed, temp 41 file = open('/sys/class/thermal/thermal_zone0/temp', 'r') actual_temp_string = file.read() file.close() try: actual_temp = int(actual_temp_string) actual_temp_in_degrees = int(round(actual_temp / 1000)) #print('Actual CPU temp: ',actual_temp_in_degrees) except ValueError as error: print('Conversion from string did not work', actual_temp_string)
import ASUS.GPIO as GPIO from control import Control # Configuration FAN_PIN = 238 WAIT_TIME = 1 PWM_FREQ = 10 c = Control(configfile="fan_control.config") # Setup GPIO pin GPIO.setmode(GPIO.ASUS) GPIO.setwarnings(False) GPIO.setup(FAN_PIN, GPIO.OUT) FAN = GPIO.PWM(FAN_PIN, PWM_FREQ) FAN.start(c.duty_min) try: while True: if c.has_hysterie(): # Calculate desired FAN speed c.get_new_duty() FAN.ChangeDutyCycle(c.curr_duty) # Wait until next refresh time.sleep(WAIT_TIME) # If a keyboard interrupt occurs, the GPIO is set to 0 and the program exits. except KeyboardInterrupt: if c.is_logging: logging.error("STOPED BY KEYBOARD")