Введение
Образовательный робот
XR 2 – это образовательный робот, разработанный компанией Rhino Robotics. Робот представляет собой многосуставную руку с пятью степенями свободы (шестью степенями свободы при подключении к опциональной скользящей базе). Рука изготовлена из алюминия, и внутреннее устройство робота, такое как редукторные электродвигатели и их вращающиеся энкодеры, находится на виду. Контроллер, основанный на процессоре 6502, который также использовался в компьютере Apple II – современнике этого робота, – может управлять до восьми моторами робота и двумя другими устройствами, например, поворотным столом или упомянутой скользящей базой. В комплекте имеется обучаемый пульт управления, аналогичный используемым в полноразмерных промышленных роботах, который подключается к контроллеру. С его помощью роботу можно "обучить" простым программам, используя пульт, а затем заставить их повторять.
Интерфейс контроллера
Интерфейс для контроллера двигателя основан на последовательном порте RS 232 (9600 бод, 7 бит данных, 2 стоповых бита, четный паритет). Контроллер, хотя и размещен в одном физическом корпусе, фактически состоит из двух устройств. Верхнее – компьютер для обучения, нижнее – собственно контроллер двигателя. К этому последовательному порту можно подключить компьютер и отправлять команды роботу. Команды очень простые, и многие из них текстовые, поэтому контроллер можно управлять с помощью простого последовательного терминала или программы-эмулятора терминала, работающей на ПК. Например, команда "F+100" приведет к перемещению двигателя F на 100 единиц. Команда "F 100" изменит направление движения на противоположное. Обычно команды относятся к одному из восьми двигателей, которыми может управлять контроллер, обозначенных буквами A, B, C… H. Число не должно превышать 127 или быть меньше -128, иначе произойдет переполнение знакового байта, хранящего это значение. Другая команда – "F?", (где F может быть любым обозначением двигателя). Эта команда запрашивает количество шагов текущей инструкции перемещения, которые еще не выполнены. Возвращается байт, из которого необходимо вычесть 32, чтобы получить фактическое количество оставшихся шагов. 32 добавляются для того, чтобы возвращаемый символ всегда был печатным, а не управляющим.
The number must not be larger than 127 or smaller than 128, or the signed byte holding it will overflow. Another command is 'F? ', (Where F could be any motor label). This command inquires how many steps of the current movement instruction have not yet been performed. A byte is returned, but 32 must be subtracted from this byte to get the true number of steps remaining 32 is added so that the returned character is always a printing character and not a control character.