from player import Player from spi import SPI try: from creds import BING_KEY except ImportError: print( 'Get a key from https://www.microsoft.com/cognitive-services/en-us/speech-api and create creds.py with the key') sys.exit(-1) script_dir = os.path.dirname(os.path.realpath(__file__)) hi = os.path.join(script_dir, 'audio/hi.wav') spi = SPI() spi.write('offline\n') bing = BingVoice(BING_KEY) mission_completed = False awake = False pa = pyaudio.PyAudio() mic = Microphone(pa) player = Player(pa) def check_internet(host="8.8.8.8", port=53, timeout=6): """ Host: 8.8.8.8 (google-public-dns-a.google.com) OpenPort: 53/tcp
print("* done recording") # recognize speech using Microsoft Bing Voice Recognition try: text = bing.recognize(data, language='en-US') print(text) if "header" in text and "lexical" in text["header"]: recognizedText = text["header"]["lexical"] print('Bing:' + recognizedText.encode('utf-8')) if (recognizedText == TRIGGER_WORD): print("Trigger word detected") got_trigger = True spi.write("on\n") elif got_trigger: result = apiai.recognize(recognizedText) print(result) print("") print(result["result"]["metadata"]["intentName"]) print(result["result"]["parameters"]["room"]) print(result["result"]["parameters"]["op"]) jsonCmd = json.dumps({ "cmd": result["result"]["parameters"]["op"], "room": result["result"]["parameters"]["room"] })
except ImportError: print( 'Get a key from https://www.microsoft.com/cognitive-services/en-us/speech-api and create creds.py with the key' ) sys.exit(-1) script_dir = os.path.dirname(os.path.realpath(__file__)) hi = os.path.join(script_dir, 'audio/hi.wav') thunder = os.path.join(script_dir, 'audio/thunder-01.wav') startlearning = os.path.join(script_dir, 'audio/startlearning.wav') stoplearning = os.path.join(script_dir, 'audio/stoplearning.wav') sendir = os.path.join(script_dir, 'audio/sendir.wav') spi = SPI() spi.write('offline\n') bing = BingVoice(BING_KEY) mission_completed = False awake = False pa = pyaudio.PyAudio() mic = Microphone(pa) player = Player(pa) spi.write('online\n') def handle_int(sig, frame): global mission_completed
from spi import SPI try: from creds import BING_KEY except ImportError: print( 'Get a key from https://www.microsoft.com/cognitive-services/en-us/speech-api and create creds.py with the key' ) sys.exit(-1) script_dir = os.path.dirname(os.path.realpath(__file__)) hi = os.path.join(script_dir, 'audio/hi.wav') spi = SPI() spi.write('offline\n') bing = BingVoice(BING_KEY) mission_completed = False awake = False pa = pyaudio.PyAudio() mic = Microphone(pa) player = Player(pa) def check_internet(host="8.8.8.8", port=53, timeout=6): """ Host: 8.8.8.8 (google-public-dns-a.google.com) OpenPort: 53/tcp
class Test(): def __init__(self): self.verbose = True self.u = katcp_wrapper.FpgaClient('roach2') print 'Connected...' time.sleep(1) self.u.progdev('tclk_2012_Oct_15_1635.bof') print 'Programmed...' self.s = SPI(self.u) self.tap = 0 ## Make sure that SPI interface is flushed ## and initialize self.start() def reset(self): self.s.write(0x00,0x0001) # reset def select(self, chip): self.s.select(chip) def power_cycle(self): self.s.write(0x0f,0x0200) # Powerdown self.s.write(0x0f,0x0000) # Powerup def start(self): print 'Beginning ADC power cycling' print 'Resetting ADC' self.reset() # reset print 'Reset done' print 'Power down ADC' self.power_cycle() print 'Power cycling done' def commit(self): self.power_cycle() def clear_pattern(self): self.s.write(0x45,0x0000) # Clear skew,deskew self.s.write(0x25,0x0000) # Clear ramp #self.commit() def ramp_pattern(self): self.clear_pattern() self.s.write(0x25,0x0040) # Enable ramp #self.commit() def deskew_pattern(self): self.clear_pattern() self.s.write(0x45,0x0001) #self.commit() def sync_pattern(self): self.clear_pattern() self.s.write(0x45,0x0002) #self.commit() def reset_all(self): ## Clear reg = self.u.read_int('adcleda_controller') reg = reg & 0xfffffffb self.u.write_int('adcleda_controller',reg, offset=1, blindwrite=True) reg = reg | 0x00000004 self.u.write_int('adcleda_controller',reg, offset=1, blindwrite=True) time.sleep(1) reg = reg & 0xfffffffb self.u.write_int('adcleda_controller',reg, offset=1, blindwrite=True) def get_channel(self): data = self.u.snapshot_get('fifo_data_a',man_trig=True)['data'] x = np.fromstring(data,dtype='>i4') y = x.astype('uint8') return y def get_data(self): data = [] temp = np.fromstring(self.u.snapshot_get('fifo_data',man_trig=True)['data'],dtype=np.uint8) data.append(self.process_data(temp[range(0,temp.size,16)].astype('uint8'))) data.append(self.process_data(temp[range(1,temp.size,16)].astype('uint8'))) data.append(self.process_data(temp[range(2,temp.size,16)].astype('uint8'))) data.append(self.process_data(temp[range(3,temp.size,16)].astype('uint8'))) data.append(self.process_data(temp[range(4,temp.size,16)].astype('uint8'))) data.append(self.process_data(temp[range(5,temp.size,16)].astype('uint8'))) data.append(self.process_data(temp[range(6,temp.size,16)].astype('uint8'))) data.append(self.process_data(temp[range(7,temp.size,16)].astype('uint8'))) data.append(self.process_data(temp[range(8,temp.size,16)].astype('uint8'))) data.append(self.process_data(temp[range(9,temp.size,16)].astype('uint8'))) data.append(self.process_data(temp[range(10,temp.size,16)].astype('uint8'))) data.append(self.process_data(temp[range(11,temp.size,16)].astype('uint8'))) data.append(self.process_data(temp[range(12,temp.size,16)].astype('uint8'))) data.append(self.process_data(temp[range(13,temp.size,16)].astype('uint8'))) data.append(self.process_data(temp[range(14,temp.size,16)].astype('uint8'))) data.append(self.process_data(temp[range(15,temp.size,16)].astype('uint8'))) return data def bit_slip(self, channel): ## Write to bitslip reg = self.u.read_int('adcleda_controller') reg = reg ^ 0x00000780 self.u.write_int('adcleda_controller',reg, offset=1) time.sleep(1) reg = reg ^ 0x00000780 self.u.write_int('adcleda_controller',reg, offset=1) def flip_channel(self, channel): ## Write to channel flip reg = self.u.read_int('adcleda_controller') reg = reg ^ 0x00000071 self.u.write_int('adcleda_controller',reg, offset=1) def process_data(self, data): #print 'Before:' #print ['%02x' % y for y in data[:8]] out_p = [] for num in range(0,len(data)-1): y = data[num]&0xff y = ((y&0x08)>>3)|((y&0x04)>>1)|((y&0x02)<<1)|((y&0x01)<<3)|((y&0x80)>>3)|((y&0x40)>>1)|((y&0x20)<<1)|((y&0x10)<<3) out_p.append(y) #print '\nAfter:' #print ['%02x' % y for y in out_p[:8]] return out_p def show_data(self, data): plot(data) def inc_tap(self): self.tap = self.tap + 1 y = (self.tap)&0x1f #y = (((self.tap)&0x10)>>4)|(((self.tap)&0x08)>>2)|((self.tap)&0x04)|(((self.tap)&0x02)<<2)|(((self.tap)&0x01)<<4) s = (y<<11)|(0x00000000) self.u.write_int('adcleda_controller',s,offset=1) time.sleep(1) s = (y<<11)|(0xffff0000) self.u.write_int('adcleda_controller',s,offset=1) time.sleep(1) s = (y<<11)|(0x00000000) self.u.write_int('adcleda_controller',s,offset=1) #def calibrate(self): # self.
# Send some SPI commands to test the Arduino sketch from spi import SPI import time spi = SPI() commands = ["red", "green", "blue", "off"] for command in commands: print("Sending " + command) spi.write(command + "\n") time.sleep(2)