Difference between revisions of "Component: Servo Motor (BL0162) (E-blocks 2)"
(11 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | + | {| style="width:50%" | |
− | |||
− | {| | ||
|- | |- | ||
− | | width="20%" style="color: gray;" | Author | + | | width="20%" style="color:gray;" | Author |
| Matrix TSL | | Matrix TSL | ||
|- | |- | ||
− | | width="20%" style="color: gray;" | Version | + | | width="20%" style="color:gray;" | Version |
− | | 1.0 | + | | 1.0 |
|- | |- | ||
− | | width="20%" style="color: gray;" | Category | + | | width="20%" style="color:gray;" | Category |
| E-blocks 2 | | E-blocks 2 | ||
|} | |} | ||
+ | ==Servo Motor component== | ||
+ | Servo motor component to drive the E-blocks 2 BL0162 Servo Motors board. Provides up to eight individually addressable connections for standard DC servo motors to be connected. | ||
− | == | + | ==Component Source Code== |
− | |||
− | |||
− | + | Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_EBlocks2_Servo_BL0162.fcfx FC_Comp_Source_EBlocks2_Servo_BL0162.fcfx] | |
− | + | Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_EBlocks2_Servo_BL0162.fcfx FC_Comp_Source_EBlocks2_Servo_BL0162.fcfx] | |
− | == | + | ==Detailed description== |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | '' | + | ''No detailed description exists yet for this component'' |
− | + | ==Examples== | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Example showing how to control three servos using AutoMoveToPosion, MoveTopposition & SetPosition component macros.<br> | |
+ | {{Fcfile|Controlling_Servos_Example.fcfx|Controlling Servos Example.fcfx}}<br><br> | ||
− | + | Example using BL0162 Servo controller for BL0055 Arduino Shield | |
− | + | Samples the Port D8-D13 (portB) switches and moves the servo motors based on the input states. | |
− | + | D8 increments motor 0, D9 decrements motor on channel 0. | |
+ | D10 increments motor 1, D11 decrements motor on channel 1. | ||
− | + | D12 increments motor 3, D13 decrements motor on channel 2. | |
− | : | + | Connections: |
+ | Servo Board Port D0-D2. | ||
− | + | Switch Board Port D8 - D13 | |
− | |||
− | + | LCD A0 to A5 (PortC) | |
− | + | {{Fcfile|BL0162_Servo_BL0055.fcfx|BL0162 Servos Example for BL0055}}<br><br> | |
− | |||
− | + | ==Macro reference== | |
− | |||
+ | ===AutoMoveToPosition=== | ||
+ | {| 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 with a fixed rate of 100 steps per second. | ||
+ | |- | ||
+ | |- | ||
+ | | 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. | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | Position | ||
+ | |- | ||
+ | | colspan="2" | Position to move to. | ||
+ | |- | ||
+ | | 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'' | ||
+ | |} | ||
− | |||
− | :[[ | + | ===DisableServo=== |
+ | {| 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;" | '''DisableServo''' | ||
+ | |- | ||
+ | | colspan="2" | Disables a servo channel effectivly disabling the motor. | ||
+ | |- | ||
+ | |- | ||
+ | | 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. | ||
+ | |- | ||
+ | | 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'' | ||
+ | |} | ||
− | === | + | ===EnableServo=== |
− | + | {| 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. | ||
+ | |- | ||
+ | |- | ||
+ | | 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. | ||
+ | |- | ||
+ | | 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'' | ||
+ | |} | ||
− | |||
− | :[[ | + | ===Initialise=== |
− | :: | + | {| 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" | Sets up the servo motor interrupts | ||
+ | |- | ||
+ | |- | ||
+ | | 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'' | ||
+ | |} | ||
− | |||
− | |||
+ | ===IsAutoMoving=== | ||
+ | {| 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 servo is still moving. Returns 0 if the servo movement is complete. | ||
+ | |- | ||
+ | |- | ||
+ | | 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'' | ||
+ | |} | ||
− | |||
− | :'' | + | ===MoveToPosition=== |
+ | {| 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. | ||
+ | |- | ||
+ | |- | ||
+ | | 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. | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | Position | ||
+ | |- | ||
+ | | colspan="2" | Target position to move towards. | ||
+ | |- | ||
+ | | 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'' | ||
+ | |} | ||
− | === | + | ===SetAutoMoveSpeed=== |
− | + | {| 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 1. | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | Speed | ||
+ | |- | ||
+ | | colspan="2" | 1=Slowest (Default), 2= Double, 3=Triple, 4=Quadruple | ||
+ | |- | ||
+ | | 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'' | ||
+ | |} | ||
− | |||
− | :[[ | + | ===SetPosition=== |
− | : | + | {| 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;" | '''SetPosition''' | ||
+ | |- | ||
+ | | colspan="2" | Moves directly to the specified position with no interpolation. | ||
+ | |- | ||
+ | |- | ||
+ | | 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. | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | Position | ||
+ | |- | ||
+ | | colspan="2" | Target position to move towards. | ||
+ | |- | ||
+ | | 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'' | ||
+ | |} | ||
− | |||
− | |||
− | + | ===SetTrim=== | |
− | + | {| 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. |
− | + | |- | |
− | + | |- | |
− | + | | 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. | |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |
− | + | | width="90%" | Trim | |
− | + | |- | |
− | + | | colspan="2" | 0=0us, 1=+25us, 2=+50us, 3=+75us, 4=+100us, 5=-25us, 6=-50us, 7=-75us, 8=-100us | |
− | + | |- | |
− | + | | 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== | ==Property reference== | ||
− | |||
− | + | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | |
− | + | |- | |
− | + | | width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]] | |
− | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties''' | |
− | + | |- | |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | |
− | + | | width="90%" | Channels (1 - 8) | |
− | + | |- | |
− | + | | colspan="2" | Set the number of servo's that you need to control. Value from 1 to 8. | |
− | + | |- | |
− | + | | 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" | [[File:Fc9-type-5-icon.png]] | |
− | + | | width="90%" | Channel 0 | |
− | + | |- | |
− | + | | colspan="2" | Pin on which to output PWM for the servo motor. | |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-type-5-icon.png]] | |
− | + | | width="90%" | Channel 1 | |
− | + | |- | |
− | + | | colspan="2" | Pin on which to output PWM for the servo motor. | |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-type-5-icon.png]] | |
− | + | | width="90%" | Channel 2 | |
− | + | |- | |
− | + | | colspan="2" | Pin on which to output PWM for the servo motor. | |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-type-5-icon.png]] | |
− | + | | width="90%" | Channel 3 | |
− | + | |- | |
− | + | | colspan="2" | Pin on which to output PWM for the servo motor. | |
− | Pin on which to output PWM for the servo motor. | + | |- |
− | + | | width="10%" align="center" | [[File:Fc9-type-5-icon.png]] | |
− | + | | width="90%" | Channel 4 | |
− | + | |- | |
− | + | | colspan="2" | Pin on which to output PWM for the servo motor. | |
− | + | |- | |
− | Pin on which to output PWM for the servo motor. | + | | width="10%" align="center" | [[File:Fc9-type-5-icon.png]] |
− | + | | width="90%" | Channel 5 | |
− | + | |- | |
− | + | | colspan="2" | Pin on which to output PWM for the servo motor. | |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-type-5-icon.png]] | |
− | + | | width="90%" | Channel 6 | |
− | + | |- | |
− | + | | colspan="2" | Pin on which to output PWM for the servo motor. | |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-type-5-icon.png]] | |
− | + | | width="90%" | Channel 7 | |
− | Pin on which to output PWM for the servo motor. | + | |- |
− | + | | colspan="2" | Pin on which to output PWM for the servo motor. | |
− | + | |- | |
− | + | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]] | |
− | + | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Pulse Width | |
− | + | |- | |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] | |
− | + | | width="90%" | Minimum (us) | |
− | + | |- | |
− | + | | colspan="2" | Shortest pulse width that will be used. | |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] | |
− | + | | width="90%" | Maximum (us) | |
− | + | |- | |
− | + | | colspan="2" | Longest pulse width used for the PWM signals. | |
− | + | |- | |
− | + | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]] | |
− | + | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Trim | |
− | + | |- | |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | |
− | + | | width="90%" | Trim 0 | |
− | + | |- | |
− | + | | colspan="2" | 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. | |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | |
− | + | | width="90%" | Trim 1 | |
− | + | |- | |
− | + | | colspan="2" | 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. | |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | |
− | + | | width="90%" | Trim 2 | |
− | + | |- | |
− | + | | colspan="2" | 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. | |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | |
− | + | | width="90%" | Trim 3 | |
− | + | |- | |
− | + | | colspan="2" | 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. | |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | |
− | + | | width="90%" | Trim 4 | |
− | + | |- | |
− | input values will produce the same degree of movement. | + | | colspan="2" | 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. |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | |
− | + | | width="90%" | Trim 5 | |
− | + | |- | |
− | + | | colspan="2" | 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. | |
− | Trim the pulse width for this channel. Use this to trim the positioning of two servos so that similar | + | |- |
− | + | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | |
− | input values will produce the same degree of movement. | + | | width="90%" | Trim 6 |
− | + | |- | |
− | + | | colspan="2" | 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. | |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | |
− | + | | width="90%" | Trim 7 | |
− | Trim the pulse width for this channel. Use this to trim the positioning of two servos so that similar | + | |- |
− | + | | colspan="2" | 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. | |
− | input values will produce the same degree of movement. | + | |- |
− | + | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]] | |
− | + | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Simulation | |
− | + | |- | |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]] | |
− | Trim the pulse width for this channel. Use this to trim the positioning of two servos so that similar | + | | width="90%" | Show Servo Interface |
− | + | |- | |
− | input values will produce the same degree of movement. | + | | colspan="2" | |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-type-17-icon.png]] | |
− | + | | width="90%" | Servo Object 0 | |
− | + | |- | |
− | + | | colspan="2" | 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)). | |
− | Trim the pulse width for this channel. Use this to trim the positioning of two servos so that similar | + | |- |
− | + | | width="10%" align="center" | [[File:Fc9-type-17-icon.png]] | |
− | input values will produce the same degree of movement. | + | | width="90%" | Servo Object 1 |
− | + | |- | |
− | + | | colspan="2" | 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)). | |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-type-17-icon.png]] | |
− | + | | width="90%" | Servo Object 2 | |
− | + | |- | |
− | + | | colspan="2" | 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)). | |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-type-17-icon.png]] | |
− | + | | width="90%" | Servo Object 3 | |
− | + | |- | |
− | + | | colspan="2" | 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)). | |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-type-17-icon.png]] | |
− | + | | width="90%" | Servo Object 4 | |
− | + | |- | |
− | + | | colspan="2" | 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)). | |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-type-17-icon.png]] | |
− | + | | width="90%" | Servo Object 5 | |
− | + | |- | |
− | + | | colspan="2" | 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)). | |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-type-17-icon.png]] | |
− | + | | width="90%" | Servo Object 6 | |
− | + | |- | |
− | + | | colspan="2" | 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)). | |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-type-17-icon.png]] | |
− | Drag a servo motor component onto the System Panel, and then select it here, to create | + | | width="90%" | Servo Object 7 |
− | + | |- | |
− | an on screen simulation of the way that your flowchart moves the servo's. | + | | colspan="2" | 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)). |
− | + | |} | |
− | 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)). | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | 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)). | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | 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)). | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | 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)). | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | 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)). | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | 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)). |
Latest revision as of 11:20, 29 January 2025
Author | Matrix TSL |
Version | 1.0 |
Category | E-blocks 2 |
Contents
Servo Motor component
Servo motor component to drive the E-blocks 2 BL0162 Servo Motors board. Provides up to eight individually addressable connections for standard DC servo motors to be connected.
Component Source Code
Please click here to download the component source project: FC_Comp_Source_EBlocks2_Servo_BL0162.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_EBlocks2_Servo_BL0162.fcfx
Detailed description
No detailed description exists yet for this component
Examples
Example showing how to control three servos using AutoMoveToPosion, MoveTopposition & SetPosition component macros.
Controlling Servos Example.fcfx
Example using BL0162 Servo controller for BL0055 Arduino Shield
Samples the Port D8-D13 (portB) switches and moves the servo motors based on the input states.
D8 increments motor 0, D9 decrements motor on channel 0.
D10 increments motor 1, D11 decrements motor on channel 1.
D12 increments motor 3, D13 decrements motor on channel 2.
Connections:
Servo Board Port D0-D2.
Switch Board Port D8 - D13
LCD A0 to A5 (PortC)
BL0162 Servos Example for BL0055
Macro reference
AutoMoveToPosition
DisableServo
![]() |
DisableServo |
Disables a servo channel effectivly disabling the motor. | |
![]() |
Channel |
The channel to set the position for. First channel is zero. | |
![]() |
Return |
EnableServo
Initialise
![]() |
Initialise |
Sets up the servo motor interrupts | |
![]() |
Return |
IsAutoMoving
![]() |
IsAutoMoving |
Is the AutoMoveToPosition movement complete. Returns 1 if the servo is still moving. Returns 0 if the servo movement is complete. | |
![]() |
Return |
MoveToPosition
SetAutoMoveSpeed
![]() |
SetAutoMoveSpeed |
Sets the speed of the auto move to position macro. Default speed is 1. | |
![]() |
Speed |
1=Slowest (Default), 2= Double, 3=Triple, 4=Quadruple | |
![]() |
Return |
SetPosition
SetTrim