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

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

Пульт управления подключается к ПК через 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:

Подробное видео с комментариями автора и захватом объекта: