I am currently using your older version of Micro Servo Controller (Serial Port) to control a servo jig from PC. But I encountered an issue of overheating after prolong stopping of servo at certain position due to my jig design. The power source of servo is currently share with the Maestro circuit. I am think of creating a ON/OFF control for the servo to cut power after it stop at certain position. Is it possible to use one of the Maestro servo signal pin to control a relay for power cutting?
I have thought of using another FTDI245RL to do the relay switching but this involve another circuit and command set for development.
If you are using a servo that will not continue to hold its position once it stops receiving signals (most analog and some digital servos), you could try just disabling the output that servo channel on the Maestro. Otherwise, you could use one of our Basic SPDT Relay Carrier with 5VDC Relay or RC Switch with Relay to control power to your servos.
Also, if something is overheating when the servo stops, it seems like you might be stalling the servo and you might need to rework the positioning of the servo or structure of your jig.
Currently I am using VB to code the servo command in my control program. The servo controller is Pololu Micro Serial Servo Controller. Sorry to mix up with Maestro Version. You mentioned about disabling the channel. May I know how will I insert this into my function:
Public Function SendPololu(ByRef servonum As Short, ByRef position As Integer, ByRef setspeed As Byte) As Object
'For actual command control
If SerialPort.IsOpen Then
Dim data1 As Byte
Dim data2 As Byte
Dim buffer As Byte() = {128, 1, 0, 0, 0, 0}
'Set Speed of Servo
buffer(2) = 1 'set command byte for command 1
buffer(3) = servonum 'set servo-number byte
buffer(4) = setspeed 'set data1 byte for servo speed
SerialPort.Write(buffer, 0, 5) 'send 5-byte command packet
'Set Position of Servo
data1 = Int(position / 128) 'a.k.a. " = Int(position / &H80)"
data2 = position And 127 'a.k.a. " = position And &H7F"
buffer(2) = 4 'set command byte for command 4
buffer(3) = servonum 'set servo-number byte
buffer(4) = data1 'set data1 byte for servo position
buffer(5) = data2 'set data2 byte for servo position
SerialPort.Write(buffer, 0, 6) 'send 6-byte command packet
System.Windows.Forms.Application.DoEvents()
SendPololu = buffer
ToolStripStatusLabel_SRC.Text = "Position: " & CStr(position)
Else
ToolStripStatusLabel_SRC.Text = "Invalid Command"
SendPololu = False
End If
End Function
You can turn off a servo channel on the Micro Serial Servo Controller using the “Set Parameters” command (command 0) shown in the Micro Serail Servo Controller’s user’s guide. The 6th bit controls whether or not the specified channel is on or off.