The Tech - Online EditionMIT's oldest and largest
newspaper & the first
newspaper published
on the web
Boston Weather: 83.0°F | Partly Cloudy

Sophomore Uses Calculator to Build Unique Robot

Rebecca Loh -- The Tech
David West '01, a competitor in "6.270 Raiders of the Lost Parts" pleased the crowd with his autonomous robot built using his TI-86 chip.
By Karen E. Robinson
Staff Reporter

Like many students this year, David E. West '01 was lotteried out of the class for the 6.270 Autonomous Robot Design Competition.

Undaunted, West participated anyway. In a stroke of pure ingenuity, he built a robot using the computational power the Z80 chip of a TI-86 calculator in place of a 6.270 controller board.

He designed a card to interface the robot and calculator, then programmed the robot with the calculator's assembly language, which is much more powerful than the regular TI pseudo-language.

The calculator-robot interface was the first and most difficult step, West said. He built a shift register to manipulate information from the calculator's serial port so that it could work with the robot's 8-bit parallel interface. "By messing around with the output you can obtain data eight bits wide," West said. "Then each bit can control a motor or read a sensor."

TI-86 robot design reliable'

From the onset West was not sure if he could build such an interface. Constructing and debugging the chip took several weeks, leaving only about two and a half weeks to work on the robot itself. West cites this as one reason for favoring a slow, reliable design one less complicated to build and debug.

West's robot scooped target balls off the table into an inside cavity. It had a total of three motors, one which ran the scooper and one for each drive shaft. "There's a drive shaft on each side of the robot," West said, "like in a tank." He geared the wheels down, so that they were powerful, but slow otherwise they may not have been strong enough to move the robot at all. With lowered gears, the robot was strong enough even to go up the stairs, had it had time to reach them.

West also considered a design which pushed balls into the bin, but opted for maximum dependability. "I went for a simple scoop that would work whether the electronics worked or not," West said. The electronics only guided the robot to target balls; nothing was contingent on navigating back to the bin.

The last addition to West's robot were the light sensors, which he added three hours before Wednesday's competition. These detected the red light which signals the beginning of the round to the robot. Even moments before the exhibition, West wasn't sure if the light level in 26-100 was high enough to trigger his sensors at all.

Fortunately, the light level was adequate, and West's robot succeeded in scooping three positive balls. Unfortunately, he also scooped up a negative ball, scoring two points overall according to the contest's scoring convention. The student against whom he competed scored four points and won the round, but West's unique robot outperformed several robots which actually competed.

Assembly code instructs robot

West wrote his controlling code in the assembly language for the Z80 chip, which is used in graphing TI calculators except the TI-92. He has been working with some Z80 assembly language for a few years, West said. This robot used a TI-86, which actually has some support for assembly programming. This option was added after users hacked into assembly mode on the TI-85, a more difficult feat.

Though it is much more powerful, using assembly language is always somewhat dangerous because there is no shell software to protect the rest of the system memory. A random program will crash the calculator completely, while one tailored to the calculator's architecture runs like a regular program. A bug, however, can be so fatal as to require removing all the batteries, even the backup, and losing everything on the calculator.

West relies on 6.002 knowledge

West has long been interested in electronics, but never before had the background necessary for a major project. His first formal exposure to electronics was 6.002 last semester. There he learned some digital circuitry, though the focus was on analog systems, and, more importantly, how to use the lab. West built the interface and robot in the 6.002 lab, where lab assistants were "very helpful," he said. West also relied heavily on reference manuals, especially for information on ttl logic, which is used in the Z80 chip. "The most important thing [from 6.002] was they showed us where to get information."

West decided to build the robot on his own, saying that this seemed like a good application of the knowledge he gained from 6.002, and that it was a chance to use his interests in both electronics and assembly language.

The robot also fulfills the goal West cited to crowds watching the 6.270 competition on Wednesday: "Well, I tried to find a use for the calculator. I just had it lying around."