The JeeBot now has telemetry functionality, continuously sending real-time process data by wireless for analysis and display on a desktop PC.
It was quite simple to add this: send a buffer with the latest data every 200 msec, using the RF12 driver. No acks, no checking – the receiver grabs as much as it can off the air, and simply ignores invalid and lost packets.
Here is the essence of the code added to the JeeBot loop, which runs every 20 ms – in lock-step with the pulses it generates to control the servos:
A second JeeNode acts as receiver to pick up these data packets and transfer them to the serial port – here’s the complete sketch:
Sample output:
These values show what the JeeBot is doing while running on its own internal batteries … i.e. wireless telemetry in practice!
The next step will be to analyze and visualize this data to help me properly tune the PID control parameters. That’s more work.