Hekateros  3.4.3
RoadNarrows Robotics Robot Arm Project
Hekateros Optical Limits

Classes

struct  hekateros::HekOpticalLimit_T
 Optical limit switch. More...
 

Functions

static byte_t hekateros::getDarkOpticalLimits (byte_t byBits, byte_t byMask)
 Test if any of the optical limits have been triggered (occluded). More...
 
static byte_t hekateros::getLitOpticalLimits (byte_t byBits, byte_t byMask)
 Test if any of the optical limits are lit (not occluded). More...
 

Variables

static const byte_t hekateros::HekIOExpI2CAddr = 0x20
 i2c 7-bit address
 
static const byte_t hekateros::HekIOExpCmdInput0 = 0
 read port 0 command
 
static const byte_t hekateros::HekIOExpCmdInput1 = 1
 read port 1 command
 
static const byte_t hekateros::HekIOExpCmdOutput0 = 2
 write port 0 command
 
static const byte_t hekateros::HekIOExpCmdOutput1 = 3
 write port 1 command
 
static const byte_t hekateros::HekIOExpCmdPolarity0 = 4
 polarity inversion port 0
 
static const byte_t hekateros::HekIOExpCmdPolarity1 = 5
 polarity inversion port 1
 
static const byte_t hekateros::HekIOExpCmdConfig0 = 6
 configuration port 0 cmd
 
static const byte_t hekateros::HekIOExpCmdConfig1 = 7
 configuration port 1 cmd
 
static const byte_t hekateros::HekIOExpUnassigned = 0
 unassigned port bit
 
static const byte_t hekateros::HekIOExpDark = 0
 optic switch blocked
 
static const byte_t hekateros::HekIOExpLight = 0xff
 optical switch is lit
 
static const byte_t hekateros::HekIOExpConstPolarity0 = 0x00
 port 0 not inverted
 
static const byte_t hekateros::HekIOExpConstConfig0 = 0xff
 port 0 all input
 
static const byte_t hekateros::HekIOExpPort0Base0 = 0x01
 base 0 ° limit
 
static const byte_t hekateros::HekIOExpPort0Base180 = 0x02
 base 180 ° lim.
 
static const byte_t hekateros::HekIOExpPort0Shoulder = 0x04
 shoulder limit
 
static const byte_t hekateros::HekIOExpPort0Elbow = 0x08
 elbow limit
 
static const byte_t hekateros::HekIOExpPort0WristPitch = 0x10
 wrist pitch limit
 
static const byte_t hekateros::HekIOExpPort0WristRot0 = 0x20
 wrist rot 0 °
 
static const byte_t hekateros::HekIOExpPort0Rsrv1 = 0x40
 reserved
 
static const byte_t hekateros::HekIOExpPort0Rsrv2 = 0x80
 reserved
 
static const byte_t hekateros::HekIOExpPort1EEUser1 = 0x01
 user defined 1
 
static const byte_t hekateros::HekIOExpPort1EEUser2 = 0x02
 user defined 2
 
static const byte_t hekateros::HekIOExpPort1Rsrv1 = 0x04
 reserved
 
static const byte_t hekateros::HekIOExpPort1Rsrv2 = 0x08
 reserved
 
static const byte_t hekateros::HekIOExpPort1Rsrv3 = 0x10
 reserved
 
static const byte_t hekateros::HekIOExpPort1Rsrv4 = 0x20
 reserved
 
static const byte_t hekateros::HekIOExpPort1Rsrv5 = 0x40
 reserved
 
static const byte_t hekateros::HekIOExpPort1Rsrv6 = 0x80
 reserved
 
static const int hekateros::HekOptLimitMaxPerJoint = 2
 max limits/joint
 
static const int hekateros::HekOptLimitMaxEdges = 2
 max edges/limit
 

Detailed Description

All optical joint limits are feed into an I2C I/O expander. In addition two input/ouput user-defined values are available at the end effector tool zero point.

Function Documentation

static byte_t hekateros::getDarkOpticalLimits ( byte_t  byBits,
byte_t  byMask 
)
static

Test if any of the optical limits have been triggered (occluded).

Parameters
byBitsI/O expander mapped optical limit switches.
byMaskMask of limits to check.
Returns
Returns bit map where 1 at a given mapped position indicates the optical limit has been triggered, 0 otherwise.

Definition at line 194 of file hekOptical.h.

Referenced by hekateros::HekCalibStretch::calibrateJointByLimits(), hekateros::HekCalibStretch::calibrateJointTopDeadCenter(), hekateros::HekCalibStretch::fineTuneLimit(), and hekateros::HekCalib::moveToDark().

195  {
196  //fprintf(stderr, "dhp: dark: raw bits, mask = %02x, %02x\n", byBits, byMask);
197  return ~byBits & byMask;
198  }
static byte_t hekateros::getLitOpticalLimits ( byte_t  byBits,
byte_t  byMask 
)
static

Test if any of the optical limits are lit (not occluded).

Parameters
byBitsI/O expander mapped optical limit switches.
byMaskMask of limits to check.
Returns
Returns bit map where 1 at a given mapped position indicates the optical limit is lit, 0 otherwise.

Definition at line 209 of file hekOptical.h.

Referenced by hekateros::HekCalibStretch::calibrateJointByLimits(), hekateros::HekCalibStretch::fineTuneLimit(), hekateros::HekCalibStretch::fineTuneTDC(), and hekateros::HekCalib::moveToLight().

210  {
211  //fprintf(stderr, "dhp: lit: raw bits, mask = %02x, %02x\n", byBits, byMask);
212  return byBits & byMask;
213  }