Pages: [1]   Go Down
Author Topic: Simple Flash Blink LED  (Read 507 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Does anyone have any pointers on how to blink an LED using the flash time line? I'm trying to synch a flash video with actions happening on the time line and having trouble deciphering between the code necessary for arduino and flash to communicate and the code that makes things happen. I've checked out both Beltran and JModel's code but am having trouble pairing back everything they have going on and was hoping to be able to start with the basic blink and add functionality once I have that working.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Well...I tried stripping down JModel code from here... http://memewire.com/reference/Arduino_Flash. The code I'm uploading to the Arduino looks like so...


Code:

int activeLED ;              // What LED has Flash requested we turn on? Numbers 2-9, for a total of 8 possible LEDs

//----------------------------------------------------------

void setup() {
  Serial.begin(19200);  //setup serial conversation at 19200 bauds
}

void loop () {
  
//------------------------------------------------------------------------ LED LOGIC
  
  // checks if a serial message has arrived to the board
   if(Serial.available() > 0) {      
          //must be a request to light up an LED  
          //activeLED should be a number 2-9, but in binary it will come in as 50-57
          activeLED = Serial.read();
    }    
    
    if(activeLED = 60) {
      //a valid LED signal has been received from Flash
      // convert the byte to an int - getting ready for digitalWrite()
      int outputPort = activeLED-48;
      
      if(outputPort = 12) {
      int ledPin = 12;                 // LED connected to digital pin 12

      digitalWrite(ledPin, HIGH);   // sets the LED on
      delay(1000);                  // waits for a second
      digitalWrite(ledPin, LOW);    // sets the LED off
      delay(1000);                  // waits for a second
      
      // when we're done, default the activeLED to nothing
      activeLED = 0;
  }

  //slows down the visualization: each sentence will be emitted every .5 seconds
  delay(50);
  
}
}

//----------------------------------------------------------

/*send to flash
* inspired by D.Mellis printString function. it simply adds the byte(0) at the end
* needed by the XMLSocket to know that the transmission is over.
* read the XMLSocket Actionscript Class documentation for more details
*/
void sendStringToFlash (char *s) {
      while (*s) {
          printByte(*s++);
        }
        printByte(0); //notify the XMLSocket that the comunication is over
}

and this is my flash code...

Code:
//------------------------------------------------------------------------ Basic Arduino

import Arduino;

var port:Number = 5331;            // What socket port are we configured to use?
                                          // See the net_port entries from serproxy.cfg

// Create a custom object from Flash's XMLSocket
var a:Arduino = new Arduino(port);


//------------------------------------------------------------------------ Listeners


// You can trigger custom actions by adding listners to the Arduino object. For example, you can setup your
// ActionScript code to run a setup function when Flash successfully connects to the socket listener

aListener = new Object();

aListener.onConnect = function() {
      setupBoard();
}

// Binds your custom listener to the Arduino object (a)
a.addEventListener("onConnect",aListener);

//------------------------------------------------------------------------ That's all!

function setupBoard() {
      trace("Connection established. Now setting up LED...");
            var i:Number = 12;
            function go() {
                  var pin = i.toString();
                  a.send(pin);
            }
}



I've tried to double check the code and see if I can check where I may have made errors, but as of now, nothing happens when I run the code. Anyone have any suggestions?
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 2
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

If you're running this with Flash and serproxy open and your Arduino board plugged-in, you should be getting characters funneling through. One thing that looks immediately suspicious is the go() function embedded in the setupBoard() in Flash. It may work but you should double-check that your scope is right and that the a and i variables in go() are not undefined

What messages are you getting when you run a preview of your Flash movie? That's usually pretty telling

You may want to use Serial.print() and Arduino software's built-in serial monitor to run some debug outputs at points in the code, to make sure for example that it's getting past the Serial.available() check and into the actual LED logic.

If you haven't already, check all the usuals: proper connection with serproxy open, the port number for the board (based on serproxy.cfg), the right serial_device1 variable set in serproxy.cfg, etc.

If you're on a Mac, you can also try using the screen command in the Terminal to check that your serial connection is working. You would want to type something like this, where cu.usbserial-A2000g7e is whatever the ID of your board is:

Code:
ls -al /dev
ls -al /dev | grep cu
screen cu.usbserial-A2000g7e

I haven't used the screen command in a while so I may be forgetting something, but it can be handy
« Last Edit: April 17, 2007, 11:04:40 pm by jmodel » Logged

Pages: [1]   Go Up
Jump to: