PortiloopDemo / prog.py
Xavier L'Heureux
Modularize & add untested main program
3fd98da unverified
raw
history blame
1.88 kB
from time import sleep
from playsound import playsound
from frontend import Frontend
from leds import LEDs
FRONTEND_CONFIG = [
0x3E, # Overwrite ID?
0x95, # Datarate = 500 SPS
0xC0, # No tests
0xE1, # Power-down reference buffer, no bias
0x00, # No lead-off
0x60, # Channel 1 active, 24 gain, no SRB2 & normal input
0x60, # Channel 2 active, 24 gain, no SRB2 & normal input
0x60, # Channel 3 active, 24 gain, no SRB2 & normal input
0x60, # Channel 4 active, 24 gain, no SRB2 & normal input
0x60, # Channel 5 active, 24 gain, no SRB2 & normal input
0x60, # Channel 6 active, 24 gain, no SRB2 & normal input
0x60, # Channel 7 active, 24 gain, no SRB2 & normal input
0xE0, # Channel 8 disabled, 24 gain, no SRB2 & normal input
0x00, # No bias
0x00, # No bias
0xFF, # Lead-off on all positive pins?
0xFF, # Lead-off on all negative pins?
0x00, # Normal lead-off
0x00, # Lead-off positive status (RO) ?
0x01, # Lead-off negative status (RO) ?
0x00, # All GPIOs as output ???
0x20, # Disable SRB1
]
frontend = Frontend()
leds = LEDs()
playsound('sample.mp3')
try:
data = frontend.read_reg(0x00, 1)
assert data == [0x3E], "Wrong output"
print("EEG Frontend responsive")
print("Configuring EEG Frontend")
data = frontend.write_reg(0x00, FRONTEND_CONFIG)
print("EEG Frontend configured")
leds.aquisition(True)
sleep(0.5)
leds.aquisition(False)
sleep(0.5)
leds.aquisition(True)
for i in range(200):
red = (i % 10) * 10
blue = ((i % 100) // 10) * 10
leds.led1(red, 0, blue)
sleep(0.02)
for state in [RED, BLUE, PURPLE, CLOSED] * 3:
leds.led2(state)
sleep(0.2)
for state in [RED, CLOSED] * 3:
leds.led3(state)
sleep(0.2)
finally:
frontend.close()
leds.close()