Skip to content

AlturosDestinations/Alturos.PanTilt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Alturos.PanTilt

Alturos.PanTilt

This project delivers an interface for general pan tilt communication and a comprehensive test tool.

Supported manufacturers

  • Alturos - PT-Head
  • Eneo - VPT-601 (product discontinued)

The library supports the following primary features

  • Move to absolute position
  • Move with relative speed
  • Position feedback
  • Get/Set limits
  • Different communication providers udp/tcp/serial

And some Eneo special features

  • Get temperature
  • Set relay

How can I use it?

The package is available on nuget

PM> install-package Alturos.PanTilt

Network communication devices to RS-422/RS-485

Do you want to talk about the network with your pan tilt unit you can use a serial device server.

Manufacturer Product Communications
iccdesigns.com ETH-1000 RS-485
moxa.com NPort 5130 RS-422/RS-485
atop.com.tw SE5001 RS-422/RS-485
aten.com SN3101 RS-422/RS-485

Examples

Move to position pan 50° and tilt 0° with udp communication

var ipAddress = IPAddress.Parse("192.168.1.10");
using (ICommunication communication = new UdpNetworkCommunication(ipAddress, 4003, 4003))
using (IPanTiltControl control = new EneoPanTiltControl(communication))
{
	control.PanAbsolute(50);
	control.TiltAbsolute(0);
}

Move to position pan 50° and tilt 0° with tcp communication

var ipAddress = IPAddress.Parse("192.168.1.10");
using (ICommunication communication = new TcpNetworkCommunication(new IPEndPoint(ipAddress, 4003)))
using (IPanTiltControl control = new EneoPanTiltControl(communication))
{
	control.PanAbsolute(50);
	control.TiltAbsolute(0);
}

Move to position pan 50° and tilt 0° with serial communication

var serialPort = "COM1";
using (ICommunication communication = new SerialPortCommunication(serialPort))
using (IPanTiltControl control = new EneoPanTiltControl(communication))
{
	control.PanAbsolute(80);
	control.TiltAbsolute(0);
}

Activate pt head position feedback

var serialPort = "COM1";
using (ICommunication communication = new SerialPortCommunication(serialPort))
using (IPanTiltControl control = new EneoPanTiltControl(communication))
{
	control.Start();
	Thread.Sleep(200); //delay for response, only need if you stop very fast
	var currentPosition = control.GetPosition();
	//example: {0,02/0,98}
	control.Stop();
}