HI: I recently started using the pantilthat, and I’m not getting the range I expect for tilt. My understanding is that the range is -90 to 0 to +90, a range of 180 deg. Instead I’m only getting 90 deg as follows:
At 0 deg, the platform/camera is flat on its back and facing up.
At 90, the platform is mostly vertical.
At -90, it goes back to the 0 deg position, and then jogs forward a few degrees.
Also, I note that manually moving the platform in the tilt direction, it appears the motion is only 90 deg, not 180. Is this right?
I can live with only a 90 deg tilt range, but I would like a hint where to start to recalibrate so that I either use only [0, 90], or scale accordingly with [180, 180]. My python knowledge is at a “competent” level.
Platform: Raspberry Pi 3
Thanks for any help.
/Ron
Looking at the demo video, 0 deg should be vertical, camera facing forward.
+90 is I think looking straight down and -90 is looking straight up?
Is the servo jamming on something? As a test you could swap the servo one and two cables. Then see if the other servo is also restricted in movement. Tilt commands will just move the Pan servo etc.
Thanks άnumeric. I worked with your notes and it seemed like the servo was jamming. I deconstructed and reconstructed, and I’m now getting full 180 deg motion (well, mostly) . Yay!
Really… at a tilt of 90 deg, the head only goes to about 80 deg. Is this a case where playing with the servo min, max values will give me more accuracy?
Thanks much.
Be careful with the reconstruction. If you took the arm off of the servo, it needs to be put back in the correct position to get the tilt correct.
If you go to zero tilt is that correct? If its not, you may need to adjust the arm on the splines of the servo.
I don’t own a pan tilt, not yet anyway. I have played with servo’s in the past. PWM though if I remeber correctly, I didn’t have a servo controller board at that time.
EDIT: Added link
I matched the tilt servo to the camera head to get the full motion & that’s all good now. I suspect the servo was wrongly installed initially, but no matter.
I’ll work over the next few days with the min/max settings to see if I get better control on the head motion & will report back.
Thanks for the support!
If your now getting the full 180 degrees you may not need to mess with min/max. That will just restrict its rang if I understand it correctly.
Hopefully the servo didn’t get broken when it bound up. You should be able to move it in increments of one degree?
The function reference for Python is here, if that helps.
http://docs.pimoroni.com/pantilthat/
As suspected, the default values for the servo PWM settings for the platform limits were not optimal for me for whatever reason. The original values (for both servo1 and servo2) were:
min = 575
max = 2325
I experimented with the pantilthat.servo_pulse_min
and max
functions to find the true limits of my servos and I now set these values at the start of my program:
pan_min = 550
pan_max = 2500
tilt_min = 875
tilt_max = 2600
pantilthat.servo_pulse_min(1, pan_min)
pantilthat.servo_pulse_max(1, pan_max)
pantilthat.servo_pulse_min(2, tilt_min)
pantilthat.servo_pulse_max(2, tilt_max)
Hope this might be of use to someone.
I will keep that in mind as I will be getting one of these at some point. I have Motion Eye OS running on a couple of 3A+'s. Being able to change my field of view remotely will be cool. I’m hoping to do it all via the Motion Eye Web GUI. Any, now that you have yours working you can have some fun, enjoy.