I’ve upgraded the hardware to include two LEDs in addition to the phototransistor. Based on the reading of the screen flashes, the LEDs flash according to the key shown.
Here’s a video of the system in action:
This is at a screen frame rate of 60 Hz, for a transmission rate (with trigger and null bits) of 6 bytes per second. For GIRC, that’s enough to convey 1.5 segment turn-and-move segment commands per second from the computer to the robot. A file of 15 commands, which is probably on the large side, would only take ten seconds.
This brings me closer to dispensing with the USB/Serial cable, and if I can do that, I can take the ATMega328 microcontroller off the Arduino. That will reduce the cost of my robotics kit by about $25.