PropWare  3.0.0.229
C++ objects and CMake build system for Parallax Propeller
Macros | Functions
abcalibrate360.h File Reference

This library has a functions you can call to calibrate your ActivityBot 360. Example code that uses this library to calibrate the ActivityBot is here:

http://learn.parallax.com/activitybot

Calibration instructions that accompany the example code are included in the tutorial. More...

#include "simpletools.h"
#include "servo360.h"
#include "abdrive360.h"
+ Include dependency graph for abcalibrate360.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define ABD60_PIN_CTRL_L   12
 
#define ABD60_PIN_FB_L   14
 
#define ABD360_PIN_CTRL_R   13
 
#define ABD360_PIN_FB_R   15
 
#define _AB360_EE_Start_   63418
 ActivityBot EEPROM calibration data start address.
 
#define _AB360_EE_Pins_   12
 
#define _AB360_EE_mVccwL_   28
 
#define _AB360_EE_bVccwL_   32
 
#define _AB360_EE_mVcwL_   36
 
#define _AB360_EE_bVcwL_   40
 
#define _AB360_EE_mVccwR_   44
 
#define _AB360_EE_bVccwR_   48
 
#define _AB360_EE_mVcwR_   52
 
#define _AB360_EE_bVcwR_   56
 
#define _AB360_EE_End_   _AB360_EE_Start_ + 60
 ActivityBot EEPROM calibration data end address.
 
#define AB360_ERROR_NONE   0
 
#define AB360_ERROR_CABLE_SWAP   -1
 
#define AB360_ERROR_NO_ENC_SIG_BOTH   -2
 
#define AB360_ERROR_NO_ENC_SIG_LEFT   -3
 
#define AB360_ERROR_NO_ENC_SIG_RIGHT   -4
 
#define AB360_ERROR_NO_MOTION_LEFT   -5
 
#define AB360_ERROR_NO_MOTION_RIGHT   -6
 
#define AB360_ERROR_NO_MOTION_BOTH   -7
 
#define AB360_ERROR_BATTERIES_TOO_LOW   -8
 
#define AB360_ERROR_BATTERIES_TOO_HIGH   -9
 
#define AB360_ERROR_XFER_OUT_OF_RANGE   -10
 
#define AB360_ERROR_POSSIBLE_AB_NOT_360   -11
 
#define AB360_ERROR_CONDITION_UNKNOWN   -12
 

Functions

void cal_supply5V (int setting)
 
void cal_activityBot (void)
 Run the ActivityBot 360 calibration function. Let it run until the P26 and P27 lights turn off. It'll take about 30 seconds. More...
 
void cal_servoPins (int servoPinLeft, int servoPinRight)
 Set the ActivityBot 360's servo pin connections to values other than the default P12 (left servo) and P13 (right servo). This function stores values in EEPROM where the abdrive360 library can access them. So, the abdrive360 library will expect the servos to be connected to the Propeller I/O pins specified by the servoPinLeft and servoPinRight parameters. More...
 
void cal_encoderPins (int fbPinLeft, int fbPinRight)
 Set the ActivityBot 360's feedback pin connections to something other than the default P14 (left feedback) and P15 (right feedback). This function stores values in EEPROM where the abdrive360 library can access them. So, the abdrive360 library will expect the feedback pins to be connected to the I/O pins specified by the fbPinLeft and fbPinRight parameters. More...
 
void cal_displayData (void)
 Display ActivityBot 360 calibration data in the terminal.
This data consists of I/O pin values for the servo's control and feedback I/O pin connections and m and b values for a y = mx + b equation that is used to calculate control pulse widths based on measured calibration data. Details about how y, m, x, and b are calculated appear in the notes at the bottom of the terminal.
 
void cal_displayResults (void)
 Indicates whether the last calibration was successful or had errors. Errors can be caused by turning off the ActivityBot 360 before the yellow lights go out, and also by incorrect servo control/feedback pin connections.
 
void cal_clear (void)
 Clear calibration settings. After this function is called the abdrive360 library will use standard default settings.
 
int cal_getEepromPins (void)
 

Detailed Description

This library has a functions you can call to calibrate your ActivityBot 360. Example code that uses this library to calibrate the ActivityBot is here:

http://learn.parallax.com/activitybot

Calibration instructions that accompany the example code are included in the tutorial.

Author
Andy Lindsay
Core Usage
A call to cal_activityBot launches 1 additional core, and self-terminates the application when done.
EEPROM Usage
Writes to addresses 63418..65470.
Memory Models
Use with CMM.
Version
v0.90
  • add cal_servoPins and cal_encoderPins to change from default I/O connections to ActivityBot 360 servos and feedback lines. Values used will persist in EEPROM and be used by the abdrive360 library.
Help Improve this Library
Please submit bug reports, suggestions, and improvements to this code to edito.nosp@m.r@pa.nosp@m.ralla.nosp@m.x.co.nosp@m.m.

Definition in file abcalibrate360.h.

Function Documentation

◆ cal_activityBot()

void cal_activityBot ( void  )

Run the ActivityBot 360 calibration function. Let it run until the P26 and P27 lights turn off. It'll take about 30 seconds.

Run the ActivityBot 360 calibration function. Let it run until the P26 and P27 lights turn off. It'll take about 30 seconds.

Definition at line 44 of file abcalibrate.c.

+ Here is the call graph for this function:

◆ cal_encoderPins()

void cal_encoderPins ( int  fbPinLeft,
int  fbPinRight 
)

Set the ActivityBot 360's feedback pin connections to something other than the default P14 (left feedback) and P15 (right feedback). This function stores values in EEPROM where the abdrive360 library can access them. So, the abdrive360 library will expect the feedback pins to be connected to the I/O pins specified by the fbPinLeft and fbPinRight parameters.

Parameters
fbPinLeftNumber of Propeller I/O pin connected to the left encoder.
fbPinRightNumber of Propeller I/O pin connected to the right encoder.

Set the ActivityBot 360's feedback pin connections to something other than the default P14 (left feedback) and P15 (right feedback). This function stores values in EEPROM where the abdrive360 library can access them. So, the abdrive360 library will expect the feedback pins to be connected to the I/O pins specified by the fbPinLeft and fbPinRight parameters.

Parameters
encPinLeftNumber of I/O pin connected to the left encoder.
encPinRightNumber of I/O pin connected to the right encoder.

Definition at line 787 of file abcalibrate.c.

◆ cal_servoPins()

void cal_servoPins ( int  servoPinLeft,
int  servoPinRight 
)

Set the ActivityBot 360's servo pin connections to values other than the default P12 (left servo) and P13 (right servo). This function stores values in EEPROM where the abdrive360 library can access them. So, the abdrive360 library will expect the servos to be connected to the Propeller I/O pins specified by the servoPinLeft and servoPinRight parameters.

Parameters
servoPinLeftNumber of I/O pin connected to the left servo.
servoPinRightNumber of I/O pin connected to the right servo.

Set the ActivityBot 360's servo pin connections to values other than the default P12 (left servo) and P13 (right servo). This function stores values in EEPROM where the abdrive360 library can access them. So, the abdrive360 library will expect the servos to be connected to the Propeller I/O pins specified by the servoPinLeft and servoPinRight parameters.

Parameters
servoPinLeftNumber of I/O pin connected to the left servo.
servoPinRightNumber of I/O pin connected to the right servo.

Definition at line 773 of file abcalibrate.c.