def __init__(self, length=25, width=7, pad_rad=1, rate=0.1): self.port = '/dev/ttyACM1' self.length = length self.width = width self.pad_rad = pad_rad self.frame = [Col.BLACK for _ in range(self.length * self.width)] # Player Attributes self.pos1 = self.width // 2 self.pts1 = 0 self.pos2 = self.width // 2 self.pts2 = 0 # Ball Attributes self.rate = rate self.posb = np.zeros((2)) self.posb = [(self.length // 2), (self.width // 2)] self.velb = np.zeros((2)) self.reaction_time = 5 * self.rate self.last_calc = time.time() self.last_move = time.time() self.blt = bt.BlinkyTape(self.port, (self.length * self.width), buffered=False)
def setUpClass(self): # TODO: Why can't access self.testRig from __init__ here? self.testRig = TestRig.testRig self.testRig.resetState() self.i = UserInterface.interface self.dut = BlinkyTape.BlinkyTape()
def blinkytape_artnet_receiver(): print(("Listening in {0}:{1}").format(UDP_IP, UDP_PORT)) sock = socket(AF_INET, SOCK_DGRAM) # UDP sock.bind((UDP_IP, UDP_PORT)) bt = BlinkyTape.BlinkyTape(BLINKYTAPE_DEVICE, BLINKYTAPE_LENGTH) lastSequence = 0 packetCount = 0 lastTime = time.time() datas = [] while True: try: data, addr = sock.recvfrom(1024) packet = ArtnetPacket.unpack_raw_artnet_packet(data) if packet != None: #print("Sequence=%i universe=%i"%(packet.sequence,packet.universe)) packetCount += 1 while len(datas) < packet.universe + 1: print("adding new universe %i"%(packet.universe)) datas.append('') datas[packet.universe] = packet.data # Send an update to the tape when a new sequence is received on the last universe if packet.universe == (len(datas)-1) and lastSequence != packet.sequence: outputData = '' #print(datas) for data in datas: if len(data) > PIXELS_PER_UNIVERSE*BYTES_PER_PIXEL: data = data[0:PIXELS_PER_UNIVERSE*BYTES_PER_PIXEL] if len(data) < PIXELS_PER_UNIVERSE*BYTES_PER_PIXEL: data += '\x00' * (PIXELS_PER_UNIVERSE*BYTES_PER_PIXEL - len(data)) outputData += data #print(len(outputData)) bt.sendData(outputData) lastSequence = packet.sequence if time.time() > lastTime+1: print("Packets per second: %i"%(packetCount)) packetCount = 0 lastTime = time.time() except KeyboardInterrupt: sock.close() sys.exit()
def connect(): serialPorts = glob.glob("/dev/cu.usbmodem*") port = serialPorts[0] if not port: sys.exit("Could not locate a BlinkyTape.") print "BlinkyTape found at: %s" % port bt = BlinkyTape.BlinkyTape(port) bt.displayColor(0, 0, 0) return bt
def showTestPattern(portName): print "Showing test pattern on %s" % portName try: bt = BlinkyTape.BlinkyTape(portName) while True: bt.displayColor(255, 0, 0) time.sleep(1) bt.displayColor(0, 255, 0) time.sleep(1) bt.displayColor(0, 0, 255) time.sleep(1) except: pass
def __init__(self): logging.basicConfig(filename=config.logging_logfile, level=config.logging_level) serial_ports = glob.glob("/dev/ttyACM0") port = serial_ports[0] if not port: sys.exit("Could not locate a BlinkyTape.") print "BlinkyTape found at: %s" % port self.bt = BlinkyTape.BlinkyTape(port) self.bt.displayColor(0, 0, 0) self.colors = [[0, 0, 0]] * config.led_count self.fade_steps = 50 self.fade_pause = 0.02
def resetToBootloader(portName): print "Resetting to bootloader on %s" % portName bt = BlinkyTape.BlinkyTape(portName) bt.displayColor(20, 0, 20) bt.resetToBootloader()