Текст книги "Создаем робота-андроида своими руками"
Автор книги: Джон Ловин
Жанр: Зарубежная образовательная литература, Наука и Образование
сообщить о неприемлемом содержимом
Текущая страница: 16 (всего у книги 22 страниц)
Возможные неисправности
Если двигатель не вращается, проверьте полярность диодов. Убедитесь, что вы подключили их правильно, соблюдая полярность, изображенную на схеме.
Если шаговый двигатель вращается медленно или совершает колебания туда и обратно, то это может быть вызвано рядом причин.
Если вы используете питание от батарей, то батареи могут оказаться слишком слабыми для питания двигателя. Примечание: батареи истощаются достаточно быстро, поскольку ШД потребляет относительно большой ток.
В случае замены транзисторов TIP 120 NPN на транзисторы другого типа переключающий ток может оказаться слишком большим для их нормальной работы. Решение: используйте транзисторы TIP 120.
Перепутаны концы обмоток ШД, включенные в схему. Проверьте обмотки с помощью омметра и при необходимости переключите их.
Частота импульсов слишком велика. Если частота импульсов превышает время реакции двигателя, то это приведет к нарушению его правильной работы. Частота импульсов управляется переменной ti в программе. При увеличении значения этой переменой частота следования импульсов, управляющих ШД, уменьшится. Решением будет являться уменьшение частоты импульсации.
Использование PIC-микроконтроллера и ИС UCN-5804 для управления ШД
Мы использовали схему управления работой ШД непосредственно с помощью ИС PIC. Также для управления работой ШД мы использовали специализированную ИС. При совместном использовании специализированной ИС и PIC-микроконтроллера мы можем объединить преимущества, характерные для каждой из схем. ИС UCN-5804 в этом случае выполняет всю «черновую» работу по управлению работой ШД. При некотором усложнении конечной электрической схемы программа управления PIC может быть сильно упрощена, что является хорошим решением.
Принципиальная схема устройства управления ШД с использованием специализированной ИС показана на рис. 10.15, а фотография устройства приведена на рис. 10.16. Питание ИС UCN-5804 осуществляется от источника постоянного тока напряжением 5 В. При напряжении питания 5 В управляющие работой ШД напряжения могут достигать 35 В.
Рис. 10.15. Схема микроконтроллера шагового двигателя
Рис. 10.16. Принципиальная схема микроконтроллера и ИС управления шаговым двигателем
Обратите внимание, что на схеме присутствуют два резистора, обозначенные «rx» и «ry» без указания их номинала. Наличие или отсутствие этих резисторов определяется типом применяемого ШД. Целью введения этих резисторов является ограничение выходного тока, протекающего через ШД, значением 1,25 А (в случае необходимости).
Рассмотрим наш ШД с напряжением питания 5 В. Его обмотки имеют сопротивление 13 Ом. Ток, протекающий через обмотки, составляет 5В/130 м=0,385А, или 385 мА, что значительно ниже максимально разрешенного значения тока 1,25 А для ИС UCN-5804. Поэтому для данного случая резисторы rx и ry не требуются и могут быть исключены из схемы.
Перед тем как мы двинемся дальше, рассмотрим еще один случай. ШД с напряжением питания 12 В имеет сопротивление обмоток 6 Ом. Ток, протекающий через обмотки ШД, составит 12 В/6 Ом=2 А. Такое значение тока превышает максимально допустимое для ИС UCN-5804. Для использование данного ШД резисторы rx и ry необходимы. Для обеспечения одинакового крутящего момента для каждой фазы сопротивления rx и ry должны быть равны. Величины резисторов должны ограничивать ток до величины 1,25 А или ниже. В данном случае сопротивление резисторов должно быть не менее 4 Ом (при мощности от 5 до 10 Вт). При включении резисторов значение тока составит 12 В/10 Ом = 1,20 А.
Уровни входов ИС UCN-5804 совместимы с выходами КМОП– и ТТЛ-логики. Это означает, что для нормальной работы схемы мы можем непосредственно соединить входы ИС с шинами выхода PIC-микроконтроллера. Входные тактовые импульсы (вывод 11) для ИС UCN-5804 генерируются PIC-микроконтроллером. Вывод управления выходом разрешает вращение ШД при подаче сигнала низкого уровня и останавливает ШД при сигнале высокого уровня.
Выводы 10 и 14 ИС UCN-5804 управляются переключателями, подающими сигналы высокого или низкого уровня. Вывод 10 управляет режимами полного или половинного шага, а вывод 14 управляет направлением вращения. При желании этими функциями можно управлять с помощью PIC. Для управления на соответствующие выводы подаются сигналы высокого или низкого уровня аналогично управлению работой выхода ИС.
Программа на PICBASIC для обеспечения работы схемы имеет следующий вид:
‘Управление шаговым двигателем через ИС UCN 5804
Symbol TRISB = 134 ‘Инициализировать TRISB как 134
Symbol PortB = 6 ‘Инициализировать PortB как 6
Poke TRISB,0 ‘Установить шины PORTB на выход
low1 ‘Установить выход на низкий уровень
start:
pulsout 0, 10000 ‘Подача 10 мс импульсов на UCN 5804
goto start ‘Повторение
В этом случае я снова написал простейшую «базовую» программу, чтобы показать, насколько просто осуществляется управление вращением ШД. Конечно, вы можете дополнить программу управлением частотой импульсов, направлением вращения и т. д.
Список деталей для контроллера ШД
• (1) микроконтроллер 16F84
• (2) конденсатор 22 пФ
• (1) кварцевый резонатор 4 МГц
• (1) резистор 4,7 кОм, 0,25 Вт
• (1) ИС таймер 555
• (1) ИС контроллер ШД UCN-5804B
• (1) Шаговый двигатель (однополярный с 6 выводами)
• (1) Понижающий трансформатор
• (6) диод 1N914
• (4) транзистор TIP 120 NPN
• (1) ИС регулятор напряжения (7805, 7812)
• (1) диодный мост 50 В, 1 А
• (1) конденсатор 150 мкФ
• (1) ИС буфер 4050
• Разное: макетная плата
Детали можно заказать в: Images Company, James Electronics, JDR MicroDevices и Radio Shack.
Для более подробной информации см. приложение в конце книги.
Глава 11
Шагающие роботы
Шагающие роботы представляют собой класс роботов, имитирующих передвижение животных или насекомых. Как правило, для передвижения роботы используют механические ноги. Передвижение с помощью ног насчитывает миллионы лет истории. По контрасту, история передвижения с помощью колеса началась от 10 до 7 тысяч лет назад. Колесное передвижение достаточно эффективно, но требует наличия относительно ровных дорог. Достаточно взглянуть на аэрофотосъемку города или его пригородов, чтобы заметить сеть переплетающихся дорог.
Цель создания шагающих роботов
Шагающие роботы могут передвигаться по пересеченной местности, недоступной для обычных колесных средств. С подобной целью обычно и создают шагающих роботов.
Имитация жизни
Совершенные шагающие роботы имитируют движения насекомых, ракообразных, и иногда – человека. Конструкции двуногих роботов редки, поскольку требуют для осуществления сложных инженерных решений. Я планирую рассмотреть проект двуногого робота в моей следующей книге с условным названием Pic-Robotics. В этой главе мы будем строить шестиногого шагающего робота.
Шесть ног – походка треножником
Используя модель с шестью ногами мы сможем продемонстрировать знаменитую походку «треножником», т е. с опорой на три ноги, которую используют большинство существ. На следующих рисунках темный кружок означает, что нога устойчиво поставлена на землю и поддерживает вес существа. Светлый кружок означает, что нога поднята и находится в движении.
На рис. 11.1 показано наше существо в позиции «стояния». Все ноги опираются о землю. Из положения «стояния» наше существо решает идти вперед. Для того чтобы сделать шаг, оно поднимает три из своих ног (см. светлые кружки на рис. 11.2), опираясь своим весом на три оставшиеся ноги (темные кружки). Заметьте, что ноги, поддерживающие вес (темные кружки), расположены в форме треножника (треугольника). Такая позиция является устойчивой, и наше существо не может упасть. Три остальные ноги (светлые кружки) могут двигаться и двигаются вперед. На рис. 11.3 показан момент движения поднятых ног. В этой точке вес существа перемещается с неподвижных на движущиеся ноги (см. рис. 11.4). Заметьте, что вес существа по-прежнему поддерживается треугольным расположением опорных ног. Затем таким же образом переставляется другая тройка ног, и цикл повторяется. Такой способ передвижения называется треножной походкой, поскольку вес тела существа в каждый момент времени поддерживается треугольным положением опорных ног.
Рис. 11.1. Треножная походка. Исходное положение
Рис. 11.2. Треножная походка, первый шаг вперед
Рис. 11.3. Треножная походка, второе движение, перенос центра тяжести
Рис. 11.4. Треножная походка, третье движение
Создание шагающего робота
Существует много моделей небольших заводных шагающих игрушек. Такие игрушечные «пешеходы» передвигают ногами вверх-вниз и вперед-назад с помощью кулачковых механизмов. Хотя такие конструкции вполне способны «шагать», а некоторые делают это достаточно проворно, нашей целью является создание шагающего робота, не использующего кулачковые механизмы для имитации шагового передвижения.
Мы будем строить робота, имитирующего треножную походку. Роботу, описанному в этой главе, требуется три сервомотора для передвижения. Существуют другие шестиногие и четырехногие модели шагающих роботов, которые требуют больших степеней свободы в своих ногах. Соответственно, наличие большего количества степеней свободы требует большего количества управляющих механизмов для каждой из ног. Если для этой цели используются сервомоторы, то для каждой ноги потребуются два, три или даже четыре двигателя.
Необходимость в таком количестве сервомоторов (приводов) диктуется тем, что требуется как минимум две степени свободы. Одна для опускания и поднимания ноги, а другая – для движения ее вперед-назад.
Шагающий робот с тремя сервомоторамиШагающий робот, которого мы собираемся сделать, является компромиссным решением по замыслу и конструкции и требует наличия всего трех сервомоторов. Однако даже в этом случае он обеспечивает передвижение с помощью треножной походки. В нашей конструкции использованы три облегченных сервомотора HS300 (крутящий момент 1,3 кгс) и микроконтроллер 16F84-04.
Работа устройстваПеред тем как мы приступим к конструированию робота, посмотрим на готового робота, изображенного на рис. 11.5, и проанализируем, как робот осуществляет передвижение. Треножная походка, которая использована в данной конструкции, является не единственно возможной.
Рис. 11.5. Шестиногий ходок готов к прогулке
В передней части робота закреплены два сервомотора. Каждый из сервомоторов управляет движением передней и задней ног с соответствующей стороны робота. Передняя нога прикреплена непосредственно к ротору сервомотора и способна качаться вперед и назад. Задняя нога соединена с передней при помощи тяги. Тяга позволяет задней ноге повторять движения передней ноги вперед-назад. Две центральные ноги управляются третьим сервомотором. Этот сервомотор поворачивает центральные ноги вдоль продольной оси на угол от 20° до 30° по часовой стрелке и против часовой стрелки, что наклоняет робот вправо или влево.
Используя информацию о механизме привода ног, мы сейчас посмотрим, как наш робот будет передвигаться. Посмотрим на рис. 11.6. Мы начнем с положения покоя. Каждый кружок отмечает положение ноги. Как и в предыдущем случае, темные кружки показывают положение опорных ног. Обратите внимание, что в положении покоя средние ноги не являются опорными. Эти ноги на 3 мм короче передних и задних ног.
Рис. 11.6. Фазы движения шестинога
В позиции А центральные ноги поворачиваются по часовой стрелке на угол примерно 20° от центрального положения. Это приводит к наклону робота вправо. В данной позиции вес робота удерживается правой передней и задней ногами и левой центральной ногой. Это стандартная позиция «треножника», которая была описана выше. Поскольку левая передняя и левая задняя нога оказываются «в воздухе», то их можно передвинуть вперед, как показано на рис 11.6, позиция В.
В позиции С центральные ноги поворачиваются против часовой стрелки на угол примерно 20° от центральной позиции. Это приводит к наклону робота влево. В данной позиции вес робота распределяется между левой передней и задней ногами и правой средней ногой. Теперь правая передняя и задняя ноги не несут нагрузки и могут быть передвинуты вперед, как это показано на поз. D рис. 11.6.
В позиции Е центральные ноги возвращаются в среднее положение. В такой позиции робот «стоит» прямо и опирается только на передние и задние ноги. В позиции F передние и задние ноги одновременно перемещаются назад, а робот соответственно – вперед. Далее цикл движения повторяется.
Это был первый способ хождения, который я попробовал воспроизвести, и эта система работает. Вы можете разработать, совершенствовать и конструировать другие модели способов хождения, с которыми можно проводить эксперименты. Я оставлю вам разработку способов хождения назад (реверсирование) и поворотов направо и налево. Я буду продолжать совершенствовать этого робота, добавляя датчики наличия стен и препятствий, а также способов перемещения назад и поворотов.
Конструкция роботаЗа основу «тела» робота я взял лист алюминия размерами 200х75х0,8 мм. Сервомоторы прикреплены к передней части пластины (см. рис. 11.7). Разметка отверстий под сервомоторы должна быть скопирована с чертежа и перенесена на лист алюминия. Такое копирование обеспечит точность положения отверстий под крепления сервомоторов. Четыре отверстия диаметром 4,3 мм расположены немного позади средней линии и предназначены для крепления центрального сервомотора. Эти четыре отверстия смещены к правому краю. Это необходимо сделать для того, чтобы фланец центрального сервомотора находился точно по центру «тела». Два задних отверстия предназначены для подвижного крепления задних ног.
Рис. 11.7. Основание «тела»
Для разметки центров отверстий под сверление необходимо использовать кернер. В противном случае при сверлении отверстий сверло может «увести». Если у вас нет кернера, вы можете использовать в качестве неплохой замены острый гвоздь.
Ноги робота изготовлены из алюминиевой полосы шириной 12 мм и толщиной 3 мм (см. рис. 11.8). В передних ногах просверливается по четыре отверстия. В задних ногах сверлятся два отверстия: одно для подвижного крепления, а другое – для крепления тяги. Обратите внимание, что задние ноги на 6 мм короче передних. Это объясняется тем, что необходимо учитывать высоту фланца сервомотора, к которому крепятся передние ноги, над общим уровнем пластины. Укорочение задних ног выравнивает положение платформы.
Рис. 11.8. Конструкция передних и задних ног
После сверления необходимых отверстий необходимо согнуть алюминиевую полосу по нужной форме. Зажмите полосу в тиски со стороны высверленных отверстий на расстоянии 70 мм. Нажмите на пластину и согните ее под углом 90°. Лучше всего нажимать на пластину непосредственно около губок тисков. При этом пластина согнется под углом 90° без риска выгибания самой «нижней» части ноги.
Центральные ноги выполнены из одного куска алюминия (см. рис. 11.9). При креплении к роботу центральные ноги оказываются на 3 мм короче передних и задних ног. Таким образом, в среднем положении они не касаются земли. Эти ноги предназначены для наклона робота вправо и влево. При вращении центрального сервомотора ноги наклоняют робота на угол примерно ±20°.
Рис. 11.9. Средние ноги
При изготовлении центральных ног в алюминиевой полосе размером 3х12х235 мм сверлятся сперва три центральных отверстия под фланец сервомотора. Затем алюминиевая полоса крепится в тиски, причем губки тисков по верхнему краю должны фиксировать полосу на расстоянии 20 мм от центра полосы. Зажмите полосу с помощью плоскогубцев на расстоянии примерно 12 мм от верхнего края тисков. Сохраняя зажим плоскогубцев, аккуратно скрутите алюминиевую полосу на угол 90°. Производите операцию достаточно медленно, иначе можно легко сломать пластину. Аналогично скрутите пластину с другой стороны.
После того как скручивание на 90° произведено, дополнительно согните пластину в двух местах на 90°, как мы это делали для передних и задних ног.
Установка сервомоторовПередние сервомоторы крепятся к алюминиевому основанию с помощью пластиковых винтов и гаек 3 мм. Я выбрал пластиковые винты, поскольку их можно слегка гнуть и компенсировать небольшие несоответствия положений просверленных в пластине отверстий и крепежных отверстий сервомотора.
Ноги крепятся к пластиковому фланцу сервомотора. Для этого я использовал 2 миллиметровые винты и гайки. При креплении фланца к валу сервомотора убедитесь, что каждая нога может отклоняться вперед-назад на одинаковый угол от среднего перпендикулярного положения.
Конструкция тягиТяга между передними и задними ногами изготовлена из прутка с резьбой 3 мм (см. рис. 11.10). В исходной конструкции длина тяги составляет 132 мм от центра до центра. Тяга вставляется в отверстия на передней и задней ноге робота и может быть закреплена с помощью нескольких гаек.
Рис. 11.10. Детальный чертеж шарнира и тяги
Перед установкой тяги задние ноги робота должны быть прикреплены к основанию. Крепление задних ног изготовлено из резьбовой заклепки 9,5 мм и крепежного винта. Детальное крепление ноги показано на рис. 11.10. Необходимо подложить пластиковые шайбы под основание, которые заполнят пространство между нижней частью основания и головкой винта. Такая конструкция обеспечивает крепление ноги к основанию без ее «болтания». Чтобы уменьшить трение, можно использовать пластиковые шайбы. Не используйте слишком много шайб – это приведет к излишнему прижиму ноги к поверхности основания. Нога должна поворачиваться в соединении достаточно свободно. На рис. 11.11 и 11.12 приведены фотографии частично собранного шестиногого робота.
Рис. 11.11. Шестиног – вид снизу. Спереди два сервомотора
Рис. 11.12. Частично собранный шестиног с двумя передними сервомоторами
Центральный сервомоторДля крепления центрального сервомотора потребуются две Г-образные скобы (см. рис. 11.13). Просверлите соответствующие отверстия в алюминиевых полосках и согните их под углом 90°, чтобы получились скобы. Прикрепите две Г-образные скобы к центральному сервомотору с помощью пластиковых винтов и гаек (см. рис. 11.14). Затем прикрепите узел центрального сервомотора к нижней части основания. Совместите четыре отверстия на основании с отверстиями на верхней части Г-образных скоб. Скрепите части с помощью пластиковых винтов и гаек. На рис. 11.15 и 11.16 приведены фотографии вида сверху и снизу для шестиногого робота.
Рис. 11.13. Скоба центрального сервомотора
Рис. 11.14. Центральный мотор в сборе с крепежными скобами и средними ногами
Рис. 11.15. Шестиног – вид снизу с тремя сервомоторами
Рис. 11.16. Шестиног в сборе. Конструкция готова для монтажа электронного управления
Электрическая частьНа рис. 11.17 приведена схема управления сервомоторами с помощью PIC-микроконтроллера. Питание сервомоторов и микроконтроллера осуществляется от батареи 6 В. Батарейный отсек 6 В содержит 4 элемента АА. Схема микроконтроллера собрана на небольшой макетной плате. Батарейный отсек и схема прикреплены сверху к алюминиевому основанию. На рис 11.5 показана готовая конструкция робота, готовая к «передвижению».
Рис. 11.17. Принципиальная схема управления шестиногого робота
Программа для микроконтроллера
Микроконтроллер 16F84 управляет работой трех сервомоторов. Наличие большого числа незадействованных шин ввода/вывода и места под программу предоставляет возможность совершенствования и модификации базовой модели робота.
Программа PICBASIC
‘Шестиногий шагающий робот
‘Соединения
‘Левый сервомотор Pin RB1
‘Правый сервомотор Pin RB2
‘Сервомотор наклона Pin RB0
‘Движение только вперед
start:
for B0 = 1 to 60
pulsout 0, 155 ‘Наклон по часовой стрелке, подъем правой стороны
pulsout 1, 145 ‘Левые ноги на месте
pulsout 2, 145 ‘Правые ноги движутся вперед
pause 18
next B0
for B0 = 1 to 60
pulsout 0, 190 ‘Наклон против часовой стрелки, подъем левой стороны
pulsout 1, 200 ‘Левые ноги движутся вперед
pulsout 2, 145 ‘Правые ноги сохраняют положение вперед
pause 18
next B0
for B0 = 1 to 15
pulsout 0, 172 ‘Среднее положение, отсутствие наклона
pulsout 1, 200 ‘Левые ноги сохраняют положение вперед
pulsout 2,145 ‘Правые ноги сохраняют положение вперед
pause 18
next B0
for B0 = 1 to 60
pulsout 0, 172 ‘Среднее положение, отсутствие наклона
pulsout 1, 145 ‘Движение левых ног назад
pulsout 2, 200 ‘Движение правых ног назад
pause 18
next B0
goto start
На команду pulsout не все сервомоторы реагируют одинаковым образом. Возможно, что для создания робота вы приобретете сервомоторы, характеристики которых будут слегка отличаться от тех, которые были использованы мной. В этом случае обратите внимание на то, что параметры команды pulsout, которая определяет положение ротора сервомотора, должны быть подстроены. В этом случае необходимо подобрать численные значения параметров pulsout, которые бы соответствовали тому типу сервомотора, который использован в вашей конструкции шестиногого робота.
Данная программа на PICBASIC позволяет роботу двигаться только в прямом направлении, однако, немного изменив программу, конструктор может заставить робота двигаться назад и совершать повороты вправо и влево. Установка нескольких сенсорных датчиков может информировать робота о наличии препятствий.
Правообладателям!
Это произведение, предположительно, находится в статусе 'public domain'. Если это не так и размещение материала нарушает чьи-либо права, то сообщите нам об этом.