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

From Flowcode Help
Jump to navigationJump to search
 
(15 intermediate revisions by the same user not shown)
Line 14: Line 14:
 
==Stepper Motor Template component==
 
==Stepper Motor Template component==
 
Enables the creation of a stepper motor component by specifying objects for its appearance. 'Attach to...' property should be exposed in any components buit from this - this sets a target object to be joined to the motor shaft. The target can then be rotated around the axis with a custom gear ration, or moved linearly according to the pitch of a given lead screw.
 
Enables the creation of a stepper motor component by specifying objects for its appearance. 'Attach to...' property should be exposed in any components buit from this - this sets a target object to be joined to the motor shaft. The target can then be rotated around the axis with a custom gear ration, or moved linearly according to the pitch of a given lead screw.
 +
 +
==Component Source Code==
 +
 +
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_Stepper_Motor_Base.fcfx FC_Comp_Source_Stepper_Motor_Base.fcfx]
 +
 +
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_Stepper_Motor_Base.fcfx FC_Comp_Source_Stepper_Motor_Base.fcfx]
  
 
==Detailed description==
 
==Detailed description==
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
  
 
''No detailed description exists yet for this component''
 
''No detailed description exists yet for this component''
Line 22: Line 44:
  
  
===Attaching a primitive to a stepper motor===
 
  
This example links a panel primitive to the output of the motor.
 
{{Fcfile|Stepper.fcfx|Stepper Example 1}}
 
The linked object can be rotated or moved in a fixed direction by the motor.
 
  
[[File:StepperProps.jpg]]
 
  
  
===Linear movement using a stepper motor===
 
  
This example links two stepper motors together using linear type movements rather then rotational similar to a stepper attached to a lead screw.
 
{{Fcfile|Stepper Linear Demo.fcfx|Stepper Example 2}}
 
The stepper is linked to the objects on the panel using properties and grouping.
 
  
[[File:LinStepper.jpg]]
 
  
  
===Creating a multi-axis actuator using stepper motors===
 
  
This example links three stepper motors together using panel primitive objects and groups.
 
{{Fcfile|Stepper Demo.fcfx|Stepper Example 3}}
 
Here we can see the actuator arm in motion.
 
  
[[File:LinkedStepper.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;" | '''IncrementStep'''
 
|-
 
| colspan="2" | Move the motor forward by one step. 
 
|-
 
|-
 
| 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;"
+
 
|-
+
''<span style="color:red;">No additional examples</span>''
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetTarget'''
 
|-
 
| colspan="2" | Assign a panel object to be moved by the motor. Once linked, the object will respond to the 'Motor Simulation' properties, and it will be moved whenever the motor is stepped.&nbsp;
 
|-
 
|-
 
| width="10%" align="center" | [[File:]] -
 
| width="90%" | target
 
|-
 
| colspan="2" | An 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''
 
|}
 
  
  
{| 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;" | '''DecrementStep'''
 
|-
 
| colspan="2" | Move the motor backwards by one step.&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;" | '''EnableMotor'''
 
|-
 
| colspan="2" | Turn on the motor.  This must be done before it will respond to any other macros.&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;" | '''DisableMotor'''
 
|-
 
| colspan="2" | Turn off the motor.  It will no longer respond to any other macros.&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;" | '''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''
 
|}
 
  
  
{| 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''
 
|}
 
  
  
{| 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''
 
|}
 
  
 +
==Macro reference==
  
 +
===DecrementStep===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''IsServoAutoMoving'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''DecrementStep'''
 
|-
 
|-
| 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;
+
| colspan="2" | Move the motor backwards by one step.&nbsp;
 
|-
 
|-
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
+
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| 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''
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
 
|}
  
  
 +
===DisableMotor===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''AutoMoveToPosition'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''DisableMotor'''
|-
 
| colspan="2" | Automatically moves towards the new position at a fixed rate determined by the AutoMoveSpeed.&nbsp;
 
 
|-
 
|-
 +
| colspan="2" | Turn off the motor.  It will no longer respond to any other macros.&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="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
Line 215: Line 103:
  
  
 +
===EnableMotor===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''EnableServo'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''EnableMotor'''
 
|-
 
|-
| colspan="2" | Enables a servo channel effectivly setting the position of the motor to the value in the local position variable.&nbsp;
+
| colspan="2" | Turn on the motor.  This must be done before it will respond to any other macros.&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="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
Line 233: Line 117:
  
  
 +
===IncrementStep===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetAutoMoveSpeed'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''IncrementStep'''
 
|-
 
|-
| colspan="2" | Sets the speed of the auto move to position macro.  Default speed is shown in the Servo_Period_Multiplier property.&nbsp;
+
| colspan="2" | Move the motor forward by one step.&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="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
Line 251: Line 131:
  
  
 +
===SetTarget===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''AutoMoveToPositionInt'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetTarget'''
 
|-
 
|-
| colspan="2" | Automatically moves towards the new 16-bit position at a fixed rate determined by the AutoMoveSpeed.&nbsp;
+
| colspan="2" | Assign a panel object to be moved by the motor. Once linked, the object will respond to the 'Motor Simulation' properties, and it will be moved whenever the motor is stepped.&nbsp;
 
|-
 
|-
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
+
| width="10%" align="center" | [[File:Fc9-h32-icon.png]] - HANDLE
| width="90%" | Channel
+
| width="90%" | target
 
|-
 
|-
| colspan="2" | The channel to assign the new position. Range: 0-7&nbsp;
+
| colspan="2" | An object to be moved by the motor.&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="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
Line 273: Line 149:
 
|}
 
|}
  
 +
 +
==Property reference==
  
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
+
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties'''  
 
|-
 
|-
| colspan="2" | Sets up the servo motor interrupts&nbsp;
 
 
|-
 
|-
 +
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
 +
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Connections
 
|-
 
|-
| 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="10%" align="center" | [[File:Fc9-type-16-icon.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''WriteLEDs'''
+
| width="90%" | Driver
 
|-
 
|-
| colspan="2" | Allows control of all 8-LEDs on the front of the Formula Flowcode.&nbsp;
+
| colspan="2" | &nbsp;
 
|-
 
|-
 +
| width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
 +
| width="90%" | Coil 1
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
+
| colspan="2" | Chip pin to which the first motor coil is connected.&nbsp;
| width="90%" | LED_Byte
 
 
|-
 
|-
| colspan="2" | &nbsp;
+
| width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
 +
| width="90%" | Coil 2
 
|-
 
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
+
| colspan="2" | Chip pin to which the second motor coil is connected.&nbsp;
| 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="10%" align="center" | [[File:Fc9-type-5-icon.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise'''
+
| width="90%" | Coil 3
 
|-
 
|-
| colspan="2" | Starts up the formula flowcode PWM for motor control and performs the wait for button press&nbsp;
+
| colspan="2" | Chip pin to which the third motor coil is connected.&nbsp;
 
|-
 
|-
 +
| width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
 +
| width="90%" | Coil 4
 
|-
 
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
+
| colspan="2" | Chip pin to which the fourth motor coil is connected.&nbsp;
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
 
 
 
 
 
 
 
 
 
==Property reference==
 
 
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
 
|-
 
|-
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]]
+
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties'''
+
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Motor Setup
 
|-
 
|-
 
|-
 
|-
Line 347: Line 210:
 
|-
 
|-
 
| colspan="2" | Amount of change in the shaft angle when the IncrementStep / DecrementStep functions are called.&nbsp;
 
| colspan="2" | Amount of change in the shaft angle when the IncrementStep / DecrementStep functions are called.&nbsp;
 +
|-
 +
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
 +
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Motor Simulation
 +
|-
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-17-icon.png]]
 
| width="10%" align="center" | [[File:Fc9-type-17-icon.png]]
Line 362: Line 229:
 
|-
 
|-
 
| colspan="2" | The axis of the 'Rotaion Centre' object around which the 'Rotating Part' will rotate.&nbsp;
 
| colspan="2" | The axis of the 'Rotaion Centre' object around which the 'Rotating Part' will rotate.&nbsp;
 +
|-
 +
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
 +
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Coil Simulation
 +
|-
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
 
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
Line 402: Line 273:
 
|-
 
|-
 
| colspan="2" | Make the coil objects this colour when they ARE energised,.&nbsp;
 
| colspan="2" | Make the coil objects this colour when they ARE energised,.&nbsp;
 +
|-
 +
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
 +
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Target Object
 +
|-
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-15-icon.png]]
 
| width="10%" align="center" | [[File:Fc9-type-15-icon.png]]
Line 422: Line 297:
 
|-
 
|-
 
| colspan="2" | Set this to a non-zero value to move the target object linearly along its Z-Axis whenever the motor spins. The value is the distance to move (world units) per complete rotation of the motor shaft - i.e. it simulates a typical linear drive that uses a lead-screw, with the property value equal to the screw pitch.&nbsp;
 
| colspan="2" | Set this to a non-zero value to move the target object linearly along its Z-Axis whenever the motor spins. The value is the distance to move (world units) per complete rotation of the motor shaft - i.e. it simulates a typical linear drive that uses a lead-screw, with the property value equal to the screw pitch.&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" | [[File:Fc9-type-16-icon.png]]
 
| width="90%" | Driver
 
|-
 
| colspan="2" | &nbsp;
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
 
| width="90%" | Coil 1
 
|-
 
| colspan="2" | Chip pin to which the first motor coil is connected.&nbsp;
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
 
| width="90%" | Coil 2
 
|-
 
| colspan="2" | Chip pin to which the second motor coil is connected.&nbsp;
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
 
| width="90%" | Coil 3
 
|-
 
| colspan="2" | Chip pin to which the third motor coil is connected.&nbsp;
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
 
| width="90%" | Coil 4
 
|-
 
| colspan="2" | Chip pin to which the fourth motor coil is connected.&nbsp;
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-conn-icon.png]]
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Simulations'''
 
|-
 
 
|}
 
|}

Latest revision as of 11:57, 3 November 2023

Author Matrix Ltd
Version 1.2
Category Mechatronics


Stepper Motor Template component

Enables the creation of a stepper motor component by specifying objects for its appearance. 'Attach to...' property should be exposed in any components buit from this - this sets a target object to be joined to the motor shaft. The target can then be rotated around the axis with a custom gear ration, or moved linearly according to the pitch of a given lead screw.

Component Source Code

Please click here to download the component source project: FC_Comp_Source_Stepper_Motor_Base.fcfx

Please click here to view the component source code (Beta): FC_Comp_Source_Stepper_Motor_Base.fcfx

Detailed description

No detailed description exists yet for this component

Examples

No additional examples







Macro reference

DecrementStep

Fc9-comp-macro.png DecrementStep
Move the motor backwards by one step. 
Fc9-void-icon.png - VOID Return


DisableMotor

Fc9-comp-macro.png DisableMotor
Turn off the motor. It will no longer respond to any other macros. 
Fc9-void-icon.png - VOID Return


EnableMotor

Fc9-comp-macro.png EnableMotor
Turn on the motor. This must be done before it will respond to any other macros. 
Fc9-void-icon.png - VOID Return


IncrementStep

Fc9-comp-macro.png IncrementStep
Move the motor forward by one step. 
Fc9-void-icon.png - VOID Return


SetTarget

Fc9-comp-macro.png SetTarget
Assign a panel object to be moved by the motor. Once linked, the object will respond to the 'Motor Simulation' properties, and it will be moved whenever the motor is stepped. 
Fc9-h32-icon.png - HANDLE target
An object to be moved by the motor. 
Fc9-void-icon.png - VOID Return


Property reference

Fc9-prop-icon.png Properties
Fc9-conn-icon.png Connections
Fc9-type-16-icon.png Driver
 
Fc9-type-5-icon.png Coil 1
Chip pin to which the first motor coil is connected. 
Fc9-type-5-icon.png Coil 2
Chip pin to which the second motor coil is connected. 
Fc9-type-5-icon.png Coil 3
Chip pin to which the third motor coil is connected. 
Fc9-type-5-icon.png Coil 4
Chip pin to which the fourth motor coil is connected. 
Fc9-conn-icon.png Motor Setup
Fc9-type-16-icon.png Winding Type
The polarity settings of the motor windings. Refer to the data-sheet for your chosen hardware to determine this value. 
Fc9-type-16-icon.png Step Type
Trade accuracy against torque by changing the type of stepping. Refer to the data-sheet for your chosen hardware to determine which modes your device supports. 
Fc9-type-14-icon.png Steps Per Revolution
The number of steps it takes for the motor shaft to turn a full circle (360 degrees). Refer to the data-sheet for your chosen hardware to determine this value. 
Fc9-type-15-icon.png Angle Increment
Amount of change in the shaft angle when the IncrementStep / DecrementStep functions are called. 
Fc9-conn-icon.png Motor Simulation
Fc9-type-17-icon.png Rotating Part
Select a panel object here that will represent the moving part of the motor - for example, an output shaft or actuator. 
Fc9-type-17-icon.png Rotation Centre
Select a panel object to be the centre of rotation of the 'Rotating Part'. If non is chosen, the 'Rotating Part' will revove around its own axes. 
Fc9-type-16-icon.png Rotate Around
The axis of the 'Rotaion Centre' object around which the 'Rotating Part' will rotate. 
Fc9-conn-icon.png Coil Simulation
Fc9-type-7-icon.png Waveforms
Allows waveforms to be auto generated on the data recorder window. 
Fc9-type-7-icon.png Coil Simulation
Turn coil simulation on and off. 
Fc9-type-17-icon.png Coil 1
Choose a panel object to represent the first coil. The simulation will automatically change this object's color to visualise when it is energised. 
Fc9-type-17-icon.png Coil 2
Choose a panel object to represent the second coil. The simulation will automatically change this object's color to visualise when it is energised. 
Fc9-type-17-icon.png Coil 3
Choose a panel object to represent the third coil. The simulation will automatically change this object's color to visualise when it is energised. 
Fc9-type-17-icon.png Coil 4
Choose a panel object to represent the fourth coil. The simulation will automatically change this object's color to visualise when it is energised. 
Fc9-type-1-icon.png Colour Non Active Coil
Make coil object this colour when they are NOT energised. 
Fc9-type-1-icon.png Colour Active Coil
Make the coil objects this colour when they ARE energised,. 
Fc9-conn-icon.png Target Object
Fc9-type-15-icon.png Gear Ratio
Set a non-zero value here to make the target object rotate whenever the motor spins. The target will revolve around the same axis as the motor's own 'Moving Part' (e.g. drive shaft). A value of 1.00 make the target spin at the same speed as the motor. Choose other values to set the ratio of a 'virtual gearbox' to change the speed of the target's movement. 
Fc9-type-15-icon.png X Linear Pitch
Set this to a non-zero value to move the target object linearly along its X-Axis whenever the motor spins. The value is the distance to move (world units) per complete rotation of the motor shaft - i.e. it simulates a typical linear drive that uses a lead-screw, with the property value equal to the screw pitch. 
Fc9-type-15-icon.png Y Linear Pitch
Set this to a non-zero value to move the target object linearly along its Y-Axis whenever the motor spins. The value is the distance to move (world units) per complete rotation of the motor shaft - i.e. it simulates a typical linear drive that uses a lead-screw, with the property value equal to the screw pitch. 
Fc9-type-15-icon.png Z Linear Pitch
Set this to a non-zero value to move the target object linearly along its Z-Axis whenever the motor spins. The value is the distance to move (world units) per complete rotation of the motor shaft - i.e. it simulates a typical linear drive that uses a lead-screw, with the property value equal to the screw pitch.