Jump to content

Component: Actuators (BL0127) (E-blocks 2): Difference between revisions

From Flowcode Help
No edit summary
m Text replacement - "style="background-color:#EAE1EA;"" to "class="mtx-class-propfolder""
 
(11 intermediate revisions by 3 users not shown)
Line 15: Line 15:
The Actuators board allows for investigation into several different motor types.  Included on the board is a DC motor with both analogue and digital feedback,  a servo motor and a stepper motor plus the circuitry to drive the motors.
The Actuators board allows for investigation into several different motor types.  Included on the board is a DC motor with both analogue and digital feedback,  a servo motor and a stepper motor plus the circuitry to drive the motors.


==Component Source Code==
==Version information==


Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_temp/EBlocks2_Actuators_BL0127.fcfx FC_Comp_Source_temp/EBlocks2_Actuators_BL0127.fcfx]
Library Version, Component Version, Date, Author, Info
4, 1.0, 08-05-25, BR, Added autodetect port on Ev_PostInitialise


Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_temp/EBlocks2_Actuators_BL0127.fcfx FC_Comp_Source_temp/EBlocks2_Actuators_BL0127.fcfx]


==Detailed description==
==Detailed description==
Line 61: Line 61:




Sample program using the EBM020 - Infrared sensor.
Demo program using the Eblocks 2 Actuators Board BL0127 connected to BL0011 PIC programmer
 
{{Fcfile|BL0127 Actuators Demo PIC.fcfx|BL0127 Actuators Demo for PIC}}
Transmits a signal and determines distance from reflected value
 
{{Fcfile|EBM020 - Test Program.fcfx|EBM020 Example}}
 
 
 
 
 




Line 77: Line 69:


===DCMotor_Break===
===DCMotor_Break===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''DCMotor_Break'''
| width="90%" class="mtx-class-macrohead" | '''DCMotor_Break'''
|-
|-
| colspan="2" | Actively drives both ends of the motor by setting the pins according to the 'Brake Pattern' property. 
| colspan="2" | Actively drives both ends of the motor by setting the pins according to the 'Brake Pattern' property. 
Line 91: Line 83:


===DCMotor_Coast===
===DCMotor_Coast===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''DCMotor_Coast'''
| width="90%" class="mtx-class-macrohead" | '''DCMotor_Coast'''
|-
|-
| colspan="2" | Turn off power to the motor by setting the pins according to the 'Coast Pattern' property. 
| colspan="2" | Turn off power to the motor by setting the pins according to the 'Coast Pattern' property. 
Line 105: Line 97:


===DCMotor_DC_Feedback===
===DCMotor_DC_Feedback===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''DCMotor_DC_Feedback'''
| width="90%" class="mtx-class-macrohead" | '''DCMotor_DC_Feedback'''
|-
|-
| colspan="2" |  
| colspan="2" |  
Line 119: Line 111:


===DCMotor_DC_FeedbackSim===
===DCMotor_DC_FeedbackSim===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''DCMotor_DC_FeedbackSim'''
| width="90%" class="mtx-class-macrohead" | '''DCMotor_DC_FeedbackSim'''
|-
|-
| colspan="2" |  
| colspan="2" |  
Line 133: Line 125:


===DCMotor_Disable===
===DCMotor_Disable===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''DCMotor_Disable'''
| width="90%" class="mtx-class-macrohead" | '''DCMotor_Disable'''
|-
|-
| colspan="2" | Disable the motor output 
| colspan="2" | Disable the motor output 
Line 147: Line 139:


===DCMotor_Enable===
===DCMotor_Enable===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''DCMotor_Enable'''
| width="90%" class="mtx-class-macrohead" | '''DCMotor_Enable'''
|-
|-
| colspan="2" | Enables the motor output 
| colspan="2" | Enables the motor output 
Line 161: Line 153:


===DCMotor_Forwards===
===DCMotor_Forwards===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''DCMotor_Forwards'''
| width="90%" class="mtx-class-macrohead" | '''DCMotor_Forwards'''
|-
|-
| colspan="2" | Set the motor turning in the forwards direction by setting the pins according to the 'Forwards Pattern' property. 
| colspan="2" | Set the motor turning in the forwards direction by setting the pins according to the 'Forwards Pattern' property. 
Line 180: Line 172:


===DCMotor_Reverse===
===DCMotor_Reverse===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''DCMotor_Reverse'''
| width="90%" class="mtx-class-macrohead" | '''DCMotor_Reverse'''
|-
|-
| colspan="2" | Set the motor turning in the reverse direction by setting the pins according to the 'Reverse Pattern' property. 
| colspan="2" | Set the motor turning in the reverse direction by setting the pins according to the 'Reverse Pattern' property. 
Line 199: Line 191:


===Servo_AutoMoveToPosition===
===Servo_AutoMoveToPosition===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Servo_AutoMoveToPosition'''
| width="90%" class="mtx-class-macrohead" | '''Servo_AutoMoveToPosition'''
|-
|-
| colspan="2" | Automatically moves towards the new position at a fixed rate determined by the AutoMoveSpeed. 
| colspan="2" | Automatically moves towards the new position at a fixed rate determined by the AutoMoveSpeed. 
Line 223: Line 215:


===Servo_AutoMoveToPositionInt===
===Servo_AutoMoveToPositionInt===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Servo_AutoMoveToPositionInt'''
| width="90%" class="mtx-class-macrohead" | '''Servo_AutoMoveToPositionInt'''
|-
|-
| colspan="2" | Automatically moves towards the new 16-bit position at a fixed rate determined by the AutoMoveSpeed. 
| colspan="2" | Automatically moves towards the new 16-bit position at a fixed rate determined by the AutoMoveSpeed. 
Line 247: Line 239:


===Servo_DisableServo===
===Servo_DisableServo===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Servo_DisableServo'''
| width="90%" class="mtx-class-macrohead" | '''Servo_DisableServo'''
|-
|-
| colspan="2" | Disables a servo channel effectivly disabling the motor. 
| colspan="2" | Disables a servo channel effectivly disabling the motor. 
Line 266: Line 258:


===Servo_EnableServo===
===Servo_EnableServo===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Servo_EnableServo'''
| width="90%" class="mtx-class-macrohead" | '''Servo_EnableServo'''
|-
|-
| colspan="2" | Enables a servo channel effectivly setting the position of the motor to the value in the local position variable. 
| colspan="2" | Enables a servo channel effectivly setting the position of the motor to the value in the local position variable. 
Line 285: Line 277:


===Servo_Initialise===
===Servo_Initialise===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Servo_Initialise'''
| width="90%" class="mtx-class-macrohead" | '''Servo_Initialise'''
|-
|-
| colspan="2" | Sets up the servo motor interrupts 
| colspan="2" | Sets up the servo motor interrupts 
Line 299: Line 291:


===Servo_IsAutoMoving===
===Servo_IsAutoMoving===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Servo_IsAutoMoving'''
| width="90%" class="mtx-class-macrohead" | '''Servo_IsAutoMoving'''
|-
|-
| colspan="2" | Is the AutoMoveToPosition movement complete.  Returns 1 if the servos are still moving.  Returns 0 if all servo movement is complete. 
| colspan="2" | Is the AutoMoveToPosition movement complete.  Returns 1 if the servos are still moving.  Returns 0 if all servo movement is complete. 
Line 313: Line 305:


===Servo_IsServoAutoMoving===
===Servo_IsServoAutoMoving===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Servo_IsServoAutoMoving'''
| width="90%" class="mtx-class-macrohead" | '''Servo_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. 
| 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. 
Line 332: Line 324:


===Servo_MoveToPosition===
===Servo_MoveToPosition===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Servo_MoveToPosition'''
| width="90%" class="mtx-class-macrohead" | '''Servo_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. 
| 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. 
Line 356: Line 348:


===Servo_MoveToPositionInt===
===Servo_MoveToPositionInt===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Servo_MoveToPositionInt'''
| width="90%" class="mtx-class-macrohead" | '''Servo_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. 
| 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. 
Line 380: Line 372:


===Servo_SetAutoMoveSpeed===
===Servo_SetAutoMoveSpeed===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Servo_SetAutoMoveSpeed'''
| width="90%" class="mtx-class-macrohead" | '''Servo_SetAutoMoveSpeed'''
|-
|-
| colspan="2" | Sets the speed of the auto move to position macro.  Default speed is shown in the Servo_Period_Multiplier property. 
| colspan="2" | Sets the speed of the auto move to position macro.  Default speed is shown in the Servo_Period_Multiplier property. 
Line 399: Line 391:


===Servo_SetAutoMoveSpeedInt===
===Servo_SetAutoMoveSpeedInt===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Servo_SetAutoMoveSpeedInt'''
| width="90%" class="mtx-class-macrohead" | '''Servo_SetAutoMoveSpeedInt'''
|-
|-
| colspan="2" | Sets the speed of the auto move to position macro.  Default speed is shown in the Servo_Period_Multiplier property. 
| colspan="2" | Sets the speed of the auto move to position macro.  Default speed is shown in the Servo_Period_Multiplier property. 
Line 418: Line 410:


===Servo_SetPosition===
===Servo_SetPosition===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Servo_SetPosition'''
| width="90%" class="mtx-class-macrohead" | '''Servo_SetPosition'''
|-
|-
| colspan="2" | Moves directly to the specified position with no interpolation.  
| colspan="2" | Moves directly to the specified position with no interpolation.  
Line 442: Line 434:


===Servo_SetPositionInt===
===Servo_SetPositionInt===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Servo_SetPositionInt'''
| width="90%" class="mtx-class-macrohead" | '''Servo_SetPositionInt'''
|-
|-
| colspan="2" | Moves directly to the specified position with no interpolation. Uses a 16-bit position parameter to add extra precision. 
| colspan="2" | Moves directly to the specified position with no interpolation. Uses a 16-bit position parameter to add extra precision. 
Line 466: Line 458:


===Servo_SetTrim===
===Servo_SetTrim===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Servo_SetTrim'''
| width="90%" class="mtx-class-macrohead" | '''Servo_SetTrim'''
|-
|-
| colspan="2" | Allows the level of trim for each servo channel to be adjusted progmatically. 
| colspan="2" | Allows the level of trim for each servo channel to be adjusted progmatically. 
Line 490: Line 482:


===Stepper_DecrementStep===
===Stepper_DecrementStep===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Stepper_DecrementStep'''
| width="90%" class="mtx-class-macrohead" | '''Stepper_DecrementStep'''
|-
|-
| colspan="2" | Move the motor backwards by one step. 
| colspan="2" | Move the motor backwards by one step. 
Line 504: Line 496:


===Stepper_DisableMotor===
===Stepper_DisableMotor===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Stepper_DisableMotor'''
| width="90%" class="mtx-class-macrohead" | '''Stepper_DisableMotor'''
|-
|-
| colspan="2" | Turn off the motor.  It will no longer respond to any other macros. 
| colspan="2" | Turn off the motor.  It will no longer respond to any other macros. 
Line 518: Line 510:


===Stepper_EnableMotor===
===Stepper_EnableMotor===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Stepper_EnableMotor'''
| width="90%" class="mtx-class-macrohead" | '''Stepper_EnableMotor'''
|-
|-
| colspan="2" | Turn on the motor.  This must be done before it will respond to any other macros. 
| colspan="2" | Turn on the motor.  This must be done before it will respond to any other macros. 
Line 532: Line 524:


===Stepper_IncrementStep===
===Stepper_IncrementStep===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Stepper_IncrementStep'''
| width="90%" class="mtx-class-macrohead" | '''Stepper_IncrementStep'''
|-
|-
| colspan="2" | Move the motor forward by one step. 
| colspan="2" | Move the motor forward by one step. 
Line 543: Line 535:
| width="90%" style="border-top: 2px solid #000;" | ''Return''
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
|}




==Property reference==
==Property reference==


{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties'''  
| width="90%" class="mtx-class-macrohead" | '''Properties'''  
|-
|-
|-
|-
Line 565: Line 555:
| colspan="2" | Select if the feedback is a digital or analogue value. Note, if using an Arduino shield and port D is selected, then only digital type will be available.  
| colspan="2" | Select if the feedback is a digital or analogue value. Note, if using an Arduino shield and port D is selected, then only digital type will be available.  
|-
|-
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Connections
| width="90%" class="mtx-class-propfolder" | Connections
|-
|-
|-
|-
Line 574: Line 564:
| colspan="2" | Port C is not available on the Arduino shield, If port C is slected, it will default to port B. 
| colspan="2" | Port C is not available on the Arduino shield, If port C is slected, it will default to port B. 
|-
|-
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Servo
| width="90%" class="mtx-class-propfolder" | Servo
|-
|-
|-
|-
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Trim
| width="90%" class="mtx-class-propfolder" | Trim
|-
|-
|-
|-
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Pulse Width
| width="90%" class="mtx-class-propfolder" | Pulse Width
|-
|-
|-
|-
Line 601: Line 591:
| colspan="2" | Number of instructions for 1 / 256th of the positional accuracy. This sets the default movement speed to maintain legacy move speeds. Also sets the multiplication factor to convert from a byte 0-255 to a clocked position value. 
| colspan="2" | Number of instructions for 1 / 256th of the positional accuracy. This sets the default movement speed to maintain legacy move speeds. Also sets the multiplication factor to convert from a byte 0-255 to a clocked position value. 
|}
|}
==Component Source Code==
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_EB_Actuators_BL0127.fcfx FC_Comp_Source_EB_Actuators_BL0127.fcfx]
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_EB_Actuators_BL0127.fcfx FC_Comp_Source_EB_Actuators_BL0127.fcfx]

Latest revision as of 14:37, 13 July 2026

Author Matrix TSL
Version 1.0
Category E-blocks 2


Actuators component

The Actuators board allows for investigation into several different motor types. Included on the board is a DC motor with both analogue and digital feedback, a servo motor and a stepper motor plus the circuitry to drive the motors.

Version information

Library Version, Component Version, Date, Author, Info
4, 1.0, 08-05-25, BR, Added autodetect port on Ev_PostInitialise


Detailed description

No detailed description exists yet for this component

Examples

Demo program using the Eblocks 2 Actuators Board BL0127 connected to BL0011 PIC programmer BL0127 Actuators Demo for PIC


Macro reference

DCMotor_Break

DCMotor_Break
Actively drives both ends of the motor by setting the pins according to the 'Brake Pattern' property. 
- VOID Return


DCMotor_Coast

DCMotor_Coast
Turn off power to the motor by setting the pins according to the 'Coast Pattern' property. 
- VOID Return


DCMotor_DC_Feedback

DCMotor_DC_Feedback
 
- BYTE Return


DCMotor_DC_FeedbackSim

DCMotor_DC_FeedbackSim
 
- BYTE Return


DCMotor_Disable

DCMotor_Disable
Disable the motor output 
- VOID Return


DCMotor_Enable

DCMotor_Enable
Enables the motor output 
- VOID Return


DCMotor_Forwards

DCMotor_Forwards
Set the motor turning in the forwards direction by setting the pins according to the 'Forwards Pattern' property. 
- UINT Duty
Sets the motor power for PWM or H-Bridge outputs 
- VOID Return


DCMotor_Reverse

DCMotor_Reverse
Set the motor turning in the reverse direction by setting the pins according to the 'Reverse Pattern' property. 
- UINT Duty
Sets the motor power for PWM or H-Bridge outputs 
- VOID Return


Servo_AutoMoveToPosition

Servo_AutoMoveToPosition
Automatically moves towards the new position at a fixed rate determined by the AutoMoveSpeed. 
- BYTE Channel
The channel to assign the new position. Range: 0-7 
- BYTE Position
Position to automatically move to. Range: 0-255 
- VOID Return


Servo_AutoMoveToPositionInt

Servo_AutoMoveToPositionInt
Automatically moves towards the new 16-bit position at a fixed rate determined by the AutoMoveSpeed. 
- BYTE Channel
The channel to assign the new position. Range: 0-7 
- UINT Position
Position to automatically move to. Range: 0-65535 
- VOID Return


Servo_DisableServo

Servo_DisableServo
Disables a servo channel effectivly disabling the motor. 
- BYTE Channel
The channel to set the position for. First channel is zero. 
- VOID Return


Servo_EnableServo

Servo_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


Servo_Initialise

Servo_Initialise
Sets up the servo motor interrupts 
- VOID Return


Servo_IsAutoMoving

Servo_IsAutoMoving
Is the AutoMoveToPosition movement complete. Returns 1 if the servos are still moving. Returns 0 if all servo movement is complete. 
- BYTE Return


Servo_IsServoAutoMoving

Servo_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. 
- BYTE Channel
Servo Motor Output Range: 0-7 
- BYTE Return


Servo_MoveToPosition

Servo_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 assign the new position. Range: 0-7 
- BYTE Position
Target position to move towards. Range: 0-255 
- BYTE Return


Servo_MoveToPositionInt

Servo_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. 
- BYTE Channel
The channel to assign the new position. Range: 0-7 
- UINT Position
Target position to move towards. Range: 0-65535 
- BYTE Return


Servo_SetAutoMoveSpeed

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


Servo_SetAutoMoveSpeedInt

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


Servo_SetPosition

Servo_SetPosition
Moves directly to the specified position with no interpolation.  
- BYTE Channel
The channel to assign the new position. Range: 0-7 
- BYTE Position
Position to jump to. Range: 0-255 
- VOID Return


Servo_SetPositionInt

Servo_SetPositionInt
Moves directly to the specified position with no interpolation. Uses a 16-bit position parameter to add extra precision. 
- BYTE Channel
The channel to assign the new position. Range: 0-7 
- UINT Position
Position to jump to. Range: 0-65535 
- VOID Return


Servo_SetTrim

Servo_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
Legacy: 0=0us, 1=+25us, 2=+50us, 3=+75us, 4=+100us, 5=-25us, 6=-50us, 7=-75us, 8=-100us or Smooth: 0-200 
- VOID Return


Stepper_DecrementStep

Stepper_DecrementStep
Move the motor backwards by one step. 
- VOID Return


Stepper_DisableMotor

Stepper_DisableMotor
Turn off the motor. It will no longer respond to any other macros. 
- VOID Return


Stepper_EnableMotor

Stepper_EnableMotor
Turn on the motor. This must be done before it will respond to any other macros. 
- VOID Return


Stepper_IncrementStep

Stepper_IncrementStep
Move the motor forward by one step. 
- VOID Return


Property reference

Properties
Connection Type
 
DC Feedback type
Select if the feedback is a digital or analogue value. Note, if using an Arduino shield and port D is selected, then only digital type will be available.  
Connections
Port
Port C is not available on the Arduino shield, If port C is slected, it will default to port B. 
Servo
Trim
Pulse Width
Minimum (us)
Shortest pulse width that will be used in microseconds. 
Maximum (us)
Longest pulse width used for the PWM signals in microseconds.. 
Period Multiplier
Number of instructions for 1 / 256th of the positional accuracy. This sets the default movement speed to maintain legacy move speeds. Also sets the multiplication factor to convert from a byte 0-255 to a clocked position value. 

Component Source Code

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

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