Author
|
Matrix Ltd
|
Version
|
1.5
|
Category
|
Mechatronics
|
Servo Controller Mod component
Can control up to eight standard PWM driven servo's. 'Servo Object' properties allow you to connect the controller to on-screen simulations using the "Servo Motor" component and its derivatives.
Component Source Code
Please click here for the component source code: FC_Comp_Source_Servo_Controller_Mod.fcfx
Detailed description
No detailed description exists yet for this component
Examples
Importing from v5
The servo component in Flowcode v6 onwards has a new Initialise macro which will need to be added to your program before any other calls to the servo motor component are made.
Controlling a servo with an analogue input
This example reads the value of the analogue potentiometer and uses this to set the position of the servo motor.
Servo Example 1
The Servo controller is linked to the standard servo component but this could be linked to any object on the panel.
Creating a multi-axis actuator using servo motors
This example links two servo motors together using panel primitive objects and groups.
Servo Example 2
The Servo controller can handle up to 8 motors and is used to control both of the standard servo components on the panel.
Downloadable macro reference
|
DisableServo
|
Disables a servo channel effectivly disabling the motor.
|
- BYTE
|
Channel
|
The channel to set the position for. First channel is zero.
|
- VOID
|
Return
|
|
SetPosition
|
Moves directly to the specified position with no interpolation.
|
- BYTE
|
Channel
|
The channel to set the position for. First channel is zero.
|
- BYTE
|
Position
|
Target position to move towards.
|
- VOID
|
Return
|
|
MoveToPosition
|
Moves a single step towards the new position, the rate of movement is determined by how often the move to macro is called. Returns 1 if the position has been reached.
|
- BYTE
|
Channel
|
The channel to set the position for. First channel is zero.
|
- BYTE
|
Position
|
Target position to move towards.
|
- BYTE
|
Return
|
|
SetTrim
|
Allows the level of trim for each servo channel to be adjusted progmatically.
|
- BYTE
|
Channel
|
The channel to set the position for. First channel is zero.
|
- BYTE
|
Trim
|
0=0us, 1=+25us, 2=+50us, 3=+75us, 4=+100us, 5=-25us, 6=-50us, 7=-75us, 8=-100us
|
- VOID
|
Return
|
|
IsAutoMoving
|
Is the AutoMoveToPosition movement complete. Returns 1 if the servo is still moving. Returns 0 if the servo movement is complete.
|
- BYTE
|
Return
|
|
AutoMoveToPosition
|
Automatically moves towards the new position with a fixed rate of 100 steps per second.
|
- BYTE
|
Channel
|
The channel to set the position for. First channel is zero.
|
- BYTE
|
Position
|
Position to move to.
|
- VOID
|
Return
|
|
EnableServo
|
Enables a servo channel effectivly setting the position of the motor to the value in the local position variable.
|
- BYTE
|
Channel
|
The channel to set the position for. First channel is zero.
|
- VOID
|
Return
|
|
SetAutoMoveSpeed
|
Sets the speed of the auto move to position macro. Default speed is 1.
|
- BYTE
|
Speed
|
1=Slowest (Default), 2= Double, 3=Triple, 4=Quadruple
|
- VOID
|
Return
|
|
Initialise
|
Sets up the servo motor interrupts
|
- VOID
|
Return
|
Property reference
|
Properties
|
|
Channels (1 - 8)
|
Set the number of servo's that you need to control. Value from 1 to 8.
|
|
Connections
|
|
Channel 0
|
Pin on which to output PWM for the servo motor.
|
|
Trim
|
|
Trim 0
|
Trim the pulse width for this channel. Use this to trim the positioning of two servos so that similar input values will produce the same degree of movement.
|
|
Pulse Width
|
|
Minimum (us)
|
Shortest pulse width that will be used.
|
|
Maximum (us)
|
Longest pulse width used for the PWM signals.
|
|
Simulation
|
|
Servo Object 0
|
Drag a servo motor component onto the System Panel, and then select it here, to create an on screen simulation of the way that your flowchart moves the servo's. Servo motors should be based on the 'Servo Motor Base' component, or use a custom component set to responf to 'User.Notify' events (ID = n/a, Data = Position (0-127)).
|