





CODE EXAMPLES
GITHUB CODE
PD RESOURCES
PUREDATA FLOSS MANUAL
PUREDATA MANUAL PDF
PUREDATA TUTORIALS
PDUINO
PUREDATA
Goals:
- Study robotic design and movement in the context of contemporary art
- Participate in a standardized workflow that enables efficient methods of prototyping robotic objects for narratives, music, and performance
- Understand basic DC electronic theory as it applies to robotics
- Know how to develop and troubleshoot projects – how to breakdown tasks into steps
- Be able to discuss the technology that you developed as well as the conceptual and/or conceptual aspects of your work
- Learn how to manage and design multimedia projects
- Understand the semantics surrounding electronics, robotics, sound art, and kinetic artworks
- Know how to research components online, understand part specs, read schematics and datasheets
- Optional – produce a final work to be exhibited or used in a performance
Final Project Challenge:
- Produce an installation or a performance to be presented at the Dadageek Student Show. I encourage you to start brainstorming the direction that you would like to take as soon as possible. I will be checking in with you each week to help you develop your work.
- There are two parts to each project, THE FINAL BUILD, and THE FINAL COMPOSITION. Your FINAL BUILD needs to be completed by the 6TH WEEK of this course so that you have at least one week to compose your movements and/or music.
Teensy LC Pinout

Week 1:
ZOOM
HOW TO SOLDER
OVERVIEW SLIDES
Class goals and agenda
History of robotic art, automata, mechanical music, puppetry, industrialization, and the availability of new materials and processes.
The mind/body metaphor and the art of behavior – The ways machines function in physical space
The basic process – how to develop robotic works demo
Design and art, problem-solving and problem-making Form following function, top-down, and bottom-up design, where is the art and why do we care?
Basic electronics
Schematics and signal flow
Power supplies
Week 2:
DISCUSSION:
Review power supplies, DC to DC converters, Logic level, High voltage/current level
Review driving LEDs with Teensy
Drive relay module with Teensy
Investigate the use of TIP122 power transistors as a switching option
Connect ULN transistor array to Teensy to drive a motor and an LED
Purdata basics, Pduino object, and Firmata
Control Teensy with Pduino
DEMO: Coils, motors, solenoids, speakers, relays, electromagnets

Week 3:
Videos
ZOOM
Firmata Pduino Quickstart
Managing Externals (and missing externals) in PD
Example Files
pduinoBlink.pd
pduinoSequencer.pd
Externals
pduino-0.5.1.zip (extract into your PD externals folder – you need to upload FIRMATA to your teensy to make it work – make sure to check the readme file for directions if you need help)
comport (pduino needs this object to work)
Teensy/Arduino basic programming
Timing-based code: Looping, interrupts, scheduling, PWM, Servo Control
Sensor-based code: Digital Inputs, Analog Inputs, Other Sensor Input
Pduino recap
DEMO: robotic percussion project

Week 4:
ZOOM
DEMO: robotic percussion project CONTINUED – pduinoSequencer.pd
Servos and Pduino – pduinoServo.pd
MIDI and USB MIDI
USB MIDI – usbMidiTest
Connecting previous robotic percussion project to Ableton
DEMO: 507 MECHANICAL MOVEMENTS gears, pulleys, converting rotary to linear movement, and more

Week 5:
MIDI in and out of Puredata
Complex MIDI programming and interaction with the software
Sending Analog values through MIDI to software
Receiving MIDI and interpreting
Complex patching with PD and Teensy
DEMO: Powering speakers from teensy and Servo mechanical breakdown.
Servo Pinout —>
Week 6:
ZOOM
DEMO: Stepper motor basics and 3D printer mechanical breakdown
3D Printer Anatomy
Stepper Motor Discussion
Breadboard Stepper Motor
Mini Project – Teensy controlled motor with feedback
Week 7:
ZOOM
Experiments:
Talking Robots – Speech library – explainer video – Blue Wizard (to make your own speech library)
Servo camera mounts and motion control for video
Stepsticks and stepper test

What do I need to have handy for this class?
Teensy LC microcontroller
USB micro cable, MIDI cables (if you are doing serial midi)
Jumpers
Breadboard
All the electronic components that I use in this class
Laptop with Arduino IDE and Teensyduion loader installed
Laptop with MIDI software installed or MIDI controller
Project materials
EXTRA SUPPLIES – multimeter, wire strippers, flush cutters, solder
Terms
Arduino Platform
IDE
Breadboard
Breakout Board
Teensy
Sketch
Library
Microcontroller
Datasheet
Pins
USB
Serial
Serial Emulator
RX
TX
Transistor
Mosfet
Solid State Relay
LED
Wattage
Amperage
Power Supply
Processing
MIDI
DAW
Solenoid
Servo
PWM
Frequency
Note
Control Change
Piano Roll
Timeline
Resources
Tutorials
Parts For Purchas or Research
Sparkfun – Great kits and parts specific to microcontroller dev, 3d printers, maker stuff
Adafruit – Great kits and parts specific to microcontroller dev, 3d printers, maker stuff
All Electronics – Surplus parts, kits and parts specific to microcontroller dev, 3d printers, maker stuff
Electronic Goldmine – Surplus parts
Software and References
Note names, MIDI numbers, and frequencies
Mechanical and Electronic Construction
Artists
MORE RESOURCES
ABLETON DEMOS
MIDI OUT TO TEENSY LC DIRECTIONS USING ABLETON LIVE
- Copy and paste this code MIDI Out Test into a blank sketch and name it “midi-out-test”
- Make sure that you select Tools/USB Type/MIDI
- Compile and upload the sketch to your Teensy
- Set up your DAW (Ableton) preferences to recognize the Teensy
- Playback MIDI from DAW to the Teensy. Pin 13 should light up each time a note is played on the piano roll. You may use this ABLETON PROJECT EXAMPLE to test your Teensy.
- Notice that all MIDI note-on events trigger pin 13 to flash on (HIGH) and all MIDI not-off events trigger pin 13 to turn off (LOW).
- Now copy this usbMidiULN8Outs code into a blank sketch and name it “usbMidiULN8Outs“. Using “switch statements”, this MIDI OUT example is more specific about which notes it will listen to coming from the DAW. Then it uses the DAW’s note on/off messages to trigger “callback functions” in the code embedded in the Teensy which then turns specific pins HIGH and LOW. Notes 64, 65, 66, 67 coming from your DAW trigger output pins 5, 6, 7, 8 on the Teensy. Look at the code to find these numbers. What does “int” mean in the code? What is the “loop”? Make a list of questions to bring to class next week.
- The Ableton example above should work with this sketch after you set your Ableton preferences to recognize the Teensy.
- When you connect LEDs to the output pins 5, 6, 7, 8 they should light to the corresponding notes 64, 65, 66, 67 in the sketch.
MIDI CONTROL CHANGE (CC) FOR MOTOR AND LED BRIGHTNESS MODULATION


1. Create a sketch from this code and upload it to the Teensy – usbMidi-cc-PWM example
2. Look at the code to determine what CC message number is being called and what pins are outputting PWM
3. Set up your protoboard LEDs to reflect the pin numbers in the code
4. Set up Ableton with more CC tracks for each pin
5. Try using motors instead of LEDs. Use the same output circuit that we used for the note on/off and blink example (see image below)