Go Down

Topic: Arduino with shift registers to control 70 devices. (Read 6699 times) previous topic - next topic

zcream

I am thinking of using Arduino with shift registers to control 70 devices.
Is this feasible ? Any pointers if it is ?

I am putting approx 60-70 cameras in series - http://chdk.setepontos.com/index.php?topic=4103.0
For a film - www.mishra.tv
To film some gymnasts.

The camera is running CHDK firmware and is triggered with a 5V pulse. I want each camera to have a 10ms delay over the previous one.

So, if C1, C2 ... Cn are cameras
and D1, D2, ... Dn are delay circuits
and Pulse denotes the ON trigger pulse (just a simple switch I will turn on and off) which is started at time - t0.

The circuit is
Pulse --- D1-C1---D2-C2--...--Dn-Cn

How precise does your delay have to be?
10ms precision

How wide is the pulse?
100ms per camera. Input Pulse can be held high as needed.

Does the pulse repeat?
Nope. 1 pulse activates C1, which propagates to C2 then to C3. The delay circuits D1..Dn are initially open and then stay closed to allow the voltage to trigger to the next one.
In another way, C1 gets a 100ms pulse which starts at t0+10 ms
C2 gets 100ms pulse at t0+2*10 ms
  .
  .
  .
Cn gets 100ms pulse at t0+n*10 ms
Movement & Sound - mishra.tv Film Productions

Graynomad

#1
Jan 30, 2011, 04:04 pm Last Edit: Jan 30, 2011, 05:01 pm by Graynomad Reason: 1
So C1's pulse overlaps C2's pulse by 90mS etc etc, Like this?
__------_______
___-------_____
____-------____
______-------__

Yes that can be done, no "delay circuits" as such, do it all in software.

How many cameras? EDIT: don't anwer, you said 60-70.

______
Rob
Rob Gray aka the GRAYnomad www.robgray.com

zcream

@Richard Its actually a budget production. I accumulated user Powershot A450 A460 for a year. Total cost 2.5-3K for 60 cameras. Sniping ebay bids worked really well.
Could you point me to a sample IC I could research ? Are you suggesting connecting the Shift registers in series and just taking each output to the cameras ?

@Graynomad Yes thats the pulse cycle.
Movement & Sound - mishra.tv Film Productions

CrossRoads

I think that what is being suggested is just a string of regular 8-bit shift registers, one feeding the next (like 74HC595), with a clock every 10mS - then you clock in a 1 ten times and zeros after that. That way the 1st bit is high for 100mS, and goes low after that, as GrayNomad has pictured. The shift register outputs go to the cameras, either directly or with whatever buffering you need.
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

Boffin1

#4
Jan 31, 2011, 02:23 am Last Edit: Jan 31, 2011, 02:25 am by Boffin1 Reason: 1
You could have a el cheapo dual 556 timer chip at each camera, with one 10mS delay, and one 100ms, both triggered from the previous chips falling edge of the 10ms timer -  one 50 cent chip, 4 capacitors, and 3 resistors.

You would just need a 3 core cable between each camera ( ground, 5v, and trigger )

Of course you could have an Arduino to tell it when to fire ( keeping with the forum )

CrossRoads

#5
Jan 31, 2011, 02:42 am Last Edit: Jan 31, 2011, 02:49 am by CrossRoads Reason: 1
Thats a lot of chips to wire up - really just 9 are all that is needed with 3 wire control from the arduino - maybe 4-wire if you want to  wire up the clear line too.
I don't know if the cameras just need the shift register output and a ground line to work.

Then a simple sketch:

write shift clock low
write load clock low

read the start button, when pressed:

for x = 1 to 10{
write dataout High
write shift clock hi, then low
write load clock hi, then low
wait 10ms}

write dataout Low

for x = 1 to 62{
write shift clock hi, then low
write load clock hi, then low
wait 10ms}
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

Boffin1

#6
Jan 31, 2011, 03:36 am Last Edit: Jan 31, 2011, 03:47 am by Boffin1 Reason: 1
true, but theres a lot of wiring that way, I was suggesting just a 3 wire daisy chain between all 70 cameras, with a chip on some perfboard in a matchbox sized box at each camera.
http://www.flickr.com/photos/johnandlyn/5402767011/

I havn't worked out how to put pictures in  8)

I don't know where zcream is, but I see that Radio Shack is charging $1.99 for the 556,   that's 5 times what I am paying in South Africa !

Graynomad

To reduce wiring and remove any analogue components how about we combine the two approaches, just have a flip flop at each camera.

Even using "old" 4013s or whatever this would be very small, with the new SMD single gate FFs it would be tiny.

______
Rob
Rob Gray aka the GRAYnomad www.robgray.com

retrolefty

You know your application sounds a lot like what they use in demolition firing circuits. Controlled sequence and duration for phased explosions to bring down buildings in a 'controlled manner'. Also large fire work displays would be similar and I think they now use PC based scripting GUI programs that let them setup a display and simulate and all that fancy stuff. I think the demotion guys use industrial PLC controllers.

Lefty

Boffin1

Lefty-    now that sounds like a fun project for an Arduino !

Rob -  You need the 2 overlapping outputs, the 100mS  carrying on after the trigger has been passed on, how do you see that with the 4013?

CrossRoads

To insert pictures use the traditional method

'bracket img bracket' url 'bracket /img bracket' ,

or click on Additional Options when you reply and then browse to a file on your hard drive.

So what's easier to manage:

9 chips on a breadboard with 70 sets of screw terminals in one box for a 2 wire connection to each camera,
or 70 boxes and 70 boards wired up with an input/output connector on each?

The OP has to build it up (or have it built), if it was me I'd go with 9 chips and a row of screw terminals, or some kind of 2-contact connecter to plug a wire into, like a bank of RCA cable jacks such as
http://www.bgmicro.com/AUDCA074.aspx
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

retrolefty

Hey a Seeeduino mega board has 70 digital outputs if you need to use them all. Just run RS-485 drivers to each camera's trigger input and do all the timing/duration stuff inside the sketch. Simple.

http://www.seeedstudio.com/depot/seeeduino-mega-p-717.html?cPath=132_133&zenid=9f6118c193cee9f8b7337d4df91a2eca


Lefty

Boffin1

Thanks Crossroads,
I will try that next time with the pics ( I'm half asleep 5am here )

With the wiring, we dont know his layout, but 70 wires in a gymnasium ?? 

Depending on the connector in the camera, he could build the chip into (say) a rca splitter.

Anyway, he has a few suggestions ,  now I like the idea of a wireless web  :smiley-yell:

Boffin1

If each camera has a flash, you could have a wireless version where the second camera counts one flash and shoots 10mS later, the next counts 2 flashes and so on. No RF or wires, but of course you would need a board and a battery at each camera. :(

Graynomad

#14
Jan 31, 2011, 04:27 am Last Edit: Jan 31, 2011, 04:38 am by Graynomad Reason: 1
Quote
You need the 2 overlapping outputs, the 100mS  carrying on after the trigger has been passed on, how do you see that with the 4013?

Half a 4013 is just 1/8th of a shift register, so if it works with an SR it works with 8 (or 70) FFs. Just route Q forward to D and tap off Q for the local control and feed the 10 high bits into one end as mentioned above.

I reckon this is by for the simplest option (wiring wise at least), just needing a single 4-core wire.

______
Rob

Rob Gray aka the GRAYnomad www.robgray.com

Go Up