def __del__(self): print('motor drive ... bye') self.allStop() self.motor0.stop() self.motor1.stop() self.motor2.stop() self.motor3.stop() cleanup()
def quit(app): app.stop_prog() if app.state.stop: app.new_loop.call_soon_threadsafe(app.nope, app.state.stop.cancel()) if app.pwsThread: app.pwsThread.join() if app.state.power == "ON": queue_msg(app.state, "setPower") cleanup() print("\nBye\n") sys.exit()
def poll (self) : '''Initiate polling ''' while True: try: self.__update() # in tests needed # print('now: '+str(dt.now())+' --- alarm: '+str(self._alarm_hour)+':'+str(self._alarm_minute)) sleep (LATENCY) except (KeyboardInterrupt, SystemExit): cleanup () exit ('Program was manually ended') except: cleanup () exit ('Unexpected error:\n'+sys.exc_info()[0])
def start(self): try: self.m.move_forward() print("move_speed:", self.m.move_speed) self.m.roam() except KeyboardInterrupt: # Reset by pressing CTRL + C print("Error:", traceback.format_exc()) print("Stopping motors...:") self.m.move_stop() cleanup() except Exception: print("Error:", traceback.format_exc()) print("Stopping motors...:") self.m.move_stop() cleanup()
pins = [17, 27, 22, 23] setmode(BCM) setwarnings(False) for i in pins: setup(i, OUT) output(i, 0) c = [ [1,0,0,0], [1,1,0,0], [0,1,0,0], [0,1,1,0], [0,0,1,0], [0,0,1,1], [0,0,0,1], [1,0,0,1] ] for i in range(512): for i in range(8): for j in range(4): output(pins[j], c[i][j]) sleep(0.01) cleanup()
def destroy() : '''Clean every PINs ''' cleanup ()
"f": forward, "s": stop, "r": right, "l": left, "st": straight} def move(request): commands_dict.get(request.matchdict['direction'], default)() return default_response() fspeed = 0 rspeed = 0 if __name__ == '__main__': config = Configurator() config.add_route('move', '/move/{direction}') config.add_view(move, route_name='move') app = config.make_wsgi_app() server = make_server('0.0.0.0', 8081, app) server.serve_forever() p.stop() cleanup(17) cleanup(20) cleanup(22) cleanup(5) cleanup(6) cleanup(13)
from RPi.GPIO import cleanup try: while True: resetGPIO() resetAction() t_health = health.healthThread(1) t_fire = fire.fireThread(2) t_health.start() t_fire.start() while True: if not t_health.isAlive(): gameOverAction() while not isReset(): sleep(0.1) break if isReset(): break sleep(0.05) t_health.kill() t_fire.kill() t_health.join() t_fire.join() cleanup() except KeyboardInterrupt: t_health.kill() t_fire.kill() t_health.join() t_fire.join() cleanup() # clean up GPIO on CTRL+C exit
def _cleanup(): ''' Release pins on exit ''' cleanup()
def stop(self): print("Bluedot stopping motors...:") self.m.move_stop() cleanup()
def main(): """Main method.""" parser = argparse.ArgumentParser( prog="rpi-mini-battery-display", description="Control a mini battery display with TM1651 or TM1637 chip", ) parser.add_argument( "-c", "--clock-pin", type=int, default=24, help="Clock pin in BCM notation (default: 24, range: 0-27)", ) parser.add_argument( "-d", "--data-pin", type=int, default=23, help="Data pin in BCM notation (default: 23, range: 0-27)", ) parser.add_argument( "-b", "--brightness", type=int, default=2, help="Brightness (default: 2, range: 0-7)", ) parser.add_argument( "-s", "--segments", type=int, default=7, help="Number of LED segments (default: 7, range: 1-7)", ) command = parser.add_mutually_exclusive_group(required=True) command.add_argument("-l", "--level", type=int, help="Set battery level (range: 0-segments)") command.add_argument("-p", "--processor", action="store_true", help="Show CPU percentage") args = parser.parse_args() exit_code = 0 try: display = BatteryDisplay(args.clock_pin, args.data_pin, args.segments) display.set_brightness(args.brightness) if args.level: display.set_level(args.level) elif args.processor: while True: # Map a percentage from 0 to 100 to a level from 0 to number of segments display.set_level( min(int(cpu_percent() / 100 * (args.segments + 1)), args.segments)) sleep(2) except InvalidPinError as error: print("Invalid pin number: {}. {}".format(error.pin, str(error))) exit_code = 1 except InvalidBrightnessError as error: print("Invalid brightness: {}. {}".format(error.brightness, str(error))) exit_code = 2 except InvalidLevelError as error: print("Invalid level: {}. {}".format(error.level, str(error))) exit_code = 3 except NoDisplayFoundError as error: print("No display found on clock pin {} and data pin {}.".format( error.clock_pin, error.data_pin)) exit_code = 4 except InvalidSegmentsError as error: print("Invalid number of segments: {}. {}".format( error.segments, str(error))) exit_code = 5 finally: if exit_code != 1: cleanup() sys.exit(exit_code)
def __del__(self): """Reset all GPIO pins.""" cleanup()