Serial port handling
Back to Basebot
Windows (and Linux)
Arduino IDE
I couldn't find a way to save the serial monitor data to a disk file.
So find another app that allows communication in the serial line and save the output to a disk file (or allow copy-paste to do the same).
Visual Studio Code
From the menu: View -> Command Palette -> Type PlatformIO: New Terminal
(next time, this command will be first in line)
In this terminal type
pio device monitor > aaa.txt
It will try to open the communication and save it to the aaa.txt file.
Try pressing the start button on the robot (wheels up). Then press ctrl-C to stop the monitoring and inspect the file.
(the same for both Windows and Linux)
The file aaa.txt could contain something like:
--- Terminal on /dev/ttyACM1 | 9600 8-N-1 --- Available filters and text transformations: colorize, debug, default, direct, hexlify, log2file, no control, printable, send_on_enter, time --- More details at https://bit.ly/pio-monitor-filters --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H 0.67 2.00 0.26 -0.26 0 0 0 0 1 0 0 0 1 0 2.13 2.43 1.17 2.00 0.26 -0.26 0 0 0 0 1 0 0 0 1 0 2.13 2.43 1.67 2.00 0.26 -0.26 0 0 0 0 1 0 0 0 1 0 2.13 2.43 2.17 2.00 0.26 -0.26 0 0 0 0 1 0 0 0 1 0 2.13 2.43 2.67 2.00 0.26 -0.26 0 0 0 0 1 0 0 0 1 0 2.13 2.43 ... 1998.67 0.00 -0.36 -0.34 0 0 0 0 1 0 0 0 1 0 2.85 3.23 1999.17 0.00 -0.36 -0.34 0 0 0 0 1 0 0 0 1 0 2.85 3.23 1999.67 0.00 -0.36 -0.34 0 0 0 0 1 0 0 0 1 0 2.85 3.23 2000.17 0.00 -0.36 -0.34 0 0 0 0 1 0 0 0 1 0 2.85 3.23 2000.67 0.00 -0.36 -0.34 0 0 0 0 1 0 0 0 1 0 2.85 3.23 2001.17 0.00 -0.36 -0.34 0 0 0 0 1 0 0 0 1 0 2.85 3.23 % Set Sample time 500 usec. Measured Sample time 499.99 usec.
The numeric content depends on the code (the first column is here time in ms). The lead-in text must be removed before loading into Matlab.
Linux
In Linux, the serial device is called /dev/ttyACM0 (typically), and to copy the robot output to a file is:
$ cat /dev/ttyACM0 > aaa.txt
And use ctrl-C to stop.
You can, in another terminal, send commands to the robot, i.e.:
$ echo "start" > /dev/ttyACM0
This is the same as pressing the start button.
Apple
I don't know