Note
Click here to download the full example code
Built-In DevicesΒΆ
This example demonstrates some input devices built into AxoPy for testing. Pass the following options to try out different devices:
- rainbow
- Basic use of an NoiseGenerator to show lots of colorful random data.
- keyboard
- Basic use of a Keyboard to show roughly-timed keyboard inputs.
- keystick
- Neat use of a filter to get joystick-like inputs from a keyboard.
- mouse
- Basic use of a Mouse for velocity input.
import sys
import argparse
import numpy as np
from axopy.task import Oscilloscope
from axopy.experiment import Experiment
from axopy.daq import NoiseGenerator, Keyboard, Mouse
from axopy.pipeline import Pipeline, Callable, Windower, Filter
def rainbow():
dev = NoiseGenerator(rate=2000, num_channels=16, read_size=200)
run(dev)
def keyboard():
dev = Keyboard()
# need a windower to show something interesting in the oscilloscope
pipeline = Pipeline([Windower(10)])
run(dev, pipeline)
def keystick():
dev = Keyboard(rate=20, keys=list('wasd'))
pipeline = Pipeline([
# window to average over
Windower(10),
# mean along rows
Callable(lambda x: np.mean(x, axis=1, keepdims=True)),
# window to show in the oscilloscope
Windower(60)
])
run(dev, pipeline)
def mouse():
dev = Mouse(rate=20)
pipeline = Pipeline([
# just for scaling the input since it's in pixels
Callable(lambda x: x/100),
# window to show in the oscilloscope
Windower(40)
])
run(dev, pipeline)
def run(dev, pipeline=None):
# run an experiment with just an oscilloscope task
Experiment(daq=dev, subject='test').run(Oscilloscope(pipeline))
if __name__ == '__main__':
functions = {
'rainbow': rainbow,
'keyboard': keyboard,
'keystick': keystick,
'mouse': mouse,
}
parser = argparse.ArgumentParser(usage=__doc__)
parser.add_argument(
'function',
help='Function in the example script to run.')
args = parser.parse_args()
if args.function not in functions:
print("{} isn't a function in the example.".format(args.function))
sys.exit(-1)
else:
functions[args.function]()
Total running time of the script: ( 0 minutes 0.000 seconds)