Shop OBEX P1 Docs P2 Docs Learn Events
Camera Identity and Mortality ... a sub-project — Parallax Forums

Camera Identity and Mortality ... a sub-project

Howdy,

I've been working on an open source stereovision system to be implemented on Parallax's new Propeller_1_2_3 board.  The board is cheap, fun-filled and in short supply.  So, if you want to follow along, don't wait.

If you want your robot to see in 3D, or if you want a single camera platform, I invite you to follow along over in the Prop2 forum.

As it currently stands, I think that I have the essential FPGA functionality worked out for the cameras... but I really don't know, because right in the middle of everything my DE2-115 died.
Well... I killed it.  And it died slowly with spurious signs of life, which kept me scratching my head and looking in all the wrong places.

In the next few days(time permitting:), I will be posting a sub-project,here, named "Camera Identity and Mortality(CIM)."

CIM uses a  Propeller Activity Board(PAB), Parallax's new PAB Overlay Card (as a camera carrier), and a cheap variable voltage dc power supply.  The power supply is currently out of the mix because I suspect that it killed my DE2-115... and I don't think my Activity Board liked the supply very much either.

CIM identifies and checks the vital signs of Omnivision Cameras.

To use it, you pop the camera into the carrier board, turn on the PAB.  The software identifies which camera you have and check to see if the camera is acting nominally under known conditions ... of voltage, clock frequency and register settings.  It reports a variety of measurements, made in a variety of ways.

Currently, the OV7660,7670,7675,9655,9657, and 564C are fully supported.  The OV2640 and OV3640 are identity supported only.  Other Omnivision cameras can be easily added.  These just happen to be the ones I have in my box:)

The software includes an examples of how to implement register sets... and see the effects they have on the frame rate, resolution and stability of the camera.  So, in theory, you should be able to work out a lot about the programming of a particular camera, without having to worry about display interfacing.

If you are new to the Propeller, I have implemented some functions in both Spin and Pasm so that you can compare the implentations and results.  If you want to build the hardware and make sure that it is all working, I am including a camera simulator... So you can use one Propller to simulate a camera... feed what it produces into your PAB/camera carrier board and make sure all the signls are making it through ok.

I have found these utilities useful because at various times things weren't working and the potential causes of any glitch are myriad. Frequently I found myself asking..."did I kill the camera... what camera is this anyway?"  There are cheap general purpose carrier boards, which can accept a wide variety of camera modules from Omnivision, so even if I think I know what camera I have in my hand, I am never really certain.

With this utility I can answer these questions.  The overlay board for the Propeller Activity board will also serves as a single camera carrier for the Propeller_1_2_3 board... and I think two overlay boards will fit nicely on the 1_2_3, giving it quasi-stereo... "stereo enough" for early development purposes:)

This sub-project is not an engineering solutions to the issue of camera health... that is "beyond the scope."

Think of the engineering solutions to camera health as an ICU filled with elegant doctors and nurses. Think of this project as ... finding a drunk on your doorstep and not knowing if he is dead... you check his pulse, get his wallet out to find out his name, and call the church. You don't really know much about him... you just know who he is, that he is alive, and where he belongs.  CIM is a little better than that but the comparison is still valid:)

Rich









Sign In or Register to comment.