laurb9 / PanoController-Firmware

Platform for high-resolution panoramic photography, supporting 3D-printed PanoController board, Gigapan EPIC 100, Nodal Ninja Mecha E1 and other platforms.
MIT License
16 stars 3 forks source link

zero motion, shutter and bracketing/HDR #44

Closed laurb9 closed 6 years ago

laurb9 commented 8 years ago

Shutter speed is not the real value when bracketing or using HDR. In these cases, the "shutter" covers all the shots in the bracket, so it will be a lot slower than reality. But zero motion is based on shutter among other things, so it will require the platform to be more steady than needed.

Defragster commented 8 years ago

If the camera/lens does OIS that will help. The overexposed image can take some time. Might want the Teensy let you time the first (two) shots and then use that value for subsequent delays before going AUTO?

laurb9 commented 8 years ago

Well, the controller does not know what the camera does, it can trigger it but there's no feedback.

The problem here is with bracketing, you would do three shots for example, 1/50, 1/100, 1/25. So a "zero motion" based on 1/25s would suffice. But as my camera insists on wanting the shutter to stay pressed the entire sequence, I have to set the shutter value in the controller to something like 1/4s, which is a harder goal and the wait is longer for no good reason.

The solution is to separate the two settings, but I like simplicity, so I'm trying to think of a solution that does not add more variables to configure, or having to do intervals math in your head. I wish I had feedback from the camera, a test shot would give me everything I need.

laurb9 commented 8 years ago

This gives me an idea. There is single-shot bracketing which needs separate presses, and continuous bracket where the shutter needs to stay on the whole time. For now, I can do 3 shots per photo (there's an option in menu) at the longest interval. That solves the motion delay calculation problem to some extent.

laurb9 commented 6 years ago

The G-Code branch (#65) will address this by moving all the logic in the app which should handle the different bracket timings.