Difference between revisions of "Component: Servo Motor Template (Mechatronics)"

From Flowcode Help
Jump to navigationJump to search
(Created page with "{| style="width:50%" |- | width="20%" style="color:gray;" | Author | Matrix Ltd |- | width="20%" style="color:gray;" | Version | 1.1 |- | width="20%" style="color:gray...")
Line 1: Line 1:
 
+
{| style="width:50%"
 
 
{| width="50%"
 
 
|-
 
|-
| width="20%" style="color: gray;" | Author
+
| width="20%" style="color:gray;" | Author
 
| Matrix Ltd
 
| Matrix Ltd
 
|-
 
|-
| width="20%" style="color: gray;" | Version
+
| width="20%" style="color:gray;" | Version
| 1.1 (Release)
+
| 1.1
 
|-
 
|-
| width="20%" style="color: gray;" | Category
+
| width="20%" style="color:gray;" | Category
 
| Mechatronics
 
| Mechatronics
 
|}
 
|}
  
  
 +
==Servo Motor Template component==
 +
Base component for creating custom servo motor simulations. Recieves messages  from the the 'Servo Controller' component.  Macro 'SetTarget' allows external objects to be moved by the servo for mechanical simulations.
  
==[[File:Component Icon fbad3c39_8c38_49b7_a860_ae37e9b979a2.png|Image]] Servo Motor Template component==
+
==Detailed description==
Base component for creating custom servo motor simulations.
 
Recieves messages  from the the 'Servo Controller' component.
 
  
Macro 'SetTarget' allows external objects to be moved by the servo
+
''No detailed description exists yet for this component''
for mechanical simulations.
 
  
This component can be used as a base to create ''child'' components
+
==Examples==
  
The following components all inherit the traits of Servo Motor Template:
+
''<span style="color:red;">No additional examples</span>''
 +
 
 +
==Downloadable macro reference==
  
{| class="wikitable" width="50%"
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
|+|-
+
|-
|[[File:Component Icon dc99e179_216f_4618_aee7_3f5f87541a9d.png|Image]] Brushless Motor (Standard)
+
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
|A small brushless motor component designed to be driven from a three phase ESC.
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetTarget'''
The ESC would be driven using the Servo Motor Controller component.
 
 
|-
 
|-
|[[File:Component Icon b6fdc61f_7be2_49c7_925f_aea3dc284cba.png|Image]] Micro Servo (Tower Pro 9g)
+
| colspan="2" | Set a panel object to be 'connected' to the servo's. The connected object will then move as if connected mechanically to the servo's actuator.&nbsp;
|Small size 9g servo motor suitable for control by the 'Servo Controller' component.
 
Use the 'Link to...' property to attach other objects to the rotor for emulating
 
mechanical systems.
 
Send a virtual PWM signal to the servo by selecting it as a target of the 'Servo Controller' component.
 
 
|-
 
|-
|[[File:Component Icon cc031290_2255_4e8d_b382_1998c8dda95a.png|Image]] Standard Servo
+
|-
|Standard size servo motor suitable for control by the 'Servo Controller' component.
+
| width="10%" align="center" | [[File:]] -
Use the 'Link to...' property to attach other objects to the rotor for emulating
+
| width="90%" | Target
mechanical systems.
+
|-
Send a virtual PWM signal to the servo by selecting it as a target of the 'Servo Controller' component.
+
| colspan="2" | Object to be moved by the motor&nbsp;
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
 
|}
  
==Examples==
 
Please note that the servo motor template and child components require the Servo Controller component to control them.
 
  
 +
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 +
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MoveToPositionInt'''
 +
|-
 +
| colspan="2" | 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.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Channel
 +
|-
 +
| colspan="2" | The channel to assign the new position. Range: 0-7&nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 +
| width="90%" | Position
 +
|-
 +
| colspan="2" | Target position to move towards. Range: 0-65535&nbsp;
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
===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.
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{{Fcfile|Single servo motor control.fcfx|Servo Example 1}}
+
|-
The Servo controller is linked to the standard servo component but this could be linked to any object on the panel.
+
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetPositionInt'''
 +
|-
 +
| colspan="2" | Moves directly to the specified position with no interpolation. Uses a 16-bit position parameter to add extra precision.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Channel
 +
|-
 +
| colspan="2" | The channel to assign the new position. Range: 0-7&nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 +
| width="90%" | Position
 +
|-
 +
| colspan="2" | Position to jump to. Range: 0-65535&nbsp;
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
[[File:ServoLink.jpg]]
 
  
 +
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 +
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MoveToPosition'''
 +
|-
 +
| colspan="2" | 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.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Channel
 +
|-
 +
| colspan="2" | The channel to assign the new position. Range: 0-7&nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Position
 +
|-
 +
| colspan="2" | Target position to move towards. Range: 0-255&nbsp;
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
===Creating a multi-axis actuator using servo motors===
 
  
This example links two servo motors together using panel primitive objects and groups.
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{{Fcfile|Servo Demo.fcfx|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.
+
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetTrim'''
 +
|-
 +
| colspan="2" | Allows the level of trim for each servo channel to be adjusted progmatically.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Channel
 +
|-
 +
| colspan="2" | The channel to set the position for.  First channel is zero.&nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Trim
 +
|-
 +
| colspan="2" | Legacy: 0=0us, 1=+25us, 2=+50us, 3=+75us, 4=+100us, 5=-25us, 6=-50us, 7=-75us, 8=-100us or Smooth: 0-200&nbsp;
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
[[File:LinkedServo.jpg]]
 
  
==Downloadable macro reference==
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 +
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''IsAutoMoving'''
 +
|-
 +
| colspan="2" | Is the AutoMoveToPosition movement complete.  Returns 1 if the servos are still moving.  Returns 0 if all servo movement is complete.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
''This component does not contain any downloadable macros''
 
  
==Simulation macro reference==
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 +
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetAutoMoveSpeedInt'''
 +
|-
 +
| colspan="2" | Sets the speed of the auto move to position macro.  Default speed is shown in the Servo_Period_Multiplier property.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 +
| width="90%" | Speed
 +
|-
 +
| colspan="2" | 1=Slowest (Default), 2= Double, 3=Triple, 4=Quadruple&nbsp;
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
===<span style="font-weight: normal;"><u><tt>SetTarget</tt></u></span>===
 
Set a panel object to be 'connected' to the servo's.
 
  
The connected object will then move as if connected mechanically to
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 +
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''IsServoAutoMoving'''
 +
|-
 +
| colspan="2" | Is the AutoMoveToPosition movement complete for a specific servo output.  Returns 1 if the servo is still moving.  Returns 0 if the servo movement is complete.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Channel
 +
|-
 +
| colspan="2" | Servo Motor Output Range: 0-7&nbsp;
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
the servo's actuator.
 
  
'''Parameters'''
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 +
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''AutoMoveToPosition'''
 +
|-
 +
| colspan="2" | Automatically moves towards the new position at a fixed rate determined by the AutoMoveSpeed.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Channel
 +
|-
 +
| colspan="2" | The channel to assign the new position. Range: 0-7&nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Position
 +
|-
 +
| colspan="2" | Position to automatically move to. Range: 0-255&nbsp;
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
:[[Variable Types|HANDLE]] ''Target''
 
::Object to be moved by the motor
 
  
 +
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 +
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''EnableServo'''
 +
|-
 +
| colspan="2" | Enables a servo channel effectivly setting the position of the motor to the value in the local position variable.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Channel
 +
|-
 +
| colspan="2" | The channel to set the position for.  First channel is zero.&nbsp;
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
'''Return value'''
 
  
:''This call does not return a value''
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 +
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetAutoMoveSpeed'''
 +
|-
 +
| colspan="2" | Sets the speed of the auto move to position macro.  Default speed is shown in the Servo_Period_Multiplier property.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Speed
 +
|-
 +
| colspan="2" | 1=Slowest (Default), 2= Double, 3=Triple, 4=Quadruple&nbsp;
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
  
 +
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 +
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''AutoMoveToPositionInt'''
 +
|-
 +
| colspan="2" | Automatically moves towards the new 16-bit position at a fixed rate determined by the AutoMoveSpeed.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Channel
 +
|-
 +
| colspan="2" | The channel to assign the new position. Range: 0-7&nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 +
| width="90%" | Position
 +
|-
 +
| colspan="2" | Position to automatically move to. Range: 0-65535&nbsp;
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
  
==Property reference==
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
<span style="font-weight: normal;"><u>Moving Part</u></span>
+
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise'''
 +
|-
 +
| colspan="2" | Sets up the servo motor interrupts&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
This property is of type ''Panel object'' and can be referenced with the variable name ''moving_object''.
 
  
Set an object on the System Panel to be the servo's actuator.
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 +
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''WriteLEDs'''
 +
|-
 +
| colspan="2" | Allows control of all 8-LEDs on the front of the Formula Flowcode.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | LED_Byte
 +
|-
 +
| colspan="2" | &nbsp;
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
The object's position at the moment of selection is taken to be the 'rest' position of the actuator - the
 
  
maximum and minimum angles will be measured from this position.
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 +
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise'''
 +
|-
 +
| colspan="2" | Starts up the formula flowcode PWM for motor control and performs the wait for button press&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
<span style="font-weight: normal;"><u>Axis Object</u></span>
 
  
This property is of type ''Panel object'' and can be referenced with the variable name ''axis_object''.
 
  
Set a panel object to be the centre of rotation of the servo's actuator.
 
  
<span style="font-weight: normal;"><u>Move Around</u></span>
+
==Property reference==
  
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''rot_axis''.
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
+
|-
Set the axis around which the actuator will revolve.
+
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]]
 
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties'''
If an 'Axis Object' is chosen, this will be a local axis of the chosen object, otherwise it will be the
+
|-
 
+
|-
current world axes.
+
| width="10%" align="center" | [[File:Fc9-type-17-icon.png]]
 
+
| width="90%" | Moving Part
<span style="font-weight: normal;"><u>Minimum (degrees)</u></span>
+
|-
 
+
| colspan="2" | Set an object on the System Panel to be the servo's actuator. The object's position at the moment of selection is taken to be the 'rest' position of the actuator - the maximum and minimum angles will be measured from this position.&nbsp;
This property is of type ''Floating point'' and can be referenced with the variable name ''rot_min''.
+
|-
 
+
| width="10%" align="center" | [[File:Fc9-type-17-icon.png]]
Angle that the servo turns when the PWM signal is at its minimum.
+
| width="90%" | Axis Object
 
+
|-
Measured from the actuator object's 'rest' position, chosen at the time of connecting the object.
+
| colspan="2" | Set a panel object to be the centre of rotation of the servo's actuator.&nbsp;
 
+
|-
<span style="font-weight: normal;"><u>Maximum (degrees)</u></span>
+
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
+
| width="90%" | Move Around
This property is of type ''Floating point'' and can be referenced with the variable name ''rot_max''.
+
|-
 
+
| colspan="2" | Set the axis around which the actuator will revolve. If an 'Axis Object' is chosen, this will be a local axis of the chosen object, otherwise it will be the current world axes.&nbsp;
Angle that the servo turns when the PWM signal is at its maximum.
+
|-
 
+
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
Measured from the actuator object's 'rest' position, chosen at the time of connecting the object.
+
| width="90%" | Movement Type
 +
|-
 +
| colspan="2" | &nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-type-15-icon.png]]
 +
| width="90%" | Minimum (degrees)
 +
|-
 +
| colspan="2" | Angle that the servo turns when the PWM signal is at its minimum. Measured from the actuator object's 'rest' position, chosen at the time of connecting the object.&nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-type-15-icon.png]]
 +
| width="90%" | Maximum (degrees)
 +
|-
 +
| colspan="2" | Angle that the servo turns when the PWM signal is at its maximum. Measured from the actuator object's 'rest' position, chosen at the time of connecting the object.&nbsp;
 +
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-conn-icon.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Connections'''
 +
|-
 +
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-conn-icon.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Simulations'''
 +
|-
 +
|}

Revision as of 21:05, 16 November 2021

Author Matrix Ltd
Version 1.1
Category Mechatronics


Servo Motor Template component

Base component for creating custom servo motor simulations. Recieves messages from the the 'Servo Controller' component. Macro 'SetTarget' allows external objects to be moved by the servo for mechanical simulations.

Detailed description

No detailed description exists yet for this component

Examples

No additional examples

Downloadable macro reference

Fc9-comp-macro.png SetTarget
Set a panel object to be 'connected' to the servo's. The connected object will then move as if connected mechanically to the servo's actuator. 
[[File:]] - Target
Object to be moved by the motor 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png MoveToPositionInt
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. 
Fc9-u8-icon.png - BYTE Channel
The channel to assign the new position. Range: 0-7 
Fc9-u16-icon.png - UINT Position
Target position to move towards. Range: 0-65535 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png SetPositionInt
Moves directly to the specified position with no interpolation. Uses a 16-bit position parameter to add extra precision. 
Fc9-u8-icon.png - BYTE Channel
The channel to assign the new position. Range: 0-7 
Fc9-u16-icon.png - UINT Position
Position to jump to. Range: 0-65535 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png 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. 
Fc9-u8-icon.png - BYTE Channel
The channel to assign the new position. Range: 0-7 
Fc9-u8-icon.png - BYTE Position
Target position to move towards. Range: 0-255 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png SetTrim
Allows the level of trim for each servo channel to be adjusted progmatically. 
Fc9-u8-icon.png - BYTE Channel
The channel to set the position for. First channel is zero. 
Fc9-u8-icon.png - BYTE Trim
Legacy: 0=0us, 1=+25us, 2=+50us, 3=+75us, 4=+100us, 5=-25us, 6=-50us, 7=-75us, 8=-100us or Smooth: 0-200 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png IsAutoMoving
Is the AutoMoveToPosition movement complete. Returns 1 if the servos are still moving. Returns 0 if all servo movement is complete. 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png SetAutoMoveSpeedInt
Sets the speed of the auto move to position macro. Default speed is shown in the Servo_Period_Multiplier property. 
Fc9-u16-icon.png - UINT Speed
1=Slowest (Default), 2= Double, 3=Triple, 4=Quadruple 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png IsServoAutoMoving
Is the AutoMoveToPosition movement complete for a specific servo output. Returns 1 if the servo is still moving. Returns 0 if the servo movement is complete. 
Fc9-u8-icon.png - BYTE Channel
Servo Motor Output Range: 0-7 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png AutoMoveToPosition
Automatically moves towards the new position at a fixed rate determined by the AutoMoveSpeed. 
Fc9-u8-icon.png - BYTE Channel
The channel to assign the new position. Range: 0-7 
Fc9-u8-icon.png - BYTE Position
Position to automatically move to. Range: 0-255 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png EnableServo
Enables a servo channel effectivly setting the position of the motor to the value in the local position variable. 
Fc9-u8-icon.png - BYTE Channel
The channel to set the position for. First channel is zero. 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png SetAutoMoveSpeed
Sets the speed of the auto move to position macro. Default speed is shown in the Servo_Period_Multiplier property. 
Fc9-u8-icon.png - BYTE Speed
1=Slowest (Default), 2= Double, 3=Triple, 4=Quadruple 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png AutoMoveToPositionInt
Automatically moves towards the new 16-bit position at a fixed rate determined by the AutoMoveSpeed. 
Fc9-u8-icon.png - BYTE Channel
The channel to assign the new position. Range: 0-7 
Fc9-u16-icon.png - UINT Position
Position to automatically move to. Range: 0-65535 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png Initialise
Sets up the servo motor interrupts 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png WriteLEDs
Allows control of all 8-LEDs on the front of the Formula Flowcode. 
Fc9-u8-icon.png - BYTE LED_Byte
 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png Initialise
Starts up the formula flowcode PWM for motor control and performs the wait for button press 
Fc9-void-icon.png - VOID Return



Property reference

Fc9-prop-icon.png Properties
Fc9-type-17-icon.png Moving Part
Set an object on the System Panel to be the servo's actuator. The object's position at the moment of selection is taken to be the 'rest' position of the actuator - the maximum and minimum angles will be measured from this position. 
Fc9-type-17-icon.png Axis Object
Set a panel object to be the centre of rotation of the servo's actuator. 
Fc9-type-16-icon.png Move Around
Set the axis around which the actuator will revolve. If an 'Axis Object' is chosen, this will be a local axis of the chosen object, otherwise it will be the current world axes. 
Fc9-type-16-icon.png Movement Type
 
Fc9-type-15-icon.png Minimum (degrees)
Angle that the servo turns when the PWM signal is at its minimum. Measured from the actuator object's 'rest' position, chosen at the time of connecting the object. 
Fc9-type-15-icon.png Maximum (degrees)
Angle that the servo turns when the PWM signal is at its maximum. Measured from the actuator object's 'rest' position, chosen at the time of connecting the object. 
Fc9-conn-icon.png Connections
Fc9-conn-icon.png Simulations