Category: Arduino

Arduino compatible designs and projects.

  • Request: please post resource list

    Here are a few Resources.

    This is not nearly complete but its a good place to put some of this stuff. I will keep adding to it.

     

    The Raspberian Distribution that we are using.

    We are using a modified version of raspberrian that has pure data running on it. We added the arduino software and a few other pieces of software to it. Once we figure out how to neatly package it we will post a link to the final product. In the mean time the source for the distro and some rudimentary instructions for using it are at http://pd-la.info/pdpi/ 

    Connecting to your Pi.

    I need to write up the specific directions for our environment and both platforms but the links below are what I referenced

    Windows

    OSX

    Linux

    •     (later)

    Pure data resources.

    Arduino resources

    Projects using the same hardware.

  • Nance’s Project

    Trying to keep up from home.

    My project is a Tipi / Skirt with a rotating video projection that will circulate the perimeter of the Tipi.  The idea is that the video (a figure) will be moving and the moving figure will make a circuit around the perimeter of the garment.  Ideally, I’d like to even upgrade this to have it triggered by a motion detection device so it activates when you’re in range.

    Non-negotiables:

    Projection inside (rear projection)

    Projection rotates

    Loop initiated by motion

     

    Even more bonus elements:

    whole thing would be wired to turn on / off (power) by motion sensor so I don’t burn the projector out in the course of exhibiting the piece.

    Here’s a link to an old blog of mine with an earlier piece (see kangaroo at bottom of blog)  Video clip to right projects inside pouch.

    old blog

     

  • James’ Project

    I’d like to create a box that listens for various short melodies and then opens and displays light and sound in response.

  • Light sculpture

    Control a light sculpture without a laptop. Create an interactive sequence of lights that looks animated.

  • Gail’s project

    3D sculpture illuminating various areas of EL paint based on music input.

  • Sue’s Project Idea

    A video generating box inspired by the Lumia compositions by Thomas Wilfred in 1930s. Idea is to create a live video micro-set using means and methods I employ in live film performances. Box will have dynamic LED lighting, live video camera and various shiny and/or translucent objects in motion. Result hopefully is an abstract animation that can run “for ever” with no further human input.

  • Am letting my intermediate arduino class hijack this site temporarily.

    Will shut off the twitter feed to cut down on the noise.

     

     

     

    IMAG0325feel free to watch this space…

  • Intermediate Arduino Day 1

    Leading Questions:

    • What do you know?
    • What do you not know?
    • What Would be most helpful for you as an artist?

    Whiteboard from “what do you know?”

    IMAG0315

    (as a bullet list)

    • I/O -> Massage -> Outputs (james)
    • AD -> I/O -> Midi (christiano)
    • Sensors -> Control movement / sound (gail)
    • The Unit is robust/stable (julie)
    • I/O ->  Lights -> Sequences/Processing (nance)
    • The hardware is diverse (nance)
    • Max/MSP/Processing -> Motors/Blinkin Lights

    The Original Proposed  Topics.

    • Midi / Sound
    • Sensors
    • Motors and Motion Control
    • High Voltage
    • Build Your Own Arduino / Soldering,
    • Advanced communication /Networking
    • Programming, Datasheets, Hardware

    (Projects whiteboard)IMAG0316

    Not sure how to go from 3 hour whiteboard session to wordpress site. But we are going to figure this out.

     

     

     

     

     

     

     

     


    Categories.

    • Video Processing -> BL
    • Rotating Projector
    • Hacking Existing Hardware
    • El/paint -> Sound Processing -> Display
    • leap motion -> motor control
    • sound processing -> output
    • sound processing with control

     

    IMAG0318

     

     

     

     

     

     

     

     

     

     

     Therefore Pi!

    Out of the 7 projects 6 of them would best be done with a computer and the arduino. For that reason we suggested (and decided) to go with a Raspberry Pi / Arduino combination.

     

    IMAG0315

     

     

     

     

     

     

     

     

     

     

     

     

     


    Resulting proposed lectures

    • Pi Setup /PD
    • Communication
    • Sensors
    • Motion Control

    IMAG0320

  • Your Own Protocol (Chapter 7 of Physical Computing)

    Once again find myself in a windowless cube. So I 3d printed a varient of a compact camera gimbal and attached an rpi camera to it.  I needed to set up a serial based protocol to talk to it. Its a pretty good example of creating your own protocol as described in the Physical Computing book. The gimbal is servo based and there is one servo for rotation or “yaw” and one for attitude or “pitch”. So the protocol I came up with was:

    yXXX<cr>
    pXXX<cr>

    where XXX represents a number between 0 and 180 (servo values)

    Here is the code.

    
    /*
      demonstration of a private protocol.
      we have a serial connected device that has two servos attached to it. 
          one controls the pitch (up and down) 
          one controls the yaw (round and round)
      we send it lines of text in the form 
      s<cr>
      where s is:
        pnnn -- pitch value (0-180)
        ynnn -- yaw value (0-180) 
      Normally it doesnt respond unless weWANNADEBUGTHIS or if it doesnt understand us
      in this case it replys with ?????
     */
    
    #include <Servo.h>
    #include <stdlib.h>
    
    #define YAW_PIN 10
    #define PITCH_PIN 9
    #define YAW_HOME 60
    
    #define PITCH_HOME 35
    #define MAXCHARS 10
    //#define IWANNADEBUGTHIS 1
    #ifdef  IWANNADEBUGTHIS
    #define HEY_ARE_YOU_LISTENING_TO_ME 1
    #define HEY_I_AM_TALKING_TO_YOU 1
    #endif
    
    Servo yaw;
    Servo pitch;
    char inputBuffer[MAXCHARS];
    boolean inputBufferReady;
    int inputBufferIndex;
    
    void setup()
    {
      // initialize the serial communication:
      Serial.begin(9600);
      yaw.attach(YAW_PIN);
      pitch.attach(PITCH_PIN);
      yaw.write(YAW_HOME);
      pitch.write(PITCH_HOME);
    
    }
    
    boolean gotDataLine (void){
      char inch;
      if (inputBufferIndex>=MAXCHARS) {
        inputBufferIndex=0;
      }
      if (Serial.available()){
        inputBuffer[inputBufferIndex++]=inch=Serial.read();
        inputBuffer[inputBufferIndex]='\0';
        //Serial.print("I received: "); Serial.println(inch);
        if ((inch == '\n') && (inputBufferIndex>0)) {      // I dont want this charachter
          inputBufferIndex--;    // "dtmfa" - dan savage
          return false; 
        }
        if ((inch == '\r') && (inputBufferIndex>1)) {
            inputBuffer[inputBufferIndex-1]='\0';
            inputBufferIndex=0;
            return true;
        }
      }
      return false;
    }
    
    void loop() {
      int myValue;
      if (gotDataLine()) {
        myValue=atoi(inputBuffer+1);
        if (myValue>180) myValue=180;
        if (myValue<0) myValue=0;
        switch(inputBuffer[0]) {
          case 'p' : 
    #ifdef HEY_ARE_YOU_LISTENING_TO_ME
                     Serial.print("Setting pitch to ");
                     Serial.println(myValue);
    #endif
                     pitch.write(myValue);
                     break;
          case 'y' : 
    #ifdef HEY_ARE_YOU_LISTENING_TO_ME
                     Serial.print("Setting yaw to ");
                     Serial.println(myValue);
    #endif
                     yaw.write(myValue);
                     break;
          default:  Serial.print("?"); Serial.print(inputBuffer); Serial.println("????");
        }
      }
    }