Digital Camera Sensor

Hi,

So i'm very new to this forum, as in this is my first post.

I have had some previous experience with Arduino when I helped a fellow student last year with some programming, where I know a bit of web based stuff, PHP, java etc.

Anyways...

I am going into my last year of Uni, where I'm studying an Imaging Science degree and I am wanting to built a camera sensor, to place into what's called a view camera, something like a sinar norma (the ones you put a blanket over you head for!)

So I'm asking if this is going to possible;

Basically I want to cram as many sensors (I'm planning on using LED's - unless anyone knows of anything better?) into the area as possible, I worked out a while back that over 5 x 4 inches, I could get an array of about 30 x 30, which is 900. Obviously this isn't going to be a high resolution sensor, but it will be enough for me to gain and image so do experiments on to fulfill the criteria of my project.

So what I intend on doing;

Each sensor will act as a pixel, giving a reading back when light hits it, in other words, I can open the shutter on the camera for an amount of time and the sesnor will collect the light falling on it and send back a signal. I believe this to be possible.

The sensors need to be placed into some form of board, I have done a little research and I'm hoping it's possible to buy a board off the shelf and literally plug them into it and then write a program to read their locations? like an array on a while loop or something, this is where I need a yes or no.

Final question (for now) is, can an Arduino board except this amount of inputs?

Any help would be appreciated, I will be starting this project at the start of the next school year, september and will need it finished (with 20,000 words backing it up) by the end of the year, June 2013, sounds like a lot of time, but it's really not!

Thanks in advance,

Simon

LEDs are not the greatest light sensors, and unless you've got a large aperture lens, they're not going to get much light - why did you choose them?
Phototransistors would be better, I'd've thought.

Before you commit to such a large number, why not experiment with one?

AWOL:
LEDs are not the greatest light sensors, and unless you've got a large aperture lens, they're not going to get much light - why did you choose them?
Phototransistors would be better, I'd've thought.

Before you commit to such a large number, why not experiment with one?

I don't really know a lot about electronics thats why I asked on here, I'll have a look into Phototransitors, I have 2 things to take into account, size and cost, I seen some photos diodes on RS Components, £1 each - £900 before I've even bought anything else I need, which is way over budget, that's a months rent!

You're right though and in the same mindset, of course I will test what is best before I buy the lot, however, it will be in a controlled environment, so it's not really going to matter too much about the apature, to get the best possible light I will be shooting between f8-f11. Shutter speed can vary depending on how fast the program can read / write, I'm planning on programming it so it will take a reading when light exists and at it's maximum.

I will be photographing test charts, simple half black half white, to calculate edge spread functions, maybe pixel pitch measurements, this is still something that is very much in the planning stage.

Thanks for your advice, it's appreciated!

to get the best possible light I will be shooting between f8-f11

I'm thinking your version of Stookie Bill is going to need an awful lot of light.

With such a physically large array of sensors (even if you use tiny SMD LEDs) you'll have to account for the difference of angle-of-incidence between on-axis sensors and the ones near the edge, I would imagine.

Have you thought of using a linear array, and scanning?
I've heard of at least one project that used a flatbed scanner in a plate camera setup.

AWOL:

to get the best possible light I will be shooting between f8-f11

I'm thinking your version of Stookie Bill is going to need an awful lot of light.

With such a physically large array of sensors (even if you use tiny SMD LEDs) you'll have to account for the difference of angle-of-incidence between on-axis sensors and the ones near the edge, I would imagine.

Have you thought of using a linear array, and scanning?
I've heard of at least one project that used a flatbed scanner in a plate camera setup.

Yeah I'm guessing it will need a lot too, but I have access to decent equipment, we have an abundance of lighting kits, ranging from 250 - 10,000k packs, the amount of light shouldn't be a problem.

Yeah a scanned array would be a good idea, anything that already mimics already existing technology can't be faulted.

Yeah i've seen the scanner projects too, get some amazing results with those things.

Also remember these cameras are designed to take 5x4 film and even digital backs, the lenses are designs to cast light onto the focal plane of the sensor already, I assume that aslong as I place my sensor in the same place, I shouldn't have too much of a problem. I know that at extreme angles you start getting vignetting, but this will be a pretty straightforward setup.

Important question is will the Arduino board be able to process the information from this amount of sensors?

Important question is will the Arduino board be able to process the information from this amount of sensors?

Another important question is what sort of exposure time did you have in mind, and what sort of greyscale resolution are you aiming for?

Exposure time is dependant on how long the flash duration lasts for, so for low powered lights, such as speed lights, can go very fast, if using studio lighting, somewhere between 1/60th and 1/125th of a second.

As for greyscale resolution, the minimum need for image detail is 16bit, It's just a case of programming conditional if statements and setting up hight and lower limits, i.e if returns between x and x then set greyscale level to x, all I know at the moment is it has to be 16bit minimum, but that's a programming area, which can be tested at a later date.

I'm interested in being able to at least be able to get information via the use of an Arduino board for now, no point thinking about anything else if it wont do it.

somewhere between 1/60th and 1/125th of a second.

In which case, you're probably not in Arduino territory. Not single ones, anyway.
Do the simple arithmetic - 9600 (roughly) conversions per second says you'd need 1/10th of a second to do the readout.

As for greyscale resolution, the minimum need for image detail is 16bit,

That's also blown you out without an external ADC, in which case, I don't see much need for an Arduino.
I think 16 bit for a LED is hugely optimistic.

AWOL:

somewhere between 1/60th and 1/125th of a second.

In which case, you're probably not in Arduino territory. Not single ones, anyway.
Do the simple arithmetic - 9600 (roughly) conversions per second says you'd need 1/10th of a second to do the readout.

As for greyscale resolution, the minimum need for image detail is 16bit,

That's also blown you out without an external ADC, in which case, I don't see much need for an Arduino.
I think 16 bit for a LED is hugely optimistic.

Is 1/10th of a second not a realistic amount of time to take 900 readings? Like I said i've never really used this before, I thought programming wise that's a reasonable time to take the readings

Also, ADC, surly that can be done afterwards with programming, you just save the analog reading which the sensor gives and then convert it to it's digital pixel value dependant on where it was between it's top most and bottom most calibrated setting?

I don't really understand what's going on here, I'm asking for guidance and you seem to be going about it in a very rude way for some reason? This is something that I would like to do, I understand I can't do it on my own, I don't understand the hostility towards the project.

I don't really understand what's going on here

Some background reading http://www.merl.com/papers/docs/TR2003-35.pdf

surly that can be done afterwards with programming,

I'm rude, but you're surly. Let's call it quits :wink:

AWOL:

I don't really understand what's going on here

Some background reading http://www.merl.com/papers/docs/TR2003-35.pdf

surly that can be done afterwards with programming,

I'm rude, but you're surly. Let's call it quits :wink:

Well lets hope the marketing department for the products don't rely on the moderators to sell them, cause you aren't doing a very good job.

Thanks for all your 'help'.

Do you believe that it would be better to try and sell you an unsuitable product?

dxw00d:
Do you believe that it would be better to try and sell you an unsuitable product?

That's not what I said, but I don't feel like i've been told enough of why it can't be done, to believe it.

I don't want to start an argument on a forum, it's stupid.

No-one has yet said "it can't be done" for all values of "it", but LEDs are not designed to convert photons to current, so there is no particular attempt in the manufacturing process to make them so.
You're going to need a fair amount of amplification to do this, and that is going to be tricky and expensive in a large rectangular array, so the idea of making a linear array and scanning it either my moving the array, or by moving the image over it has a lot going for it.

Grumpy_Mike has some information on using LEDs as sensors - LED Sensing

..where he prefaces the article with the following

Just like a dog walking on its hind legs one marvels, not that it is done well, but that it is done at all.

AWOL:
No-one has yet said "it can't be done" for all values of "it", but LEDs are not designed to convert photons to current, so there is no particular attempt in the manufacturing process to make them so.
You're going to need a fair amount of amplification to do this, and that is going to be tricky and expensive in a large rectangular array, so the idea of making a linear array and scanning it either my moving the array, or by moving the image over it has a lot going for it.

See now that's an answer that helps me, I thought thats what an LED in a reading state did, it gave out a output voltage dependant on the input? (I am trying to read and understand this paper you gave me)

I understand a little bit more about what you mean by scanning, obviously that's not going to give me the 1/60th of a second I need, so it would have to be more like a cameras pixel area, 2D.

This is the sort of input sensor I was looking at:

Which has a very good spectral sensitivity to the visible light spectrum (and above) which I can filter out,

I can't find what sort of output that will give, but I assume it's just a voltage which I can measure and convert to a digital signal?

dxw00d:
Grumpy_Mike has some information on using LEDs as sensors - LED Sensing

Yeah I seen that a littler earlier on, thanks.

I dunno why you need to create your own sensor using large LEDs. I would think adapting an existing vision system (web cam, pin hole camera, security camera, DSLR, etc.) would work better. Or if you are still wanting to recreate a vision chip, you probably need to shrink it down, rather than using discrete components. In any case, it is likely to get expensive.

A quick google shows the following project: Web Hosting - This site is temporarily unavailable, which uses Arduinos and sensors. However, I can't figure from the site where to actually order the chips.

A big problem with using Arduinos is the lack of memory and the speed (or lack thereof) of the processor is not enough to process more than a really small size image. If you want to process larger images you need to go to a chip with a larger memory system (and possibly floating point hardware depending on your processing), such as many ARM based chips. Or by using single board computers. Or use Android systems, using their camera.

If you still want to using the Arduino, the video experimenter shield (Video Experimenter: Arduino shield that lets you do all kinds of experiments with video) can take images from a camera producing an analog composite signal, and give your very low res. images.

Another thing is the HackHD camera PCB: http://www.hackhd.com/.

Instead of trying to read 900 sensors at once why not read one sensor 900 times. Just mechanically move it from spot to spot. Sounds like something an arduino could pull off. Now it's a mechanically more challenging project but robotics is right up arduino's alley.

Your subject won't move so you can just leave the lens's shutter open. Move the sensor to a spot take a reading, trigger the flash if needed. Go to the next spot and do it again. Voila, a rudimentary scanning back.

Just a thought.