def t1(): print("Mode/PUD/read/write tests.") pigpio.set_mode(GPIO, pigpio.INPUT) v = pigpio.get_mode(GPIO) CHECK(1, 1, v, 0, 0, "set mode, get mode") pigpio.set_pull_up_down(GPIO, pigpio.PUD_UP) v = pigpio.read(GPIO) CHECK(1, 2, v, 1, 0, "set pull up down, read") pigpio.set_pull_up_down(GPIO, pigpio.PUD_DOWN) v = pigpio.read(GPIO) CHECK(1, 3, v, 0, 0, "set pull up down, read") pigpio.write(GPIO, pigpio.LOW) v = pigpio.get_mode(GPIO) CHECK(1, 4, v, 1, 0, "write, get mode") v = pigpio.read(GPIO) CHECK(1, 5, v, 0, 0, "read") pigpio.write(GPIO, pigpio.HIGH) v = pigpio.read(GPIO) CHECK(1, 6, v, 1, 0, "write, read")
def set_motor_direction_pins(self): if ( self.current_pulse_width >= 0): pigpio.write(self.gpio_direction_pin, 0) else: pigpio.write(self.gpio_direction_pin, 1) self.logger.info("Direction pin set to %s" % pigpio.read(self.gpio_direction_pin))
def start(self): pigpio.set_mode(self.GPIO_TRIGGER, pigpio.OUTPUT) pigpio.set_mode(self.GPIO_ECHO, pigpio.INPUT) pigpio.write(self.GPIO_TRIGGER, 0) self.echo_cb = pigpio.callback( self.GPIO_ECHO, pigpio.EITHER_EDGE, self.on_echo) pigpio.set_watchdog(self.GPIO_ECHO, 100)
def set_motor_direction_pins(self): if (self.current_pulse_width >= 0): pigpio.write(self.gpio_direction_pin, 0) else: pigpio.write(self.gpio_direction_pin, 1) self.logger.info("Direction pin set to %s" % pigpio.read(self.gpio_direction_pin))
def t9(): print("Script store/run/status/stop/delete tests.") pigpio.write(GPIO, 0) # need known state # 100 loops per second # p0 number of loops # p1 GPIO script=""" ldap 0 ldva 0 label 0 w p1 1 milli 5 w p1 0 milli 5 dcrv 0 ldav 0 ldpa 9 jp 0""" t9cb = pigpio.callback(GPIO) s = pigpio.store_script(script) oc = t9cb.tally() pigpio.run_script(s, [99, GPIO]) time.sleep(2) c = t9cb.tally() - oc CHECK(9, 1, c, 100, 0, "store/run script") oc = t9cb.tally() pigpio.run_script(s, [200, GPIO]) while True: e, p = pigpio.script_status(s) if e != pigpio.PI_SCRIPT_RUNNING: break time.sleep(0.5) c = t9cb.tally() - oc time.sleep(0.1) CHECK(9, 2, c, 201, 0, "run script/script status") oc = t9cb.tally() pigpio.run_script(s, [2000, GPIO]) while True: e, p = pigpio.script_status(s) if e != pigpio.PI_SCRIPT_RUNNING: break if p[9] < 1900: pigpio.stop_script(s) time.sleep(0.1) c = t9cb.tally() - oc time.sleep(0.1) CHECK(9, 3, c, 110, 10, "run/stop script/script status") e = pigpio.delete_script(s) CHECK(9, 4, e, 0, 0, "delete script")
def t9(): print("Script store/run/status/stop/delete tests.") pigpio.write(GPIO, 0) # need known state # 100 loops per second # p0 number of loops # p1 GPIO script = """ lda p0 sta v0 tag 0 w p1 1 mils 5 w p1 0 mils 5 dcr v0 lda v0 sta p9 jp 0""" t9cb = pigpio.callback(GPIO) s = pigpio.store_script(script) oc = t9cb.tally() pigpio.run_script(s, [99, GPIO]) time.sleep(2) c = t9cb.tally() - oc CHECK(9, 1, c, 100, 0, "store/run script") oc = t9cb.tally() pigpio.run_script(s, [200, GPIO]) while True: e, p = pigpio.script_status(s) if e != pigpio.PI_SCRIPT_RUNNING: break time.sleep(0.5) c = t9cb.tally() - oc time.sleep(0.1) CHECK(9, 2, c, 201, 0, "run script/script status") oc = t9cb.tally() pigpio.run_script(s, [2000, GPIO]) while True: e, p = pigpio.script_status(s) if e != pigpio.PI_SCRIPT_RUNNING: break if p[9] < 1900: pigpio.stop_script(s) time.sleep(0.1) c = t9cb.tally() - oc time.sleep(0.1) CHECK(9, 3, c, 110, 10, "run/stop script/script status") e = pigpio.delete_script(s) CHECK(9, 4, e, 0, 0, "delete script")
def trigger(self): """Trigger a new relative humidity and temperature reading.""" self.bit = -3 # header bits self.hH = 0 self.hL = 0 self.tH = 0 self.tL = 0 self.CS = 0 self.accumulating = True pigpio.write(self.gpio, 0) time.sleep(0.0001) pigpio.set_mode(self.gpio, pigpio.INPUT) pigpio.set_watchdog(self.gpio, 50)
def check_pixel(x, y): print 'checking pixel state for ' + str(x) + ', ' + str('y') # TODO: maybe take a few readings, average them out, round up/down to get state? pigpio.set_mode(config['pins']['actuator_power'], pigpio.OUTPUT) pigpio.set_mode(config['pins']['actuator_sensor'], pigpio.INPUT) # Read value light_sensor = pigpio.read(config['pins']['actuator_sensor']) print 'light sensor: ' + str(light_sensor) pigpio.write(config['pins']['actuator_power'], pigpio.LOW) return light_sensor
def change_pixel(state): print 'turning pixel to state ' + str(state) pigpio.set_mode(config['pins']['actuator_power'], pigpio.OUTPUT) pigpio.set_mode(config['pins']['actuator_sensor'], pigpio.INPUT) pigpio.write(config['pins']['actuator_power'], pigpio.HIGH) turning = 1 while turning > 0: turning += 1 light_sensor = pigpio.read(config['pins']['actuator_sensor']) print 'light sensor: ' + str(light_sensor) time.sleep(0.2) if turning > 10: turning = 0 pigpio.write(config['pins']['actuator_power'], pigpio.LOW) print 'done turning' return light_sensor
def t8(): print("Bank read/write tests.") pigpio.write(GPIO, 0) v = pigpio.read_bank_1() & (1<<GPIO) CHECK(8, 1, v, 0, 0, "read bank 1") pigpio.write(GPIO, 1) v = pigpio.read_bank_1() & (1<<GPIO) CHECK(8, 2, v, (1<<GPIO), 0, "read bank 1") pigpio.clear_bank_1(1<<GPIO) v = pigpio.read(GPIO) CHECK(8, 3, v, 0, 0, "clear bank 1") pigpio.set_bank_1(1<<GPIO) v = pigpio.read(GPIO) CHECK(8, 4, v, 1, 0, "set bank 1") t = 0 v = (1<<16) for i in range(100): if pigpio.read_bank_2() & v: t += 1 CHECK(8, 5, t, 60, 75, "read bank 2") v = pigpio.clear_bank_2(0) CHECK(8, 6, v, 0, 0, "clear bank 2") pigpio.exceptions = False v = pigpio.clear_bank_2(0xffffff) pigpio.exceptions = True CHECK(8, 7, v, pigpio.PI_SOME_PERMITTED, 0, "clear bank 2") v = pigpio.set_bank_2(0) CHECK(8, 8, v, 0, 0, "set bank 2") pigpio.exceptions = False v = pigpio.set_bank_2(0xffffff) pigpio.exceptions = True CHECK(8, 9, v, pigpio.PI_SOME_PERMITTED, 0, "set bank 2")
def t8(): print("Bank read/write tests.") pigpio.write(GPIO, 0) v = pigpio.read_bank_1() & (1 << GPIO) CHECK(8, 1, v, 0, 0, "read bank 1") pigpio.write(GPIO, 1) v = pigpio.read_bank_1() & (1 << GPIO) CHECK(8, 2, v, (1 << GPIO), 0, "read bank 1") pigpio.clear_bank_1(1 << GPIO) v = pigpio.read(GPIO) CHECK(8, 3, v, 0, 0, "clear bank 1") pigpio.set_bank_1(1 << GPIO) v = pigpio.read(GPIO) CHECK(8, 4, v, 1, 0, "set bank 1") t = 0 v = 1 << 16 for i in range(100): if pigpio.read_bank_2() & v: t += 1 CHECK(8, 5, t, 60, 75, "read bank 2") v = pigpio.clear_bank_2(0) CHECK(8, 6, v, 0, 0, "clear bank 2") pigpio.exceptions = False v = pigpio.clear_bank_2(0xFFFFFF) pigpio.exceptions = True CHECK(8, 7, v, pigpio.PI_SOME_PERMITTED, 0, "clear bank 2") v = pigpio.set_bank_2(0) CHECK(8, 8, v, 0, 0, "set bank 2") pigpio.exceptions = False v = pigpio.set_bank_2(0xFFFFFF) pigpio.exceptions = True CHECK(8, 9, v, pigpio.PI_SOME_PERMITTED, 0, "set bank 2")
def t6(): global t6_count, t6_on print("Trigger tests.") pigpio.write(GPIO, pigpio.LOW) tp = 0 t6cb = pigpio.callback(GPIO, pigpio.EITHER_EDGE, t6cbf) for t in range(5): time.sleep(0.1) p = 10 + (t * 10) tp += p pigpio.gpio_trigger(GPIO, p, 1) time.sleep(0.5) CHECK(6, 1, t6_count, 5, 0, "gpio trigger count") CHECK(6, 2, t6_on, tp, 25, "gpio trigger pulse length")
def t6(): global t6_count, t6_on print("Trigger tests.") pigpio.write(GPIO, pigpio.LOW) tp = 0 t6cb = pigpio.callback(GPIO, pigpio.EITHER_EDGE, t6cbf) for t in range(10): time.sleep(0.1) p = 10 + (t*10) tp += p; pigpio.gpio_trigger(4, p, 1) time.sleep(0.5) CHECK(6, 1, t6_count, 10, 0, "gpio trigger count") CHECK(6, 2, t6_on, tp, 25, "gpio trigger pulse length")
def set_pin_to(pin, value): pigpio.write(pin, value) print("GPIO Pin %s set to %s " % (pin, value))
def set_pin_to(pin, value): pigpio.write(pin, value) print_at(5, 0, "Pin %s set to %s " % (pin, value))