8
USER INTERFACE
$ADMKP
Current motor PID loop proportional constant (KP). No
units.
Format:
$ADMKP m1,m2,m3,m4
$ADMKI
Current motor PID loop integral constant (KI). No units.
Format:
$ADMKI m1,m2,m3,m4
$ADMKD
Current motor PID loop derivative constant (KD). No
units.
Format:
$ADMKD m1,m2,m3,m4
$ADMTH
Most recent motor thrust in units of Newtons.
Format:
$ADMTH m1,m2,m3,m4
$ADMTQ
Most recent motor torque in units of Newton-Meters.
Format:
$ADMTQ m1,m2,m3,m4
$ADDRP
Most recent motor rotations per second set point (the de-
sired rps).
This is the speed that motors are trying to
achieve, and is fed into the motor PID loops.
Format:
$ADDRP m1,m2,m3,m4
8
User Interface
Currently, the only user interface is via the Anzhelka Terminal.
8.1
Anzhelka Terminal
The Anzhelka project uses a PC based GUI platform called Anzhelka Ter-
minal (AT) to display realtime system states and to allow for parameter tuning.
AT is written in Python and uses the WxWidgets Python branch WxPython
for the GUI. AT is cross platform.
The AT GUI was written in WxPython and developed in part with the
WYSIWYG editor WxGlade. WxGlade was suitable for most of the general
layout tools, but was insufficient in two areas. First, WxGlade could not specif-
ically layout the dynamic graphs since the graph class is a non standard class.
Secondly, WxGlade was not used to layout the motor parameter table. This
table has a row for each motor (normally 4 motors, but possibly 3 or more) and
a column for each parameter of interest. Since this section was hand coded,
either number should be easily changeable without excessive GUI editing .
AT will listen on the specified serial port for $ATXXX strings, and will make
these strings available for reading. Within the program, different threads will
search the received strings list and extract the strings of interest, then display
them onscreen. If an unknown string is encountered then AT will ignore it.
28