Intro to Robotic Art

CODE EXAMPLES
GITHUB CODE

PD RESOURCES
PUREDATA FLOSS MANUAL
PUREDATA MANUAL PDF
PUREDATA TUTORIALS
PDUINO
PUREDATA

Goals:

  1. Study robotic design and movement in the context of contemporary art
  2. Participate in a standardized workflow that enables efficient methods of prototyping robotic objects for narratives, music, and performance
  3. Understand basic DC electronic theory as it applies to robotics
  4. Know how to develop and troubleshoot projects – how to breakdown tasks into steps
  5. Be able to discuss the technology that you developed as well as the conceptual and/or conceptual aspects of your work
  6. Learn how to manage and design multimedia projects
  7. Understand the semantics surrounding electronics, robotics, sound art, and kinetic artworks
  8. Know how to research components online, understand part specs, read schematics and datasheets
  9. Optional – produce a final work to be exhibited or used in a performance

Final Project Challenge:

  1.  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.
  2. 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

Make an LED Tester!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

breadboard connections
Breadboard connections
Blink an LED

Week 2:

ZOOM

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

Variable power supply for motors and various high voltage loads

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

Teeny – ULN transistor array – motors

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

Serial Midi and Usb Midi Flow Diagram
Serial MIDI and USB MIDI

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 libraryexplainer videoBlue Wizard (to make your own speech library)
Servo camera mounts and motion control for video
Stepsticks and stepper test

Stepper Motor Driver

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

Electronic Components

Parts For Purchas or Research

Surplus Sales

Midwest Control

American Science and Surplus

Robot Shop

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

Arduino

Teensy

Software and References

Midi Reference

Virtual MIDI Piano

Note names, MIDI numbers, and frequencies

Mechanical and Electronic Construction

How to Get What You Want

507 Mechanical Movements

Open Modular Hardware

Open Builds

Artists

Trimpin

Logos Foundation

Piere Bastian

Tim Hawkinson

Nic Collins

Shawn Decker

Douglas Repetto

Chico MacMurtrie

Jean Tinguely

Ken Feingold

Stelarc

Ken Rinaldo

Jordan Wolfson

MORE RESOURCES

http://www.ekac.org/robotichronology.html
https://www.youtube.com/watch?v=aFvj6RQOLtM

ABLETON DEMOS

MIDI OUT TO TEENSY LC DIRECTIONS USING ABLETON LIVE

  1. Copy and paste this code MIDI Out Test into a blank sketch and name it “midi-out-test”
  2. Make sure that you select Tools/USB Type/MIDI
  3. Compile and upload the sketch to your Teensy
  4.  Set up your DAW (Ableton) preferences to recognize the Teensy
  5. 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.
  6. 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).
  7. 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.
  8. The Ableton example above should work with this sketch after you set your Ableton preferences to recognize the Teensy.
  9. 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)