Создаем робота-андроида своими руками
Шрифт:
Рис. 8.8. Боковой вид верхней скобы, изготовленной из алюминиевой полосы 3х12х370 мм
Очень важно найти линию центра тяжести бампера, поскольку она будет являться наилучшим местом прикрепления верхней скобы. Поставьте бампер на торец алюминиевой полосы. Подвигайте его в разные стороны до нахождения положения равновесия. Отметьте карандашом соответствующие места на боковых сторонах бампера. Просверлите на каждой стороне отверстие диаметром 3 мм. Соответствующие отверстия просверлите на концах верхней скобы. Прикрепите верхнюю скобу к бамперу при помощи 3-миллиметровых
Бампер прикрепляется к «телу» робота с помощью верхней скобы. Просверлите три отверстия диаметром 3 мм в верхней части скобы. Одно отверстие сверлится по центру; два других на расстоянии 28 мм от центра (см. рис. 8.9). Три соответствующих отверстия нужно просверлить в основании робота за сервомотором. Положение отверстий должно быть выбрано таким образом, чтобы зазор между бампером и задними колесами лежал в переделах 3–6 мм. Положение соответствующего центрального отверстия на основании должно быть передвинуто вперед примерно на 6 мм.
Рис. 8.9. Боковой вид расположения отверстий в горизонтальной части верхней скобы
Скоба крепится к основанию при помощи двух 3-миллиметровых винтов длиной 25 мм, четырех гаек 3 мм, и двух пружин длиной 25 мм, внутренним диаметром 3 мм и усилием натяжения порядка 900 г (см. рис. 8.10). Жесткость крепления бампера может быть отрегулирована затягиванием или отпусканием крепежных гаек. После установки бампера, при касании или столкновении робота с препятствием бампер будет отклоняться назад и замыкать контакты выключателя.
Рис. 8.10. Боковой вид крепления верхней скобы к основанию робота при
Для изготовления выключателя использованы центральные отверстия в верхней скобе и основании робота. Как видно из рис. 8.10, в центральное отверстие скобы вставлен винт 3 мм, затянутый обычной оцинкованной гайкой и дополнительной латунной контргайкой. К латунной гайке припаян контактный провод. Такая конструкция обеспечивает надежный электрический контакт между проводом и скобой бампера. Латунная гайка используется потому, что к ней легко надежно припаять проводник. Обычные оцинкованные гайки с трудом поддаются пайке, что снижает надежность электрического контакта.
Другая половина выключателя состоит из пластмассового винта 3 мм длиной 25 мм и трех гаек, одна из которых латунная и к которой припаивается второй контактный провод выключателя (см. рис. 8.11). На рис. 8.12 изображен чертеж выключателя в сборе. Регулировка выключателя заключается в том, чтобы расположить нижнюю контактную латунную гайку непосредственно под верхней алюминиевой скобой, но без взаимного касания. Когда верхняя скоба наклоняется вперед, то она касается латунной гайки, замыкая, таким образом, электрический контакт.
Рис. 8.11. Боковой вид датчика «касания» (половина датчика на основании робота), пластиковый винт с верхней латунной гайкой
Рис. 8.12. Детальная фотография крепления датчика «касания» и пружинной подвески верхней скобы
В моем прототипе устройства использованы CdS фоторезисторы с темновым сопротивлением порядка 100 кОм и сопротивлением на свету порядка 10 кОм. Наилучшим местом для закрепления фоторезисторов является верхняя часть 100:1 редуктора ходового двигателя (см. рис. 8.13). Для крепления фоторезисторов я использовал небольшую пластиковую пластинку, закрепленную под углом 45° вверх и светонепроницаемый козырек, помещенный между фоторезисторами (см. рис. 8.14). Закрепление фоторезисторов на площадке переднего колеса автоматически
Рис. 8.13. Детальная фотография конструкции узла переднего ведущего колеса, содержащая противовес, ведущее колесо, двигатель с редуктором и датчики освещенности
Рис. 8.14. Изометрический вид блока датчиков
Использование двух CdS фоторезисторов сильно облегчает вычисления, необходимые для решения задачи следования за источником света. Для этого требуется алгоритм, аналогичный алгоритму действия устройства системы слежения за направлением источника света, описанный в гл. 6. Работа блока фоторезисторов проиллюстрирована на рис. 8.15. Когда оба датчика освещены одинаково, то их сопротивления приблизительно равны. Если разность показаний каждого их датчиков не превышает ±10 единиц, программа PIC полагает их равными и не отдает команду на устройство поворота. Когда один из датчиков попадает в тень источника света, то разность сопротивлений превышает ±10 единиц. Соответственно PIC микроконтроллер включает устройство поворота для обеспечения равной освещенности датчиков. При этом переднее колесо поворачивается, и робот движется прямо к источнику света. Если освещенность превышает пороговую, то робот переходит в режим «избегания».
Рис. 8.15. Функциональное реагирование блока датчиков
Принципиальная схема робота изображена на рис. 8.16. «Интеллект» робота обеспечивается работой двух микроконтроллеров PIC16F84. Сигнал для управления рулевым механизмом сервомотора снимается с шины RB3 PIC микроконтроллера 2. Ходовой двигатель с редуктором 100:1 соединен с мостовой схемой, состоящей из компонентов Q1-Q4, D1-D4 и R1-R4. Мостовая схема управляется с шин входа/выхода RB1 и RB2. Показатели световых CdS датчиков считываются шинами RB6 и RB7 микроконтроллера 1. Показания датчика касания считываются шиной RB5, что сигнализирует о наличии препятствия. Монтаж устройства я осуществил на двух небольших макетных платах без применения пайки. Макетные платы закреплены на основании робота на крышке батарейного отсека.
Рис. 8.16. Принципиальная электрическая схема робота-черепахи
Для точного моделирования функций исходной конструкции (точного повторения поведения оригинального робота-черепахи конструкции Вальтера) необходимо два микроконтроллера. Распределение вычислительных функций между двумя процессорами обеспечивает более четкую и слаженную работу робота.
Основной причиной использования второго микроконтроллера является задача управления рулевым механизмом сервомотора. Мощности одного микропроцессора оказалось недостаточно для считывания показаний двух CdS фоторезисторов и одновременного управления рулевым механизмом. Если бы я использовал для руления обычный двигатель с редуктором, то и одного микропроцессора оказалось бы достаточно. Если оптимистично смотреть на вещи, преимуществом такого подхода к решению проблемы является возможность создания робота с двумя процессорами, работающими в паре (т. е. системы с разделением времени).
Одному микроконтроллеру, названному микроконтроллером 1, я назначил функции отслеживания направления источника света и контроля датчика столкновений. Управление двигателями хода и поворота обеспечивается вторым микроконтроллером, имеющим номер 2. Чтобы схема работала, необходимо обеспечить связь между микроконтроллерами. В данном случае двухсторонняя связь не требуется: один микроконтроллер подает управляющие сигналы, а второй – «слушает».
Микроконтроллер 1. Микроконтроллер 1 считывает информацию со световых CdS датчиков и с датчика столкновений. Его связь с микроконтроллером 2 осуществляется с помощью трех шин ввода/вывода.