123
Главная » 2013 » Январь » 14 » SUMMOZUMMObot - Робот для мини-суммо 10х10
11:41
SUMMOZUMMObot - Робот для мини-суммо 10х10


SUMMOZUMMO bot - это не сложный робот, который можно собрать очень быстро в течении двух дней и сразу начать соревноваться в таком популярном направлении робоспорта как "минисуммо". Робот собирается из готовых плат с датчиками, мотор-шилдами, шасси исполненных в превосходном виде, умещающихся по размеры заданные регламентами. Этот малыш способен своротить с пути соперника, превосходящего его размеры и вес.



Отличительные особенности этого робота заключаются в его исполнении, а если быть точнее в его плате управления, на которой для программиста приготовлено множество вкусностей, включая различные датчики, сенсоры. звуковые извещатели, компас и прочее.

Система очень продвинутая и довольно расширяемая, что позволяет модифицировать робота до уровня "ПРОфи", который не только сможет увидеть противника, но и определить как противник на него воздействует и принять специальные меры по противостоянию. 

$CUT$
 

 
***
 
 
 
Данный робот очень интересен и довольно неплох для своей комплектации, напичканный электроникой он представляет огромную творческую площадку, имея очень вместительную комплектацию.
 
В нашей статье мы рассмотрим поэтапный процесс создания робота суммоиста, разберем все его стороны, соберем шасси и электронику шаг за шагом, и запрограммируем его для участия в соревновании. 
 
 ЧТО НАМ ПОНАДОБИТСЯ:
 
1. Робоконтроллер семейства Arduino NANO v2.1. Это может быть Arduino UNO, Arduino NANO, FREDuino, и прочие этого семейства, у которых будет достаточно портов ввода\вывода для работы с платой мотор-шилдом, используемой в нашей статье.
2. Датчики линии QTR-1RC Reflectance Sensor. Мы рассмотрим работу цифровых датчиков линии, так как они весьма просты в работе, правда иногда все же лучше использовать аналоговые, так как они более настраиваемые, и у них можно задать порог чувствительности.
3. Датчики расстояния Pololu 10см на Sharp GP2Y0D810Z0F (цифровой). Расстояние замеряют специальные, также, цифровые, датчики от производителя SHARP xxxx. Максимальная дистанция их "прощупывания" 10 см.
4. Мотор-шилд Zummo robot kit. Самое, наверно интересное в роботе.
5. 75:1 Micro Metal Gearmotor HP - двигатели, так как в комплекте с мотор-шилдом они не идут. Вы можете брать какие вам надо, их ассортимент очень велик.
6. 3-х жильные провода, на всякий случай могут понадобиться. Можно и не брать, а спаять самому. Каждый выбирает в меру своих надобностей. Я взял.
7. PLS разъем-линейка. 
 
*Предлагаем воспользоваться магазином Робототехника ( http://www.robototehnika.ru ) - одним из лучших на наш взгляд магазинов, у которых огромный ассортимент комплектующего от производителей Polulo, и др.
 
 
 ЖДЕМ НАШ ЗАКАЗ:
 
   
 
  
***
(нажмите на фото чтобы увеличить изображение)
 
 
 СБОРКА РОБОТА ШАГ ЗА ШАГОМ:
Первым делом нам необходимо определиться, что есть что, и с чего начать. А начать следует с распаковки... Шучу, конечно я знаю, вы уже наверняка как только получили посылочку с заветными детальками - распотрошили ее и все осмотрели. Если нет, пора бы это сделать. 
 
(нажмите на фото чтобы увеличить изображение)
 
 
Вообще, не спешите рваться в бой. На самом деле, так как пока я писал и собирал робота, были такие моменты, что нужно было что-то впаять, когда уже робот собран, или болт выкрутить, или еще что. Давайте начнем с платы мотор-шилда, и спаяем ее содержимое по своим местам, добавим некоторые модификации и прочее. Поехали...
 
 
 СОДЕРЖИМОЕ:
Возьмем нашу плату и рассмотрим ее разъемы и содержимое:
 
 
Для тех пользователей, которые плохо знают английский, хотя вы должны понимать, что занимаясь робототехникой вы просто обязаны хоть немного но понимать технический английский язык, поясню выписки на картинке, обозначенные синим цветом:
 
1. Arduino headers - это разъемы которые необходимо впаять под ту ардуину, которую вы собираетесь впаять. Мы же будем использовать Arduino UNO, и разъемы эти не по размерам будут, но мы их на всякий случай впаяем.
2. Three-axis accelerometr and compass - 3х осевой акселерометр и компас.
3. Buzzer - это пьезоэлектрический динамик, или пищалка по другому. 
4. Dual motor driver - сдвоенный драйвер моторов на 2 канала.
5. General-purpose I\O - разъемы для вывода и подключения различных датчиков.
 
 
 
А так же специальные индикаторы и кнопки для наблюдений и отладки нашего робота:
 
1. User pushbutton - просто кнопка, которая может использоваться в любых целях как пожелает программист.
2. Power switch - переключатель\включатель питания робота
3. Charge connector - разъем для подключения устройства зарядки аккумуляторов, которые находятся в батарейном отсеке (4 АА)
4. Red and Blue power LED's - светодиоды, синий и красный, отображают индикацию работы моторов и тп.
 
 
 
 
(Впаяем выключатель в его гнездо. Нажмите на фото чтобы увеличить изображение)
 
Во время пайки, если вы используете специальные смеси, которые помогают обезжиривать место и прочие жидкости, настоятельно рекомендую протирать эти места насухо. Если после пайки остается жидкости типа флюса, или, не дай бог - кислоты - ваш контроллер будет чудить, а вы будете ломать голову ведь вроде все правильно спаяно. А на самом деле в тех местах будет идти короткое замыкание, не значительное для вырубания всей схемы, но значительное для ее некорректной работы в целом. Особенно аналоговые порты в этом плане больше всего уязвимы.
 
 
 
 
(Впаяем кнопки в гнездо и нашу пищалку. Нажмите на фото чтобы увеличить изображение)
 
 
 
 
(Впаяем PLS разъемы в гнездо и нашу пищалку. Нажмите на фото чтобы увеличить изображение)
 
 
 
 
(Впаяем PLS разъемы в гнездо для подключения контроллеров. Нажмите на фото чтобы увеличить изображение)
 
Один момент ! Когда паяете, старайтесь не оставлять лишние куски припоя, весящие ломтями на ножках деталей со стороны пайки. Когда вы будете собирать робота, эти куски могут помешать крепежным местам и вы не сможете хорошо, а то и вовсе, сломаете детали платы или крепежей.
 
 
 
 
 
(Впаяем датчики расстояния SHARP xxxx. Нажмите на фото чтобы увеличить изображение)
 
В комплекте с датчиками поставляется PLS-разъем на 3 пина в двух видах - прямой и буквой "Г". В зависимости от того как вам будет удобнее паять коннектор, или как вы будите крепить датчик, его положение. От этого и стоит плясать. В моем случае выбран разъем типа "Г", с выводом шлейфа в сторону.
 
*Пин - (от англ. "pin") контакт, ножка, вывод. 
 
 
 
(Впаяем датчики лини OCR xxx. Нажмите на фото чтобы увеличить изображение)
 
Стоит заметить, что когда вы будете впаивать эти датчики в плату  -вы не ошибетесь с расстановкой I\O, так как производитель заранее подготовил места под эти датчики и пометил их выводы как следует. 
 
 
Вернемся к нашему мотор-шилду. Допустим все разъемы, которые нам могут понадобиться спаяны, кнопки на своих местах, перемычки подготовлены, пищалка стоит, выключатель на месте, PLS линейка для подключения I\O контроллера-шилда впаяна. Если на вашей плате еще остались "мокрые" участки от флюсов и прочих жидкостей -самое время их вытереть хорошенько. Приступим к механической части. Начнем с моторов.
 
 
 
 
 
(Впаяем выводные контакты к ножкам моторов. Нажмите на фото чтобы увеличить изображение)
 
Вот тут нужно быть дальновидным... Увидели ли вы то что вижу я ? Слово "дальновидным" должно заставить вас задуматься о том, будете ли вы в будущем, не далеком будущем, этого робота модифицировать ? Вообще лучше всегда делать конструкцию робота основываясь на модульной архитектуре. Это значит, что сломав одну из деталей, ну может и не сломав, вы без труда можете ее демонтировать и заменить на другую. В случае "жесткой" пайки, когда выводы деталей намертво припаяны, повторный демонтаж этих деталей приводит к нарушению контактных дорожек, они перегреваются, перегорают, отрываются от платы, нагревают соседние детали и вообщем нечего хорошего. Тем более постоянные движения деталей приводят к такому свойству как "усталость металлов"(см. Википедию).
 
По этому на картинках вы видите как моторы спаяны но лучше припаять к ним провода, которые крепятся к тому же PLS коннектору и никаких проблем с разборкой робота не возникнет... Хотя... А о хотя чуть позже скажу, но это тоже из этого выплывает...
 
Давайте установим моторы на свои позиции и накроем их специальной прослойкой, которая будет придавливать их, а заодно поговорим об этой прослойке. Ранее я не зря упомянул о том, что необходимо убирать лишние куски припоя и жидкостей, потому что те, тем или иным образом, будут мешать крепежу. Так вот этот крепеж и есть - эта прослойка. В комплекте с мотор-шилдом идет одна прослойка и в комплекте с самим шасси, также идет прослойка. Но, они на самом деле разные.  Одна - состоит из двух частей, другая из одной. Кстати, вот именно сейчас я понял зачем та, что цельная. В случае, когда нам не нужен мотор-шилд, и мы хотим использовать только платформу, то мы крепим цельную  прослойку и на нее крепим электронику нашу и так далее. А в нашем случае - мы используем мотор-шилд. Прослойка из двух частей потому что у платы выступают ножки где мы паяли, и коннекторы, и чтобы плотно прижать плату к прослойке она выполнены из двух частей со специфическими прорезями. Вот так вот. 
 
 
 
 
 
 
 
(Устанавливаем моторы, скрепляем прослойку. Нажмите на фото чтобы увеличить изображение)
 
 
На самом деле, то что на фотографиях моторы припаяны к длинным штырькам, я позже перепаял и в тем места куда моторы должны были быть припаяны - впаял одиночный пин разъема PLS, а от мотора штекер, который на этот разъем насаживается. Советую сделать так же. Но, как говорится "на вкус и цвет...".
 
Следующий шаг - проверка крепежных узлов, собираем. закручиваем и проверяем на сгибы и перегибы. И да, вот еще что, когда плата мотор-шилда будет установлена и закреплена - вы не сможете прилепить к корпусу колеса, которые крепятся сбоку на болты и гайку, а вот гайку нужно заранее вставить до крепления платы мотор-шилда. Тут косяк производителей, но зато и гайку не потеряете если колесо отвалится.
 
 
(Крепим болтами. Нажмите на фото чтобы увеличить изображение)
 
Устанавливаем колеса. Вот на этом этапе тоже стоит быть внимательным. Я не в первые работаю с такими маленькими моторами, и приходилось сталкиваться перекосами осей мотора, гнутыми и беззубыми шестеренками от переусердствования в силе, или просто из-за банальных ошибок. Например как моя, которую вы можете наблюдать на фотографиях. Я по невнимательности, чему мне не занимать, установил одно из колес не той стороной на ось мотора, на чем и погорел. Снять ее удалось весьма тяжело, так как колеса еще только только, новые, необъезженный, и колесо я надел чуть ли не с молотком вбивая на мотор.
 
 
 
 
 
(Установка колес. Нажмите на фото чтобы увеличить изображение)
 
Наденем на колеса траки, а также прикрепим наш ковш, который следует заранее согнуть. Ковш загибайте не руками а плоскогубцами, ведь вы не хотите получить кривой ковш ? 
 
 
 
 
 
 
 
(Установка траков, ковша. Нажмите на фото чтобы увеличить изображение)
 
Почти нужные 10х10 сантиметров. Не беда, в процессе подгоним до нужных 10.
 
 
Хорошо, будем считать, что вы спаяли все нужные выходы, разъемы и проичие комплектующие от мотор-шалда и ничего не осталось из деталек. Теперь возьмите ваши датчики OCR, и припаяйте их в позиции, которые находятся под ковшом робота (ковш снимите, так будет удобнее). Если сомневаетесь куда именно крепить датчики - дальше в статье будет описание, пролистайте вперед. Установите и спаяйте, лишние остатки припоя и флюса удалите.
 
 
 
 
 
(Установка датчиков линии OCR xxx. Нажмите на фото чтобы увеличить изображение)
 
Как видите на фото, там есть провода. Это тот самый провод, который идет от моторов, о нем я говорил при пайке моторов. 
 
 
 
(Мотор-шилд в сборе. + внешний источник питания. 
Нажмите на фото чтобы увеличить изображение)
 
По питанию, было решено добавить внешний источник питания- LiPo аккумулятор от книжки электронной Wexler, валялась в коробках и вот нашла свое применение. Разъемы питания также сделаны как и разъемы моторов - специально выведены на PLS пины, к которым подключается батарейка. Это позволяет легко ее снять.
 
 
 
 
ЦВЕТОВАЯ МАРКИРОВКА ПОРТОВ I\O МОТОР-ШИЛДА
 
Ниже приведен рисунок на котором цветовой маркировкой обозначаются аналоговые и цифровые порты, на которые вы можете подключать различные датчики и снимать с них показания.
 
 
 
 
 
 
 
 
 ПЛАТА УПРАВЛЕНИЯ РОБОТОМ И ПЕРВАЯ ПРОГРАММА:
 
В ходе написания этой статьи был небольшой перерыв, в ходе которого были проведены пробные тесты с использованием платы Arduino NANO. Подключив управляющие пины моторов zoomo шилда, и протестировав пробную прошивку пришли к выводу что ничего не работает. Да, на пины управления направлением и ШИМом - все шло как надо, но где-то были еще хитрые пины, которые необходимо было запитывать. Но тут нам на глаза попалась плата Arduino UNO, провалявшаяся в коробке когда-то купленная. И было решено поставить ее на свое место в этом шилде, ведь пины мы там уже припаяли.
 
Примечание: при использовании платы arduino uno выполненной в DIP-корпусе, пины в центре - BAT Level и те что рядом придется отпаивать, либо откусывать.
 
 
ПРИМЕР ПРОГРАММЫ УПРАВЛЕНИЯ МОТОРАМИ.
 
 
Найдем на сайте polulo.com в статье про зуммо раздел Sorce и в нем будет ссылка на архив с библиотекой.
В коде ниже используются функции из этой библиотеки, и если она не будет загружена в проект - программа не скомпилируется, и будет ругаться на переменные.
 
 
ПРИМЕР:
#include <ZumoMotors.h>
 
/*
* В этом примере используется библиотека ZumoMotors управления моторов на Zumo
* вперед, и назад. Желтый СВЕТОДИОД горит, когда двигатель должен 
* ехать вперед, и  не горит, когда двигатель должен быть запущен назад. Если
* моторы(распайка) на вашем Zumo была перевернута, то вы можете исправить это,  направление -
* раскомментируйте строку вызова flipLeftMotor() или flipRightMotor() setup()
* функцию.
*/
 
#define LED_PIN 13
 
ZumoMotors motors;
 
void setup()
{
  pinMode(LED_PIN, OUTPUT);
  
  // uncomment one or both of the following lines if your motors' directions need to be flipped
  //motors.flipLeftMotor(true);
  //motors.flipRightMotor(true);
}
 
void loop()
{
  // run left motor forward
  
  digitalWrite(LED_PIN, HIGH);
  
  for (int speed = 0; speed <= 400; speed++)
  {
    motors.setLeftSpeed(speed);
    delay(2);
  }
 
  for (int speed = 400; speed >= 0; speed--)
  {
    motors.setLeftSpeed(speed);
    delay(2);
  }
  
  // run left motor backward
  
  digitalWrite(LED_PIN, LOW);
  
  for (int speed = 0; speed >= -400; speed--)
  {
    motors.setLeftSpeed(speed);
    delay(2);
  }
  
  for (int speed = -400; speed <= 0; speed++)
  {
    motors.setLeftSpeed(speed);
    delay(2);
  }
 
  // run right motor forward
  
  digitalWrite(LED_PIN, HIGH);
  
  for (int speed = 0; speed <= 400; speed++)
  {
    motors.setRightSpeed(speed);
    delay(2);
  }
 
  for (int speed = 400; speed >= 0; speed--)
  {
    motors.setRightSpeed(speed);
    delay(2);
  }
  
  // run right motor backward
  
  digitalWrite(LED_PIN, LOW);
  
  for (int speed = 0; speed >= -400; speed--)
  {
    motors.setRightSpeed(speed);
    delay(2);
  }
  
  for (int speed = -400; speed <= 0; speed++)
  {
    motors.setRightSpeed(speed);
    delay(2);
  }
  
  delay(500);
}
 
 
Тут еще такая хитрость есть, если вы зальете прошивку в робота, он не сразу заработает, моторы крутиться не будут. Отсоедените USB шнур и подключите питание от батареек(стандартное питание) включателем. Вот с этого момента робот будет работать.
 
Если у вас прошивка не заливается в робота, - отключите питание от батареек, оставьте питание от USB-шнура. Лучше переконнектить кабель.
 
 
***
СТАТЬЯ ЗАГРУЖАЕТСЯ В РЕЖИМЕ ONLINE
 
 
Авторство на статью принадлежит © 
SERVODROI.RU -Робототехника для 
начинающих своими руками
. Если Вы читаете это сообщение 
пожалуйста, сообщите нам.
Пароль к архиву mux100.Авторство на статью принадлежит © 
SERVODROI.RU -Робототехника для 
начинающих своими руками
. Если Вы читаете это сообщение 
пожалуйста, сообщите нам.

Если у ВАС возникли вопросы пишите на ФОРУМЕ или в Online чат по робототехнике мы их обсудим! 
 
автор Мельников Сергей www.servodroid.ru© Внимание! Полное либо частичное копирование материала без разрешения администрации запрещено!    

 

 



Лицензия Creative Commons
Произведение «SUMMOZummo - Робот для минисуммо 10х10» созданное автором по имени Мельников Сергей, публикуется на условиях лицензии Creative Commons «Attribution-NonCommercial-NoDerivs» («Атрибуция — Некоммерческое использование — Без производных произведений») 3.0 Непортированная.
Основано на произведении с http://www.servodroid.ru/news/sommozummobot_robot_dlja_mini_summo_10kh10/2013-01-14-467.

 

 

Категория: Роботы для соревнований | Просмотров: 10676 | Добавил: MSA-Beam-Robotics | Рейтинг: 5.0/1
Всего комментариев: 6
avatar
1 MSA-Beam-Robotics • 17:52, 14.01.2013
Ухххх, капец, шея так и отваливается )))
avatar
2 Droid • 20:07, 14.01.2013
Это потому что у тебя ноут. wink
avatar
3 MSA-Beam-Robotics • 21:19, 14.01.2013
Нее, это я сегодня весь день на работе статью писал ))) - вместо работы
avatar
4 sike1997 • 10:09, 15.11.2014
Подскажите чайнику!!! Где такую плату купить
avatar
6 egor-vagner • 21:46, 08.02.2015
загрузите видео демонстрацию
avatar