Worst demo ever, but these days I only have two hands. Here I needed three: one for holding the set-up, one for holding the camera, and one for clicking the mouse.
Notice the status bar, also that there is a green LED behind (or in front of) the yellow LED. It flashes multiple times at the end, signaling checksum match. That is, the bytes being transmitted are summed up and a modulus 90 operation is performed, and the result is sent as a final byte in the transmission. On the Arduino side, the bytes received are summed up and a modulus 90 operation is performed, and the result is compared to the result received from the screen-flash transmission. If the two checksums match, the green light flashes and the message was transmitted correctly. If the yellow LED flashes, then we are unhappy, for the message did not transmit correctly.
What a miserable time I have had in transmitting data via screen-flash. I thought I would be able to transmit at 60 Hz, because it worked in the test program. But when I tried to incorporate screen-flash into the GIRC program, the frame rate decided to slow down to 20 Hz. I spent many days wrestling with that, and finally gave up for now.
This is what the new set-up looks like:
The phototransistor has been replaced by an LDR (ie, light dependent resistor). I originally wanted to use an LDR because they’re a lot cheaper than phototransistors, but they’re also a thousand times slower. Even at 60 Hz transmission rate, an LDR was inadequate. At 20 Hz, however, they do work. Not that you would think so from the LDR’s data sheet rise time, but there’s a little trick involved with that.
A cowling has been placed around the LDR to cut out ambient light, which has been a problem. The cowling — or ‘enclosure’ as I also refer to it — is made of note card and duct tape. A kludge indeed. I’m planning to go to a laser cutting place. Then this thing will start to look nice.
Here’s my project schedule on the fly:
Check off Enclosure for today. Tomorrow I hope to Transfer Code from the Arduino test rig program into the robot program. I hope that isn’t a biggie, and so far programming the Arduino has been a lot easier than programming in Processing.
Well, this has been a rambling blog entry, hasn’t it? But the project is alive, and though I missed my deadline of having screen-flash done by this month’s SRS meeting for presentation, I have confidence that I will have not only screen-flash but everything else on the above note card done for presentation in the April meeting.
And I just might have a viable product by June.