UA RU
Мобільна версія Гарантійні умови Співпраця
Зворотний зв'язок Мапа сайту
0 0
Графік роботи магазину:
Пн-Пт: 8.00 - 19.00
Сб: 10.00 - 19.00
Нд: вихідний
Каталог
Напиши статтю і отримай знижку!

Робот Sumo на Arduino Nano

2011-12-14

Всі статті →

Автор статьи А.В. Кравченко, г. Киев, перепечатано из журнала Радиаматор

Сборка робота - это увлекательное занятие, особенно если робот будет принимать участие в соревнованиях. Конечно, спортивное состязание mini Sumo привлечет много зрителей и любителей микроконтроллерной техники. В соревновании mini Sumo роботы устанавливаются на поле, напротив друг друга. Задача роботов, самостоятельно вытолкнуть соперника за пределы поля. Что бы это сделать, робот имеет программу, алгоритм которой позволяет прибегнуть к хитрости, или к силе. Но собрать робота из электронных деталей не всегда возможно. И времени на конструирование мало и знаний недостаточно. В продаже появились платы для конструирования микроконтроллерных систем. Такие платы помогают быстро собрать конструкцию. Одна из них Arduino Nano. Полное описание платы микроконтроллера можно получить на arduino.cc. [1]

Итак, робот (фото 1) собран на основе Arduino Nano, поэтому, мы вправе его назвать Sumoard. Что роботу Sumoard необходимо? Общий вес робота не должен превышать 500 грамм, габаритные размеры по ширине и длине не более 120 мм. Поле для сражения в диаметре не более 900 мм.

Концепция робота Sumoard заключается в его треугольной форме, в виде поваленной призмы. Во время боя краеугольная конструкция позволяет на большой скорости подцепить соперника и сделать его неуправляемым рис.1. Неуправляемость соперника дает преимущества, так как его можно легко вытолкнуть за поле поединка и выиграть состязание. Для обнаружения соперника у робота есть фотосенсоры. Чтобы соперник не смог повредить фотосенсоры, они расположены повыше над щитом. Такое расположение фотосенсоров позволяет увидеть соперника и не выйти из строя во время боя. Фотосенсоры имеют отражатели. Отражатели позволяют максимально сфокусировать сенсоры на соперника. Шит, имеет контактный датчик удара. Робот чувствует, когда попал на соперника. В этот момент робот направляет всю свою силу на удар. Робот прилагает всю мощность, чтобы вытолкнуть соперника за поле. Но если соперник сумел увернутся, и ударил сзади, то у робота так же есть сзади контактный датчик. Робот чувствует удар сзади и выполняет маневр разворота на месте, что бы лицом к лицу встретится с противником. В программе робота заложено поведение во время боя. Робот постоянно ищет соперника на поле. На соперника робот нападает осознанно без помощи человека. Развивая и дополняя программы робота, можно полностью сформировать самостоятельное поведение робота.

Блок схема Sumoard имеет классическую структуру рис.2 [2]. В основе схемы управления заложена плата МК Arduino Nano. На блок схеме рис.2 инфракрасные (ИК) датчики положения PHS1-PHS4 определяют границу поля, на котором находится робот. Генератор 36 кГц генерирует импульсы для светодиодов Led1-Led2, которые засвечивают объекты перед роботом. ИК датчики РН1, РН2 улавливают отражения от объектов и сообщают на плату МК о приближающемся сопернике. МК получает информацию об окружающей среде и управляет двигателями М1, М2. Для работы двигателей предусмотрены реверсивные драйверы. Питание драйверов двигателей М1, М2 поступает с управляемого стабилизатора Uстаб.

Схема Sumoard (рис.З) собрана на четырех микросхемах и дополнительной платы МК Arduino Nano. На плате Arduino Nano установлен МК АТmega 168 - 20, цепи сброса, а также стабилизатор напряжения питания +5В и приемо-передатчик схема сопряжения с USB портом на основе микросхемы FT232RL. Для питания плат, напряжение с аккумуляторов 7.5В подается на разъем SV4. Через выключатель питания S1 нестабилизированное напряжение 7.5В попадает на IC2 и плату управления Arduino Nano (вывод 1 SV1). На плате Arduino Nano есть стабилизатор напряжения, формирующий +5.0В. Стабилизированное напряжение +5В питает микросхемы IC1, IC3, и ИК датчики IC4 PH 1, РН2, PHS1-PHS4.

Рассмотрим работу ИК датчиков столкновения РН1, РН2. Согласно документации [3] для работы фотодатчика TSOP4636 необходим генератор световых импульсов с частотой 36 кГц. Такой генератор можно организовать на МК или сделать на отдельной микросхеме. Что бы упростить программу, генератор 36 кГц выполнен на NE555 IC1. С помощью цепочек С2, СЗ, R5, R7, R12 на генераторе формируются прямоугольные импульсы 36 кГц. R7 может изменять частоту в небольших пределах. Для засветки двух ИК диодов необходим ток около 15 мА. Q3 выполняет функцию усилителя потоку. R8 ограничивает ток базы. R9, R10 ограничивает ток ИК диодов LD1, LD2. Световые ИК импульсы генерируются LD1, LD2 и отражаясь от препятствий попадают на РН1, РН2. ИК фотодатчики РН1, РН2 выделяют из общего светового фона ИК лучи с частотой 36 кГц с помощью встроенного полосового фильтра частот и в случае обнаружения ИК лучей открывают выходной транзистор датчика. Данные с датчиков РН1, РН2 поступают на 10, 11 вывод SV1 платы микроконтроллера Arduino Nano. Этот сигнал обрабатывается входным аналого-цифровым преобразователем (АЦП) в цифровой код. Код попадает в программу, где анализируется и в зависимости от результата, выполняет следующие шаги программы. Для определения границ поля дополнительно подключаются оптосенсоры. Оптосенсоры на ИК лучах PHS1-PHS4 [4] также подают сигналы к выводам 5,6 и 8,9 разъема SV1 платы МК. Данные от датчиков поступают на каналы АЦП, и преобразуются в цифровой код. В результате программа решает заступил робот за границу поля или нет. Работа программы в МК формирует выходные сигналы с платы управления МК Arduino Nano на выводы 9-15 SV2.

Рассмотрим управление электродвигателей. В ходе программы, выполняется управление драйверами двигателей. Питание драйверов IC3, IC4 двойное. Для управления выбрано напряжение 5.0В, для питания двигателей регулируемое от 2.0В до 7.0В. Электродвигатели [5] имеют начальный пусковой ток около 600мА, затем ток снижается до 180мА. Ток и обороты вращения вала электродвигателя зависят от напряжения питания. Для формирования напряжения с различной величиной установлен регулируемый стабилизатор IC2 LM2576T-ADJ. С помощью полевых транзисторов Q1, Q2 плата управления МК может ступенчато изменить выходное напряжение стабилизатора IC2. Регулировка выходного напряжения стабилизатора выполняется путем подачи регулируемого напряжения на 4 вывод IC2. Преобразователь напряжения IC2 позволяет из 5,0-7,5 В сделать стабильное 3.0 В, 2.5В, 2.0В для питания двигателей. IC 2 работает в генераторном режиме и формирует прямоугольные импульсы. На дросселе L1 и электролитическом конденсаторе С5 сглаживаются эти импульсы и формируется напряжение необходимое для электродвигателя. Использование стабилизатора IC2, позволит экономить энергию аккумуляторов, и предотвращает выход из строя драйверов IC3, IC4. Кроме этого, используется полезная функция робота - автоматически изменять скорость передвижения, взависимости от ситуации. Например, что бы вытолкнуть соперника, необходима максимальная скорость и максимальная мощность электродвигателей. В то же время для отступления от границы поля необходимо не торопится, а потихоньку отъехать и изменить траекторию движения на средней скорости. В обоих случаях скорость движения робота различная. При передвижении по полю можно ехать с средней скоростью. Все эти действия робота, позволяет сделать стабилизатор IC2 и драйверы IC3, IC4. Таким образом, имеем экономию энергоресурса и изменяемую скорость движения. Но, при столкновении с роботом соперником возникают ситуации, когда необходимо сделать маневр. Например, если соперник подъехал сзади, то надо развернутся. Если соперник находится спереди, то надо ехать прямо с максимальной мощностью и вытолкнуть его за границы поля. За эти функции отвечают два микровыключателя S2, S3. Микровыключатель S2 находится спереди платформы робота, S3 - сзади (фото 2). Дополнительно имеется еще одна функция управления. Для настройки фотодатчиков и правильного направления вращения электродвигателей установлен DIP переключатель SW1. Разные положения SW1 существуют для выбора режима тестирования. Через разъем SV3 подключаются электродвигатели. Средний провод подключается к корпусу электродвигателей.

Монтажная плата имеет основную, силовую плату и съемную плату Arduino nano. Разводка платы показана на рис.4. Во время монтажа необходимо изолированным проводом соединить 4 вывод IC1 с 10 выводом IC4. Оптосенсоры PHS1-PHS4 и микровыключатели S2, S3 выносятся за плату, с помощью удлинения проводами выводов элементов. Это необходимо для уменьшения количества разъемов и исключения их ненадежной работы, особенно в условиях поединков. Перед монтажом на светодиоды LD1, LD2 надеваются и клеятся трубки, а на фотодатчики РН1, РН2 отражатели. Это необходимо для более эффективной и направленной работы сенсоров, обнаруживающих противника.

Плата Arduino Nano поставляется в двух версиях. Стандартная плата имеет расстановку выводов как указано в [1]. Совместимая плата Arduino Nano отличается входами А0-А7 расставленными в обратном порядке. Это необходимо учитывать при монтаже. Для совместимой платы необходимо перепаивать входы А0-А7 с помощью навесного монтажа.

Детали Sumoard (табл.1): электродвигатели NMB PPN7PA10C (пусковой ток 567мА, рабочий ток 157мА, напряжение питания 2.0-5.0В)[5], стабилизатор напряжения LM2576T-ADJ [6], драйвер LB 1642 рабочее напряжение от 4.0 до 16.0В, ток до 0,7А [7], дроссель L1 100 мкГн максимальный ток 1.0А - RCH110NP-101K [8], полевые транзисторы - ST4NF [9].

Дата Элемент Деталь Цена, грн Количество Стоимость грн
11.02.2011 IC1 NE555N 1,36 1 1,36
11.02.2011 IC2 LM2576T-ADJ 12,95 1 12,95
21.12.2010 IC3, IC4 LB1642 12,70 2 25,40
16.02.2011 плата Arduino Nano 130,00 1 130,00
01.12.2010 Q1.Q2 STN4NF03L 2,85 2 5,70
21.12.2010 Q3 КТ315 0,20 1 0,20
11.02.2011 D1 Диоды Шоттки 1N5822 0,98 1 0,98
01.12.2010 LD1.LD2 светодиод/HIR524C-940 0,55 2 1,10
01.12.2010 LD1.LD2 светодиод/UL-503IR3C L3 613 IR/EXCEED 5mm 0,55 2 1,10
21.12.2010 L1 Индуктивность RCH110NP-101K/SUMIDA 5,05 1 5,05
01.12.2010 SW1 переключатель/5У\Ю1-2/ВМ 5,24 1 5,24
21.12.2010 SV1-SV4 Разъем ml-mt 3,60 2 1,10
09.02.2011 S1 Вакпючатель питания 12 В 3,00 1 3,00
09.02.2011 S2.S3 Микровыключатель с планкой 2,50 2 5,00
21.12.2010 РН1.РН2 TSOP4836 16,80 2 33,60
11.02.2011 PHS1-t>HS4 Датчик положе оптические НОА0149-001 HoneY 34,15 4 136,60
21.12.2010 С1 Кон.электролит 1000/16 10161005С/Сархоп 0,96 1 0,96
21.12.2010 С2,СЗ 6,8 nFx43V 0,35 2 0,70
21.12.2010 С4 Кон.электролит 100/16V 0511105C/JAM 0,20 2 0,40
21.12.2010 С5 Кон.электролит 470/16 10161005С/Сархоп 0,96 1 0,96
21.12.2010 R1 2,0 кОм МЛТ 0,125 0,10 1 0,10
21.12.2010 R2.R6 1,5 кОм МЛТ 0,125 0,10 2 0,20
27.10.2010 R3 6,8 кОм K/SUMIDA 2,10 1 2,10
21.12.2010 R4.R11 51 Ом МЛТ 0,125 0,10 1 6,10
27.10.2010 R5 20,0 кОм K/SUMIDA 2,10 1 2,10
21.12.2010 R7 100 кОм МЛТ 0,125 0,10 1 0,10
21.12.2010 R8 4,7 кОм МЛТ 0,125 0,10 1 0,10
21.12.2010 R9.R10 160 Ом МЛТ 0,125 0,10 1 0,10
21.12.2010 R12 1,8 кОм МЛТ 0,125 0,10 1 0,10
21.12.2010 R13,R14,R17,R18 200 Ом МЛТ 0,125 0,10 4 0,40
21 12.2010 R15,R16,R19,R20 8,2 кОм МЛТ 0,125 0,10 4 0,40
21.12.2010 R21-R24 6,8 кОм МЛТ 0,125 0,10 1 0,10
21.12.2010 М PPN7PA10C/NMB 22,00 2 44,00
27.10.2010 А АА ACC1.2V 2700 mah/GP 37,75 5 188,75
21.12.2010 Макетница плата макетная PD1004 12,35 1 12,35
Украинская гривна Всего 628,50
Европейская евро Всего 53,26

Программу (листинг 1, листинг 2) для прошивки МК можно скачать с сайта издательства Радиоаматор. Фактически робот не имеет полноценного зрения, и только видит габариты соперника. Поэтому ему необходима ориентация в пространстве. Двигаясь прямо и обнаруживая опто сенсорами границу поля, робот может воссоздать план местности. По условиям состязания mini Sumo, поле должно быть круглым, диаметром не более 900 мм. Это позволяет, исходя из одной точки соприкосновения с краем поля, сориентировать робота в пространстве. В дальнейшем, робот выбирает стратегию, согласно которой, ведет обнаружение противника. Стратегия может быть различной. Например стратегия обнаружения соперника заключается в движении по кругу поля (по спирали), или движение робота по траектории крест накрест, или в движении переходя из квадранта в квадрант, или робот убегает (объезжает вокруг соперника) и ударяет сбоку (сзади), или робот стоит ожидает удара, а в момент приближения соперника уходит от удара и ударяет сбоку (сзади). В рассматриваемой программе стратегия выбрана, как движение крест - накрест. Даже при неидеальном перекрестном движении, существует вероятностьобнаружения противника 90%, тогда как остальные стратегии дают более низкую вероятность обнаружения. Программа написана на языке ассемблер. Программа использует всего 15% от общей памяти программ MK ATmega168.

В начале программы расположен вектор прерываний (в данной программе используются прерывания от контактных датчиков, и трех таймеров). Далее производится настройка и обнуление портов ввода, вывода, установка программного стека и обнуление переменных. При входе в начале программы в зависимости от положения DIP выключателя происходит ветвление на подпрограммы. DIP 1 -ON, 2-OFF подпрограмма Motor. DIP 1 -OFF, 2-ON подпрограмма Pet. DIP 1-ON, 2-ON подпрограмма Test. DIP 1-OFF, 2-OFF подпрограмма Start.

Прежде всего подпрограмма Motor. Эта подпрограмма необходима для правильной коммутации электродвигателей. Подпрограмма начинает работать сразу и включает последовательно электродвигатели. Сначала включается левый электродвигатель движение робота вперед, потом правый - вперед, оба двигателя вперед, оба двигателя назад, левый двигатель назад, правый двигатель назад. Двигатели работают с небольшими промежутками времени, около 0,5 секунды. Если двигатели имеют правильную коммутацию и направление вращения вала, то можно перейти к следующему тесту фотосенсоров. Если неверное вращение, то необходимо пере подключить электродвигатели. В подпрограмме Motor используются программные временные задержки, подпрограмма zader, zaderl.

Подпрограмма Pet необходима для старта робота с паузой в начале движения 5 секунд. Это условие необходимо для выполнения правила состязания mini Sumobot. По истечении 5 секунд, программа Pet переходит к подпрограмме Start.

Подпрограмма Test необходима для выполнения теста оптических датчиков, расположенных по периметру робота. В настройках робота более подробно описан этот тест. Если все работает, то можно перейти к основной программе. Если фотосенсоры срабатывают плохо, необходимо ввести коррекцию в подпрограммах фотосенсоров perfo и подпрограммы границы поля datch.

Подпрограмма Start управляет роботом в состязании mini Sumobot на поле. Так как стратегия выбрана крест на крест, то программа выполняет записанные заранее шаги. Шаги стратегии записаны в конце программы, в ходе программы они переписываются в оперативно запоминающее устройство (ОЗУ) и выполняются по мере прохождения программы. В начале подпрограммы Start запускаются два таймера. Таймер То отсчитывает 16,32 мС, Т2 отсчитывает 1,98 мС. Как только активизируется прерывание по переполнению таймера ТО, то проверяются фотосенсоры границы поля и запускается таймер Т1. Как только активизируется прерывание по переполнению таймера Т1, то проверяются фотосенсоры обнаружения соперника и запускается таймер ТО. Во время действия подпрограмм прерывания, робот может изменить траекторию движения, в зависимости от данных с фотосенсоров. Так если фотосенсор обнаружил границу поля, то робот должен отойти от этой границы. При столкновении с соперником, активизируется прерывание INTO, INT1 и в зависимости от удара спереди или сзади активизируется маневр движения прямо или разворота на месте. В остальных случаях программа действует согласно стратегии крест на крест. То есть робот ищет соперника и как только находит его, нападает и выталкивает за границу поля.

Конструкция робота состоит из основания 100x100 мм (с боковыми сторонами высотой 10мм). Основание сделано из крышки флоппи дисковода (жесть 0,3 мм). К основанию крепятся боковые стороны, изготовленные из треугольных линеек 100x110x150 мм. К боковым сторонам прикреплены редукторы с двигателями (заимствованы от китайских игрушек). В основании установлены два отсека для аккумуляторов АА по две штуки и по три штуки фото 3. Переднее колесо заимствовано от плеера.

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

Настройка Sumoard начинается с прошивки программы на плату управления. Далее с помощью DIP переключателей включается режим мотор. В этом режиме поочередно включаются левый и правый двигатели. Этот режим необходим для установки правильного вращения двигателей. В случае неверного вращения, перекидываются провода на двигателе. После чего осциллографом проверяется генерация импульсов с 3 вывода IC1. Частота импульсов должна быть 36 кГц. Частота настраивается резистором R5. Кактолько генератор 36 кГц настроен, проверяются датчики границы поля. Для этого изменяют комбинацию включения DIP переключателей для активации подпрограммы Test и включают питание робота. Во время теста робота ставят на пьедестал высотой примерно 5 см. К фотодатчикам спереди подносят листочек белой бумаги, так что бы отражение от светодиодов попадало на фотосенсоры и проверяют реакцию робота. В зависимости от фотосенсора робот должен включать левый или правый электродвигатели. Так же проверяются сенсоры границы поля, расположенные по периметру робота. Как только все настроено, DIP переключатели устанавливают в положение Start. Робот готов к эксплуатации.

Эксплуатация. Себестоимость робота около 57 евро (табл.1). Вес с аккумуляторами 419 грамм, габариты с учетом датчиков и колес 130x130 мм. Габариты основания 100x100 мм. Во время состязания, роботов устанавливают напротив друг друга на поле. Включают питание и активируют паузу 5 секунд. Далее роботы двигаются самостоятельно. Как только один из роботов вытолкнул соперника за поле, то робот становится победителем.

Автор приглашает к состязанию радиолюбителей, построивших модели роботов, соответствующих правилам mini Sumobot.

Литература

  1. User manual. Arduino Nano (V2.3) 2008.
  2. Кравченко А.В. Sumobot// Радиоаматор. - j 2009. - №2, 3-4
  3. Datasheet. TSOP4836. Photo modules for PCM remote control systems. Vishay.
  4. Datasheet. HOA0149-2. Reflective sensor. Honeywell.
  5. Datasheet. PPN7. Specifications. NMB.
  6. Datasheet. LM2576. Simple switcher step- down voltage regulator. National Semiconductor.
  7. Datasheet. LB1642. Bidirectional motor driver with braking function. Sanyo.
  8. Datasheet. RCH110NP. Power inductor. Sumida.
  9. Datasheet. ST4NF. Power mosfet. STmicro- electronics.

Ваша оцінка статті:

Відмінно
Добре
Задовільно
Погано
Дуже погано

Дякуємо Вам за звернення! Ваш відгук з'явиться після модерації адміністратором.
Поки немає відгуків на цю статтю.
оплата картами Visa і MasterCard