Робот — боевая машинка на ардуино
Экспериментируя с ардуино уно, создавая различные ардуино схемы, захотели создать управляемого робота — боевую машинку. Идея боевых роботов на базе Ардуино Уно возникла после просмотра видео робобитвы в стенах Уральского Федерального университета – можно посмотреть здесь. Задача созданных роботов — боевых машинок – острой пикой поразить шарик на боевой машинке соперника. При этом, попав в небольшую площадку на корпусе робота — боевой машинки можно заставить его замереть на 5 секунд и попытаться реализовать свое преимущество.
Создание робота – боевой машины требует понимания и навыков работы сразу с несколькими компонентами. Не стоит приступать к созданию робота на Ардуино без получения базовых навыков работы с платформой Arduino. Они у нас есть, и мы приступили к работе.
Компоненты которые мы использовали:
- Ардуино Уно — купить ардуино Уно — можно здесь
- Двигатели ардуино – купить двигатель ардуино — можно здесь
- Провода(папа-папа,мама-мама,папа-мама)
- Микросхема L293DNE привода двигателей
- Инфракрасный (ИК) датчик – купить датчик — можно здесь
- Пульт ИК управления
- Аккумуляторы Li-ion 18650, батарея типа «Крона»
- Светодиод
Для ленивых, есть наборы из компонентов, включая платформу и схему на базе ардуино уно, например, можно купить здесь. Их просто надо будет собрать. В том числе с различными вариантами управления: ИК, WiFi, Bluetooth.
Ардуино Уно
Есть множество вариантов программ, плат, но мы выбрали Ардуино UNO, эта плата наиболее популярна для подобных конструкций. Ее функциональная достаточность (по уровням сигналов, количеству цифровых и аналоговых входов/выходов и т.д.) для небольших задач, вроде нашей. Описание Ардуино UNO можно посмотреть здесь.
Конструкция платформы, привод, питание, и управление
Платформа
Платформа разработана с учетом минимизации размеров и возможной максимальной мобильности. Для простоты была выбрана трехколесная конструкция с двумя ведущими колесами рисунок 1.
На платформе установлен шток с иглой для поражения шарика противника. Также на платформе установлены све электронные компоненты, включая Ардуино UNO и ИК приемник системы управления, а также светодиод, загорающийся при нажатии на площадку блокирования движения. Кроме того, на платформе установлена кабина водителя с водителем из детского конструктора Лего (но это — для завершенности внешнего вида машинки). Конструкция представлена на рисунке 2.
Двигатели
Для того, чтобы что-то поехало, его надо снабдить колесами. В качестве приводоов применены двигатели с редукторами, представленные на рисунке 3.
У данного, дешевого варианта двигателей есть недостаток: у них разные механические и электрические потери и, как следствие, может существенно различаться частота вращения. Этот недостаток можно нивелировать настройкой в программе.
Управление приводами построено на микросхеме …. Наш вариант распиновки микросхемы представлен на рисунке 6.
Питание робота
Чтобы робот-машинка поехала, нужно правильно организованное, стабилизированное электропитание. Это можно сделать, подключив питание от розетки, батареи или аккумулятора. Мы выбрали раздельное (автономное) питание: Ардуино UNO – от батареи типа «Крона» и привода – от блока из двух аккумуляторов Li-ion 18650 (на общей электрической схеме представлен первый вариант питания – от одного источника, впоследствии заменен на более правильный и оптимальный: с разнесением нагрузки системы управления и привода).
Схема электропитания робота – боевой машинки представлена на рисунке 3.
К сожалению, в нашей схеме есть недостаток: в случае полного разряда аккумуляторов, они придут в негодность, поэтому надо периодически самостоятельно измерять напряжения батарей аккумуляторов и подзаряжать их. Этого можно избежать дополнив схемой контроля разряда аккумуляторов – представлена, например, здесь.
ИК датчик
Управление машинками выполняется инфракрасным сигналом с пульта. В качестве пульта применен пульт от детской игрушки «мини вертолет». Пульт представлен на рисунке 4.
Этот пульт обладает избыточными возможностями управления, но зато удобен для формирования не только движения вперед, назад, вправо, влево, но и возможностью задать «плавное» изменение скорости движения в каждом из направлений, т.к. пульт имеет цифровую матрицу кодов управления 7х15 для двух рычажных переключателей, примерный вид которой показан на рисунке 5.
Приемник инфракрасного сигнала – датчик TL1838 (38 кГц). Питание ИК датчика 5 В — от Ардуино Уно.
Схема управления боевой машинкой
Есть интересный вариант создания схем на базе Ардуино Уно — это редактор fritzing, наш начальный вариант схемы разработан в этом редакторе. Схема представлена на рисунке 6.
Программа управления создана на языке, применяемом в Ардуино Уно, который очень похож на язык «C». Особенности языка – читать здесь.
Управление происходит следующим образом: программа управления считывает код с ИК датчика и в соответствии с кодом выполняет следующие действия: движение боевой машинки вперед, назад, вправо, влево или стоп (при отсутствии кода). При касании кнопки – площадки блокирования движения, двигатели останавливаются и включается таймер задержки управления на 5 сек, и включается светодиод. Скетч управления боевой машинкой можно посмотреть здесь.
Коды управления для каждого положения пульта управления , представленные на рисунке 5 предварительно определены используя специальную программу – скетч для считывания кодов с отображением на экране монитора программы IDE для ардуино.
Сама программа – скетч может быть написана в редакторе программы IDE ардуино. Загрузка исполняемого файла в Ардуино Уно выполняется из IDE. Подробнее о работе с программой IDE можно посмотреть здесь.
Испытание боевых машинок
Испытание боевых машинок проведено в виде соревнования – показано в клипе.
Удачных Вам конструкций.
Робот — боевая машинка на ардуино
DIY: делаем боевого робота в домашних условиях. Часть 2 «Epic Fail»
Это продолжение краткой истории о разработке боевого робота без интеллекта, краткое руководство по сжиганию контроллеров и Arduino 2560. О нашем участии в шоу «Бронебот: осенний разогрев». А так же мой опыт соединения Arduino и двух RC-приемников с шаговыми и коллекторными двигателями.
Под брендом GeekTimes
На съемной панели была наклейка Habrahabr. Лишившись этой панели для уменьшения веса, я брендировал робот в ручную. GT вперед!
Аккуратное подключение всех элементов системы
1-Arduino 2560
2-RC-приемник
3,4-Драйвера коллекторных двигателей
5-Блок реле
6-Батарея
Логика работы системы
Управление роботом(ровером) осуществляется средством радиоуправления двумя приемо-передающими устройствами. Первый пульт основного оператора используется для управления движением робота и орудиями, второй оператор дублирует управление орудиями. На ровере оба приемника соединены к Arduino, в которой программно считаем ШИМ от приемника, включаются/выключаются реле для управления клапанами пневмосистемы и выдается ШИМ для драйверов двигателей.
Скетч Arduino
#include #define STEP_PIN1 12 #define STEP_PIN2 10 #define RELEPIN0 2 #define RELEPIN1 3 #define RELEPIN2 4 #define RELEPIN3 5 #define RELEPIN4 6 #define RELEPIN5 7 #define RELEPIN6 8 #define RELEPIN7 9 #define a0 = A0; #define a1 = A1; #define a2 = A2; #define a3 = A3; #define a4 = A4; #define a5 = A5; //Второй пульт //Временного отключили второй пульт //#define a6 = A8; //#define a7 = A9; int ch0,ch1,ch2,ch3,ch4,ch5,ch6,ch7; //Задаем максимум и минимум для ШИМа с первого приемника const int min0=1094; const int min1=1094; const int max0=813; const int max1=813; int speed1,speed2,speedmot1,speedmot2,sd1,sd2; byte ch2st,ch3st,ch4st,ch5st,ch6st,ch7st; byte tormozcount1=0; byte tormozcount2=0; byte wasdir1=2; byte wasdir2=2; byte skolkotormozit = 7; int skolkotormozim=0; void setup() < Serial.begin(9600); Serial.println("start"); pinMode(a0, INPUT); pinMode(a1, INPUT); pinMode(a2, INPUT); pinMode(a3, INPUT); pinMode(a4, INPUT); pinMode(a5, INPUT); //Временного отключили второй пульт //pinMode(a6, INPUT); //pinMode(a7, INPUT); pinMode(STEP_PIN1, OUTPUT); pinMode(STEP_PIN2, OUTPUT); pinMode(RELEPIN0, OUTPUT); pinMode(RELEPIN1, OUTPUT); pinMode(RELEPIN2, OUTPUT); pinMode(RELEPIN3, OUTPUT); pinMode(RELEPIN4, OUTPUT); pinMode(RELEPIN5, OUTPUT); pinMode(RELEPIN6, OUTPUT); pinMode(RELEPIN7, OUTPUT); >void loop() < ch0 =pulseIn(a0, HIGH,30000); if(ch0<900)< //Если нет сигнала с пульта Serial.println("first no signal"); digitalWrite(STEP_PIN1,LOW); digitalWrite(STEP_PIN2,LOW); digitalWrite(RELEPIN0,LOW); digitalWrite(RELEPIN1,LOW); digitalWrite(RELEPIN2,LOW); digitalWrite(RELEPIN3,LOW); digitalWrite(RELEPIN4,LOW); digitalWrite(RELEPIN5,LOW); digitalWrite(RELEPIN6,LOW); digitalWrite(RELEPIN7,LOW); >//Снимаем показания с ШИМа от первого приемника ch1 =pulseIn(a1, HIGH); ch2 =pulseIn(a2, HIGH); ch3 =pulseIn(a3, HIGH); ch4 =pulseIn(a4, HIGH); ch5 =pulseIn(a5, HIGH); //Временного отключили второй пульт ch6 =1250; //pulseIn(a6, HIGH,2020); ch7 =1250; //pulseIn(a7, HIGH,2020); if(ch2>1500)< ch2st=1; >else < ch2st=0; >if(ch3>1500)< ch3st=0; >else if(ch3>0) < ch3st=1; >if(ch4>1500)< ch4st=1; >else < ch4st=0; >if(ch5>1500)< ch5st=1; >else < ch5st=0; >//Каждый канал второго пульта управляет двумя орудиями if(ch6>1800)< ch6st=2; >else if(ch6<1200)< ch6st=1; >else < ch6st=0; >if(ch7>1800)< ch7st=2; >else if(ch7<1200)< ch7st=1; >else < ch7st=0; >//Первое орудие---------------------------------------------- if(ch2st==1 or ch6st==1)< digitalWrite(RELEPIN0,HIGH); >else < digitalWrite(RELEPIN0,LOW); >//Второе орудие---------------------------------------------- if(ch3st==1 or ch6st==2)< digitalWrite(RELEPIN1,HIGH); >else < digitalWrite(RELEPIN1,LOW); >//Третье орудие---------------------------------------------- if(ch4st==1 or ch7st==1)< digitalWrite(RELEPIN2,HIGH); >else < digitalWrite(RELEPIN2,LOW); >//Если есть сигнал с первого пульта if(ch0>0)< ch0=(ch045)?50:ch0; ch1=(ch145)?50:ch1; ch0 =ch0-min0; ch1 =ch1-min1; //Получаем данные о положении стиков управления от 0 до 100 ch0 =map(ch0,0,max0,0,100); ch1 =100-map(ch1,0,max1,0,100); //Превращаем данные о напралении движения в необходимые значения для каждого двигателя speed1=round((ch0-50)*(abs(ch1-50)+50)/50); speed2=round((ch1-50)*(abs(ch0-50)+50)/50); //корректируем значения и считаем скорость моторов speedmot1=speed1+speed2; speedmot2=speed1-speed2; // Выставляем ограничения speedmot1=(speedmot1>100)?100:speedmot1; speedmot2=(speedmot2>100)?100:speedmot2; speedmot1=(speedmot1<-100)?-100:speedmot1; speedmot2=(speedmot2<-100)?-100:speedmot2; speedmot1=(speedmot1<20 && speedmot1>-20)?0:speedmot1; speedmot2=(speedmot2-20)?0:speedmot2; sd1=map(abs(speedmot1),0,100,0,255); sd2=map(abs(speedmot2),0,100,0,255); //Вывод значений для диагностики Serial.print(ch0); Serial.print(";"); Serial.print(ch1); Serial.print(";"); Serial.print(";"); Serial.print(speed1); Serial.print(";"); Serial.print(speed2); Serial.print(";"); Serial.print(speedmot1); Serial.print(";"); Serial.print(speedmot2); Serial.print(";"); Serial.print(sd1); Serial.print(";"); Serial.print(sd2); Serial.print(";wasdir"); Serial.print(wasdir1); Serial.print(";"); Serial.print(wasdir2); Serial.println(";"); //Выдаем ШИМ для драйвера, если мы не в состоянии торможения if(tormozcount1==0 and tormozcount2==0)< if(sd1<220)< analogWrite(STEP_PIN1,sd1); >else < digitalWrite(STEP_PIN1,HIGH); >if(sd2<220)< analogWrite(STEP_PIN2,sd2); >else < digitalWrite(STEP_PIN2,HIGH); >>else < digitalWrite(STEP_PIN1,LOW); digitalWrite(STEP_PIN2,LOW); >//торможение, выбег ротора if(speedmot1-40)< Serial.println("Tormoz menshe 40 1 dvig;"); digitalWrite(RELEPIN3,HIGH); digitalWrite(STEP_PIN1,LOW); tormozcount1=0; >else < digitalWrite(RELEPIN3,LOW); >if(speedmot2-40 )< Serial.println("Tormoz menshe 40 2 dvig;"); digitalWrite(RELEPIN4,HIGH); digitalWrite(STEP_PIN2,LOW); tormozcount2=0; >else < digitalWrite(RELEPIN4,LOW); >//Если мы тормозим больше циклов, чем нужно для тормоза считаем, что мы неподвижны if(speedmot1-40 and speedmot2-40)< skolkotormozim++; >else < skolkotormozim=0; >if( skolkotormozim>skolkotormozit) < wasdir1=2; wasdir2=2; digitalWrite( RELEPIN5, LOW); digitalWrite( RELEPIN6, LOW); Serial.println("Stop for 10 cicles"); >//смена направления хода if((speedmot1 < -10 and wasdir1==1) || (speedmot1 >=5 and wasdir1==0)) < //Если новое направление не соответствует старому if(tormozcount1<=0)< //если счетчик 0 тормозим Serial.println("Tormoz vibeg rotora 1 dvig;"); digitalWrite(STEP_PIN1,LOW); digitalWrite(RELEPIN3,HIGH); tormozcount1=skolkotormozit; >if(tormozcount1>0) < //Если уже тормозим digitalWrite(STEP_PIN1,LOW); tormozcount1--; >if(tormozcount1==1)< //если оттормозили tormozcount1--; digitalWrite(RELEPIN3,LOW); Serial.println("Change 1dvig "); if(speedmot1 < 0)< wasdir1=0; digitalWrite( RELEPIN5, HIGH); Serial.println("vzad"); >else < wasdir1=1; digitalWrite( RELEPIN5, LOW); Serial.println("vpered"); >> > if((speedmot2 < -10 and wasdir2==1) || (speedmot2 >=5 and wasdir2==0)) < //Если новое направление не соответствует старому if(tormozcount2<=0)< //если счетчик 0 тормозим Serial.println("Tormoz vibeg rotora 2 dvig;"); digitalWrite(STEP_PIN2,LOW); digitalWrite(RELEPIN4,HIGH); tormozcount2=skolkotormozit; >if(tormozcount2>0) < //Если уже тормозим digitalWrite(STEP_PIN2,LOW); tormozcount2--; >if(tormozcount2==1)< //если оттормозили tormozcount2--; digitalWrite(RELEPIN4,LOW); Serial.print("Change 2dvig "); if(speedmot2 < 0)< wasdir2=0; digitalWrite( RELEPIN6, HIGH); Serial.println("vzad"); >else < wasdir2=1; digitalWrite( RELEPIN6, LOW); Serial.println("vpered"); >> > // Если долго никуда не ехали меняем направление сразу if(speedmot1 < -40 and wasdir1==2)< wasdir1=0; digitalWrite( RELEPIN5, HIGH); Serial.println("Reverse 1 motor"); >if(speedmot1 > 40 and wasdir1==2) < wasdir1=1; digitalWrite( RELEPIN5, LOW); Serial.println("Forward 1 motor"); >if(speedmot2 < -40 and wasdir2==2)< wasdir2=0; digitalWrite( RELEPIN6, HIGH); Serial.println("Reverse 2 motor"); >if(speedmot2 > 40 and wasdir2==2) < wasdir2=1; digitalWrite( RELEPIN6, LOW); Serial.println("Forward 2 motor"); >/* //Диагностика Serial.print(tormozcount1); Serial.print(";"); Serial.print(tormozcount2); Serial.print(";"); Serial.print(wasdir1); Serial.print(";"); Serial.print(wasdir2); Serial.print(";"); */ //delay(1000); >else < //Если нет сигнала с пульта >>
В первой версии робота мы использовали шаговые двигатели NEMA 43, для них скетч было написать несколько сложнее, т.к. приходилось либо подсчет ШИМа с приемников выводить в функцию по таймеру, либо управление ШД. Для этих целей я использовал библиотеку TimerOne.
Скетч Arduino RC управление шаговыми двигателями
Прикрепляем библиотеку
#include
В функции setup инициируем таймер и прикрепляем к нему функцию отправки на контроллер ШД пульса на совершение одного шага.
Timer1.initialize(500000); // initialize timer1, and set a 1/2 second period Timer1.pwm(9, 512,300); // setup pwm on pin 9, 50% duty cycle Timer1.attachInterrupt(callback);
Функция отправки импульса
void callback()
В ходе основного цикла программы меняем частоту таймера в зависимости от необходимой скорости.
Timer1.pwm(9, 512,speedmot1);
В случае остановки двигателя отключаем функцию от таймера
Timer1.detachInterrupt();
Конструкция и сжигание Arduino
Конструкцию продумывали и испытывали с целью создать жесткую конструкцию.
Мне кажется на кадре ниже зафиксирован момент, когда при использовании сварки кабель от Arduino 2560 попал на корпус. В результате этого у нас сгорел UART и мы не могли более производить перепрошивку через USB. Самым быстрым решением было перейти на Arduino Uno, которая оказалась под рукой. Отказались от пульта второго оператора, портов хватило в самый раз.
Тест пневмосистемы
Из всех планируемых орудий пришлось оставить только лифт, так как посчитали его самым эффективным. Пневмосистему тестировали от компрессора 6 атм. В боевом состоянии мы уже использовали баллон с CO2 и давлением после редуктора в 10 атм, так же заменили трубку на больший диаметр.
Тест орудия
Учимся ездить на роботе
На одном из таких тестов мы сожгли полевики на контроллерах. На другом залипли реле, переключающие реверс. Затем в код ардуино я ввел выбег ротора, некое время ожидания перед сменой направления движения двигателя. Робот стал хуже в управлении, но контролеры целые.
Уличные тесты робота
Epic Fail
Стоит сразу отметить, что у нас не было весов. Мы просто поднимали робота все вместе, никто не хотел говорить, что ему тяжело и мы все дружно кивали и соглашались, что робот легкий.
Организаторы, особенно хранители арены очень серьезно относятся к вопросу безопасности, многие роботы просто не прошли квалификацию перед боем. При взвешивании оказалось, что наш робот весит 161.5 кг., при максимально разрешнных 105. Питер Редмонд на отрез отказался выпускать нас на сцену. Мы вынуждены были снять всю пневмосистему, орудия, снять юбку, которая защищала нас от подбрасывания, снять защитную стенку и заменить ее на оргстекло из которого сделаны стенки арены. Из 6 аккумуляторов от 3 пришлось отказаться.
Мы прошли квалификацию, но на арене уже могли только таранить. Нас прозвали вытяжкой, а нашего противника холодильником. Наверное, когда говорят «Первый блин комом» имеют ввиду именно такой сценарий развития событий, но мы получили удовольствие.
Видео с Бронебота
Приятного просмотра видео с боя.
P.S.: Немного расстроила организация выступления, т.к. не было никакого внимания на команду, собиравшую робота и на операторов, которые управляли им. Мы готовили костюмы, хотели быть масонами с масонской пирамидой, а получилась просто вытяжка, которая ездила по сцене…
P.P.S.: Мы уже думали полностью менять корпус и концепцию робота к следующим соревнованиям, но «За одного битого двух небитых дают». С нашими шрамами от «Открывашки» корпус ценен как история. На корпусе подписи Питера Редмонда и других гостей из Ирландской Лиги, организаторов и других участников.
P.P.P.S.: Следите за нашей командой вк. Готовьтесь к конкурсу роботов-газонокосилок. На конкурс заявлено более 10 команд со всей России. Нам предложили проводить конкурс в Сколково.
- боевой робот
- arduino
- ардуино
- ардуино и радиоуправление
- arduino rc
- бронебот
- Блог компании Golf Robotics
- Робототехника
- DIY или Сделай сам
DIY: делаем боевого робота в домашних условиях. Часть 1
Мы с командой делаем робота для участия в Битве Роботов. Наш робот называется «Большой Брат», и он смотрит на тебя! Смотрит, настигает и разносит вдребезги. Хищный нрав и мощные кинетические орудия делают его идеальной машиной для убийства. Он уже здесь, он рядом — беги!
Это краткая история разработки боевого робота в домашних условиях. Осторожно трафик! Много изображений.
Описание конкурса
Мы принимаем участие в конкурсе «Бронебот 2015: Осенний разогрев» (http://www.bronebot.ru/). Бои роботов — это популярное шоу в Великобритании и США уже более 25 лет. В Москве будет проводиться в первый раз. Приезжает судить Питер Редмонд, президент Ирландской Федерации Боев Роботов, Вице-президент Английской Федерации Боев Роботов, создатель спецэффектов «Top Gear» и «Игр Престолов». Когда нам предложили участвовать в конкурсе мы согласились без вопросов, хотя зря…
Времени очень мало, но мы стараемся изо всех сил.
Регламент конкурса
Ниже представлена информация для конструкторов по созданию роботов-участников боёв Бронебот.
1. Конструкция
- Тяжелый класс: 100 кг.
- Средний класс: 50 кг.
- Легкий класс: 17 кг.
- Тяжелый класс: 1.5 х 1 метров в длину и ширину.
- Средний класс: 1 х 0.75 метров в длину и ширину.
- Легкий класс: 0.5 х 0.5 метров в длину и ширину.
- Высота не ограничена.
1.4. Роботы должны быть оснащены тумблерами ВКЛВЫКЛ в части, отдаленной от оружия, полностью отключающими питание всех подсистем робота. Если тумблеров несколько, они должны находиться рядом. Тумблеры могут быть спрятаны под оболочкой, но должны быть доступными без переворачивания робота или разборки с помощью инструментов.
1.5. Летающие роботы запрещены.
2. Электричество
2.1. Напряжение питания роботов не должно превышать 36 Вольт.
2.2. Все электрические соединения должны сделаны качественно и на должном уровне изолированы. Кабели должны быть проложены с минимальным шансом быть разорванными.
2.3. Аккумуляторы должны быть полностью изолированные и не содержать жидкостей. Соединения аккумуляторов должны быть полностью изолированными.
2.4. Двигатели внутреннего сгорания запрещены.
3. Гидравлика
3.1. Давление в гидравлических линиях не должно превышать 204 атм (3000 psi/20.4 mps).
3.2. Гидравлические жидкости должны находиться в надежных емкостях внутри робота. Все гидравлические линии должны быть проложены с минимальным шансом быть поврежденными.
4. Пневматика
4.1. Давление в пневматеческих линиях не должно превышать 68 атм (1000 psi/6.8 mps).
4.2. Пневматические емкости должны быть подлежащего качества, промышленного производства. Давление в них должно соответствовать спецификации производителя.
4.3. Пневматические емкости должны быть закреплены внутри робота и защищены от повреждений.
4.4. Газы для пневматики должны быть невоспламеняющимися или инертными, например, воздух, углекислый газ, аргон, азот.
4.5. Должна быть предусмотрена возможность спустить давление в системе без разбора конструкции.
5. Оружие
5.1. Каждый робот должен быть оснащен минимум одним активным оружием.
- Пиротехника
- Огнеметы
- Жидкости
- Едкие вещества
- Неуправляемые снаряды
- Электрошокеры
- Радиоглушители
- Тепловые пушки
- Гауссганы
- Любое оружие, использующее горящие или воспламеняющиеся газы
5.4. Вращающие диски из закаленной стали и лезвия, которые при поломке образовывают осколки, запрещены.
5.5. Длина лезвийштыков не должна превышать 20 см.
5.6. Все подвижные манипуляторы, даже не содержащие оружия, должны иметь фиксирующие крепежи. Крепежи должны быть закрытыми во всех случаях, кроме нахождения робота на арене или техобслуживании.
5.7. Все острые грани и элементы оружия должны иметь крышки или насадки. Эти элементы не учитываются при взвешивании.
6. Радиоуправление
6.1. Используемые частоты должны быть разрешены законодательством РФ.
6.2. Робот не должен обладать автономностью. Все управление должно осуществляться исключительно с пульта оператора.
6.3. Все системы роботов должны быть отключаться при потере управляющего сигнала.
6.4. Стабильность управления должна быть продемонстрирована Организаторам заранее для допуска к участию.
6.5. Для избежания конфликтов частоты между роботами участники должны иметь два набора “передатчик-приемник”, работающих на разных частотах.
Арена
Бои будут проходить на специальной пуленепробиваемой сцене 10х10 метров со скошенными углами, т.е. фактически это восьмиугольник.
Другие роботы
Большинство роботов имеют богатый опыт участия в соревнованиях, но это только делает задачу выиграть у них еще интересней.
Наша команда
- Вячеслав Голицын
- Александр Егоров
- Андрей Такташов
- Дмитрий Елисеев
- Павел Поздняков
Краткое описание робота
- Низкий центр масс
- Низкий клиренс
- Возможность повернуться в случае переворота
- Возможность опрокинуть соперника
- Геометрия корпуса как пассивная защита.
Так же из фич: Отделяемая часть робота, и пилы.
Каркас, форма, сборка
Разрезаем профиль
Колеса со строительного рынка
Двигатели
У нас была очень большая надежда на шаговые двигатели Nema 43. По заявленным характеристикам они нам подходили, мы варили под них раму. При подключении оказалось, что справится с какой-либо нагрузкой они не смогут. В срочном порядке пришлось искать другое решение. Мы нашли двигатели 36В 500Вт и уже переделали раму под них.
Радиоуправление
Радиуправление происходит через 8-канальную радиоаппаратуру для основного оператора, 4 канальную аппаратура для оператора орудий и 2-канальную аппаратуру отделяемой части.
Обработкой ШИМ-сигнала с пульта занимается Arduino (Душа моего робота-газонокосилки). Проблема с обработкой заключалась в том, что на подсчет ШИМ-сигнала с 8 каналов уходит много времени. Выполняя это в основном цикле программы, оказывалось невозможно отправлять на драйверы двигателей адекватное количество пульсов для движения. Решением было выведение работы с шаговиками в функцию запускаемую по таймеру и изменением параметров таймера в основном цикле. Сейчас уже оказывается все это не нужно, коллекторными двигателями мы управляем через драйвер, на который будем подавать ШИМ, который смело можно изменять в основном цикле программы.
Пневмосистема
Пневмосистема в разборе:
Главной идеей было использовать для каждого двуходового цилиндра по 4 клапана, которые перекрестно соединены. Когда мы открываем клапан для наполнения цилиндра с одной стороны открываем для стравливания клапан с противоположной стороны.
Для управления клапанами решили использовать такой модуль с 8 реле, которых как раз хватает для 16 попарно-соединенных клапана, т.е. для 4 цилиндров.
Орудия
Главный молот. Над дизайном главного молота-кирки думаем и спорим.
В качестве пил мы решили использовать двигатели кошения и ножи от Robomow. Во-первых ножи сделаны из прочной стали, а двигатели дают хороший момент и количество оборотов. Во-вторых Robomow согласились нас спонсировать ими.
Видео
P.P.S. (для тех, кто считает, что времени мало):
Интерактивный боевой робот серии Стальная Команда — ZYB-B2740 ID: 217522
Самовывоз из магазина RC-TODAY.RU — БЕСПЛАТНО
Мы находимся: г. Москва, 6-й монетчиковский пер., д. 8с1 (3 минуты пешком от метро Павелецкая)
Время работы: Ежедневно с 09:00 до 21:00
Сделайте заказ любым удобным для Вас способом, наш менеджер свяжется с Вами для согласования даты и времени Вашего приезда.
Как только заказ будет скомплектован, мы Вам позвоним и отправим смс-уведомление.
Цена доставки зависит от адреса и рассчитывается самостоятельно в корзине или по телефону с менеджером.
Срок доставки — 1-2 дня. В рабочие дни минимальный интервал доставки — 3 часа, в выходные и праздничные дни — 8 часов.
Если Вы находитесь за МКАД, то срок доставки — 1-2 дня, а минимальный интервал доставки — 8 часов.
Просим учесть, что крупногабаритные товары мы доставляем только до подъезда. Подъём до квартиры осуществляется за отдельную плату.
Доставка по России
СДЭК
cdek.ru
Оплата заказа возможна наложенным платежом. Срок доставки 2-14 рабочих дней, в зависимости от удалённости города.
Почта России
pochta.ru
Отправка заказа только по полной предоплате. Срок доставки 1-10 рабочих дней, в зависимости от удалённости города.
Деловые линии, Байкал сервис, ПЭК и любые другие ТК
Если Вы знаете транспортную компанию в своём городе, которая устраивает Вас больше, чем предложенные нами, просто сообщите нам об этом, и мы отправим Ваш заказ через неё. Если указанная Вами транспортная компания не предоставляет возможности оплаты заказа при получении, необходимо сделать предоплату за заказ в полном объёме. Доставка, как правило, оплачивается при получении заказа. Сроки доставки зависят от ТК и удалённости региона. При этом забор транспортной компанией с нашего склада оплачивается клиентом вне зависимости от стоимости заказа.
Стоимость доставки зависит от веса и цены товара и рассчитывается оператором при подтверждении заказа.
Самовывоз из пунктов выдачи
Практически в каждом городе у нас есть пункт выдачи заказов от наших партнёров. Уточнить адреса и контакты пункта выдачи Вы можете любым удобным для Вас способом: по телефону, в онлайн чате, а также при оформлении заказа в корзине.
Оплата наличными
Оплата производится наличными средствами курьеру при получении заказа. Если для Вас это самый удобный вариант оплаты, просто выберите «Оплата при доставке» при оформлении заказа или, если Вы оформляете заказ по телефону, сообщите об этом менеджеру. Эта опция доступна не только для жителей Москвы и Санкт-Петербурга, но и для жителей остальных регионов России. Оплачивайте свои заказы по факту получения. Ваш комфорт – наш приоритет.
Оплата банковской картой
Вы можете оплатить заказ банковской картой, для этого выберете соответствующий способ оплаты и после подтверждения заказа Вы будете перенаправлены на страницу оплаты.
Оплата через СБП
Вы можете оплатить свой заказ при его оформлении. Для этого нужно выбрать способ оплаты «СБП». После этого необходимо подтвердить заказ и Вы будете направленны на страницу со сформированным qr-кодом, который нужно будет отсканировать смартфоном и в приложении открывшегося банка подтвердить платеж.
Оплата банковским переводом (для Юр. лиц)
При оформлении заказа выбираете тип оплаты «Банковский перевод». В форме заказа необходимо заполнить электронную почту – на нее мы отправим Вам ссылку на счет с нашими реквизитами. Если вы оформляете заказ по телефону, попросите менеджера прислать Вам счет на оплату. Оплатить счет Вы можете в любом банке. Пожалуйста, указывайте в комментарии к платежу номер Вашего заказа!