Jump to content

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

From Flowcode Help
m Text replacement - "class="wikitable" style="width:60%; background-color:#FFFFFF;"" to "class="mtx-class-macrotable wikitable""
m Text replacement - "width="90%" style="background-color:#D8C9D8; color:#4B008D;"" to "width="90%" class="mtx-class-macrohead""
 
(2 intermediate revisions by the same user not shown)
Line 82: Line 82:
{| class="mtx-class-macrotable wikitable"
{| 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;" | '''Beep'''
| width="90%" class="mtx-class-macrohead" | '''Beep'''
|-
|-
| colspan="2" | Allows the beeper to output a warning 
| colspan="2" | Allows the beeper to output a warning 
Line 111: Line 111:
{| class="mtx-class-macrotable wikitable"
{| 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;" | '''GotoPosition'''
| width="90%" class="mtx-class-macrohead" | '''GotoPosition'''
|-
|-
| colspan="2" | Recalls a previously saved position for the ARMs 5 axis. 
| colspan="2" | Recalls a previously saved position for the ARMs 5 axis. 
Line 130: Line 130:
{| class="mtx-class-macrotable wikitable"
{| 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;" | '''GripperClose'''
| width="90%" class="mtx-class-macrohead" | '''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" | 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 
Line 149: Line 149:
{| class="mtx-class-macrotable wikitable"
{| 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;" | '''GripperOpen'''
| width="90%" class="mtx-class-macrohead" | '''GripperOpen'''
|-
|-
| colspan="2" | Fully opens the gripper at the end of the arm ready to pick something up. 
| colspan="2" | Fully opens the gripper at the end of the arm ready to pick something up. 
Line 163: Line 163:
{| class="mtx-class-macrotable wikitable"
{| 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;" | '''LCDClear'''
| width="90%" class="mtx-class-macrohead" | '''LCDClear'''
|-
|-
| colspan="2" | Clears the entire contents of the display. 
| colspan="2" | Clears the entire contents of the display. 
Line 177: Line 177:
{| class="mtx-class-macrotable wikitable"
{| 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;" | '''LCDClearLine'''
| width="90%" class="mtx-class-macrohead" | '''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. 
| 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. 
Line 196: Line 196:
{| class="mtx-class-macrotable wikitable"
{| 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;" | '''LCDCursor'''
| width="90%" class="mtx-class-macrohead" | '''LCDCursor'''
|-
|-
| colspan="2" | Moves the cursor on the LCD Display 
| colspan="2" | Moves the cursor on the LCD Display 
Line 220: Line 220:
{| class="mtx-class-macrotable wikitable"
{| 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;" | '''LCDPrintNum'''
| width="90%" class="mtx-class-macrohead" | '''LCDPrintNum'''
|-
|-
| colspan="2" | Will allow you to print a number. This is limited to a signed-INT, -32768 to 32767 
| colspan="2" | Will allow you to print a number. This is limited to a signed-INT, -32768 to 32767 
Line 239: Line 239:
{| class="mtx-class-macrotable wikitable"
{| 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;" | '''LCDPrintStr'''
| width="90%" class="mtx-class-macrohead" | '''LCDPrintStr'''
|-
|-
| colspan="2" | Breaks down a string of text and sends it to the LCD via the private RawSend(byte, mask) macro 
| colspan="2" | Breaks down a string of text and sends it to the LCD via the private RawSend(byte, mask) macro 
Line 258: Line 258:
{| class="mtx-class-macrotable wikitable"
{| 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;" | '''LEDOff'''
| width="90%" class="mtx-class-macrohead" | '''LEDOff'''
|-
|-
| colspan="2" | Switches off a single LED, LA0-LA7 
| colspan="2" | Switches off a single LED, LA0-LA7 
Line 277: Line 277:
{| class="mtx-class-macrotable wikitable"
{| 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;" | '''LEDOn'''
| width="90%" class="mtx-class-macrohead" | '''LEDOn'''
|-
|-
| colspan="2" | Switches on a single LED, LA0-LA7 
| colspan="2" | Switches on a single LED, LA0-LA7 
Line 296: Line 296:
{| class="mtx-class-macrotable wikitable"
{| 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;" | '''LEDWrite'''
| width="90%" class="mtx-class-macrohead" | '''LEDWrite'''
|-
|-
| colspan="2" | Allows a value to be sent to control all eight LEDs LA0-LA7 at once 
| colspan="2" | Allows a value to be sent to control all eight LEDs LA0-LA7 at once 
Line 315: Line 315:
{| class="mtx-class-macrotable wikitable"
{| 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;" | '''LinearInterpolation'''
| width="90%" class="mtx-class-macrohead" | '''LinearInterpolation'''
|-
|-
| colspan="2" | Moves the robot to the new position so that all axis arrive at the same time. 
| colspan="2" | Moves the robot to the new position so that all axis arrive at the same time. 
Line 354: Line 354:
{| class="mtx-class-macrotable wikitable"
{| 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;" | '''MotorsMoving'''
| width="90%" class="mtx-class-macrohead" | '''MotorsMoving'''
|-
|-
| colspan="2" | Checks to see if any of the motors are still moving. 
| colspan="2" | Checks to see if any of the motors are still moving. 
Line 368: Line 368:
{| class="mtx-class-macrotable wikitable"
{| 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;" | '''Park'''
| width="90%" class="mtx-class-macrohead" | '''Park'''
|-
|-
| colspan="2" | Parks the Robot ARM and switches off the servo motors 
| colspan="2" | Parks the Robot ARM and switches off the servo motors 
Line 382: Line 382:
{| class="mtx-class-macrotable wikitable"
{| 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;" | '''ReadPressure'''
| width="90%" class="mtx-class-macrohead" | '''ReadPressure'''
|-
|-
| colspan="2" | Read the value of the pressure sensor on the ARM gripper. Returns the value as a byte 
| colspan="2" | Read the value of the pressure sensor on the ARM gripper. Returns the value as a byte 
Line 396: Line 396:
{| class="mtx-class-macrotable wikitable"
{| 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;" | '''ReadSwitch'''
| width="90%" class="mtx-class-macrohead" | '''ReadSwitch'''
|-
|-
| colspan="2" | Read the value of a single switch.  Returns the value as a byte 
| colspan="2" | Read the value of a single switch.  Returns the value as a byte 
Line 415: Line 415:
{| class="mtx-class-macrotable wikitable"
{| 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;" | '''SetAllServos'''
| width="90%" class="mtx-class-macrohead" | '''SetAllServos'''
|-
|-
| colspan="2" | Move all the servo positions between 0-180 Deg 
| colspan="2" | Move all the servo positions between 0-180 Deg 
Line 454: Line 454:
{| class="mtx-class-macrotable wikitable"
{| 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;" | '''SetMovementSpeed'''
| width="90%" class="mtx-class-macrohead" | '''SetMovementSpeed'''
|-
|-
| colspan="2" | Controls the speed of the robot movement 
| colspan="2" | Controls the speed of the robot movement 
Line 473: Line 473:
{| class="mtx-class-macrotable wikitable"
{| 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;" | '''SetServo'''
| width="90%" class="mtx-class-macrohead" | '''SetServo'''
|-
|-
| colspan="2" | Move the specified servo motor position between 0-180 Deg 
| colspan="2" | Move the specified servo motor position between 0-180 Deg 
Line 497: Line 497:
{| class="mtx-class-macrotable wikitable"
{| 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;" | '''SetTrim'''
| width="90%" class="mtx-class-macrohead" | '''SetTrim'''
|-
|-
| colspan="2" | Allows minor adjustment on the 5 axis servo motors 
| colspan="2" | Allows minor adjustment on the 5 axis servo motors 
Line 521: Line 521:
{| class="mtx-class-macrotable wikitable"
{| 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;" | '''StoreCoords'''
| width="90%" class="mtx-class-macrohead" | '''StoreCoords'''
|-
|-
| colspan="2" | Stores the provided coordinates as a position the ARM can recall. 
| colspan="2" | Stores the provided coordinates as a position the ARM can recall. 
Line 565: Line 565:
{| class="mtx-class-macrotable wikitable"
{| 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;" | '''StorePosition'''
| width="90%" class="mtx-class-macrohead" | '''StorePosition'''
|-
|-
| colspan="2" | Stores the current position of the ARMs 5 axis. 
| colspan="2" | Stores the current position of the ARMs 5 axis. 
Line 585: Line 585:
{| class="mtx-class-macrotable wikitable"
{| 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'''  
|-
|-
|-
|-

Latest revision as of 14:23, 13 July 2026

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.

Industrial Tanks






Macro reference

Beep

Beep
Allows the beeper to output a warning 
- BYTE Iterations
 
- UINT OnDelay
Delay in ms 
- UINT OffDelay
Delay in ms 
- VOID Return


GotoPosition

GotoPosition
Recalls a previously saved position for the ARMs 5 axis. 
- BYTE Index
Save Index - Range 0-29 
- VOID Return


GripperClose

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 
- BYTE Pressure
Range 1 - 100, Default Pressure = 20 
- BYTE Return


GripperOpen

GripperOpen
Fully opens the gripper at the end of the arm ready to pick something up. 
- VOID Return


LCDClear

LCDClear
Clears the entire contents of the display. 
- VOID Return


LCDClearLine

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. 
- BYTE Line
The line to clear, zero being the first (top) line of the display 
- VOID Return


LCDCursor

LCDCursor
Moves the cursor on the LCD Display 
- BYTE X
Set the cursor position in the X plane, 0 is the left most cell (0-15) 
- BYTE Y
Set the cursor position in the Y plane, 0 is the top most cell (0-1) 
- VOID Return


LCDPrintNum

LCDPrintNum
Will allow you to print a number. This is limited to a signed-INT, -32768 to 32767 
- INT Number
Enter the number or variable to print to the LCD 
- VOID Return


LCDPrintStr

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


LEDOff

LEDOff
Switches off a single LED, LA0-LA7 
- BYTE Index
0=LA0, 1=LA1, 2=LA2, 3=LA3, 4=LA4, 5=LA5, 6=LA6, 7=LA7 
- VOID Return


LEDOn

LEDOn
Switches on a single LED, LA0-LA7 
- BYTE Index
0=LA0, 1=LA1, 2=LA2, 3=LA3, 4=LA4, 5=LA5, 6=LA6, 7=LA7 
- VOID Return


LEDWrite

LEDWrite
Allows a value to be sent to control all eight LEDs LA0-LA7 at once 
- BYTE Value
(0-63) 0b000000 
- VOID Return


LinearInterpolation

LinearInterpolation
Moves the robot to the new position so that all axis arrive at the same time. 
- BYTE pos0
 
- BYTE pos1
 
- BYTE pos2
 
- BYTE pos3
 
- BYTE pos4
 
- VOID Return


MotorsMoving

MotorsMoving
Checks to see if any of the motors are still moving. 
- BYTE Return


Park

Park
Parks the Robot ARM and switches off the servo motors 
- VOID Return


ReadPressure

ReadPressure
Read the value of the pressure sensor on the ARM gripper. Returns the value as a byte 
- BYTE Return


ReadSwitch

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


SetAllServos

SetAllServos
Move all the servo positions between 0-180 Deg 
- BYTE Servo0_Base
Position of servo0 in degrees (0-180) 
- BYTE Servo1_Shoulder
Position of servo1 in degrees (0-180) 
- BYTE Servo2_Elbow
Position of servo2 in degrees (0-180) 
- BYTE Servo3_Wrist
Position of servo3 in degrees (0-180) 
- BYTE Servo4_WristRotate
Position of servo4 in degrees (0-180) 
- VOID Return


SetMovementSpeed

SetMovementSpeed
Controls the speed of the robot movement 
- BYTE MovementSpeed
1=Normal Speed (Default), 2=DoubleSpeed 
- VOID Return


SetServo

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


SetTrim

SetTrim
Allows minor adjustment on the 5 axis servo motors 
- BYTE Index
Motor Index Range 0-4 
- BYTE Trim
Amount of Trim Range 0-255, Default Value 128 
- VOID Return


StoreCoords

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


StorePosition

StorePosition
Stores the current position of the ARMs 5 axis. 
- BYTE Index
Save Index - Range 0-29 
- VOID Return


Property reference

Properties
Starting Conditions