code.py
1 # SPDX-FileCopyrightText: 2022 Liz Clark for Adafruit Industries 2 # SPDX-License-Identifier: MIT 3 4 import board 5 import pwmio 6 import usb_midi 7 import adafruit_midi 8 from adafruit_midi.note_off import NoteOff 9 from adafruit_midi.note_on import NoteOn 10 from adafruit_motor import servo 11 12 # pwm setup for servo 13 pwm = pwmio.PWMOut(board.D2, duty_cycle=2 ** 15, frequency=50) 14 15 # servo setup 16 motor = servo.Servo(pwm) 17 18 # midi setup 19 midi = adafruit_midi.MIDI( 20 midi_in=usb_midi.ports[0], in_channel=0, midi_out=usb_midi.ports[1], out_channel=0 21 ) 22 23 while True: 24 # receive midi input 25 msg = midi.receive() 26 27 if msg is not None: 28 # if a NoteOn message is received... 29 if isinstance(msg, NoteOn): 30 # servo set to 180 degrees 31 motor.angle = 180 32 # if a NoteOff message is received... 33 if isinstance(msg, NoteOff): 34 # servo set to 0 degrees 35 motor.angle = 0