Интерфейс RSCI для Roomba. Немного подробностей


В предыдущей статье мы рассмотрели возможность изготовления своими руками кабеля для подключения роботов-пылесосов Roomba к ПК. Сегодня я продолжу тему и приведу некоторую информацию, которая может пригодиться робототехникам, решившим приручить свой пылесос.

Прежде всего, хочу обратить внимание конструкторов-любителей на то, что малораспространенный у нас в России разъем mini-DIN 7-pin на западе имеет целую кучу модификаций, поэтому если вы решили заказать его, к примеру, через Интернет «не глядя», то можете получить все что угодно с семью ногами. Конечно, разъем этот наверняка имеет свое точное «имя», но как оно звучит я не знаю (да и не интересовался этим). Поэтому, прежде чем нажать на кнопку «Купить» имеет смысл на то что вы собираетесь купить взглянуть.

Распиновка гнезда, используемого в  Roomba

№ контакта назначение
1 «+» источника питания робота
2 «+» источника питания робота
3 вход данных (RXD)
4 выход данных (TXD)
5 изменение скорости обмена /определение подключения внешнего устройства
6 корпус («-» аккумуляторной батареи)
7 корпус («-» аккумуляторной батареи)

Ниже я привожу фото гнезда и штыревой части, которые используются компанией Roomba в своих пылесосах и именуются «mini-DIN 7-pin». Кстати, возвращаясь к проблеме со шнуром интерфейса – такие шнуры можно купить у производителя роботов (фото в заголовке статьи) и даже на всевозможных китайских аукционах, но сам я этим не занимался, поскольку дружу с паяльником, и во что это выльется (сколько, чего, как платить и где получать) увы, не в курсе. Но шнур, я думаю, найти можно.

Теперь по поводу самого гнезда, которое, ясное дело, конструкторы на видное место не лепили. Практически на всех моделях до пятой версии разъем этот спрятан под плохо заметной крышкой, расположенной, как бы точнее описать «сбоку справа немного сзади». Сдвигается она вверх. На пятых моделях разъем спрятан под верхней декоративной крышкой. Разъемы  и их распиновка, напомню, во всех моделях одинакова, программный интерфейс тот же, немного отличается, только скорость обмена по умолчанию, но об этом ниже.

Штыревая часть и гнездо, которые используются компанией Roomba в своих пылесосах и именуется «mini-DIN 7-pin»

При появлении на выводе «5» низкого уровня (0В) через 2 сек после включения, робот определяет, что к порту подключено внешнее устройство. По умолчанию скорость последовательного обмена для всех моделей роботов устанавливается 57600 бод, для модели 5 —  115200 бод. Если после подключения и распознания внешнее устройство подаст на вывод 5 серию из трех импульсов (положительные, длительность 50-500 мсек.), то скорость обмена у всех моделей устанавливается  19200 бод. Установить такую же скорость можно и вручную, если по включению пылесоса удерживать кнопку Clean/Power  в течение 10 сек. Как только прозвучит звуковой сигнал нисходящей гаммы, скорость будет снижена до 19200 бод.

Кроме аппаратного выбора скорости обмена, возможна программная установка. Если связь между устройствами уже установлена (условия по протоколу в таблице ниже выполняются), то скорость обмена можно сменить, отправив на пылесос двухбайтную команду 81Н, ХХН, где ХХН:  00Н – 300 бод — 01Н – 600 бод- 02Н – 1200 бод- 03Н – 2400 бод- 04Н – 4800 бод- 05Н – 9600 бод- 06Н – 14400 бод- 07Н – 19200 бод- 08Н – 28800 бод- 09Н – 38400 бод- 0АН – 57600 бод- 0ВН – 115200 бод. Программная установка скорости обмена действительна даже после отключения внешних устройств и сбрасывается на установки по умолчанию только после отключения пылесоса.

Некоторые настройки протокола RSCI для Roomba по умолчанию

скорость передачи по умолчанию, бод 57600 (115200 для 5-ой модели)
контроль нет
проверка четности нет
стоповый бит 1
бит в слове 8