Difference between revisions of "Component: Robot Arm AllCode SIM (AllCode)"

From Flowcode Help
Jump to navigationJump to search
 
(6 intermediate revisions by the same user not shown)
Line 16: Line 16:
  
 
==Component Source Code==
 
==Component Source Code==
 +
 +
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_RA_Simulation_Source.fcfx FC_Comp_Source_RA_Simulation_Source.fcfx]
  
 
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_RA_Simulation_Source.fcfx FC_Comp_Source_RA_Simulation_Source.fcfx]
 
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_RA_Simulation_Source.fcfx FC_Comp_Source_RA_Simulation_Source.fcfx]
Line 31: Line 33:
  
  
''No detailed description exists yet for this component''
 
  
==Examples==
 
  
  
Line 39: Line 39:
  
  
 +
''No detailed description exists yet for this component''
  
 +
==Examples==
  
  
Line 47: Line 49:
  
  
===Industrial Tanks===
 
  
A simple example showing the hoppers, valves and pipes working together. Each tank automatically empties in turn.
 
  
{{Fcfile|Industrial_Tanks.fcsx|Industrial Tanks}}
 
  
==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;" | '''LEDOn'''
 
|-
 
| colspan="2" | Switches on a single LED, LA0-LA7 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Index
 
|-
 
| colspan="2" | 0=LA0, 1=LA1, 2=LA2, 3=LA3, 4=LA4, 5=LA5, 6=LA6, 7=LA7 
 
|-
 
| 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;" | '''StoreCoords'''
 
|-
 
| colspan="2" | Stores the provided coordinates as a position the ARM can recall. 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Index
 
|-
 
| colspan="2" | Save Index - Range 0-29 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Position0
 
|-
 
| colspan="2" | Range: 0-180 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Position1
 
|-
 
| colspan="2" | Range: 0-180 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Position2
 
|-
 
| colspan="2" | Range: 0-180 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Position3
 
|-
 
| colspan="2" | Range: 0-180 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Position4
 
|-
 
| colspan="2" | Range: 0-180 
 
|-
 
| 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;" | '''LCDClearLine'''
 
|-
 
| colspan="2" | Clears a single line on the display and then moves the cursor to the start of the line to allow you to start populating the line with data. 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Line
 
|-
 
| colspan="2" | The line to clear, zero being the first (top) line of the display 
 
|-
 
| 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;" | '''LEDOff'''
 
|-
 
| colspan="2" | Switches off a single LED, LA0-LA7 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Index
 
|-
 
| colspan="2" | 0=LA0, 1=LA1, 2=LA2, 3=LA3, 4=LA4, 5=LA5, 6=LA6, 7=LA7 
 
|-
 
| 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;"
+
===Industrial Tanks===
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetMovementSpeed'''
 
|-
 
| colspan="2" | Controls the speed of the robot movement 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | MovementSpeed
 
|-
 
| colspan="2" | 1=Normal Speed (Default), 2=DoubleSpeed 
 
|-
 
| 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''
 
|}
 
  
 +
A simple example showing the hoppers, valves and pipes working together. Each tank automatically empties in turn.
  
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
+
{{Fcfile|Industrial_Tanks.fcsx|Industrial Tanks}}
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''LEDWrite'''
 
|-
 
| colspan="2" | Allows a value to be sent to control all eight LEDs LA0-LA7 at once 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Value
 
|-
 
| colspan="2" | (0-63) 0b000000 
 
|-
 
| 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;" | '''LinearInterpolation'''
 
|-
 
| colspan="2" | Moves the robot to the new position so that all axis arrive at the same time. 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | pos0
 
|-
 
| colspan="2" |  
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | pos1
 
|-
 
| colspan="2" |  
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | pos2
 
|-
 
| colspan="2" |  
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | pos3
 
|-
 
| colspan="2" |  
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | pos4
 
|-
 
| colspan="2" |  
 
|-
 
| 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;" | '''GripperOpen'''
 
|-
 
| colspan="2" | Fully opens the gripper at the end of the arm ready to pick something up. 
 
|-
 
|-
 
| 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;" | '''ReadSwitch'''
 
|-
 
| colspan="2" | Read the value of a single switch.  Returns the value as a byte 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | index
 
|-
 
| colspan="2" | 0=SA0, 1=SA1, 2=SA2, 3=SA3, 4=SA4, 5=SA5, 6=SA6, 7=SA7 
 
|-
 
| 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;" | '''LCDPrintStr'''
 
|-
 
| colspan="2" | Breaks down a string of text and sends it to the LCD via the private RawSend(byte, mask) macro 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING
 
| width="90%" | PrintString
 
|-
 
| colspan="2" | Enter the text or variable to print to the LCD 
 
|-
 
| 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;" | '''SetAllServos'''
 
|-
 
| colspan="2" | Move all the servo positions between 0-180 Deg 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Servo0_Base
 
|-
 
| colspan="2" | Position of servo0 in degrees (0-180) 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Servo1_Shoulder
 
|-
 
| colspan="2" | Position of servo1 in degrees (0-180) 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Servo2_Elbow
 
|-
 
| colspan="2" | Position of servo2 in degrees (0-180) 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Servo3_Wrist
 
|-
 
| colspan="2" | Position of servo3 in degrees (0-180) 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Servo4_WristRotate
 
|-
 
| colspan="2" | Position of servo4 in degrees (0-180) 
 
|-
 
| 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;" | '''Park'''
 
|-
 
| colspan="2" | Parks the Robot ARM and switches off the servo motors 
 
|-
 
|-
 
| 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==
  
 +
===Beep===
 
{| 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;" | '''StorePosition'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Beep'''
 
|-
 
|-
| colspan="2" | Stores the current position of the ARMs 5 axis. 
+
| colspan="2" | Allows the beeper to output a warning 
 
|-
 
|-
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Index
+
| width="90%" | Iterations
 
|-
 
|-
| colspan="2" | Save Index - Range 0-29 
+
| colspan="2" |  
 
|-
 
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
+
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" style="border-top: 2px solid #000;" | ''Return''
+
| width="90%" | OnDelay
|}
 
 
 
 
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
 
|-
 
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
+
| colspan="2" | Delay in ms 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReadPressure'''
 
 
|-
 
|-
| colspan="2" | Read the value of the pressure sensor on the ARM gripper. Returns the value as a byte 
+
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 +
| width="90%" | OffDelay
 
|-
 
|-
 +
| colspan="2" | Delay in ms 
 
|-
 
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
+
| 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''
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
 
|}
  
  
 +
===GotoPosition===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 375: Line 127:
  
  
 +
===GripperClose===
 
{| 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;" | '''MotorsMoving'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GripperClose'''
 
|-
 
|-
| colspan="2" | Checks to see if any of the motors are still moving. 
+
| colspan="2" | Fully closes the gripper at the end of the arm ready to pick something up. Closes to a defined pressure using the built in pressure sensor. Returns 0 if nothing detected in the gripper Returns 1 if a valid object is detected 
|-
 
|-
 
| 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;" | '''Beep'''
 
|-
 
| colspan="2" | Allows the beeper to output a warning 
 
 
|-
 
|-
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Iterations
+
| width="90%" | Pressure
 
|-
 
|-
| colspan="2" |  
+
| colspan="2" | Range 1 - 100, Default Pressure = 20 
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
+
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | OnDelay
 
|-
 
| colspan="2" | Delay in ms 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | OffDelay
 
|-
 
| colspan="2" | Delay in ms 
 
|-
 
| 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''
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
 
|}
  
  
 +
===GripperOpen===
 
{| 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;" | '''SetTrim'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GripperOpen'''
 
|-
 
|-
| colspan="2" | Allows minor adjustment on the 5 axis servo motors 
+
| colspan="2" | Fully opens the gripper at the end of the arm ready to pick something up. 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Index
 
 
|-
 
|-
| colspan="2" | Motor Index Range 0-4 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Trim
 
|-
 
| colspan="2" | Amount of Trim Range 0-255, Default Value 128 
 
 
|-
 
|-
 
| 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 439: Line 160:
  
  
 +
===LCDClear===
 
{| 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;" | '''SetServo'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''LCDClear'''
 
|-
 
|-
| colspan="2" | Move the specified servo motor position between 0-180 Deg 
+
| colspan="2" | Clears the entire contents of the display. 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Index
 
 
|-
 
|-
| colspan="2" | Range 0-4 : 0=Base, 1=Shoulder, 2=Elbow, 3=Wrist, 4=WristRotate 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Position
 
|-
 
| colspan="2" | Position of servo in degrees (0-180) 
 
 
|-
 
|-
 
| 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 462: Line 174:
  
  
 +
===LCDClearLine===
 
{| 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;" | '''GripperClose'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''LCDClearLine'''
 
|-
 
|-
| colspan="2" | Fully closes the gripper at the end of the arm ready to pick something up. Closes to a defined pressure using the built in pressure sensor. Returns 0 if nothing detected in the gripper Returns 1 if a valid object is detected 
+
| colspan="2" | Clears a single line on the display and then moves the cursor to the start of the line to allow you to start populating the line with data. 
 
|-
 
|-
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Pressure
+
| width="90%" | Line
 
|-
 
|-
| colspan="2" | Range 1 - 100, Default Pressure = 20 
+
| colspan="2" | The line to clear, zero being the first (top) line of the display 
 
|-
 
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
+
| 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''
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
 
|}
  
  
 +
===LCDCursor===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 503: Line 217:
  
  
 +
===LCDPrintNum===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 521: Line 236:
  
  
 +
===LCDPrintStr===
 
{| 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;" | '''LCDClear'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''LCDPrintStr'''
 
|-
 
|-
| colspan="2" | Clears the entire contents of the display. 
+
| colspan="2" | Breaks down a string of text and sends it to the LCD via the private RawSend(byte, mask) macro 
 
|-
 
|-
 
|-
 
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
+
| width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING
| width="90%" style="border-top: 2px solid #000;" | ''Return''
+
| width="90%" | PrintString
|}
 
 
 
 
 
 
 
 
 
==Property reference==
 
 
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
 
|-
 
|-
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]]
+
| colspan="2" | Enter the text or variable to print to the LCD 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties'''
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
| width="90%" | Starting Conditions
 
|-
 
| colspan="2" |  
 
|}==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;" | '''LEDOn'''
 
|-
 
| colspan="2" | Switches on a single LED, LA0-LA7 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Index
 
|-
 
| colspan="2" | 0=LA0, 1=LA1, 2=LA2, 3=LA3, 4=LA4, 5=LA5, 6=LA6, 7=LA7 
 
|-
 
| 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;" | '''StoreCoords'''
 
|-
 
| colspan="2" | Stores the provided coordinates as a position the ARM can recall. 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Index
 
|-
 
| colspan="2" | Save Index - Range 0-29 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Position0
 
|-
 
| colspan="2" | Range: 0-180 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Position1
 
|-
 
| colspan="2" | Range: 0-180 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Position2
 
|-
 
| colspan="2" | Range: 0-180 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Position3
 
|-
 
| colspan="2" | Range: 0-180 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Position4
 
|-
 
| colspan="2" | Range: 0-180 
 
|-
 
| 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;" | '''LCDClearLine'''
 
|-
 
| colspan="2" | Clears a single line on the display and then moves the cursor to the start of the line to allow you to start populating the line with data. 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Line
 
|-
 
| colspan="2" | The line to clear, zero being the first (top) line of the display 
 
 
|-
 
|-
 
| 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 629: Line 255:
  
  
 +
===LEDOff===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 647: Line 274:
  
  
 +
===LEDOn===
 
{| 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;" | '''SetMovementSpeed'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''LEDOn'''
 
|-
 
|-
| colspan="2" | Controls the speed of the robot movement 
+
| colspan="2" | Switches on a single LED, LA0-LA7 
 
|-
 
|-
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | MovementSpeed
+
| width="90%" | Index
 
|-
 
|-
| colspan="2" | 1=Normal Speed (Default), 2=DoubleSpeed 
+
| colspan="2" | 0=LA0, 1=LA1, 2=LA2, 3=LA3, 4=LA4, 5=LA5, 6=LA6, 7=LA7 
 
|-
 
|-
 
| 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 665: Line 293:
  
  
 +
===LEDWrite===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 683: Line 312:
  
  
 +
===LinearInterpolation===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 721: Line 351:
  
  
 +
===MotorsMoving===
 
{| 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;" | '''GripperOpen'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MotorsMoving'''
 
|-
 
|-
| colspan="2" | Fully opens the gripper at the end of the arm ready to pick something up. 
+
| colspan="2" | Checks to see if any of the motors are still moving. 
 
|-
 
|-
 
|-
 
|-
| 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-u8-icon.png]] - BYTE
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
 
|}
  
  
 +
===Park===
 
{| 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;" | '''ReadSwitch'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Park'''
 +
|-
 +
| colspan="2" | Parks the Robot ARM and switches off the servo motors 
 +
|-
 
|-
 
|-
| colspan="2" | Read the value of a single switch. Returns the value as a byte 
+
| 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''
 +
|}
 +
 
 +
 
 +
===ReadPressure===
 +
{| 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;" | '''ReadPressure'''
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
+
| colspan="2" | Read the value of the pressure sensor on the ARM gripper. Returns the value as a byte 
| width="90%" | index
 
 
|-
 
|-
| colspan="2" | 0=SA0, 1=SA1, 2=SA2, 3=SA3, 4=SA4, 5=SA5, 6=SA6, 7=SA7 
 
 
|-
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
Line 752: Line 393:
  
  
 +
===ReadSwitch===
 
{| 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;" | '''LCDPrintStr'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReadSwitch'''
 
|-
 
|-
| colspan="2" | Breaks down a string of text and sends it to the LCD via the private RawSend(byte, mask) macro 
+
| colspan="2" | Read the value of a single switch.  Returns the value as a byte 
 
|-
 
|-
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING
+
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | PrintString
+
| width="90%" | index
 
|-
 
|-
| colspan="2" | Enter the text or variable to print to the LCD 
+
| colspan="2" | 0=SA0, 1=SA1, 2=SA2, 3=SA3, 4=SA4, 5=SA5, 6=SA6, 7=SA7 
 
|-
 
|-
| 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-u8-icon.png]] - BYTE
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
 
|}
  
  
 +
===SetAllServos===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 808: Line 451:
  
  
 +
===SetMovementSpeed===
 
{| 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;" | '''Park'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetMovementSpeed'''
 
|-
 
|-
| colspan="2" | Parks the Robot ARM and switches off the servo motors 
+
| colspan="2" | Controls the speed of the robot movement 
|-
 
|-
 
| 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;" | '''StorePosition'''
 
|-
 
| colspan="2" | Stores the current position of the ARMs 5 axis. 
 
 
|-
 
|-
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Index
+
| width="90%" | MovementSpeed
 
|-
 
|-
| colspan="2" | Save Index - Range 0-29 
+
| colspan="2" | 1=Normal Speed (Default), 2=DoubleSpeed 
 
|-
 
|-
 
| 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 839: Line 470:
  
  
 +
===SetServo===
 
{| 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;" | '''ReadPressure'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetServo'''
 
|-
 
|-
| colspan="2" | Read the value of the pressure sensor on the ARM gripper. Returns the value as a byte 
+
| colspan="2" | Move the specified servo motor position between 0-180 Deg 
|-
 
|-
 
| 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;" | '''GotoPosition'''
 
|-
 
| colspan="2" | Recalls a previously saved position for the ARMs 5 axis. 
 
 
|-
 
|-
 
|-
 
|-
Line 863: Line 482:
 
| width="90%" | Index
 
| width="90%" | Index
 
|-
 
|-
| colspan="2" | Save Index - Range 0-29 
+
| colspan="2" | Range 0-4 : 0=Base, 1=Shoulder, 2=Elbow, 3=Wrist, 4=WristRotate 
|-
 
| 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;" | '''MotorsMoving'''
 
|-
 
| colspan="2" | Checks to see if any of the motors are still moving. 
 
|-
 
|-
 
| 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;" | '''Beep'''
 
|-
 
| colspan="2" | Allows the beeper to output a warning 
 
|-
 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Iterations
+
| width="90%" | Position
 
|-
 
|-
| colspan="2" |  
+
| colspan="2" | Position of servo in degrees (0-180) 
|-
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | OnDelay
 
|-
 
| colspan="2" | Delay in ms 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | OffDelay
 
|-
 
| colspan="2" | Delay in ms 
 
 
|-
 
|-
 
| 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 911: Line 494:
  
  
 +
===SetTrim===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 934: Line 518:
  
  
 +
===StoreCoords===
 
{| 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;" | '''SetServo'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''StoreCoords'''
 
|-
 
|-
| colspan="2" | Move the specified servo motor position between 0-180 Deg 
+
| colspan="2" | Stores the provided coordinates as a position the ARM can recall. 
 
|-
 
|-
 
|-
 
|-
Line 945: Line 530:
 
| width="90%" | Index
 
| width="90%" | Index
 
|-
 
|-
| colspan="2" | Range 0-4 : 0=Base, 1=Shoulder, 2=Elbow, 3=Wrist, 4=WristRotate 
+
| colspan="2" | Save Index - Range 0-29 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Position
+
| width="90%" | Position0
 
|-
 
|-
| colspan="2" | Position of servo in degrees (0-180) 
+
| colspan="2" | Range: 0-180 
 
|-
 
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
+
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" style="border-top: 2px solid #000;" | ''Return''
+
| width="90%" | Position1
|}
 
 
 
 
 
{| 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;" | '''GripperClose'''
 
|-
 
| colspan="2" | Fully closes the gripper at the end of the arm ready to pick something up. Closes to a defined pressure using the built in pressure sensor. Returns 0 if nothing detected in the gripper Returns 1 if a valid object is detected 
 
 
|-
 
|-
 +
| colspan="2" | Range: 0-180 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Pressure
+
| width="90%" | Position2
|-
 
| colspan="2" | Range 1 - 100, Default Pressure = 20 
 
|-
 
| 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;" | '''LCDCursor'''
 
|-
 
| colspan="2" | Moves the cursor on the LCD Display 
 
 
|-
 
|-
 +
| colspan="2" | Range: 0-180 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | X
+
| width="90%" | Position3
 
|-
 
|-
| colspan="2" | Set the cursor position in the X plane, 0 is the left most cell (0-15) 
+
| colspan="2" | Range: 0-180 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Y
+
| width="90%" | Position4
 
|-
 
|-
| colspan="2" | Set the cursor position in the Y plane, 0 is the top most cell (0-1) 
+
| colspan="2" | Range: 0-180 
 
|-
 
|-
 
| 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 998: Line 562:
  
  
 +
===StorePosition===
 
{| 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;" | '''LCDPrintNum'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''StorePosition'''
 
|-
 
|-
| colspan="2" | Will allow you to print a number. This is limited to a signed-INT, -32768 to 32767 
+
| colspan="2" | Stores the current position of the ARMs 5 axis. 
 
|-
 
|-
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-s16-icon.png]] - INT
+
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Number
+
| width="90%" | Index
|-
 
| colspan="2" | Enter the number or variable to print to the LCD 
 
|-
 
| 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;" | '''LCDClear'''
 
|-
 
| colspan="2" | Clears the entire contents of the display. 
 
 
|-
 
|-
 +
| colspan="2" | Save Index - Range 0-29 
 
|-
 
|-
 
| 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
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
 
|}
 
 
  
  

Latest revision as of 13:12, 7 February 2023

Author Matrix TSL
Version 1.0
Category AllCode


Robot Arm AllCode SIM component

Matrix 5-axis Robot Arm with Gripper. Compatible with the Matrix Robot ARM Training Curriculum and Hardware. Features gripper pressure sensor, light sensor, colour sensor, Potentiometer, Magnetic sensor.

Component Source Code

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

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

Detailed description

No detailed description exists yet for this component

Examples

Industrial Tanks

A simple example showing the hoppers, valves and pipes working together. Each tank automatically empties in turn.

FC6 Icon.png Industrial Tanks






Macro reference

Beep

Fc9-comp-macro.png Beep
Allows the beeper to output a warning 
Fc9-u8-icon.png - BYTE Iterations
 
Fc9-u16-icon.png - UINT OnDelay
Delay in ms 
Fc9-u16-icon.png - UINT OffDelay
Delay in ms 
Fc9-void-icon.png - VOID Return


GotoPosition

Fc9-comp-macro.png GotoPosition
Recalls a previously saved position for the ARMs 5 axis. 
Fc9-u8-icon.png - BYTE Index
Save Index - Range 0-29 
Fc9-void-icon.png - VOID Return


GripperClose

Fc9-comp-macro.png GripperClose
Fully closes the gripper at the end of the arm ready to pick something up. Closes to a defined pressure using the built in pressure sensor. Returns 0 if nothing detected in the gripper Returns 1 if a valid object is detected 
Fc9-u8-icon.png - BYTE Pressure
Range 1 - 100, Default Pressure = 20 
Fc9-u8-icon.png - BYTE Return


GripperOpen

Fc9-comp-macro.png GripperOpen
Fully opens the gripper at the end of the arm ready to pick something up. 
Fc9-void-icon.png - VOID Return


LCDClear

Fc9-comp-macro.png LCDClear
Clears the entire contents of the display. 
Fc9-void-icon.png - VOID Return


LCDClearLine

Fc9-comp-macro.png LCDClearLine
Clears a single line on the display and then moves the cursor to the start of the line to allow you to start populating the line with data. 
Fc9-u8-icon.png - BYTE Line
The line to clear, zero being the first (top) line of the display 
Fc9-void-icon.png - VOID Return


LCDCursor

Fc9-comp-macro.png LCDCursor
Moves the cursor on the LCD Display 
Fc9-u8-icon.png - BYTE X
Set the cursor position in the X plane, 0 is the left most cell (0-15) 
Fc9-u8-icon.png - BYTE Y
Set the cursor position in the Y plane, 0 is the top most cell (0-1) 
Fc9-void-icon.png - VOID Return


LCDPrintNum

Fc9-comp-macro.png LCDPrintNum
Will allow you to print a number. This is limited to a signed-INT, -32768 to 32767 
Fc9-s16-icon.png - INT Number
Enter the number or variable to print to the LCD 
Fc9-void-icon.png - VOID Return


LCDPrintStr

Fc9-comp-macro.png LCDPrintStr
Breaks down a string of text and sends it to the LCD via the private RawSend(byte, mask) macro 
Fc9-string-icon.png - STRING PrintString
Enter the text or variable to print to the LCD 
Fc9-void-icon.png - VOID Return


LEDOff

Fc9-comp-macro.png LEDOff
Switches off a single LED, LA0-LA7 
Fc9-u8-icon.png - BYTE Index
0=LA0, 1=LA1, 2=LA2, 3=LA3, 4=LA4, 5=LA5, 6=LA6, 7=LA7 
Fc9-void-icon.png - VOID Return


LEDOn

Fc9-comp-macro.png LEDOn
Switches on a single LED, LA0-LA7 
Fc9-u8-icon.png - BYTE Index
0=LA0, 1=LA1, 2=LA2, 3=LA3, 4=LA4, 5=LA5, 6=LA6, 7=LA7 
Fc9-void-icon.png - VOID Return


LEDWrite

Fc9-comp-macro.png LEDWrite
Allows a value to be sent to control all eight LEDs LA0-LA7 at once 
Fc9-u8-icon.png - BYTE Value
(0-63) 0b000000 
Fc9-void-icon.png - VOID Return


LinearInterpolation

Fc9-comp-macro.png LinearInterpolation
Moves the robot to the new position so that all axis arrive at the same time. 
Fc9-u8-icon.png - BYTE pos0
 
Fc9-u8-icon.png - BYTE pos1
 
Fc9-u8-icon.png - BYTE pos2
 
Fc9-u8-icon.png - BYTE pos3
 
Fc9-u8-icon.png - BYTE pos4
 
Fc9-void-icon.png - VOID Return


MotorsMoving

Fc9-comp-macro.png MotorsMoving
Checks to see if any of the motors are still moving. 
Fc9-u8-icon.png - BYTE Return


Park

Fc9-comp-macro.png Park
Parks the Robot ARM and switches off the servo motors 
Fc9-void-icon.png - VOID Return


ReadPressure

Fc9-comp-macro.png ReadPressure
Read the value of the pressure sensor on the ARM gripper. Returns the value as a byte 
Fc9-u8-icon.png - BYTE Return


ReadSwitch

Fc9-comp-macro.png ReadSwitch
Read the value of a single switch. Returns the value as a byte 
Fc9-u8-icon.png - BYTE index
0=SA0, 1=SA1, 2=SA2, 3=SA3, 4=SA4, 5=SA5, 6=SA6, 7=SA7 
Fc9-u8-icon.png - BYTE Return


SetAllServos

Fc9-comp-macro.png SetAllServos
Move all the servo positions between 0-180 Deg 
Fc9-u8-icon.png - BYTE Servo0_Base
Position of servo0 in degrees (0-180) 
Fc9-u8-icon.png - BYTE Servo1_Shoulder
Position of servo1 in degrees (0-180) 
Fc9-u8-icon.png - BYTE Servo2_Elbow
Position of servo2 in degrees (0-180) 
Fc9-u8-icon.png - BYTE Servo3_Wrist
Position of servo3 in degrees (0-180) 
Fc9-u8-icon.png - BYTE Servo4_WristRotate
Position of servo4 in degrees (0-180) 
Fc9-void-icon.png - VOID Return


SetMovementSpeed

Fc9-comp-macro.png SetMovementSpeed
Controls the speed of the robot movement 
Fc9-u8-icon.png - BYTE MovementSpeed
1=Normal Speed (Default), 2=DoubleSpeed 
Fc9-void-icon.png - VOID Return


SetServo

Fc9-comp-macro.png SetServo
Move the specified servo motor position between 0-180 Deg 
Fc9-u8-icon.png - BYTE Index
Range 0-4 : 0=Base, 1=Shoulder, 2=Elbow, 3=Wrist, 4=WristRotate 
Fc9-u8-icon.png - BYTE Position
Position of servo in degrees (0-180) 
Fc9-void-icon.png - VOID Return


SetTrim

Fc9-comp-macro.png SetTrim
Allows minor adjustment on the 5 axis servo motors 
Fc9-u8-icon.png - BYTE Index
Motor Index Range 0-4 
Fc9-u8-icon.png - BYTE Trim
Amount of Trim Range 0-255, Default Value 128 
Fc9-void-icon.png - VOID Return


StoreCoords

Fc9-comp-macro.png StoreCoords
Stores the provided coordinates as a position the ARM can recall. 
Fc9-u8-icon.png - BYTE Index
Save Index - Range 0-29 
Fc9-u8-icon.png - BYTE Position0
Range: 0-180 
Fc9-u8-icon.png - BYTE Position1
Range: 0-180 
Fc9-u8-icon.png - BYTE Position2
Range: 0-180 
Fc9-u8-icon.png - BYTE Position3
Range: 0-180 
Fc9-u8-icon.png - BYTE Position4
Range: 0-180 
Fc9-void-icon.png - VOID Return


StorePosition

Fc9-comp-macro.png StorePosition
Stores the current position of the ARMs 5 axis. 
Fc9-u8-icon.png - BYTE Index
Save Index - Range 0-29 
Fc9-void-icon.png - VOID Return


Property reference

Fc9-prop-icon.png Properties
Fc9-type-16-icon.png Starting Conditions