Thursday, December 14, 2006
Running Tommelise from the PC...
The serial commands that I programmed into the PIC 16F877A are finally beginning to firm up. Sending from the PC:
{RX} - reset the axis
...
{RZ}
{MX} - measure the axis in pulses
...
{MZ}
{HX+} - move in the +x direction on the x-axis
{HX-} - move in the -x direction on the x-axis
...
{CX+} - stop moving on the x-axis
...
and so on...
Here is a screen grab of the test harness that feeds instructions to the 16F877A via the serial link...

As you can see when you tell it to, for example, measure the x-axis {MX}, the firmware returns the number of encoder pulses counted as the x-axis moves from the beginning limit to the end limit. After any process is finished the firmware transmits a "finished" {OK} string.
You will notice that the pulse measurements for the same axis are similar, but not identical. Right now, I carefully line up the axis at the beginning limit but only stop measuring when the gearmotor hits the other limit at full speed. It may make a revolution or two running at full speed before noticing that it has been turned off. This isn't too important in that I only need an approximate length of the axis plus a replicable starting point. I've got that.
{RX} - reset the axis
...
{RZ}
{MX} - measure the axis in pulses
...
{MZ}
{HX+} - move in the +x direction on the x-axis
{HX-} - move in the -x direction on the x-axis
...
{CX+} - stop moving on the x-axis
...
and so on...
Here is a screen grab of the test harness that feeds instructions to the 16F877A via the serial link...

As you can see when you tell it to, for example, measure the x-axis {MX}, the firmware returns the number of encoder pulses counted as the x-axis moves from the beginning limit to the end limit. After any process is finished the firmware transmits a "finished" {OK} string.
You will notice that the pulse measurements for the same axis are similar, but not identical. Right now, I carefully line up the axis at the beginning limit but only stop measuring when the gearmotor hits the other limit at full speed. It may make a revolution or two running at full speed before noticing that it has been turned off. This isn't too important in that I only need an approximate length of the axis plus a replicable starting point. I've got that.