Сразу скажу это НЕ точная копия реального марсохода ни с точки зрения внешнего видно, ни (тем более) функционала.
В основном, я занимаюсь электроникой и программирванием, поэтому в моей модели меня интересовали в первую очередь именно эти две части работы. Тем не менее, я уделил много внимания и внешнему виду.
Я всегда хотел сделать ровер для езды по дому с управляемой камерой и манипулятором. Решение сделать его похожим на реальный марсоход с этими функциям было само собой разумеещимся. Я начал работу над ним еще три года назад, но только недавно у меня появился 3D-принтер и я смог довести работу до конца.
Вот так он выглядит сейчас:
В основном, я занимаюсь электроникой и программирванием, поэтому в моей модели меня интересовали в первую очередь именно эти две части работы. Тем не менее, я уделил много внимания и внешнему виду.
Я всегда хотел сделать ровер для езды по дому с управляемой камерой и манипулятором. Решение сделать его похожим на реальный марсоход с этими функциям было само собой разумеещимся. Я начал работу над ним еще три года назад, но только недавно у меня появился 3D-принтер и я смог довести работу до конца.
Вот так он выглядит сейчас:

Основным мотивом для меня было самообучение. Неожиданным, побочным и очень приятным эффектом была популяризация миссии Curiosity и 3D-печати. К своему удивлению, я обнаружил, что многие вокруг меня вообще ничего не слышали ни о марсоходе, ни о том, что 3D-печать уже достаточно доступная технология.
Если вы впервые слышите о марсианской научной лаборатории или мало о ней знаете, то вам будет очень интересно почитать даже статью на Википедии.
Аппаратное обеспечение
Начну с того, что было для меня наиболее интересно - с электроники. Можно было бы сказать, что он сделан на Arduino, но я с этим не согласен. Чуть позже объясню, почему я так считаю.
Для постройки модели я использовал следующие готовые части:
Ниже я нарисовал условную структурную схему электроники всей системы. Красным цветом я обозначил линии питания, а синим линии передачи данных.

Пульт управления подключается к ПК через USB. Компьютер, в свою очередь, подключен к LinkIt One через Bluetooth и транслирует команды оператора. LinkIt One пересчитывает эти команды в сигналы управления двигателями и светодиодами, которыми она управляет самостоятельно через драйверы и транзисторы.
К сожалению, сама по себе LinkIt One может управлять только двумя сервоприводами. Поэтому к LinkIt One через UART подключена плата на микроконтроллере Atmega8. Она принимает требуемые углы и формирует точные сигналы для управления пятью сервоприводами.
Роутер в этой схеме стоит практически отдельно. На него подается только питание и он начинает передавать картинку с камеры.
Вся электроника, кроме роутера с камерой, спрятана внутри "тела" модели марсохода. Может показаться, что там небольшой беспорядок, но на самом деле, если собрать все провода в жгуты (а к этому все готово), то станет гораздо аккуратней. Просто пока я не тороплюсь полностью завершать работы над моделью.

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

Кузов марсохода
За эти три года я успел два раза его переделать. Изначально он был сделан из стеклотекстолита, но механика в нем была продумана очень плохо. Затем я сделал его из оргстекла. Он даже работал, но я ни кому его не стал показывать, так как выглядел он просто ужасно.
Переломным моментом в работе над проектом стало приобретение радиотехническим колледжем, в котором я немного преподаю, 3D-принтера PrintBox One. В итоге, большинство деталей для него напечатано на 3D-принтере. Кузов сделан из оргстекла, а крышка "головы" из стеклотекстолита.



Все файлы проекта для 3D-печати и резки оргстекла, выложены на thingiverse.com.Там довольно много полезных кусочков, которые можно применить и в других проектах.
Получилось, на мой взгляд достаточно неплохо. Он сильно диспропорционален, но это даже добавляет ему какого-то шарма. Жена вообще говорит, что он похож на Валли.

Все механические узлы работают через подшипники, поэтому сервоприводы даже не напрягаются, чтобы держать детали головы и манипулятора. Подвеска не повторяет даже отдаленно функций оригинала, но при этом работает и позволяет роверу преодолевать небольшие препятствия. Пластиковые колеса не очень эффективны на ламинате, но, я думаю, на земле или песке было бы вообще отлично.
Программное обеспечение
Вот тут речь пойдет о том, почему я не считаю, что это Arduino. Всего для модели марсохода используется четыре программы.
Первая, написанная на C, исполняется на пульте. О ее функциях я уже писал выше.
Вторая программа для ПК. Она написана на Python. Изначально планировалось, что компьютер будет принимать команды, пересчитывать их и отправлять роверу в обработанном виде. В итоге всеми расчетами занимается LinkIt One, а скрипт на Python'е только перанаправляет байты, принятые от пульта Bluetooth-устройству.
LinkIt One программируется на C++. Она принимает пакеты с ПК (которые доходят ровно в том же виде, какими их формирует пульт), сама управляет двигателями и подсветкой, а также пересчитывает углы сервоприводов и отправляет их в контроллер сервоприводов. Команды для двигателей прогоняются через пропорциональный регулятор, чтобы обеспечить плавность управления и исключить возможность резкого изменения направления вращения двигателей.
Четвертая программа, написанная на С, управляет сервоприводами. Она принимает команды из UART и формирует управляющие импульсы для сервоприводов.
Все это программное обеспечение позволяет управлять им плавно без рывков. Немного потренировавшись, я уверенно собираю предметы с пола. Он специально сделан немного "заторможенным" и инерционным. Если бы сервоприводы дергались с максимальной скоростью, выглядело бы это гораздо хуже.
Как вы могли заметить, я использую аппаратную совместимость с ардуино и их бутлоадеры, но код для проекта написан не на Processing/Wiring. Поэтому я не считаю, что это поделка на ардуино.
Исходниками тоже могу поделиться по запросу. Только там надо чистить много харкода и я планирую дорабатывать математику манипулятора.
Передача видео
На роутер установлена прошивка OpenWrt. При включении роутер создает точку доступа и поднимает веб-сервер со страницей, транслирующей видео.
На моей прошивке самое оптимальное качество получается при частоте следования кадров 5 раз в секунду в формате QCIF (176х144). Это довольно мало, но для езды по квартире достаточно. Можно, кончено, повысить частоту или разрешение, но тогда начинают проскакивать битые кадры.
Вот как выглядит в оригинальном разрешении картинка с головы:

Видео работы
Самое первое, на котором модель работает не полностью:
Видео для thingiverse.com:
Подробное видео с комментариями автора и захватом объекта:
Если вы впервые слышите о марсианской научной лаборатории или мало о ней знаете, то вам будет очень интересно почитать даже статью на Википедии.
Аппаратное обеспечение
Начну с того, что было для меня наиболее интересно - с электроники. Можно было бы сказать, что он сделан на Arduino, но я с этим не согласен. Чуть позже объясню, почему я так считаю.
Для постройки модели я использовал следующие готовые части:
- Плата LinkIt One, как основной мозг ровера (79$)
- Две платы на микроконтроллере Atmega8 - EduBoard которые я использую для обучения программирования микроконтроллеров. В модели одна из них использована для пульта, а вторая для управления сервоприводами (21$)
- Четыре сервопривода Hitec HS-485HB Deluxe Сервомашинка 4.8кг/45г/0.22сек (58$)
- Один сервопривод MG-90S с металлическим редуктором (4,5$)
- Шесть редукторных двигателей постоянного тока, 77 об/мин (48$)
- WiFi-роутер TP-LINK TL-MR3020 (26,7$)
- WEB-камера Logitec C210 (больше не производят) (около 20$)
- Три стабилизатора напряжения 5В, 3А (17,2$)
- Два LiPo-аккумулятора Батарея Turnigy 3000mAh 3S 20C Lipo Pack (26,4$)
- Два самодельных драйвера двигателей (около 7$)
Ниже я нарисовал условную структурную схему электроники всей системы. Красным цветом я обозначил линии питания, а синим линии передачи данных.

Пульт управления подключается к ПК через USB. Компьютер, в свою очередь, подключен к LinkIt One через Bluetooth и транслирует команды оператора. LinkIt One пересчитывает эти команды в сигналы управления двигателями и светодиодами, которыми она управляет самостоятельно через драйверы и транзисторы.
К сожалению, сама по себе LinkIt One может управлять только двумя сервоприводами. Поэтому к LinkIt One через UART подключена плата на микроконтроллере Atmega8. Она принимает требуемые углы и формирует точные сигналы для управления пятью сервоприводами.
Роутер в этой схеме стоит практически отдельно. На него подается только питание и он начинает передавать картинку с камеры.
Вся электроника, кроме роутера с камерой, спрятана внутри "тела" модели марсохода. Может показаться, что там небольшой беспорядок, но на самом деле, если собрать все провода в жгуты (а к этому все готово), то станет гораздо аккуратней. Просто пока я не тороплюсь полностью завершать работы над моделью.

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

Кузов марсохода
За эти три года я успел два раза его переделать. Изначально он был сделан из стеклотекстолита, но механика в нем была продумана очень плохо. Затем я сделал его из оргстекла. Он даже работал, но я ни кому его не стал показывать, так как выглядел он просто ужасно.
Переломным моментом в работе над проектом стало приобретение радиотехническим колледжем, в котором я немного преподаю, 3D-принтера PrintBox One. В итоге, большинство деталей для него напечатано на 3D-принтере. Кузов сделан из оргстекла, а крышка "головы" из стеклотекстолита.



Все файлы проекта для 3D-печати и резки оргстекла, выложены на thingiverse.com.Там довольно много полезных кусочков, которые можно применить и в других проектах.
Получилось, на мой взгляд достаточно неплохо. Он сильно диспропорционален, но это даже добавляет ему какого-то шарма. Жена вообще говорит, что он похож на Валли.

Все механические узлы работают через подшипники, поэтому сервоприводы даже не напрягаются, чтобы держать детали головы и манипулятора. Подвеска не повторяет даже отдаленно функций оригинала, но при этом работает и позволяет роверу преодолевать небольшие препятствия. Пластиковые колеса не очень эффективны на ламинате, но, я думаю, на земле или песке было бы вообще отлично.
Программное обеспечение
Вот тут речь пойдет о том, почему я не считаю, что это Arduino. Всего для модели марсохода используется четыре программы.
Первая, написанная на C, исполняется на пульте. О ее функциях я уже писал выше.
Вторая программа для ПК. Она написана на Python. Изначально планировалось, что компьютер будет принимать команды, пересчитывать их и отправлять роверу в обработанном виде. В итоге всеми расчетами занимается LinkIt One, а скрипт на Python'е только перанаправляет байты, принятые от пульта Bluetooth-устройству.
LinkIt One программируется на C++. Она принимает пакеты с ПК (которые доходят ровно в том же виде, какими их формирует пульт), сама управляет двигателями и подсветкой, а также пересчитывает углы сервоприводов и отправляет их в контроллер сервоприводов. Команды для двигателей прогоняются через пропорциональный регулятор, чтобы обеспечить плавность управления и исключить возможность резкого изменения направления вращения двигателей.
Четвертая программа, написанная на С, управляет сервоприводами. Она принимает команды из UART и формирует управляющие импульсы для сервоприводов.
Все это программное обеспечение позволяет управлять им плавно без рывков. Немного потренировавшись, я уверенно собираю предметы с пола. Он специально сделан немного "заторможенным" и инерционным. Если бы сервоприводы дергались с максимальной скоростью, выглядело бы это гораздо хуже.
Как вы могли заметить, я использую аппаратную совместимость с ардуино и их бутлоадеры, но код для проекта написан не на Processing/Wiring. Поэтому я не считаю, что это поделка на ардуино.
Исходниками тоже могу поделиться по запросу. Только там надо чистить много харкода и я планирую дорабатывать математику манипулятора.
Передача видео
На роутер установлена прошивка OpenWrt. При включении роутер создает точку доступа и поднимает веб-сервер со страницей, транслирующей видео.
На моей прошивке самое оптимальное качество получается при частоте следования кадров 5 раз в секунду в формате QCIF (176х144). Это довольно мало, но для езды по квартире достаточно. Можно, кончено, повысить частоту или разрешение, но тогда начинают проскакивать битые кадры.
Вот как выглядит в оригинальном разрешении картинка с головы:

Видео работы
Самое первое, на котором модель работает не полностью:
Видео для thingiverse.com:
Подробное видео с комментариями автора и захватом объекта:
Она действительно не очень сложная с инженерной точки зрения. Просто очень много аккуратной кропотливой работы. Я действительно старался сделать лучшее, на что способен электронщик. На этом ресурсе куча ребят, которые гораздо круче умеют делать корпуса и т.д. Зато у меня электроника и софт самодельные и без ардуины.
Как само изделие, так и его описание - на самом высоком уровне.
Вопрос, а на сколько прочны напечатанные детали?
Если можно, в сравнении с чем нибудь, чтоб представить...
Спасибо.
Из-за слоистой структуры лучше готовить модели для печати так, чтобы наименьшее измерение модели совпадало с осью Z. Другими словами, если колонну напечатать стоя, то ее очень легко будет сломать пополам. Если напечатать лежа - то сломать почти невозможно.
Осталось научить его делать селфи и будет как настоящий.
Настоящий куриосити шлет данные на Землю со скоростью 32 кбит/с . Представляю, как сложно им управлять с Земли, с учетом такой скорости передачи данных.
А еще он сам на Землю ничего не шлет, хотя может. Он передает все данные через мрсианский спутник.
Меня самого больше всего впечатляет процесс посадки и его надежность. За три года можно по пальцам пересчитать неисправности и все они практически не влияют на ход миссии. Вот только с результатами замеров ошибки вышли)
Хотя вы, наверное, все это знаете.
Тем более эти аппараты собирают годами, медленно, не торопясь, по 30 раз все проверяя и снова проверяя. Это что касается технической части.
А вот программная часть уже интереснее. Обычное офисное программирование пишется абы как, говнокод слой за слоем превращаясь в непонятную кучу непонятно чего.
В данном же случае наверняка идет жесточайший контроль качества, как они вообще пишут код так чтобы он был абсолютно безглючным - вот что интересно!
Так что не только любители а уже и практически владельцы :)
Там цена 275, но тут же можно нажать кнопку и получить бесплатный купон на 5 баксов у этого продавца.
Отзывов полно положительных, много из России и Турции, многие пишут что как получили, собрали и все стало печатать даже без калибровки и настроек. В общем жду не дождусь :)
ЗЫ. Эргономика управления - интересная, не очень может быть удобная.
По эргономике да, есть нарекания. Просто сложно представить себе как это будет, пока не попробуешь. Мне уже предлагали хоршую идею просто выполнять различные действия по кнопкам. Хотя даже неопытный человек уверенно садится и едет по камере. Даже схватить что-нибудь может.