[Разработка под Arduino, Робототехника, DIY или Сделай сам] Робот из LEGO и Arduino, обходящий препятствия (перевод)
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Извините, данный ресурс не поддреживается. :(
Мы обожаем LEGO и Crazy Circuits [LEGO-совместимая электроника / прим. перев.], поэтому решили скомбинировать их в простого и интересного робота, умеющего обходить препятствия. Мы покажем, как собрать такого робота и подробно опишем этот процесс. Ваша версия робота может не полностью совпадать с нашей.
Приводим список необходимой электроники и деталек LEGO. Не бойтесь экспериментировать с ними.
Комплектующие
Электроника
- 1 x плата Robotics Board от Crazy Circuits
- 2 x совместимый с LEGO сервомотор полного вращения
- 1 x ультразвуковой датчик расстояния HC-SR04
- 4 x джампер-кабеля «мама-мама»
- 1 x внешний источник питания с USB
Для нашего проекта мы подобрали небольшой внешний источник питания, уютно вписывающийся в нашего робота. Вам, возможно, придётся сконструировать свой вариант для своего внешнего источника питания, или для комплекта батареек.
LEGO
Мы использовали различные детальки, а вам рекомендуем сделать так, как вы считаете нужным, и из того, что есть у вас на руках. Важно, чтобы у вас был способ приделать сервомоторы снизу, ультразвуковой датчик – так, чтобы он смотрел вперёд, и каким-то образом закрепить плату и источник питания. Для этого можно использовать двусторонний скотч, резинки, липучку. Приводим ссылки на наши детальки в магазине BrickOwl, однако вы можете купить их где угодно, где продаётся LEGO и совместимые наборы.
- 2 x LEGO Wedge Belt Wheel (4185 / 49750)
- 1 x LEGO EV3 Technic Ball Pivots Set 5003245
- 1 x LEGO Technic Cross Block Beam 3 with Four Pins (48989 / 65489)
- 1 x LEGO Technic Brick 1 x 6 with Holes (3894)
- 2 x LEGO Axle 4 with End Stop (87083)
- 4 x LEGO Half Bushing (32123 / 42136)
- 4 x LEGO Brick 2 x 2 Round (3941 / 6143)
- 1 x LEGO Plate 6 x 12 (3028)
Шаг 1: строим шасси из LEGO
Мы начали с пластинки LEGO 6×12, это был минимальный размер, который нас устроил. Можно использовать более крупную, однако мельче уже будет сложнее.
Ширина робота определялась имеющимся у нас в наличии внешним источником питания, поскольку нам была нужна возможность вставлять его на место. Для аккумулятора большего размера потребуется робот большего размера.
Шасси должно быть достаточно высоким, чтобы на нём разместилась и батарея, и плата сверху.
Шаг 2: добавляем колёса
Каждый сервомотор нужно разместить снизу шасси. В итоге нам понадобились следующие комплектующие:
- Ось 4 LEGO со стопором (87083)
- Втулка LEGO (32123 / 42136)
- Круглый кирпичик LEGO 2 x 2 (3941 / 6143)
Для закрепления двух моторов нужно по 4 штуки каждой из комплектующих. После их закрепления добавляем колесо: LEGO Wedge Belt Wheel (4185 / 49750).
Как и с другими модельками LEGO, вариантов тут масса! У нас получилось с теми комплектующими, что мы перечислили, а вы можете попробовать что-нибудь другое.
Шаг 3: добавляем ролик
Наш ролик позволяет роботу кататься по плоскости на двух моторизованных колёсах, играя роль третьего колеса – так роботу легче поворачивать и двигаться.
Для его закрепления потребовались следующие детали:
- LEGO EV3 Technic Ball Pivots Set 5003245
- LEGO Technic Cross Block Beam 3 with Four Pins (48989 / 65489)
- LEGO Technic Brick 1 x 6 with Holes (3894)
В предыдущей версии мы использовали просто круглые детали LEGO в качестве «ноги», и на гладкой поверхности это работало нормально. Но не работало на ковре или не гладком полу. Если у вас нет ролика, рассмотрите вариант с такой «ногой».
Шаг 4: добавляем датчик расстояния
Ультразвуковой датчик расстояния нужно закрепить на передней части робота, чтобы он «видел», куда едет, и понимал, когда нужно остановиться, чтобы не столкнуться с препятствием.
Для датчика мы распечатали совместимый с LEGO корпус на 3D-принтере. Модель выложена на сайте Thingiverse: www.thingiverse.com/thing:3171004
Если 3D-принтера у вас нет, придумайте, как удержать датчик при помощи деталек LEGO, клейкой ленты, резинок, хомутов и т.п. Важно, чтобы он смотрел прямо – туда, куда едет робот, когда движется вперёд.
Шаг 5: добавляем плату
Плата – мозг всей операции. Она размещается наверху кубиков LEGO, поэтому её крепить легко.
Обычно плата Robotics Board используется совместно с проводящей плёнкой, позволяющей мастерить электрические цепи прямо поверх LEGO, но поскольку у нас тут всего лишь два мотора и датчик расстояния, их можно подключить напрямую к штырькам на плате.
Плату размещаем так, чтобы USB-кабель питания было легко воткнуть. Нам повезло найти в коробке с кабелями очень короткий USB-кабель.
Теперь можно подключать датчик и моторы!
По датчику: разъём echo нужно подключить к контакту 3 на плате, разъём trigger – к контакту 5, VCC – к 5 В, Gnd – к GND. Таким образом датчик будет получать питание и общаться с платой.
Затем нужно подключить каждый из моторов. Это сделать легко – коричневые провода на GND, красные – на 5 В, оранжевые – к контакту D6 для левого мотора и D9 для правого.
Шаг 6: программируем Robotics Board
Перед тем, как робот сможет работать, нужно загрузить код в микроконтроллер. Перед этим убедитесь, что у вас на компьютере установлена последняя версия Arduino IDE.
Свой код мы выложили в репозиторий на GitHub:
github.com/BrownDogGadgets/CrazyCircuits/tree/master/Projects/Avoidance%20Robot
Код простой, в нём много комментариев, чтобы было понятно, что за что отвечает.
Вам также потребуется библиотека NewPing
bitbucket.org/teckel12/arduino-new-ping/wiki/Home
Шаг 7: пускаем робота погулять
Построив робота и загрузив в него код, можно переходить к испытаниям!
Проще всего подключить внешний источник питания и дать роботу возможность ехать вперёд. Если выставить перед ним руку, он должен отодвинуться назад, повернуться и снова поехать вперёд (смотрите, чтобы он не съехал со стола!)
Мы построили простую шестиугольную «арену» из картона, чтобы роботу было где поездить. Не бойтесь экспериментировать с тем, что есть у вас.
Шаг 8: дальнейшее развитие
Если вам интересно развивать этот проект, вот вам вопросы:
— что вы узнали, собирая робота?
— что повлияло на ваш выбор деталей?
— поедет ли робот быстрее, если увеличить ему колёса?
В коде есть две переменных, исправив которые, вы измените время отката робота назад при обнаружении препятствия, и время, которое он будет поворачиваться. Попробуйте поменять goBackwardTime и turnRightTime и посмотреть, как это повлияет на поведение робота.
// сколько миллисекунд робот отъезжает назад
int goBackwardTime = 1000;
// сколько миллисекунд робот поворачивается
int turnRightTime = 1000;
===========
Источник:
habr.com
===========
===========
Автор оригинала: BrownDogGadgets
===========Похожие новости:
- [DIY или Сделай сам, Компьютерное железо] FPV Квадрокоптер: Фильтрация в Betaflight
- [C#, DIY или Сделай сам, Разработка под Arduino] Использование контроллера Arduino для прерываний
- [Разработка робототехники, Робототехника, Управление продуктом] Разработка hardware-продуктов — что и как устроено
- [Искусственный интеллект, Разработка под AR и VR, Разработка робототехники, Робототехника] Модель МТИ помогает роботам осознавать окружение подобно людям
- [DIY или Сделай сам, Open source, Разработка на Raspberry Pi, Электроника для начинающих] babooshka tv, как самодельный видео-показатор сместил «точку сборки» моих пожилых родителей
- [DIY или Сделай сам, Искусственный интеллект, Софт] Ставим и тестим RTX Voice на видеокартах Nvidia GTX серии
- [Разработка робототехники, Робототехника] МТИ представил робозахват, который может распутывать тонкие кабели
- [Машинное обучение, Разработка под Arduino, DIY или Сделай сам, Транспорт] Умная перчатка для велосипедистов (перевод)
- [DIY или Сделай сам, Энергия и элементы питания] Руководство по перезаряжаемым литиевым аккумуляторам для начинающих (перевод)
- [DIY или Сделай сам, Будущее здесь] Луддитам — бой! Расчехляем боевые уравнения Фарадея и Максвелла
Теги для поиска: #_razrabotka_pod_arduino (Разработка под Arduino), #_robototehnika (Робототехника), #_diy_ili_sdelaj_sam (DIY или Сделай сам), #_lego, #_arduino, #_razrabotka_pod_arduino (
Разработка под Arduino
), #_robototehnika (
Робототехника
), #_diy_ili_sdelaj_sam (
DIY или Сделай сам
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 20:06
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Извините, данный ресурс не поддреживается. :(
Мы обожаем LEGO и Crazy Circuits [LEGO-совместимая электроника / прим. перев.], поэтому решили скомбинировать их в простого и интересного робота, умеющего обходить препятствия. Мы покажем, как собрать такого робота и подробно опишем этот процесс. Ваша версия робота может не полностью совпадать с нашей. Приводим список необходимой электроники и деталек LEGO. Не бойтесь экспериментировать с ними. Комплектующие Электроника
Для нашего проекта мы подобрали небольшой внешний источник питания, уютно вписывающийся в нашего робота. Вам, возможно, придётся сконструировать свой вариант для своего внешнего источника питания, или для комплекта батареек. LEGO Мы использовали различные детальки, а вам рекомендуем сделать так, как вы считаете нужным, и из того, что есть у вас на руках. Важно, чтобы у вас был способ приделать сервомоторы снизу, ультразвуковой датчик – так, чтобы он смотрел вперёд, и каким-то образом закрепить плату и источник питания. Для этого можно использовать двусторонний скотч, резинки, липучку. Приводим ссылки на наши детальки в магазине BrickOwl, однако вы можете купить их где угодно, где продаётся LEGO и совместимые наборы.
Шаг 1: строим шасси из LEGO Мы начали с пластинки LEGO 6×12, это был минимальный размер, который нас устроил. Можно использовать более крупную, однако мельче уже будет сложнее. Ширина робота определялась имеющимся у нас в наличии внешним источником питания, поскольку нам была нужна возможность вставлять его на место. Для аккумулятора большего размера потребуется робот большего размера. Шасси должно быть достаточно высоким, чтобы на нём разместилась и батарея, и плата сверху. Шаг 2: добавляем колёса Каждый сервомотор нужно разместить снизу шасси. В итоге нам понадобились следующие комплектующие:
Для закрепления двух моторов нужно по 4 штуки каждой из комплектующих. После их закрепления добавляем колесо: LEGO Wedge Belt Wheel (4185 / 49750). Как и с другими модельками LEGO, вариантов тут масса! У нас получилось с теми комплектующими, что мы перечислили, а вы можете попробовать что-нибудь другое. Шаг 3: добавляем ролик Наш ролик позволяет роботу кататься по плоскости на двух моторизованных колёсах, играя роль третьего колеса – так роботу легче поворачивать и двигаться. Для его закрепления потребовались следующие детали:
В предыдущей версии мы использовали просто круглые детали LEGO в качестве «ноги», и на гладкой поверхности это работало нормально. Но не работало на ковре или не гладком полу. Если у вас нет ролика, рассмотрите вариант с такой «ногой». Шаг 4: добавляем датчик расстояния Ультразвуковой датчик расстояния нужно закрепить на передней части робота, чтобы он «видел», куда едет, и понимал, когда нужно остановиться, чтобы не столкнуться с препятствием. Для датчика мы распечатали совместимый с LEGO корпус на 3D-принтере. Модель выложена на сайте Thingiverse: www.thingiverse.com/thing:3171004 Если 3D-принтера у вас нет, придумайте, как удержать датчик при помощи деталек LEGO, клейкой ленты, резинок, хомутов и т.п. Важно, чтобы он смотрел прямо – туда, куда едет робот, когда движется вперёд. Шаг 5: добавляем плату Плата – мозг всей операции. Она размещается наверху кубиков LEGO, поэтому её крепить легко. Обычно плата Robotics Board используется совместно с проводящей плёнкой, позволяющей мастерить электрические цепи прямо поверх LEGO, но поскольку у нас тут всего лишь два мотора и датчик расстояния, их можно подключить напрямую к штырькам на плате. Плату размещаем так, чтобы USB-кабель питания было легко воткнуть. Нам повезло найти в коробке с кабелями очень короткий USB-кабель. Теперь можно подключать датчик и моторы! По датчику: разъём echo нужно подключить к контакту 3 на плате, разъём trigger – к контакту 5, VCC – к 5 В, Gnd – к GND. Таким образом датчик будет получать питание и общаться с платой. Затем нужно подключить каждый из моторов. Это сделать легко – коричневые провода на GND, красные – на 5 В, оранжевые – к контакту D6 для левого мотора и D9 для правого. Шаг 6: программируем Robotics Board Перед тем, как робот сможет работать, нужно загрузить код в микроконтроллер. Перед этим убедитесь, что у вас на компьютере установлена последняя версия Arduino IDE. Свой код мы выложили в репозиторий на GitHub: github.com/BrownDogGadgets/CrazyCircuits/tree/master/Projects/Avoidance%20Robot Код простой, в нём много комментариев, чтобы было понятно, что за что отвечает. Вам также потребуется библиотека NewPing bitbucket.org/teckel12/arduino-new-ping/wiki/Home Шаг 7: пускаем робота погулять Построив робота и загрузив в него код, можно переходить к испытаниям! Проще всего подключить внешний источник питания и дать роботу возможность ехать вперёд. Если выставить перед ним руку, он должен отодвинуться назад, повернуться и снова поехать вперёд (смотрите, чтобы он не съехал со стола!) Мы построили простую шестиугольную «арену» из картона, чтобы роботу было где поездить. Не бойтесь экспериментировать с тем, что есть у вас. Шаг 8: дальнейшее развитие Если вам интересно развивать этот проект, вот вам вопросы: — что вы узнали, собирая робота? — что повлияло на ваш выбор деталей? — поедет ли робот быстрее, если увеличить ему колёса? В коде есть две переменных, исправив которые, вы измените время отката робота назад при обнаружении препятствия, и время, которое он будет поворачиваться. Попробуйте поменять goBackwardTime и turnRightTime и посмотреть, как это повлияет на поведение робота. // сколько миллисекунд робот отъезжает назад
int goBackwardTime = 1000; // сколько миллисекунд робот поворачивается int turnRightTime = 1000; =========== Источник: habr.com =========== =========== Автор оригинала: BrownDogGadgets ===========Похожие новости:
Разработка под Arduino ), #_robototehnika ( Робототехника ), #_diy_ili_sdelaj_sam ( DIY или Сделай сам ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 20:06
Часовой пояс: UTC + 5