The Cerebral Forum
Solar Projects => Heliostat Projects => Topic started by: jumpjack on October 08, 2015, 05:30:10 AM
An heliostat is made of:
- 2 motors
- 1 electronic board
- 1 light sensor
- some mechanics
- a mirror
What if could have 4 out of these 5 needed ingredients ready out-of-the-box, without need for mounting and calibrating, at a very low cost?
It's what would be possible if we'd just apply a mirror to... an ipcam! :)
A basic PTZ IpCam costs 40$ and it can be remotely controlled by sending to it simple URLs. And it "replies" by images.
So, turning a PTZ IPCam into an heliostat is just a matter of adding a mirror, writing a software to process the image and moving the camera depending on where the sun is in the image.
I'll give it a try, but if in the meantime anybody wants to try it too, I found a couple of interesting links; I'll not post them as this is my first post and this could be interpreted as spam, so you can try looking for "Hack a 30 WiFi Pan Tilt Camera Video Audio", "SimpleWebCamInteraction" and "Using camera with processing.js" to find useful tips.
I was not able to find a command to get from camera its position, so in case the sun is totally out of the image, a position reset is required: to do that, an initial camera position must be stored in one of the available camera memory locations, and when the sun is off, camera must be put in that position and then moved step by step until sun is detected.
Once the sun angle is known, it's jusy a matter of trigonometry to properly position the camera/mirror.
Of course the mirror must be mounted on the camera in such a way that while it's reflecting light to proper place, sun remains inside camera field of view (more trigonometry...).
I also suggest covering camera objective by a darkening shield to avoid burning the CMOS sensor.
I wonder if anybody ever tried my idea already, or if I must start it from scratch... but I hope that at least trig calculations and formulas are already available somewhere! Any clue?
There isn't anyone I know of that has tried this before. I think there is someone on this forum that tried to reverse engineer a pan and tilt webcam to design a 3D printable heliostat, but I don't think they actually did anything with the camera part.
I think as far as the camera code is concerned you will probably have to start mostly from scratch.
"Of course the mirror must be mounted on the camera in such a way that while it's reflecting light to proper place, sun remains inside camera field of view (more trigonometry...)."
Assuming I understand what you are trying to do, I think that's going to require some pretty far out math / programming. What is the field of view of these webcams anyway? If it is too narrow, then it might not actually be possible to keep the sun in frame in many cases.
If you were to use the webcam to find the position of the sun to help first align the heliostat and then use the computer to continue tracking by calculating the position of the sun from then on, then I think it would require a lot less coding. You would be able to reuse a lot of the code from the Arduino Sun Harvester program in this case.
I like the idea of a camera controlled heliostat. I have a similar idea of realizing my own. I just ordered openmv. It is a camera with a microcontroller and some preconfigured basic machine vision functions. I hope I can use this to track the sun.
this is how i would try to set it up:
The camera and the mirror would be mounted on a 2 axis servo mount in a similar fashion to instructables.com/id/Sunlight-Director/ (exchange lightmeter with cameraboard). Then I would try (this will be the hardest part, I guess) to tell the camera to keep the sun at the center of the frame. If it starts to move outside, adjust the servos accordingly.
Do you guys think could be working? I hope to accomplish my heliostat project without gps and extensive mathematics and coding...
Those openmv microcontrollers look really cool! This isn't something I've tried before, so I'm not sure what's the best way to do this, but I think you might have to see if anyone has any example code for finding how "bright" the individual pixels are and then moving the motors according to that pixel's location in relation to the center. It's just a thought, but overall you're probably going to have to rely on whatever someone else has already started if you don't want to spend your whole life coding. :)
I think that you could get by without much math really if you can find a library to get you started.
Let us know how it goes.
I made some progress!
The heliostat is made from components from servocity. (servo gearbox and tilt mechanism controlled by servo) They are very solid and work fine.
I use a watercut Mirror made from polished v2a steel. (currently 25cm in diameter, will move up to 40)
The camera is the openmv cam. The people behind this helped me a lot with the code for this project. By adding a visibly opaque Kodak Wratten 87C IR pass filter (The lens is fitted already with an IR cutoff filter) I managed to get the camera to detect only the reflectance of the sun as the spot of interest (although other strong IR sources such as a conventional light bulb might cause problems when they show up in the frame of the camera)
In the current setup, the camera observes the target area and stops the heliostat (which is moving around systematically as long as the target was not "hit") when the bright spot is in the center of the frame. Previously I tried to track the sun by letting the camera observe the sky through the heliostat mirror, but that did not work as good because of lensflares and other bright objects that where mistaken for the sun.
while this is certainly not the cheapest option for a working heliostat it is still sort of easy way to do it because all the components are quasi off the shelf. It is also possible to use cheaper hardware for the two axis heliostat.