The Sony EVI-D31 camera can be controlled via the computer’s serial interface. This article shows how the Elvis Custom Port can be used to transmit camera commands.
You can download the sample project and script for the custom port here: sony_evi_d31.zip (110 KB).
On this website you will find an application and many hints on the use and use of the camera in the form of PDF files. A complete description of the commands for the control is important if the user wants to program his own application to control the camera.
The commands are as follows:
- The head of the command: 8x (where x is the number of the camera)
- Com Mode: is always 01
- Category: e.g. 04
- Message: e.g. 00 02
- Degree: FF
- Turn off the camera (CAM_Power Off):
81 01 04 00 03 FF
- Turn on the camera (CAM_Power On):
81 01 04 00 02 FF
The other commands can be found in the PDF file, which can be downloaded from the above-mentioned homepage.
Use with Elvis
In order to be able to control the camera in ELVIS, the CustomPortDriver must be used. To do this, a basic script must be available that enables communication between Elvis and the camera. The basic script in this case is the evi_d31.bas file.
For the use of fixed commands (see above), programming is still quite simple. The command itself only needs to be sent to the serial port.
With more complex commands, such as panning, rotating or changing the speed, .dem it becomes more complicated. The command for rotating the camera looks like this:
81 01 06 02 VV WW 0Y 0Y 0Y 0Y 0Z 0Z 0Z 0Z FF
VV = 01…18 Camera rotation speed WW = 01…14 Camera panning speed Y = FC90… 0370 Rotation position of the camera (center = 0000) Z = FED4… 012C Panning position of the camera (center = 0000)
The challenge now is to assign the corresponding values in Elvis to these “variables”. The solution is simple in itself. If you use two sliders (one for rotating, the other for panning the camera), the Basic script must remember the respective position and thus the value of the control and update it when the situation arises (change the control value).
Now it is only necessary to determine which control and thus which value should be updated. This is done here via the additional info of the respective data point type. For example, by prefixing the string “vert” to the additional info, the Basic script remembers which control has just been changed and updates the respective value. In the specific example (see previous sentence), the value for the vertical orientation of the camera is updated by prefixing “vert” to the additional info.
Other additional words are:
- “hori” : horizontal orientation of the camera is updated
- “pans”: rotation speed is updated
- “tilt”: Swivel speed is updated
- “zoom”: Zoom is updated
Another step is to insert the values of the respective controls into the command. For this purpose, the Basic script has a distinction. If the following placeholders are specified in the additional info: [2 hex], , , [4 hex][10 hex]they are filled with the data point values that have previously been brought into the correct format.
Example: Additional info of a slider for the rotation of the camera:
. From this, the Basic Script, with the data point value 100 of the slider, makes the following command: Address + Additional Info =
81 01 06 02 00 00 00 00 06 04 00 00 00 00 FF
VV, WW, and Z are 0 because they do not have a value specified in this example. However, Y has been changed. Since 100 hexadecimal is 64, 0 was entered for the first Y values. In the case of the 3. and 4. Y value was entered 6 and 4 representing 64.
Concrete examples can be found in the Elvis project.
For owners of other Sony cameras, it is recommended to visit the homepage http://www.sony.net/Products/ISP/docu_soft/index.html. Here you will find information about the different camera models. The commands for controlling the cameras are quite similar. For further information, please use the command lists of the individual cameras, which are available for download on the homepage.