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