Interfacing the Wiring hardware and Pure Data pd~

This tutorial introduces the basic interfacing between the Wiring hardware and and Pure Data http://puredata.info. The brief for the tutorial will be to send data to the Wiring board, the Wiring board will read the data and turn ON or OFF the board LED accordingly. It assumes the Wiring software and Pure Data are installed and the proper Wiring setup has been previously completed. For more Information on Wiring install check out the tutorials about Wiring installation and software setup.

Step 1

Copy and paste the following code on the Wiring editor: Verify your program is free of compiling errors by pressing the Compile/Verify button in the menu bar. Press the Upload button in the menu bar. In case of syntax errors the Wiring environment will print the error messages otherwise it will print the Upload was completed successfully, the uploading process triggers activity in the Rx/Tx LEDs on the Wiring hardware. The new program will start automatically after uploading. Use the Serial Monitor button to watch the data coming from the Wiring board, then close the Serial Monitor again.

int val;          // variable to receive data from the serial port
int ledpin = 48;  // Wiring board LED

void setup() 
{
  pinMode(ledpin, OUTPUT);  // pin 48 (on-board LED) as OUTPUT
  Serial.begin(9600);       // start serial communication at 9600bps
}

void loop() {
  if( Serial.available() )         // if data is available to read
  {
    val = Serial.read();           // read it and store it in 'val'
    if( val == 'H' )               // if 'H' was received
    {
      digitalWrite(ledpin, HIGH);  // turn ON the LED
    } 
    else if( val == 'L' ) { 
      digitalWrite(ledpin, LOW);   // otherwise turn it OFF
    }
  }
  delay(100);                      // wait 100ms for next reading
}

 

Step 2

Next step is to setup things in Pure Data. Start Pure Data.

Note: The object "comport" has 2 attributes, the first one is the port number and the second one is the speed of the port which should match the speed set in the Wiring program.

 

Step 3

Connect the objects as shown:

 

Step 4

Press the message "devices" to print in the console the available ports:

Step 5

Set the right port in the list, automatically the port start to sending data. There is one toggle to send 'H' or 'L' to the board making the Wiring board LED to blink.