Оглавление:

ICBob - двуногий робот в стиле Боба: 10 шагов (с изображениями)
ICBob - двуногий робот в стиле Боба: 10 шагов (с изображениями)

Видео: ICBob - двуногий робот в стиле Боба: 10 шагов (с изображениями)

Видео: ICBob - двуногий робот в стиле Боба: 10 шагов (с изображениями)
Видео: icbob all 2024, Июль
Anonim
Image
Image
ICBob - двуногий робот, вдохновленный Бобом
ICBob - двуногий робот, вдохновленный Бобом

Мы - Клуб воображения подростков из публичной библиотеки Бриджвилля, Делавэр. Мы делаем крутые проекты, изучая электронику, компьютерное кодирование, 3D-дизайн и 3D-печать.

Этот проект является нашей адаптацией BoB the BiPed, робота на базе Arduino. Мы переработали корпус, чтобы использовать преимущества нашего любимого источника питания Arduino - power bank для телефона Powerbot. Этот недорогой перезаряжаемый источник питания на 5 В отлично подходит для наших проектов Arduino и заряжается от любого настенного зарядного устройства USB. Мы также адаптировали трехпалые ноги от двуногого робота Arduped просто потому, что они выглядят УДИВИТЕЛЬНО. Мы покажем вам, где взять необходимые детали, как собрать робота, и даже дадим вам простой код Arduino, чтобы заставить его двигаться. Мы прекрасно провели время, создавая наши одиннадцать роботов ICBob. Продолжайте читать, если хотите узнать, как сделать его для себя.

Шаг 1. Детали и инструменты, которые вам понадобятся

Детали и инструменты, которые вам понадобятся
Детали и инструменты, которые вам понадобятся
Детали и инструменты, которые вам понадобятся
Детали и инструменты, которые вам понадобятся

ICBob разработан для следующего набора деталей. Хотя замены возможны, вам может потребоваться изменить тело, чтобы они работали. Наш любимый поставщик - Yourduino.com, но для некоторых товаров вам нужно будет перейти на Amazon или Ebay.

Обновление доступности продукта - Yourduino больше не имеет Micro Magician и сообщает, что Dagu прекращает их выпуск. На веб-сайте Dagu они все еще доступны https://www.dagurobot.com/goods.php?id=137, и если они недоступны, контроллер S4A EDU является незаменимым и работает от 5 вольт.

Запчасти

  • 1x- контроллер MICRO Magician
  • 4 сервопривода SG 90
  • 1x- HC-SR04 Ультразвуковой датчик
  • 1x- Powerbot power bank 2600mAh (Powerbot 3000mAh больше в диаметре и не подойдет)
  • 1x- женский MICRO USB для DIP 5-контактной платы
  • 1x- 20см 40-контактный плоский кабель с внутренней резьбой
  • 1x- 10к резистор
  • 4x- 2-56 x 3/8 саморезов (альтернативный горячий клей)

3D-распечатки - файлы stl доступны на Thingiverse thing: 1313344

  • 1x- корпус
  • 1x- оболочка
  • 2x- колено
  • 1x- левая ступня
  • 1x- правая ступня

Инструменты

  • компьютер с Arduino IDE
  • Arduino добавляет библиотеку VarSpeedServo
  • Драйвер MICRO Magician (необходим для некоторых операционных систем)
  • 3D-принтер (или сделать детали)
  • Инструменты для очистки 3D-деталей
  • Комплект для пайки (только для контактов USB-адаптера)
  • Пистолет для горячего клея
  • Маленькая отвертка Philips
  • зарядное устройство usb

Это руководство предполагает, что у вас есть базовые знания об использовании Arduino. Если вы новичок в Arduino, вы можете узнать больше на

Для MICRO Magician выберите плату - Arduino Pro или Pro Mini (3,3 В, 8 МГц) с ATmega328.

Для использования наших эскизов вам понадобится библиотека Korman VarSpeedServo. Вы можете узнать больше о его библиотеке здесь, но используйте нашу загрузку ниже, которая совместима с новой IDE. Загрузите файл VarSpeedServo.zip ниже и распакуйте его в папку arduino / libraries.

Вам может потребоваться установить драйвер MICRO Magician CP210x, если ваша система не распознает контроллер. Этот сайт может помочь с установкой драйвера

Шаг 2: приступим к сборке - соберем ноги

Начнем строить - соберем ноги
Начнем строить - соберем ноги
Начнем строить - соберем ноги
Начнем строить - соберем ноги
Начнем строить - соберем ноги
Начнем строить - соберем ноги

Для этого шага вам понадобятся 2 колена, напечатанные на 3D-принтере, и 4 сервопакета.

Начните с очистки коленей. 2 отверстия для рупора сервопривода должны соответствовать односторонним рупорам сервопривода. Мы очистили их сверлом размером с букву L (0,290). Одно отверстие для шарнира должно соответствовать оси на опоре. Мы очистили их сверлом №2 (0,220).

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

4 сервошпинделя должны быть отцентрированы, прежде чем они будут прикреплены к коленям. Вы можете сделать это вручную, осторожно перемещая шпиндель через его вращение, чтобы найти половину пути. Лучше прикрепить сервопривод к контакту 12. Загрузите файл icbob_servo_center.zip ниже. Разархивируйте в свой каталог Arduino. Затем запустите этот скетч Arduino для каждого сервопривода.

Начните с сборки тазобедренных (верхних) сервоприводов до колен. Не перемещая шпиндель, прикрепите сервопривод бедра параллельно колену так, чтобы провода были обращены к другому рогу сервопривода (спереди). Закрепите одним маленьким винтом из комплекта сервопривода. Повторите то же самое для другого колена.

Теперь о сервоприводах голеностопного сустава. ПОМНИТЕ, что у вас будут правая и левая лодыжки, чтобы ноги были зеркальным отображением друг друга. Вам нужно будет немного раздвинуть колено, чтобы собрать сервопривод лодыжки, так что перед тем, как сжимать его, сориентируйте сервопривод, как на фотографии. Не поворачивайте шпиндель. Закрепите маленьким винтом. Повторите с другим коленом, чтобы закончить с правой и левой ногой.

Шаг 3: Строительство - Прикрепите ноги к телу

Строительство - Прикрепите ноги к телу
Строительство - Прикрепите ноги к телу
Строительство - Прикрепите ноги к телу
Строительство - Прикрепите ноги к телу
Строительство - Прикрепите ноги к телу
Строительство - Прикрепите ноги к телу

Для этого шага вам понадобятся две сборки ножек и основание, напечатанное на 3D-принтере. Вам также понадобятся (4) самореза 2-56x3 / 8 или горячий клей.

Узел ноги прикрепляется к основанию с помощью сервоприводов для бедер. Сначала проложите 2 провода сервопривода через нижнюю часть основания. Обратите внимание на правые и левые. Как показано на рисунке, проволока для лодыжки заканчивается вырезом в виде полумесяца, но вы должны вставить проволоку для лодыжки, прежде чем прикрепить сервопривод. Вы должны наклонить сервопривод так, чтобы бедренный трос (там, где он входит в сервопривод) сначала прошел через прямоугольное отверстие (вперед). Это плотно прилегает, но задняя часть должна просто войти. Теперь переверните основание и закрепите сервопривод 2 винтами или, в качестве альтернативы, подойдет горячий клей. Повторите процесс для другой ноги.

Шаг 4: Строительство - Прикрепите ножки

Строительство - Прикрепите ноги
Строительство - Прикрепите ноги
Строительство - Прикрепите ноги
Строительство - Прикрепите ноги

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

Убедитесь, что вы хорошо очистили прорези на ножках. После очистки аккуратно проверьте установку сервопривода на ножку. Убедитесь, что шарнирное отверстие в колене входит в шарнирный штифт на ступне. Лучше всего использовать тонкую отвертку между сервоприводом и ножкой, чтобы оторвать ножку, если она туго затянута. После того, как вы получите хорошую тестовую посадку, поместите шарик горячего клея размером с десять центов на лапку, затем прижмите сервопривод к лапке. Избегайте попадания клея в зону шарнира. Повторите то же самое для другой стороны, чтобы ваш бот мог стоять на собственных ногах.

Шаг 5: Подключение - сервоприводы и питание

Электропроводка - сервоприводы и питание
Электропроводка - сервоприводы и питание
Электропроводка - сервоприводы и питание
Электропроводка - сервоприводы и питание
Электропроводка - сервоприводы и питание
Электропроводка - сервоприводы и питание

На этом этапе вам понадобятся контроллер MICRO Magician, плата адаптера micro USB с контактами разъема, плоский кабель и ваш стоящий бот. На этом этапе вы будете выполнять пайку и горячее склеивание, поэтому подготовьте все необходимые инструменты.

Внешний аккумулятор Powerbot поставляется с коротким кабелем USB - micro USB. Для зарядки аккумулятора микро-USB подключается к разъему для зарядки аккумулятора, а USB подключается к настенному зарядному устройству. Вы будете повторно использовать этот кабель для питания ICBob. Выход аккумулятора осуществляется через USB, поэтому мы подключаемся через плату адаптера micro USB, чтобы обеспечить питание бота.

Сначала давайте соберем адаптер. См. Фото для дальнейших шагов. Вы будете использовать только 2 внешних контакта (gnd и V +) для питания бота. Осторожно вставьте 2 внешних штифта в головку так, чтобы короткая сторона выступала примерно на 3/16 дюйма. С помощью плоскогубцев согните 2 длинных штифта на 60 градусов или около того. Перед пайкой согните, так как платы хрупкие. Вставьте заголовок, как показано, и припаяйте все штыри сзади для прочности. Обрежьте все неиспользуемые штифты как можно короче спереди и сзади. Перед тем, как приклеить адаптер к стволу, прикрепите кабель micro USB так, чтобы у вас оставалось достаточно свободного места. Нанесите большой шарик горячего клея на заднюю часть адаптера и поместите его в положение, указанное на цилиндре. Держите, пока не затвердеет.

Затем подключите 4 серворазъема к контроллеру. Нам нравится MICRO Magician, потому что он имеет встроенные 3-контактные разъемы для удобного подключения сервопривода. Провод более темного цвета (коричневый?) Идет к краю платы. В прилагаемых эскизах Arduino используются следующие контакты.

  • Правое бедро (RH) - вывод 9
  • Правая лодыжка (RA) - контакт 10
  • Левое бедро (LH) - вывод 11
  • Левая лодыжка (LA) - контакт 12

Для подключения питания к плате снимите пару проводов с плоского кабеля. Вы будете использовать больше этого плоского кабеля для проводки сонара. Подключите один конец пары к адаптеру micro USB. Штифт, который находится ближе к передней части бота, заземлен, а другой - V +. Другой конец подключается к контроллеру рядом с переключателем. Провод V + подключается к контакту, обозначенному в документации как «Battery IN». Подключите заземляющий провод к контакту «gnd» чуть выше контакта «Battery IN».

ВАЖНЫЙ! - Прямо над контактом D1 находится перемычка «V + select». Эта перемычка должна быть на ВНУТРЕННЕМ наборе контактов, иначе сервоприводы не будут работать.

Наконец, очистите слот контроллера на основании, чтобы контроллер плотно прилегал к нему. Вы можете прикрепить аккумулятор и включить контроллер, чтобы убедиться, что он включился.

Шаг 6: Программирование - домашний калибровочный код

Несколько слов о нашем выборе программирования

Когда мы создавали прототип для этого проекта, мы использовали руководство «Как научить вашего BoB Biped перемещаться» на сайте Let's Make Robots. Программное обеспечение Bob Poser было крутым, и нам было весело с ним играть. Проблема заключалась в том, что более 600 строк кода в эскизе навигации были намного выше уровня знаний подростков. Чтобы сделать этот проект более полезным для них, мы решили почерпнуть несколько идей из кода Poser, а затем начать с пустой страницы. Подростки уже использовали библиотеку VarSpeedServo, когда изучали сервоприводы в наших лабораториях Arduino. Мы решили посмотреть, сможет ли VarSpeedServo справиться с синхронизацией и скоростью для сервоприводов, чтобы мы могли просто сосредоточиться на позициях. Полученный код отлично работает, а полный скетч walk_avoid_turn содержит менее 100 строк кода. Единственными новыми концепциями, которые нужно было изучить подросткам, были двухмерные массивы и способы доступа к этим данным с помощью кода. Наслаждаться!

Домашняя калибровка

Вы центрировали сервошпиндели при их сборке. Теперь вы увидите, насколько близко вы подошли, и точно настроите их исходное положение. Убедитесь, что у вас установлена библиотека VarSpeedServo из шага 1. Загрузите файл icbob_home_calibration.zip ниже и распакуйте его в каталог Arduino. Откройте скетч в среде Arduino IDE. Включите MICRO Magician от аккумулятора. Подключите компьютер к плате и загрузите код. Скорее всего, исходные положения сервоприводов не будут идеальными. Найдите в коде следующий раздел. Продолжайте настраивать и загружать, пока не добьетесь нужного результата.

//…………………………………………………….

// Начинаем с элемента массива размером 4 мм, установленного на 90 градусов. затем отрегулируйте // эти настройки так, чтобы колени были прямыми вперед, а ступни - плоскими int hm [4] = {90, 90, 90, 90}; // массив для удержания исходного положения для каждого сервопривода RH, RA, LH, LA // …………………………………………………….

Если какое-либо из ваших чисел меньше 50 или больше 130, вам нужно вернуться назад и разобрать ножки и подвести шпиндели ближе к центру.

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

Шаг 7: Программирование - код генератора перемещений

Программирование - код генератора перемещений
Программирование - код генератора перемещений

Теперь заставим вашего бота двигаться. Загрузите файл icbob_move_generator.zip ниже и распакуйте его в каталог Arduino. Откройте скетч в среде Arduino IDE. Найдите следующий раздел кода. Поместите домашние позиции, которые вы записали для своего бота, в эскиз.

// устанавливаем элементы массива hm в исходные позиции для вашего робота

// их можно найти с помощью скетча icbob_home_calibration const int hm [4] = {95, 95, 85, 90}; // массив для хранения исходной позиции для каждого сервопривода RH, RA, LH, LA

В следующем разделе кода вводятся последовательности ходов. Каждая линия имеет положения для 4 сервоприводов (RH, RA, LH, LA) относительно исходного положения.

// mv массив данных. Каждая линия представляет собой «рамку» или позицию, установленную для 4 сервоприводов.

// Несколько строк создают группу движений, которые можно зациклить, // чтобы создать ходьбу, поворот, танец или другие движения const int mvct = 6; // Сделайте это число равным количеству строк в массиве const int mv [mvct] [4] = {{0, -40, 0, -20}, // Эти предварительно загруженные числа должны дать ход вперед {30, -40, 30, -20}, {30, 0, 30, 0}, {0, 20, 0, 40}, {-30, 20, -30, 40}, {-30, 0, -30, 0},};

Это код, который превращает данные массива MV в замедленные движения сервопривода.

void loop () // цикл повторяется вечно

{// Выполнить последовательность перемещения for (int x = 0; x <mvct; x ++) {// циклически перебирать количество RH.slowmove (hm [0] + mv [x] [0], svsp); // строки 'кадры' в массиве RA.slowmove (hm [1] + mv [x] [1], svsp); LH.slowmove (hm [2] + mv [x] [2], svsp); LA.slowmove (hm [3] + mv [x] [3], svsp); задержка (задержка кадра); }}

Загрузите в бот. Бот вернется в исходное положение на 2 секунды, а затем начнет цикл ходьбы вперед. Лучше всего, если стол не будет слишком скользким.

Как только вам надоест смотреть, как он ходит, вы можете попробовать свои собственные движения. Используйте «Сохранить как», чтобы переименовать эскиз. Затем поиграйте с числами и посмотрите, что вы можете сделать. Держите числа от +50 до -50, иначе вы можете перегрузить сервоприводы. Помните, что если вы добавляете или вычитаете строки, вам нужно изменить значение mvct, чтобы отразить это изменение. Повеселись!

Шаг 8: Подключение - датчик сонара HC-SR04 (глаза)

Электропроводка - датчик сонара HC-SR04 (глаза)
Электропроводка - датчик сонара HC-SR04 (глаза)
Электропроводка - датчик сонара HC-SR04 (глаза)
Электропроводка - датчик сонара HC-SR04 (глаза)

Для этого шага вам понадобятся 3D-печать icbob_shell, ультразвуковой датчик HC-SR04, плоский плоский кабель и один резистор 10 кОм. На этом все части в нашем списке должны быть завершены. Ага!

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

Затем оторвите 4 жилы от плоского кабеля. Подключите 4 провода к контактам датчика HC-SR04.

MICRO Magician внутренне работает от 3,3 вольт, а контакты могут принимать только сигнал 3,3 вольт. Проблема в том, что HC-SR04 работает от 5 вольт. Он может использовать вход 3,3 В в качестве «триггерного» сигнала, но когда он посылает сигнал «эхо», он составляет 5 вольт, и при прямом подключении он повредит вход контроллера. Нам нужно поставить резистор ограничения тока 10 кОм на провод «эхо», чтобы защитить вход.

ОБНОВЛЕНИЕ: хотя у нас не было никаких проблем с только встроенным резистором 10 кОм, в комментариях было указано, что передовая практика указывает на то, что здесь следует использовать схему делителя напряжения. В дополнение к резистору 10 кОм между «эхом» и «землей» должен быть установлен резистор 15 кОм.

Отрежьте провода резистора до 0,5 дюйма. Резистор входит в «эхо» провод на вашем плоском кабеле. Мы наносим каплю суперклея на соединение, чтобы оно оставалось на месте.

В скетче используется вывод 13 для триггера и вывод 3 для эха. Используйте группу контактов 13 на контроллере для «gnd», «vcc», «trig» в таком порядке, работая от края к центру. Чтобы все получилось, вам придется пересечь здесь несколько проводов. «Эхо» провод с резистором вставляется в гнездо контакта 3.

Если вы хотите проверить датчик, прежде чем перейти к следующему шагу, вы можете использовать первый эскиз на этой странице https://arduino-info.wikispaces.com/UltraSonicDistance, чтобы проверить его. Вам понадобится подключенная батарея. Вы можете видеть показания расстояния на последовательном мониторе. Убедитесь, что вы установили для 'trigger_pin' значение 13 и 'echo_pin' на 3 в скетче.

Лучше всего установить датчик в корпусе так, чтобы штыри были направлены вверх, а провода были сложены и проложены между «проушинами» датчика и корпусом.

Шаг 9: Программирование - код Walk_Avoid_Turn

Собираем все вместе. Все детали собраны. Мы готовы загрузить полный код, надеть оболочку и посмотреть, как она работает.

Вы знаете распорядок дня. Загрузите файл icbob_walk_avoid_turn.zip ниже и распакуйте его в каталог Arduino. Откройте скетч в среде Arduino IDE. Найдите следующий раздел кода. Поместите домашние позиции, которые вы записали для своего бота, в эскиз.

// устанавливаем элементы массива hm в исходные позиции для вашего робота

// их можно найти с помощью скетча icbob_home_calibration const int hm [4] = {95, 95, 85, 90}; // массив для удержания исходного положения для каждого сервопривода RH, RA, LH, LA

Этот скетч добавляет второй массив ходов и второй набор кода медленных ходов для «поворотного» движения.

// пересылка данных массива

const int fwdmvct = 6; // Сделайте это число равным количеству строк в массиве const int fwdmv [fwdmvct] [4] = {{0, -40, 0, -20}, // идти вперед, перемещать кадры {30, -40, 30, -20}, {30, 0, 30, 0}, {0, 20, 0, 40}, {-30, 20, -30, 40}, {-30, 0, -30, 0},}; // повернуть данные массива const int trnmvct = 5; // Сделайте это число равным количеству строк в массиве const int trnmv [trnmvct] [4] = {{-40, 0, -20, 0}, // поверните перемещение кадров {-40, 30, -20, 30}, {0, 30, 0, 30}, {30, 0, 30, 0}, {0, 0, 0, 0},};

Мы добавили код обнаружения препятствий гидролокатором, а также оператор «if», «else», чтобы решить, идем ли мы прямо или поворачиваем.

Окончательная сборка и запуск

Оставьте аккумулятор отключенным и загрузите скетч. Отсоедините шнур программирования. Убедитесь, что выключатель питания на контроллере находится в нижнем положении «включено». Осторожно наденьте корпус на основание, продев шнур питания USB через верхнее отверстие. Вставил аккум. Подключите его. Ваш ICBob должен начать двигаться и поворачиваться, чтобы избегать препятствий ближе 7 дюймов.

Шаг 10: подведение итогов

Мы надеемся, что создание ICBob доставит вам столько же удовольствия, как и нам. Дайте нам знать, если у вас есть какие-либо вопросы или комментарии. Если вы его построите, дайте нам знать здесь или на Thingiverse.

Рекомендуемые: