Pages: [1]   Go Down
Author Topic: Video projection  (Read 2364 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

Im pretty new to all this but i have been working on a video projection wich is triggered buy a pressure pad on a seat. The problem is that i have an old Director mx program that runs the various videos from a key press script using keys like "e" and "r". I thought it would be possible to activate this through an Arduino button press sketch. I have tried running AAC keys on my mac to convert it into a key stroke so while the director projector is running it will emulate the keyboard.

The serial.print works in the serial monitor but dosnt convert to an actual key press as i thought it might. one thing I noticed is that the Arduino uses the /dev/tty.usbmodemfd131 serial port and AAC keys is using the bluetooth-PDA_sync serial port could this be why!

Hope this makes sense and I hope u can help

cheers and thanks

P.
Logged

Global Moderator
Netherlands
Offline Offline
Shannon Member
*****
Karma: 168
Posts: 12425
In theory there is no difference between theory and practice, however in practice there are many...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Welcom on the forum,

Please post your arduino code so we can check if it does what it should do
(The MAC part I cannot help you with, is AAC keys a free program or part from Director?)
Logged

Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

Manchester (England England)
Offline Offline
Brattain Member
*****
Karma: 505
Posts: 31343
Solder is electric glue
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Director needs to be looking at the same port as the arduino is on. Can you change what director is looking at?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@robtillaart

This is the code I was trying to use:

const int buttonPin = 2; // the number of the pushbutton pin

int buttonState = 0; // variable for reading the pushbutton status

void setup() {

pinMode(buttonPin, INPUT);
Serial.begin(9600); // open the serial port at 9600 bps:
}

void loop(){

buttonState = digitalRead(buttonPin);

if (buttonState == HIGH) {
Serial.println("e");
}
else {
// nothing
}

}


AAC Keys is a free program I found here :

http://www.aacinstitute.org/Resources/ProductsandServices/AACKeys/AACKeys.html

Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@Grumpy_Mike

O.k I will have a look and see if I can do that im not to sure!

Here is the Director script


-- Main Movie Script:

on startMovie
  initialiseGlobals()
end


global gTheKeys, gKeysTriggered
global gActivePads, gReEnter

on initialiseGlobals
  -- Reset everything:
  gTheKeys = ["e", "r", "p"]
  gKeysTriggered = [0, 0, 0]
 
  gActivePads = [0, 0, 0] -- [0,0,0]=NONE, [1,0,0]=LEFT, [0,1,0]=RIGHT, [1,1,1]=BOTH
  gReEnter = 0
end


on detectKeyInputs
  repeat with i = 1 to 3
    if keyPressed(gTheKeys.getAt(i)) then
      gKeysTriggered.setAt(i, 1)
    else
      gKeysTriggered.setAt(i, 0)
    end if
  end repeat
end

on resetMovie
  go to "initMovie"
end


-- Timer script, used to filter out unwanted keypresses, sorta like a threshold:
global gTrackLeft, gTrackRight
global gTimeInterval, gHistoryLength, gHistoryCounter

on initTimer
  gTimeInterval = .25 * 60
  gHistoryCounter = 1
  gHistoryLength = 10
  --init the list to store the keypresses
  gTrackLeft = []
  gTrackRight = []
  repeat with i = 1 to gHistoryLength
    gTrackLeft.append(0)
    gTrackRight.append(0)
  end repeat
 
  startTimer
end


on recordKeyHistory
  if the Timer > gTimeInterval then
   
    -- set list positions:
    gTrackLeft.setAt(gHistoryCounter, (gKeysTriggered.getAt(1))) -- update from left key
    gTrackRight.setAt(gHistoryCounter, (gKeysTriggered.getAt(2))) -- update from right key
   
    -- move to next position
    if gHistoryCounter >= gHistoryLength then
      gHistoryCounter = 1
    else
      gHistoryCounter = gHistoryCounter + 1
    end if
    --    put gHistoryLength
    --    put gHistoryCounter
    --put gTrackLeft
    --    put gTrackRight
    startTimer
  end if
end

on getFilteredKeyInput
  valL = 0
  valR = 0
  repeat with i = 1 to gHistoryLength -- count number of 1's (ON) in the list.
    if gTrackLeft.getAt(i) = 1 then -- LEFT key
      valL = valL + 1
    end if
    if gTrackRight.getAt(i) = 1 then -- RIGHT key
      valR = valR + 1
    end if
  end repeat
 
  if valL > (gHistoryLength/2) then -- is more than half the list = 1 / ON?
    gActivePads.setAt(1, 1) -- yep it is
  else
    gActivePads.setAt(1, 0) -- nope it aint
  end if
 
  if valR > (gHistoryLength/2) then -- ditto for the RIGHT key
    gActivePads.setAt(2, 1)
  else
    gActivePads.setAt(2, 0)
  end if
 
  -- If both LEFT and RIGHT active then light up position 3 in the list!
  if gActivePads.getAt(1) = 1 and gActivePads.getAt(2) = 1 then
    gActivePads.setAt(3, 1)
  else
    -- or not!
    gActivePads.setAt(3, 0)
  end if
end

on updateKeys
  getFilteredKeyInput()
end
« Last Edit: May 12, 2012, 06:39:29 am by paulmooreni » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@Grumpy_Mike

Ive been looking at the arduino + director posts in the playground and tried following instructions for the serial extra but keep getting mixed up with things as its a bit above my head at the moment. do i need to implement something in the director script to point to the right serial port im not sure how to go about this.
Logged

Belgium
Offline Offline
Full Member
***
Karma: 0
Posts: 187
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

so basicly you want the arduino to act as a keyboard? a keyboard that sends the keystrokes 'e' and 'r' ? then i have the solution for you:

http://code.google.com/p/vusb-for-arduino/
http://www.practicalarduino.com/projects/virtual-usb-keyboard

(both the same project, but the last one with example setup)

Nick
Logged


Manchester (England England)
Offline Offline
Brattain Member
*****
Karma: 505
Posts: 31343
Solder is electric glue
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

You need to do what it says here:-
http://userwww.sfsu.edu/~infoarts/technical/arduino/wilson.arduinoresources.html

In particular you need to:-
Quote
Get a copy of Serial Xtra by Geoff Smith and place it in the Xtras folder located in your Director folder.

Get a copy of Steve Wilson's Template (Wilson.arduinotemp13.dir )  program  - it contains examples of the routines in Director that allow it to talk to the Arduino board - sending and receiving commands and information.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@Grumpy_Mike

O.K sorry about that  smiley-roll-sweat

I have been looking at the links u sent and have tried following them copyed the Serial Xtra by Geoff Smith and placed it in the Xtras folder in my Director folder but not sure if i follow Steve Wilson's Template think i pointed to the right serial port but not sure what to do after!! do i just copy that on top of my main movie scrippt and export the progector again.

Thankyou for ur help.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@Steen

yes Nick thats basically what i need do i just upload that code and connect the mats for it to work? was trying some of the ps2 keyboard codes and was getting a few errors not enough experience to figure it out  smiley-red
Logged

Manchester (England England)
Offline Offline
Brattain Member
*****
Karma: 505
Posts: 31343
Solder is electric glue
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
do i just copy that on top of my main movie scrippt and export the progector again.
I am not sure, it must be 20 years since I looked at director and a lot has probably changed since then. It is worth a try.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@ Grumpy_Mike
Yes it was a while ago I done this code and cant remember much of it thanku again for your help.
Logged

Pages: [1]   Go Up
Jump to: