Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

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

Смотрите видео или читайте текст ниже.

Обзор

Основные фишки: рокер-богги подвеска — плавная езда по неровностям и преодоление препятствий до 2х диаметров колеса с постоянным контактом всех 6 колес с грунтом. Каждое колесо — свой двигатель постоянного тока.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Четыре угловых колеса — с рулевыми сервоприводами. Для эффективного рулевого управления без проскальзывания шин реализую геометрию Акермана: рассчитываю угол и скорость каждого колеса в зависимости от радиуса поворота.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

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

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Управление — дешевый RC-аппарат. На марсоходе — RC-приемник, передает команды на Arduino. Мозг — Arduino MEGA, для удобства подключения сделал кастомную PCB в формате щита для MEGA.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Есть FPV-камера в блоке камер: поворот — шаговый двигатель, наклон — серва. Видео в реальном времени на смартфон.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Многие детали — декоративные, для внешнего сходства. Манипулятора нет, но планирую добавить в следующих видео.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Теперь по порядку: проектирование, электроника, программирование Arduino.

3D-модель DIY марсохода

Проектировал в 3DEXPERIENCE Solidworks — спонсор видео.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

3DEXPERIENCE Solidworks — Solidworks с облачными возможностями через платформу 3DEXPERIENCE. Данные и модели доступны команде из любой точки мира. Платформа включает приложения для продуктивности и управления данными.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Project Planning — задачи, дедлайны, прогресс. 3D Markup — просмотр, аннотации на любом устройстве. Облачный моделировщик SOLIDWORKS xDesign работает в браузере — моделирование где угодно.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

С второй половины года выйдет версия для мейкеров за $99/год. Спасибо Solidworks за поддержку образования.

Попробовать 3DEXPERIENCE бесплатно: www.solidworks.com/HTMTryNow
Узнать больше: www.solidworks.com/HTMLearnMore
3DEXPERIENCE SOLIDWORKS for Makers: www.solidworks.com/htm

Возвращаемся к модели. Цель — максимальное сходство с настоящим Perseverance. На сайте NASA есть 3D-модель, скачал, открыл в Blender.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Сделал снимки спереди, сверху, сбоку, импортировал в Solidworks. Масштабировал под диаметр колеса 130 мм. Снял ключевые размеры: ширина, длина, высота, колея, параметры подвески.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

По этим размерам и выбранным моторам/сервам спроектировал детали для 3D-печати и сборки, сохраняя внешний вид.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Рокер-богги — круглые алюминиевые профили 20 мм, рама — Т-образные профили 20×20 мм.

Модель на Thangs:

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

STL для печати:

3D-печать деталей марсохода

Печатал на Creality CR-10 и CR-10 V3. Для гибких колес нужен прямая подача (как в V3).

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Оба принтера — качество за адекватные деньги. Ссылки:

См. также: Лучшие бюджетные осциллографы для новичков и мейкеров — 2021

Важно: в слайсере включать Horizontal Expansion = –0.1 мм. Компенсирует расширение пластика.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Без этого отверстие 20 мм получится ~19.8 мм — не соберетесь.

Все напечатанные детали:

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Много печати, но так получается уникальный вид. Можно сократить время вдвое, печатая только функциональные части.

Список деталей для DIY марсохода

Нужны также болты M4, M5, M6 разной длины — полный список ниже. Болты/гайки можно купить в строительном магазине.

Сборка марсохода

Подготовка профилей. Ручной металлопилой режу под размер.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Нужно 10 Т-профилей для рамы и 8 круглых для подвески с такими размерами:

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Рама из Т-профилей на угловых соединителях и болтах/гайках. Готовы верх и низ — вставляю 3D-детали рокерных шарниров по бокам, передние/задние кронштейны — на болты M3 и Т-гайки.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Рокерные шарниры — болты/гайки M5. Расстояние от переднего профиля до рокерного шарнира — 134 мм.

Сборка подвески рокер-богги

Устанавливаю основные подшипники. Вал рокерного шарнира крепится к раме болтом M8.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

В валу слот под гайку M8 для закрепления. Отверстие вала 7.5 мм — плотное соединение, болт воспринимает часть нагрузки. Это самый нагруженный узел — весь вес марсохода на рокерном валу. Ориентация печати критична для прочности.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Сначала печатал вал «легко» — без поддержек, но слой разделился под нагрузкой.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Печать «на ребро» — нагрузка на контуры стенок — деталь выдерживает.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Собираю подвеску с рулевыми узлами и моторными креплениями, потом надеваю на рокерные валы.

Отверстия под круглые профили — с перехлестом, иногда надо наждачкой/наждачной бумагой подгонять.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Точные отверстия в профилях: отмечаю линию на профиле, вставляю в 3D-деталь, через отверстие детали отмечаю центры сверления по бокам.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство
Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

С другой стороны то же самое. Сверлю 2.5 мм, режу резьбу M3 самим болтом — алюминий мягче.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство
Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Метод важен — в итоге все детали стоят точно относительно друг друга.

Богги-шарнир — два подшипника и болт M8.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Рулевые узлы — две детали, сбитые болтами. Соединение сервокрепления и моторокрепления — два подшипника и болт M6.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Головка болта — под рог сервы через 3D-переходник и болты M3.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

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

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Фиксирую гайкой M6. Позже понял: нужна вторая гайка M6 снизу, затянутая к первой — иначе момент от сервы откручивает узел.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

То же для других угловых узлов. Проверка: поставить на ровную поверхность — все три моторокрепления должны лежать в одной плоскости.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Другая сторона зеркально (детали зеркальные, не идентичные).

Надеваю подсборки на рокерные валы рамы. Сначала вставляю латунные втулки с резьбой в вал (паяльником).

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Четыре болта M4 фиксируют подвеску.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Рама свободно качается — не хватает дифференциала.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Дифференциал связывает два рокера и раму. При подъеме одной стороны вторая опускается — равномерный контакт колес. Рама принимает средний угол тангажа.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Детали дифференциала:

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Дифференциальная тяга — из трех частей (влезть на малый принтер). Ось в центре рамы — два подшипника и болт M8.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Связь с рокером — шарнир стержня M8 и нарезное стержневое стержень M8 длиной 50 мм. Стержень в 3D-детали с гайкой M8 с одной стороны, с другой — в шарнир.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Расстояние между 3D-линком и шарниром ~20 мм — для горизонта рамы. Линк к рокерному рычагу — два подшипника и болт M5.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Повторяю для другой стороны. Подвеска готова: одна сторона вверх — вторая вниз.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Все колеса в контакте. Рама тангажирует на половину хода ноги.

См. также: Манипулятор Arduino и платформа на меканум-колесах — автоматика

Установка двигателей марсохода

DC-моторы 37 мм, 12V, редуктор 50 об/мин.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

50 об/мин — многовато, лучше 20 или 10 об/мин.

Валовые муфты для крепления колес:

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Втулки M3 под зажим муфты на валу, гайки M4 под колесо. Гайки клеить или использовать втулки.

Колеса: два элемента. Пневма — гибкий пластик (не обязательно), обод — обычный PLA.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Обод имеет пазы под пневма — момент передается на колесо. Капельку клея в пазы. Креплю колеса к муфтам/моторам 4 болтами M4.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Рулевые сервы: цифровые, высокий момент 25 кгсм, 4.8–6.8V. Крепление — 4 болта M3 в втулки сервокрепления.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Сборка блока камер

Поворот камеры — NEMA 17 (можно другой). Момент передается через нарезное стержень M5, соединенный с мотором 3D-муфтой, с другой стороны — подшипник и две гайки. Наклон — та же серва, что на рулях.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство
Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Многие детали блока камер — декоративные. Сборка на болты M3 и втулки.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Устанавливаю реальную FPV-камеру: кастомный держатель на корпусе блока. Доступ сверху, крышка на защелках. Итоговый вид:

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Блок камер креплю в переднем правом углу рамы.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Можно продолжить сборку декора или подключить электронику. Сначала собрал всё 3D, потом электронику.

Сборка остальных деталей марсохода

Дальше — только декор, чтобы выглядело как настоящий. Детали из 3D-модели.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Много усилий в детализацию.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Детали крупные, печать долгая.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Быстрый обзор установки.

Две верхние средние панели — на защелках, снимаются как капот — под ними электроника.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство
Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Крепление электроники — два 3D-элемента на болтах, идет на нижнюю раму.

Электроника

Замеры проводов к моторам. Паяю прямо к моторам (нет разъемов), термоусадка.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Стяжки для аккуратной проводки.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Сервы — удлинители до отсека электроники. В креплении электроники слоты для пропуска проводов к центру.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Проводка получилась чистой — за видимыми частями.

См. также: SCARA-робот | Как построить своего Arduino-робота

Схема DIY марсохода

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Компоненты:

6 DC-моторов → 6 драйверов DRV8871 (PWM, до 3.6А пик). Моторы 12V, 1А номинал, 3А пуск. Питание — 3S LiPo (~12V).

Сервы 4.8–6.8V → понижающий преобразователь 12V→6V, ~8А (сервы мощные, пуск ~2А). Камерный шаговый — A4988/DRV8825. Два резистора — делитель напряжения для мониторинга батареи.

RC-приемник от 6V (преобразователь), FPV-камера и передатчик — от 12V батареи.

Кастомная PCB

Для порядка — своя PCB в формате щита для Arduino MEGA.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

На плате: драйверы моторов, стабилизатор 3.3V, разъем NRF24L01 (на будущее), DHT22, компас, I2C, UART, шины 12V/5V/3.3V/GND. Запас под апгрейды.

Заказал на PCBWay. Загрузка гербера, свойства, разумная цена.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Менял только цвет — синий, как Arduino. Гербер можно скачать ниже или заказать через PCBWay Projects.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Скачать гербер для PCB DIY марсохода:

Через несколько дней PCB пришли. Качество отличное, всё как в проекте.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Сборка простая — всё подписано. Начинаю с нижних пин-хедеров (под Arduino MEGA), потом верхняя сторона. Везде пин-хедеры — гибкость для правок. Не паял 3.3V стабилизатор и лишние пины — пока не нужны.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Готовую PCB креплю к Arduino (2 болта) и вставляю в крепление электроники.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Подключаю моторы к драйверам, вставляю драйверы в PCB. Сервы в свои пины, шаговый драйвер — одна перемычка (1/8 шаг).

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Радио — FLYSKY, дешево и надежно.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Приемник к Arduino — сервовые удлинители (3 провода: VCC, GND, Signal). Протокол I-BUS через Serial. Для телеметрии (напряжение батареи) — второй Serial порт к Sensor I-BUS приемника.

Преобразователь — 2 болта. Батарея — две резиновые ленты (легко снимать для зарядки).

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Выключатель — на задней правой панели. Провода 20 AWG (ток до нескольких А). Дважды проверяйте соединения — ошибка = пожар.

FPV-камера на 12V, видеосигнал на передатчик (тоже 12V). Электроника готова.

Сборка реплики марсохода Perseverance на Arduino — пошаговое руководство

Задвигаю крышки. Почти готово — осталось прошить Arduino.

Программирование DIY марсохода — код Arduino

Скачать код:

Обзор кода

Библиотека IBusBM — чтение данных от RC-аппарата.

IBus.loop(); ch0 = IBus.readChannel(0); ch1 = IBus.readChannel(1); ch2 = IBus.readChannel(2); ch3 = IBus.readChannel(3); ch6 = IBus.readChannel(6);

Конвертирую в радиус поворота вправо/влево и скорость 0–100%.

// Steering right if (ch0 > 1515) { r = map(ch0, 1515, 2000, 1400, 600); } // Steering left else if (ch0 < 1485) { r = map(ch0, 1485, 1000, 1400, 600); } // Rover speed % s = map(ch2, 1000, 2000, 0, 100);

Радиус «r» → углы рулей и скорости колес (геометрия Акермана).

void calculateMotorsSpeed() { if (ch0 > 1485 && ch0 < 1515) { speed1 = speed2 = speed3 = s; } else { speed1 = s; speed2 = s * sqrt(pow(d3,2) + pow((r - d1),2)) / (r + d4); speed3 = s * (r - d4) / (r + d4); } speed1PWM = map(round(speed1), 0, 100, 0, 255); speed2PWM = map(round(speed2), 0, 100, 0, 255); speed3PWM = map(round(speed3), 0, 100, 0, 255); } void calculateServoAngle() { thetaInnerFront = round((atan((d3 / (r + d1)))) * 180 / PI); thetaInnerBack = round((atan((d2 / (r + d1)))) * 180 / PI); thetaOuterFront = round((atan((d3 / (r - d1)))) * 180 / PI); thetaOuterBack = round((atan((d2 / (r - d1)))) * 180 / PI); }

Углы серв через библиотеку ServoEasing (плавное движение).

servoW1.startEaseTo(97 - thetaOuterFront); servoW3.startEaseTo(97 + thetaOuterBack); servoW4.startEaseTo(94 - thetaInnerFront); servoW6.startEaseTo(96 + thetaInnerBack);

DC-моторы — analogWrite() (PWM на драйверы).

analogWrite(motorW1_IN1, speed2PWM); digitalWrite(motorW1_IN2, LOW);

Код не сложен — функций мало. В планах: GPS-навигация, сенсоры, манипулятор, сбор грунта.

Надеюсь, понравилось. Вопросы — в комментариях. Коллекция Arduino-проектов.

Производственный процесс

  1. Построение ровера на Windows IoT Core с Raspberry Pi 2 — Руководство от новичка к профи
  2. Детектор аудиочастот на Arduino: измеряем пик громкости с высокочувствительным модулем
  3. Крестики-нолики на Arduino с матрицей MAX7219 и картонным корпусом
  4. Сборка вольтметра на Arduino с дисплеем Nokia 5110 — Пошаговое руководство
  5. Сборка надежного таймера обратного отсчета на Arduino с 7-сегментным дисплеем SparkFun
  6. Самодельный RC Porsche на Arduino: Пошаговое руководство
  7. Построение надежного умного монитора энергии на Arduino UNO – Пошаговое руководство
  8. Создание портативного RFID-замка на Arduino — пошаговое руководство
  9. Определение цвета объектов с помощью Arduino Nano и датчика TCS3200
  10. Самодельный измеритель роста на Arduino — точно и просто