Найти в Дзене
RCRoboLab

Делаем робота вместе!

Статья - инструкция по сборке и программированию простого робота по линии. Перед тем как начать прочти пожалуйста это! Статья будет одновременно и инструкция для учеников и для преподавателей! начнем! Подразумевается, что вы способны самостоятельно загрузить программу на ардуино. Если это не так, то вам рановато =) Робот по линии. То есть его задача передвигаться вдоль линии (обычно черной на белом фоне). Данного робота собирают ВСЕ новички моего клуба без исключений. НАЧИНАЯ С 7 ЛЕТ!!!!!! Робот простой как тапок и нужен больше для понимания детьми самого понятия "робот", "программа" и получения основных навыков работы с "железом".
Робот собирается без пайки. Но можно и с ней =) списком: 1. Arduino NANO - 1шт. 2. Сенсор линии - 2шт. 3. Сервопривод 360гр. - 2шт. 4. breadboard (макетка) - 1шт. 5. 3D печать. 6. АКБ lipo 2s 450mAh. 7. всякая рассыпуха (разъемы, провода и метизы). Теперь подробнее! Arduino Nano выбрана как самая маленькая из ардуин с USB разъемом, ровно для того чтобы м
Оглавление

Или "мой первый робот"

Статья - инструкция по сборке и программированию простого робота по линии.

Перед тем как начать прочти пожалуйста это!

Статья будет одновременно и инструкция для учеников и для преподавателей! начнем!

Подразумевается, что вы способны самостоятельно загрузить программу на ардуино. Если это не так, то вам рановато =)

Что за робот?

Робот по линии. То есть его задача передвигаться вдоль линии (обычно черной на белом фоне). Данного робота собирают ВСЕ новички моего клуба без исключений. НАЧИНАЯ С 7 ЛЕТ!!!!!!

Фото для превью... на фото робот недоделан =)
Фото для превью... на фото робот недоделан =)

Робот простой как тапок и нужен больше для понимания детьми самого понятия "робот", "программа" и получения основных навыков работы с "железом".
Робот собирается без пайки. Но можно и с ней =)

Из чего робот?

списком:

1. Arduino NANO - 1шт.

2. Сенсор линии - 2шт.

3. Сервопривод 360гр. - 2шт.

4. breadboard (макетка) - 1шт.

5. 3D печать.

6. АКБ lipo 2s 450mAh.

7. всякая рассыпуха (разъемы, провода и метизы).

Теперь подробнее!

Arduino Nano выбрана как самая маленькая из ардуин с USB разъемом, ровно для того чтобы меньше мучаться. Она будет мозгом нашего робота. Мы обычно берем 328P но разницы в них в концепции данного робота нет.

Сенсоры линии берем обязательно цифровые, какие именно сами решайте. Эти я предлагаю только из-за того, что корпус смоделирован под них.

Самая важная часть - сервопривод. тут есть 2 пути! Первый: купить готовые сервоприводы 360 градусов/сервоприводы постоянного вращения. Второй: изготовить их из обычных SG90. Первый путь сейчас предпочтительнее, так как стоимость одинаковая, а трудозатрат меньше. Как переделывать обычные серво в 360 напишу отдельно.

мы делаем робота на сервушках по нескольким причинам:
1. это проще.
2. хорошая возможность изучить глубокий внутренний мир сервоприводов.
3. хорошо дает понять детям, что не все так очевидно как им кажется (об этом позже)

Макетка для того чтобы не возится с пайкой.

3D печать как опция, без нее также все просто. Вот ссылка на наш "комплект". Не забываем говорить спасибо, обязательно на русском языке! =)

Поехали!

Фото дяди Юры для настроения. взято из интернетов =)
Фото дяди Юры для настроения. взято из интернетов =)
Собирать все будем болты М3 + гайки для них и саморезики из комплекта сервопривода. Очень советую сразу укоротить провода на сервоприводах и перепаять их на разъем "папа", это сделает вашу жизнь проще.

1. устанавливаем Ардуинку на макетку!

Делаем это именно так: со стороны цифровых пинов оставляем один "ряд", со стороны аналоговых пинов 4 "ряда" контактов. Со стороны ЮСБ разъема ставим на самый край, с обратной оставляем один ряд (смотри фото).

2. проверяем ардуинку и сервоприводы!

Подключаем сервоприводы к Ардуинке.

какой провод куда?
все просто!
по середине всегда 5V его к 5V.
самый темный это GND его к GND.
самый светлый - это сигнальный его к любому ШИМ пину, в нашем случае это будет 3-й и 6-й.

Пишем простую программу (смотри фото).

фото программыдля проверки серво.
фото программыдля проверки серво.

Эта программа заставит крутиться наши серво приводы по/против часовой стрелки. Закрутилось? Хорошо, все работает.

теперь немного о серво 360.
в отличие от обычного сервопривода, который на записи на него угла 180 градусов повернется в положение 180 градусов - этот сервопривод "постоянного вращения/360" начнет крутится без остановки по/против часовой стрелки с максимально возможной скоростью. А при записи на него 0 градусов в обратную сторону так же с максимальной скоростью. Для того чтобы остановить данный сервопривод, нам нужно записать на него сигнал 90 градусов. То есть серво 360 - это по факту мотор + драйвер в одном флаконе. Просто и удобно. Надежность так себе, но "на две гонки втулки хватит"...

3. Установка серво

После того как мы проверили наши сервопривод и Ардуинку, устанавливаем сервоприводы на место. Можно просто приклеить их термоклеем, можно прикрутить их на комплектные болты.

Без коментариев...
Без коментариев...

4. Настройка серво.

Теперь нам нужно заставить оба сервопривода крутиться так, чтобы наш робот "ехал" вперед! Сейчас он может ехать назад, а может и вперед... в любом случае один крутится в 0 второй в 180 градусов. Нужно только понять какой куда крутить, это на практике...

Для смены направления вращения серво мы в нашей программе просто меняем в одном из "write(0)" ноль на 180. Что? теперь он едет назад? отлично тога меняем 0 и 180 местами. Теперь-то все нормально? Идем далее.

5. Устанавливаем сенсоры.

Пины подписаны, единственное что так это нужно "распрямить контакты плоскогубцами". Используем Dupont провода "папа-мама".

VCC к 5V
GND к GND
OUT к 10 и 11му пину для левого и правого сенсора соответственно
Красивый
Красивый

6. Проверяем сенсоры.

Для этого мы дописываем нашу программу следующим образом.

пол программы робота готово.
пол программы робота готово.

После загрузки программы переворачиваем нашего робота таким образом чтобы перед сенсорами было достаточного свободного пространства, грубо говоря чтобы они смотрели в потолок! При этом положении наш робот двумя сенсорами видит "черное" (почему белый потолок для него черный? читайте тут) и робот должен крутить оба колеса вперед.

Ставим перед сенсорами руку, рука у нас белая (светлая) робот остановился так как сработало условие else.

7. Добавляем в программу повороты.

Тут логика проста с какой стороны робот видит "черное" с той стороны останавливаем колесо, а другое по прежнему крутим вперед.

Код робота полностью. Обязательно чтото будет работать не так как нужно.
Код робота полностью. Обязательно чтото будет работать не так как нужно.

Проверяем! Если все работает как нужно, то можно подключить питание.

8. Питание!

Тут нужно подключить наш акб. Внимание! Мы используем 2S lipo, он без проблем уничтожит вашего робота, перепроверьте все 200 раз.

"+" АКБ мы подаем на пин Vin. Он может переварить до 12 вольт, в то время как наш акб не даст больше ~8,5 вольт.

А вот "-" АКБ подключаем к любому GND.

9. Финиш

Проверяем робота, для этого можно нарисовать трассу на бумаге, или налепить черную изоленту на что-либо.

Если работает, вы молодцы! Вы можете принять участие в соревнованиях "линия для начинающих", или "широкая линия" и получить опыт (но не победу).

Если нет то начинаем отладку...

Какие могут быть проблемы?

  • Ваш робот может "падать" с линии, то есть пытаться повернуть в сторону БЕЛОГО, а не черного. Нужно поменять сенсоры местами (пины). Можно как в программе так и в реале.
  • Ваш робот может ехать назад! Поздравляю, вы невнимательный человек! читайте статью заново поднимайте мне просмотры =)
  • Ваш робот может испустить "волшебный" дым, а без него магии не будет =) Вы ошиблись в подключении АКБ. покупайте все железо заново. И начинайте с начала.

С вопросами в комменты.
Если нужно сделать видеоверсию - в комменты.
Другие интересные статьи вы найдете тут.