Оглавление:

Raspberry Pi Cam Tank V1.0: 8 шагов (с изображениями)
Raspberry Pi Cam Tank V1.0: 8 шагов (с изображениями)

Видео: Raspberry Pi Cam Tank V1.0: 8 шагов (с изображениями)

Видео: Raspberry Pi Cam Tank V1.0: 8 шагов (с изображениями)
Видео: Raspberry Pi - Что нужно знать? Что нужно иметь? Достаточно купить только плату? 2024, Июль
Anonim
Image
Image
Камерный бак Raspberry Pi V1.0
Камерный бак Raspberry Pi V1.0

Я люблю танки с детства. Сконструировать свой танк-игрушку всегда было моей мечтой. Но из-за отсутствия знаний и навыков. Мечта - это просто мечта.

После нескольких лет учебы в области инженерного дела и промышленного дизайна. Я приобрел навыки и знания. И благодаря более дешевым хобби 3D-принтерам. Я наконец могу сделать свой шаг.

Какие функции я хочу, чтобы у этого танка был?

  • Управляемый дистанционно
  • Подвесные холостые колеса (как у настоящего танка!)
  • Имеет вращающуюся башню и откидывающееся BB-ружье, способное стрелять 6-мм пулями.
  • Может транслировать видео на контроллер, чтобы вы могли управлять им подальше

Вначале я планировал использовать Arduino в качестве контроллера, но после некоторых исследований я обнаружил, что нет практического способа потоковой передачи видео отдельно. Однако Raspberry Pi кажется хорошим кандидатом для потокового видео. И управлять им можно через жену с телефона!

Давайте начнем.

Шаг 1: Необходимые детали

Для контроля

Raspberry Pi версии B

USB-концентратор с питанием (Belkin F4u040)

Веб-камера USB (Logitech C270)

Адаптер Wi-Fi (Edimax)

Кабель-перемычка между мужчинами и женщинами

Для вождения

Два сервопривода с высоким крутящим моментом или двигатель (для двух ведущих колес)

Одна стальная штанга 1/8 для колесных валов (покупается в домашних условиях и недорого)

Десять подшипников скольжения (заказываются на Mcmaster)

Пружины для подвески (купил в ассортименте пружины в Harbour Freight, недорого)

Для башни

Игрушечный автоматический пистолет BB

Один мини-двигатель постоянного тока с высоким крутящим моментом

Микро сервопривод для наклона вверх и вниз

Какая-то 1/4 сталь была осью орудия.

Другие вещи

Я напечатал на 3D-принтере большую часть этого резервуара, и если у вас есть легкий доступ к лазерному резаку, он тоже подойдет.

Я использовал нить PLA для печати, потому что с ней легче справиться (нет проблем с намоткой на ABS). Но потом действительно сложно шлифовать, резать, сверлить.

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

Ваш любительский принтер не будет таким точным.

Вы сделаете ошибки в измерениях и расчетах (допуск, центровка и т. Д.).

В любом случае, очень высока вероятность, что ваши отпечатки не получатся или не поместятся на вашем первом снимке. Для небольшой части это нормально, вы можете просто изменить модель, а затем перепечатать. Но для большей и более сложной части неприятно знать, что что-то не так после нескольких часов печати. Это пустая трата времени и материалов. Итак, вот мой подход:

Если все симметрично, распечатайте только половину, попробуйте, если все работает нормально, распечатайте все.

Моделирование детали, думая о 3D-печати. Может ли быть плоская поверхность для крепления платформы принтера? Можно ли ее разделить на более мелкие части, чтобы не было много поддерживающей конструкции?

Для деталей, имеющих множество функций (взаимодействующих со многими другими частями), разбейте модель на модули. Так что, если одна функция не сработала, вам не придется перепечатывать всю часть. Просто настройте модуль и перепечатайте его. Я использую винты и гайки, чтобы соединить их.

Будьте хорошим другом с ручными инструментами, ручной пилой, X-acto, дрелью, клеевым пистолетом. Если вы можете исправить ошибку печати, исправьте ее.

Это объясняет, почему в моем танке так много деталей. Я все еще настраиваю эти части, и как только я найду хорошую комбинацию, я могу распечатать их вместе как одно целое. Тогда это будет мой Cam Tank v2.0.

Шаг 2: Система вождения

Image
Image
Система вождения
Система вождения
Система вождения
Система вождения

Приостановка

Сначала я сделал прототип без какой-либо подвески, только оси в нижней части корпуса с подшипниками и колесами. Но, думая о комфорте оператора (буду водить его смотреть потоковое видео!), Решил добавить подвеску, чтобы было круче.

Все, что у меня есть, - это винтовые пружины, без гидравлики и листовой рессоры. Сначала я экспериментировал с торсионным механизмом с PLA. (Торсионная подвеска обычна на некоторых танках). Оказывается, после пары поворотов напечатанная пластина из PLA станет мягкой и в конечном итоге сломается. АБС может быть лучше для этой цели, но я никогда не пробовал. Итак, после дальнейших исследований я нашел конструкцию подвески Christie, вот короткое видео показывает, как она работает.

Однако подвеска christie состоит из множества мелких деталей, и тогда я не доверяю своему принтеру. Я сделал вот такую подвеску.

(изображение)

Эта конфигурация занимает слишком много внутреннего пространства. Поэтому я поворачиваю внутреннюю руку на 90 градусов. Обратите внимание, что первое и последнее колесо стали короче.

Задний натяжитель

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

Ведущие колеса и гусеницы

Эти гусеницы и ведущие колеса я спроектировал в Solidworks. Я не очень разбираюсь в машиностроении, поэтому не умею рассчитывать передачи. Поэтому я смоделировал детали в solidworks, чтобы проверить, работает ли это, прежде чем нажимать кнопку «Печать». Каждая дорожка связана с какой-то запасной 3-миллиметровой нитью. Он отлично работает с некоторой шлифовкой. Но в конструкции гусеницы есть изъян, поверхность, касающаяся земли, слишком гладкая, за нее тяжело ухватиться. Если я напечатаю его в перевернутом виде, я мог бы добавить немного протектора, но это будет стоить дорого вспомогательного материала из-за зуба. Будущие решения: 1. Распечатайте зуб отдельно, а затем склейте их вместе. 2. Нанесите аэрозольную краску для резинового покрытия.

Затем я распечатал корпус для сервоприводов и убедился, что ведущее колесо можно прикрепить к сервомеханизму винтами.

Шаг 3: система оружия

Image
Image
Система оружия
Система оружия
Система оружия
Система оружия

Эта часть для меня самая захватывающая. Вы можете купить игрушечный танк с камерой. Но я не нашел ни одной игрушки, сочетающей фотоаппарат и какое-то оружие.

Я купил эту автоматическую игрушку-пистолет для страйкбола за 9,99 доллара на распродаже. (Сейчас это около 20 баксов, и я могу попробовать что-нибудь подешевле позже) И снести его, чтобы понять механизм. Я могу полностью разрезать тело и приклеить его к своему резервуару. Но мне не нравится уродливая половина тела. Поэтому я сделал некоторые измерения и переделал механическую часть. Из этих работ я извлек урок из 3D-печати: вы всегда будете ошибаться. Требуется 5 отпечатков, чтобы каждая деталь подошла по размеру, а также много резки, шлифовки и горячего склеивания, чтобы она работала идеально.

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

На основании башни я добавил микро-сервопривод для наклона и микро-двигатель постоянного тока для вращения.

Потом начал тестировать ружье, подключаю 4 батарейки АА, стреляет хорошо. Я был очень рад, что он работает хорошо. Но на следующий день я обнаружил проблему.

Вот видео моего испытания оружия. Башня была подключена к переходнику на 3В.

Шаг 4: Настройте Pi

Это самая важная деталь, сердце нашего танка - Raspberry Pi!

Если вы еще не играли в Raspberry Pi. Я рекомендую начать с этой книги: Начало работы с Raspberry Pi от MAKE. Вы можете получить основы и всестороннее понимание Pi.

Получите последнюю версию raspbian OS.

Следующий инструмент, который я очень рекомендую, - это удаленный рабочий стол. Вот учебник Адама Райли. После настройки вы можете просматривать рабочий стол Pi на своем ПК (не тестировалось на Mac). Таким образом, запуск Pi «голым» означает отсутствие необходимости в дисплее, мыши и клавиатуре. Некоторые из моих друзей используют командную строку ssh. Но я предпочитаю рабочий стол.

Основываясь на предыдущих исследованиях, я знал, что Raspberry Pi может транслировать видео в потоковом режиме. Так что я начал возиться с разными приложениями на Pi. Многие приложения либо имеют длительную задержку (секунды), либо низкую частоту кадров. После пары недель блуждания по онлайн-видео и руководствам, к счастью, я нашел решение. Видео о webiopi на YouTube вселило в меня большие надежды. Дальнейшие исследования убедили меня в том, что это правильный путь.

Webiopi - это фреймворк, который упростил соединение между Pi и другим интернет-устройством. Он контролирует все Pi GPIOS, а затем запускает сервер, содержащий настроенный html. Вы можете получить доступ к этому HTML с других устройств (компьютер, смартфон и т. Д.) И нажать кнопку в браузере на расстоянии Wi-Fi, запускается GPIO.

Видео наполнило меня надеждой, оно основано на учебнике webiopi - проекте cambot. Он размещен в журналах MagPi # 9 [html] [pdf] и # 10 [html] [pdf]. Спасибо, Эрик ПТАК!

Пошагово следуя инструкциям, вы сможете сделать двухколесный костыль! Вот как это работает: соедините два двигателя с помощью H-моста, затем управляйте H-мостом с помощью 6 контактов GPIO для управления направлением и скоростью. Webiopi используется для управления GPIO. А MJPG-стример используется для потокового видео.

Если вы новичок в Pi или Linux, как и я несколько месяцев назад, у вас могут возникнуть небольшие проблемы после выполнения всех шагов. Вы можете запускать код Python для webiopi и потокового видео отдельно, но не знаете, как запустить их вместе? Мне потребовалось некоторое время, чтобы узнать, что вы можете добавить & после команды (& действительно сложно искать в Google, кстати), это означает, что вы хотите, чтобы эта команда выполнялась в фоновом режиме. Поэтому я буду делать это каждый раз:

sudo python cambot.py &

sudo./stream.sh

Я считаю, что вы создаете файл bash, содержащий указанную выше команду, в один файл и запускаете один раз. Я еще не пробовал.

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

Тогда возникает новый вопрос: поддерживает ли webiopi сервоприводы с ШИМ-управлением?

Ответ - да, но не сам по себе: RPIO необходим для генерации программного обеспечения PWM.

Установка RPIO (мне не повезло с первым методом установки apt-get. Метод github мне отлично подходит)

Пример кода и другие обсуждения

Теперь ваш бот обновлен двумя сервоприводами! Подумайте, что вы можете сделать с дополнительными руками!

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

Шаг 5: Электронное подключение

Электронное соединение
Электронное соединение
Электронное соединение
Электронное соединение
Электронное соединение
Электронное соединение

Банк питания, который я купил, Anker Astro Pro, имеет два порта USB и один порт 9 В (основная причина, по которой я купил этот). Я попытался запитать Pi, Wi-Fi ключ и веб-камеру с помощью одного порта USB. Не заводится. Поэтому я использовал другой порт USB для USB-концентратора с питанием.

Тогда я подумал, может, я смогу запитать сервоприводы через порт USB-концентратора. Работает, но вайфай соединение очень нестабильное.

Чтобы решить эту проблему, я принес 4 батарейки AA для питания сервопривода на 6 В. Я зачистил USB-кабель, чтобы обнажить провод заземления (черный) и подключить его к заземлению батарейного блока AA.

3 сервопривода, красный на 6 В, черный на землю и сигнальный контакт, подключенный к контактам GPIO.

По плану двигатель вращения башни и двигатель орудия также должны питаться от 6 В с управлением через Н-мост. Но когда все подключил, пушка не стреляет! Кажется, что двигатель пытается вращаться, но не может управлять шестеренками. Выходное напряжение в норме, но кажется, что тока недостаточно для привода. Я также попробовал MOSFET, но безуспешно.

Я вынужден отказаться от этой части по причинам времени. Вот почему при тестировании пистолета мне приходится вручную подключать двигатель пистолета к адаптеру. Еще есть чему поучиться в электронике. В худшем случае я всегда мог управлять пистолетом с помощью спускового крючка с сервоприводом.

Шаг 6: Интерфейс

Image
Image
Интерфейс
Интерфейс
Интерфейс
Интерфейс

Я также переделал интерфейсы из примеров кодов cambot и rasprover. Поскольку я планировал использовать смартфон в качестве контроллера, я оптимизировал макет для своего телефона (galaxy note3).

Большинство макетов и стилей можно редактировать в index.html. Однако стиль кнопки по умолчанию (темно-серый с черной рамкой) определен в файле webiopi.css, расположенном в / usr / share / webiopi / htdocs. Я использовал терминал для запуска sudo nano, чтобы изменить его.

Видеопоток расположен в центре экрана, управление движением - слева, а управление оружием - справа. Я разработал управление движением как два набора: вверх (вперед), стоп, вниз (назад), чтобы получить более тонкий контроль, но в видео вы можете сказать, что иногда это неудобно.

Шаг 7: план на будущее

Как видите, этот проект еще не завершен. Благодаря конкурсу Raspberry Pi на прошлой неделе я сильно напрягся, просто пытаясь закончить его до крайнего срока. Получается неплохо, пока я не обнаружил, что пистолет не стреляет …

Здесь есть еще много чего улучшить, но я надеюсь, что вы сможете чему-то научиться из моего опыта.

Краткосрочный план:

Заставь пистолет работать !!!

Контейнер большего размера для большего количества BB

Танку нужно исследовать мир - выходите за пределы домашнего Wi-Fi!

Настройте специальный узел на Pi, чтобы телефон мог подключаться к нему где угодно

Запустить команду танка при запуске

Добавьте кнопку выключения, чтобы безопасно выключить Pi.

Долгосрочный план:

Лучшая система вождения для устойчивости и сцепления

Разработайте мою собственную печатную плату вместо макета прямо сейчас

Запись видео от первого лица

Еще один пистолет? Сделаем из него боевой корабль!

Добавить датчики для самостоятельного патрулирования?

Компьютерное зрение для автоматического наведения!

Управляй танком подальше: все увижу дома!

Шаг 8: Спасибо за чтение

Спасибо, что прочитали мой плохой английский (это не мой родной язык). Надеюсь, вы повеселились или чему-то научились здесь. Это будет постоянный проект, поэтому, если у вас есть опыт в какой-либо области, я ценю ваш совет.

Если у вас есть вопросы, оставьте, пожалуйста, комментарий, я постараюсь на него ответить.

Позвольте мне сделать обновление - Cam Tank2.0 - в ближайшем будущем.

Наконец, вот видео, показывающее сценарий боя. Это довольно забавно.

Наслаждайтесь и увидимся в следующий раз!

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