robotic arts intro/Spring 2011 (final project description, 1st time students in this class please read!)

week 1 , (classwork/assignment), week 2 , week_3 (soldering workshop) week_4 (assignment), week_5 week_6 week_7 (assignment), week_8 (assignment), week 9 (assignment)

week 1

tesla

 

class server space Please check to see if you have a class folder in the IM277_01 class folder for Spring '11 now. if you don't, please send a message to: help@mica.edu immediately.

***

key terms:

interactivity is a relationship of mutual influence, analogous to a conversation, and enacted by a process typically involving four steps:

1. input
2. processing
3. output
4. feedback

Process is a series of tasks that result in a goal.

Computation is the act of determining the specific tasks and the instructions to accomplish those tasks that need to be performed to reach the goal. If one can specify a sequence of tasks and related instructions which when followed will result in the completion of the goal then the problem is thought to be computable. Computation is about breaking a process into a series of tasks. Often these tasks must be performed in a specific sequence, where, for example, the performance of task 2 is predicated on the performance of task1, etc… A series of tasks leading to a specific result is called an Algorithm.

Code is a system of signals used to represent letters or numbers in transmitting messages.
A system of symbols, letters, or words given certain arbitrary meanings, used for transmitting messages requiring secrecy or brevity.
A system of symbols and rules used to represent instructions to a computer. Programming languages are comprised of code. Programs themselves are Algorithmic.

an Algorithm is a series of tasks leading to a specific result. Do you hear that echo? Scripts, and programs can be considered Algorithms. Successful Algorithms:

1. Reach their goal.

2. Are Lean (no redundancy or extraneous steps).

3. Are designed for the specific system that will run (parse) them in mind.

4. May be Unilateral/one dimensional or Interactive/Adaptive.

Another term that we can use when developing an algorithm, is narrativity.

Narrativity is a specific quality of different media that advances the interaction toward a specific goal.

  • If you think of your project as a story, and you can think about a story as a process, narrativity is the level to which specific parts of the story keep things moving to specific moments or events or places within the narrative structure.
  • Sometimes you want things to move along quickly toward specific points, and sometimes you don’t.
  • What do you want the participants to experience, and why?
  • How do the experiences you want to create for the participant relate to each other, and how do they all function to support your intention for your project?
  • In short, how do you keep your participants engaged in your interaction schema?

in our class we will focus on learning through making, interactivity, and narrativity,

what about works that aren't interactive?

  • works/projects that don't respond to their environment at all are called static
  • works that receive and respond to input in pre-defined, and relatively simple ways, and do not vary their output (or adapt) to users over time are called responsive.
  • it is essential that you learn to differentiate between static, responsive, and interactive forms.

Final project:


Your final projects will be presented at robotfest, which will occur on SATURDAY April 30th, at the Historical Electronics Museum in Linthicum – this is mandatory!!!! this year's robotfest will feature a fashion show for those of you working with wearables/lilypad, etc.

  • We will arrive at the Museum by 10am and be done by 3pm.
  • Please block out a lot of time over the last two weeks in april to complete your projects!!!
  • Documentation of your final project is due on the last class for the semester.
  • Each of you is required to submit your final documentation on time. Failure to submit documentation (video/audio) of your project will result in a LOWER FINAL GRADE. We will go over documentation strategies during class, prior to the Robotfest.
  • robotfest

 

if this is your first time taking this class please read, if you elect to use plan B (below), you must notify me by the end of week 8, NO EXCEPTIONS:

we will have a final presentation of completed works at RobotFest on the final saturday of April. we will also have a presentation of project proposals and prototypes during the last week of april at a location TBD.

plan B

in lieu of a completed final project 1st semester robotic arts students may realize and present a working prototype and presentation during the last week in april.

the working prototype and presentation must include the following:

a functioning circuit that demonstrates a key input/output of their proposed project.

a presentation of their research on the topic of their work, including

relevant works by others in the arts and sciences.

a demonstration of their working prototype.

a brief q/a period with the audience.

a final document of their prototype/research and presentation, compressed, and emailed to me by no later than may 5.

rationale:

sometimes, for students new to robotic arts, the learning curve is steep, and completing a final project that reflects your genuine interests and skills is difficult. the goal of this class, for the new student, is to open a door towards working with the exciting and emerging medium of robotic arts. if, at mid-term, you feel you will be unable to complete a working, final project that reflects your interests in this area, you may create a presentation as stated above. the hope is that your presentation will help you locate your interests within this medium and motivate you to continue in future semesters.

sometimes, for students new to robotic arts, the learning curve is steep, and completing a final project that reflects your genuine interests and skills is difficult. if, at mid-term, you feel you will be unable to complete a working, final project you have another option.

i assume you are sincere and hardworking. if you prove to me that you are choosing plan B out of laziness you will receive a final grade befitting a slacker. if, at any point during the semester, you are unsure of your standing in the class please speak with me.

***

 

Welcome to the world of arduino, arduino lilypad, and jeenode

 

Arduino The Documentary (2010) English HD from gnd on Vimeo.

 

ARDUINO

lilypad

lilypad

jeenode

jeenode

 

class resources

 

What to buy (you'll be using either an arduino, a lilypad, or a jeenode, the choice is yours, we'll go over all of them):

Arduino

Lilypad Arduino

Jeenode

  • Jeenode (an arduino clone with an onboard rf module) ***the jeenode has fewer I/O pins than the arduino or lilypad.
  • includes optional ports library

 

additional resources:

where to buy stuff, online, and locally:

***

 

Tonight we're going to introduce the class, answer questions, watch a new and exciting documentary on the arduino, and build our jeenode kits!

we'll start with the class resources, and download the software for arduino, and fritzing.

Assignment:

  1. order and download 'getting started with arduino'
  2. review the exercises we covered in class.
  3. familiarize yourselves with fritzing (ie, download it and go through the first lesson)
  4. upload 3 links to projects/ideas/whatever that interest you and relate to our work, to our delicious site. PLEASE BE SURE TO TAG YOUR LINKS. (we'll give you the password tonight).

Week 2

 

 

Week 3

class presentations

Announcement>>


The 2nd Annual "Techno-Swap-Fest" is just 30 days from now at the National Electronics Museum in Linthicum, MD on Saturday, Feb 19, 2011.  It's going to be a flea market/swap meet, attracting people from a wide range of interests and hobbies.  There are already 20+ tables reserved by sellers, so there will be lots of good stuff (aka. junk) for buyers to look at and purchase.  We still have a few tables that can be reserved.

We also have an impressive list of sponsoring organizations for our second year, as listed here:

   https://sites.google.com/site/technoswapfest2/sponsors

Please help advertise the event by passing along the event brochure to any hobbyists, clubs, organizations or businesses that may be interested. The brochure can be downloaded from the following web site:

   https://sites.google.com/site/technoswapfest2/

by clicking the "Brochure" link in the left navigation menu.

If you're interested in selling some precious stuff (aka. junk) or becoming a sponsoring organization (free), just send email to techno.swap.fest@gmail.com to register.

The event is open to anybody who builds anything and all types of items (non-lethal please) are welcome. The goal is to bring together hobbyists of all kinds and try to replace the old clutter in our workshops with newer clutter :-)

 

soldering workshop:

buttons, LEDs, PCB, resistors, wire (hookup/magnet/wire wrap), and potentiometers.

in preparation for our construction of the jeenodes next week, we're going to build a simple working board containing some tri-color LEDs from superbrightleds, some buttons, and some potentiometers from electronixexpress.

what you'll need:

  1. soldering station
  2. solder
  3. tip cleaner
  4. wire snips
  5. PCB (printed circuit board, about 3"x3")
  6. a few tri-color LEDs
  7. a few resistors
  8. a button
  9. a potentiometer
  10. some wire (hookup - we'll get into the replacements for conductive thread, magnet wire and wire-wrap, a little later).

phase 1:

wiring the tri-color LED, **be sure to leave room for 2 more tri-color LEDs on your PCB!!

tr-color led

 

done? test your work by connecting your circuit to your arduino/lilypad, and running the blink.pde sketch from the

examples->basics folder.

Week 4:

today we're going to apply our newly acquired soldering skills to assemble the Jeenode!

 

 

 

this will take a bit of time, DON'T RUSH, and if you are unsure of a connection ASK B4 U SOLDER.

 

Week 5:

tonight we'll start by doing a site visit to the exhibition space on 307 baltimore st.

when we return, we'll have some student presentations, and then do some arduino/jeenode programming exercises.

assignment:

prepare a proposal for where you'd like to install your work for the april 27th exhibit at 307 baltimore st.

propose 3 different locations: your first choice, second choice, third choice.

present all the materials you'll need, and exactly how much space you'll need for your work, including the space on the periphery of the piece.

 

Week 6

programming the arduino excerises:

please pick a partner, get your LED/potentiometer circuit, and ------------>

start with this tutorial

ARDUINO

you'll notice that the arduino (above) has numbers associated with its headers. there are digital pins and analog pins clearly labelled on the board.

the lilypad also has its inputs/outputs labelled with numbers - the eyelets with an 'a' in front of them are the analog pins - the others are digital.

lilypad

if you are using a jeenode, things look a bit different. here are the pin equivalencies between the jeenode and arduino.

jeenode

 

jeenode

ok?

if you're done with the practice sketches above:

create two variations on the code (ie, change the pattern of blinking lights). then do the first 2/3 (up till PWM) of this tutorial.

study the for loop section, as well as the random number section.

making friends with the random:

**adding random fluctuations in the flow of your scripts can give your work personality.

try randomizing the length of the:

int del variable in the example sketches and see how it changes your scripts.

use/study the randomSeed function.

create at least two variations on anyof the scipts you've written the incorporate random quirks.

done?

onward to PWM! (ie, brightening and dimming your LEDs).

take your time and carefully study the PWM sketch.

 

do you understand how the nested for loops are functioning?

hint: follow the incrementing variables (i, j)and curly braces {}.

 

do you understand how the random function is working at the end of the script?

 

take your time, and don't move on until you understand everything we've done thus far.

next we're going to add if statements and an analog sensor to our circuit:

analog input


slide resistor

Assignment:

  1. review our classwork and be sure you understand for loops, the random function, PWM, and if statements.
  2. write two scripts that blink the LEDs in various patterns - one of the scripts should include a random element.
  3. write two scripts that brighten and dim an LED - one of the scripts should include a random elements.
  4. your scripts are art projects, not technical exercises!

Week 7

please continue with this tutorial, you can use a temperature sensor (we have them in the closet), or another analog sensor (ambi sensor, etc. --- just ask!)

***skip past the LCD section, and move onto --->

interrupts/buttons (again, we have buttons in the closet, just ask!)

assignment:

continue with the arduino tutorials, you want to get through tutorial 8 by the end of next class, and continue researching your projects.

by next week you should know what your final project will be, and you should purchase all the necessary parts to begin putting it together after spring break.

 

Week 8:

need to review??

 

USING THE ARDUINO, FROM THE VERY BEGINNING - VIDEO TUTORIAL FROM OREILLY --->

TO COMPLETE THIS TUTORIAL YOU'LL NEED AN ARDUINO, A BREADBOARD, SOME HOOK-UP WIRE, SOME RESISTORS, A BUTTON, AND AN LED.

 

 

 

ARDUINO TUTORIAL BLOG -- HUGE LIST OF TUTORIALS FOR EVERY LEVEL OF EXPERIENCE

today is a workshop day. please continue with the arduino tutorials, and take a break and research your final projects. it is essential that you purchase all the parts you'll need to prototype your final project by next class.

i'll speak with each of you about your projects and will offer advise if necessary on where to find what you need.

assignment:

purchase all the parts necessary to begin your final project prototypes.

have a good spring break.

Week 9

today is a workshop day, and i'll be showing you how to connect the arduino to processing via firmata.

arduino--->processing<---arduino: firmata

Arduino comes with some basic examples for communicating with Processing (in Examples > Communication). These are useful for when you want to write both Arduino and Processing programs and have them talk to each other. This works best for communicating simple information. If you just want to control an Arduino board from a Processing program, you may want to use the Arduino library for Processing described below.

Arduino Library for Processing (and Firmata)

This library allows you to control an Arduino board from Processing without writing code for the Arduino. Instead, you upload a standard firmware (program) to the board and communicate with it using the library. The firmware is called Firmata, and is included in the Arduino software. The corresponding Processing library can be downloaded below.

Download

Processing Library: processing-arduino-0017.zip (Updated 22 Sept. 2009)

Instructions

  1. Unzip the library and copy the "arduino" folder into the "libraries" sub-folder of your Processing Sketchbook. (You can find the location of your Sketchbook by opening the Processing Preferences. If you haven't made a "libraries" sub-folder, create one.)
  2. Open and start the Arduino IDE, open the Examples > Firmata > StandardFirmata sketch, and upload it to the Arduino board. (you are now in Arduino, not processing)
  3. Configure Processing for serial: http://processing.org/reference/libraries/serial/
  4. In Processing, open one of the examples that comes with the Arduino library. (you are now back in Processing)
  5. Edit the example code to select the correct serial port.
  6. Run the example.

working?

try this

**you'll need a variable resistor (potentiomter, pressure sensor, light sensor, etc.) to make this work.

more?

go here for an extensive list of projects, with clear documentation and working code!

 

assignment

continue working on your final project prototypes.

if you need extra assistance email me and we'll schedule a time to meet.

i will continue to give arduino workshops every wednesday at 2pm in BR206.