Introduction:
Now is the time to move on to the 2nd phase of the project and that is automating the scanning process.But before anything else , camera automation is our concern first and if we are going to deal it that is the zooming features.
The zooming of a camera is in the category of capture calibration , every time user will be using this features for image viewing adjustment ,the motor is triggered and the actuation pushes the lens and causes its zooming- a requirements in scanning procedures.
The zooming of a camera is in the category of capture calibration , every time user will be using this features for image viewing adjustment ,the motor is triggered and the actuation pushes the lens and causes its zooming- a requirements in scanning procedures.
Objectives:
To automate the camera capture mode
To sync the camera to the robot arm sensor.
Initial phase of RoBook Scanner automations
Requirements:
1) An installed libgphoto2 and gphoto2 and libraries
2) A Powershot camera (Canon G10)
3) USB Cables
Methodology:
Note:
Please use the gphoto manual to explore further command combinations.At the cli type:
root@localhost# gphoto2 --helpInstallation:
- Make sure nothing else has access to the camera, and kill any other possible gphoto instances.
- kill -9 pidof gphoto2
pkill PTP
pkill gphoto2
Gphoto Setup Camera:
gphoto2 --set-config capture=On
gphoto2 --set-config whitebalance=4
gphoto2 --set-config zoom=5
gphoto2 --set-config assistlight=Off
gphoto2 --set-config iso=0
gphoto2 --set-config canonflashmode=off
gphoto2 --set-config focusingpoint=0
Gphoto Testing Purposes
gphoto2 --set-config canonimgquality=0
gphoto2 --set-config canonimgsize=3
gphoto2 --set-config shootingmode=3
gphoto2 --set-config aperture=18
gphoto2 --set-config shutterspeed=25
gphoto2 --set-config iso=0
gphoto2 --set-config canonimgquality=1
gphoto2 --set-config canonimgsize=1
Gphoto Camera toggle Focus
gphoto2 --set-config focuslock=on
gphoto2 --set-config focuslock=off
Gphoto Capture interval
Take Photos every 2 minutes
gphoto2 --capture-image --interval=180 --frames=0
Take videos every 2 minutes
gphoto2 --capture-movie=2s --port=usb:001,075
Get battery level
gphoto2 --get-config batterylevel | grep Current | cut -c 9-13
Detail(1) Video on G10 Mono capture automation
Detail(2) Video on G10 Stereo capture automations
Detail(3) Gambas (VB for Linux) Test program
Detail(4) Zooming and Remote Controls
Remarks:
Hints:1) See to it that your PC is able to detect your G10
root@localhost/gphoto2/gphoto2/ ./gphoto2 --auto-detect
2) To set on automating the camera root@localhost/gphoto2/gphoto2/ ./gphoto2 --set-config capture=On root@localhost/gphoto2/gphoto2/ ./gphoto2 --set-config zoom=15
Note: Automation range depend on the zoom level of your camera (what was mine is g10)
3) To automate zooming on multiple cameras , just use the command
root@localhost#:/usr/local/gphoto2/gphoto2# ./gphoto2 --list-ports
Devices found: 7
Path Description
--------------------------------------------------------------
ptpip: PTP/IP Connection
serial:/dev/ttyS0 Serial Port 0
serial:/dev/ttyS1 Serial Port 1
serial:/dev/ttyS2 Serial Port 2
serial:/dev/ttyS3 Serial Port 3
usb:001,024 Universal Serial Bus
usb:001,023 Universal Serial Bus
So you can now freely include the ports and id....
root@localhost# gphoto2 --set-config zoom=20 --port=usb:001,023
root@localhost# gphoto2 --set-config zoom=20 --port=usb:001,024
Or we have the options every time we want to forcibly over write the captured image
root@localhost# gphoto2 --set-config zoom=20 --force-overwrite --port=usb:001,024
Future preferences:
Note:
As much as possible we should be able to zoom out (+) or in (-) an image as added calibration's features.Below are the suggested zoom call function:
# [Initialize Zooming]
def zoom(self,zoom,port)
captureCmd = [
"gphoto2",
"--set-config capture=On"
]
utils.invokeCommandSync(captureCmd, CaptureError, \
"Could not initialize zooming an image")
return zoom
# [Zoom Calibration values]
def zoom(self,zoom,port)
captureCmd = [
"gphoto2",
"--set-config zoom=%" % zoom,
"--port=%" % port
]
utils.invokeCommandSync(captureCmd, CaptureError, \
"Could not zoom an image with the value of %zoom" on \
% port)
return zoom
Conclusions:
So far So near to an end of deploying RoBook Scanner