Оглавление:

Процессор Raspberry PI Vision (SpartaCam): 8 шагов (с изображениями)
Процессор Raspberry PI Vision (SpartaCam): 8 шагов (с изображениями)

Видео: Процессор Raspberry PI Vision (SpartaCam): 8 шагов (с изображениями)

Видео: Процессор Raspberry PI Vision (SpartaCam): 8 шагов (с изображениями)
Видео: DevTalk (05-Jul-2015) - Margaryta Ostapchuk - Microsoft platform: from the past to the future 2024, Июль
Anonim
Процессор Raspberry PI Vision (SpartaCam)
Процессор Raspberry PI Vision (SpartaCam)
Процессор Raspberry PI Vision (SpartaCam)
Процессор Raspberry PI Vision (SpartaCam)

Система процессора машинного зрения Raspberry PI для вашего робота FIRST Robotics Competition

О FIRST

Из Википедии, бесплатной энциклопедии

FIRST Robotics Competition (FRC) - это международное соревнование по робототехнике среди школьников. Каждый год команды старшеклассников, тренеров и наставников в течение шестинедельного периода работают над созданием игровых роботов, которые весят до 120 фунтов (54 кг). Роботы выполняют такие задачи, как забивание мячей в ворота, запуск дисков в ворота, камеры на стойки, подвешивание на стержнях и балансировка роботов на балансирах. Игра вместе с необходимым набором задач ежегодно меняется. Хотя командам предоставляется стандартный набор деталей, им также разрешается ограниченный бюджет, и им предлагается покупать или производить специализированные детали.

В этом году игра (2020) БЕСКОНЕЧНАЯ ПЕРЕЗАРЯДКА. В игре Infinite Recharge участвуют два альянса по три команды в каждом, каждая из которых управляет роботом и выполняет определенные задачи на поле, чтобы набрать очки. Игра сосредоточена вокруг футуристической городской темы с участием двух альянсов, состоящих из трех команд, каждая из которых соревнуется за выполнение различных задач, включая стрельбу шариками из пенопласта, известными как Power Cells, в высокие и низкие цели, чтобы активировать генератор щита, манипулирование панелью управления для активации этого щита, и возвращение к Генератору щита, чтобы припарковаться или подняться в конце матча. Цель состоит в том, чтобы зарядить энергией и активировать щит до того, как матч закончится и астероиды ударят по ПЕРВОМУ городу, футуристическому городу, созданному по образцу «Звездных войн».

Что делает система процессора машинного зрения Raspberry PI?

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

Цели обзора на игровом поле обведены светоотражающей лентой, и свет будет отражаться обратно в объектив камеры. Pi с открытым исходным кодом от Chameleon Vision (https://chameleon-vision.readthedocs.io/en/latest/…) будет обрабатывать вид, выделять его, добавлять наложения изображений и выводить шаг, рыскание, контур и положение как значения массива, упорядоченные по x и y в метрах и углу в градусах вместе с другими данными через сетевую таблицу. Эта информация будет использоваться в программном обеспечении для управления нашим роботом в автономном режиме, а также для прицеливания и стрельбы из нашего турельного стрелка. На Pi могут работать и другие программные платформы. FRC vision можно установить, если ваша команда уже потратила время на программное обеспечение для этой платформы.

В этом году у нас был ограниченный бюджет, и покупка камеры Limelight за 399,00 долларов США (https://www.wcproducts.com/wcp-015) не была подходящей. Получив все расходные материалы на Amazon и используя 3D-принтер Team 3512 Spartatroniks, я смог упаковать индивидуальную систему технического зрения за 150 долларов. Некоторые элементы поставлялись оптом, для создания второго сопроцессора потребовались бы только еще один Raspberry Pi, PI Camera и вентилятор. С помощью САПР одной из команд наставников (спасибо, Мэтт) корпус PI был создан с использованием Fusion 360.

Почему бы просто не использовать Pi с дешевым корпусом, подключить USB-камеру, добавить кольцевую подсветку, установить Chameleon Vision и все готово, верно? Что ж, мне нужно было больше мощности, меньше кабелей и крутизны кастомной системы.

Pi 4 использует 3 ампера, если он работает на полную мощность, то есть если он использует большинство своих портов, а также Wi-Fi и работает дисплей. Мы не делаем этого на наших роботах, но порты USB на roboRIO https://www.ni.com/en-us/support/model.roborio.ht … рассчитаны на 900 мА, модуль стабилизатора напряжения (VRM 5 Вольт обеспечивает пиковую мощность до 2 А, ограничение 1,5 А, но это общий разъем, поэтому, если другое устройство подключено к шине 5 В, существует вероятность отключения. VRM также подает 12 вольт при 2 амперах, но мы используем оба соединения для питания нашей радиостанции с помощью кабеля POE и цилиндрического соединения для резервирования. Некоторые инспекторы FRC не разрешают подключать к нему ничего, кроме того, что напечатано на VRM. Итак, 12 вольт от PDP на выключателе на 5 ампер - это то место, где Pi должен быть запитан.

12 В подается через выключатель на 5 А на панели распределения питания (PDP), преобразуется в 5,15 В с помощью понижающего преобразователя постоянного тока LM2596. Понижающий преобразователь выдает 5 вольт при 3 амперах и остается в режиме стабилизации до 6,5 вольт на входе. Эта 5-вольтовая шина обеспечивает питание 3 подсистем, светодиодной кольцевой матрицы, вентилятора и Raspberry Pi.

Запасы

  • 6 Pack LM2596 DC to DC понижающий преобразователь 3,0-40 В в 1,5-35 В, понижающий модуль источника питания (комплект из 6) $ 11,25
  • Noctua NF-A4x10 5 В, бесшумный вентилятор премиум-класса, 3-контактный, версия 5 В (40x10 мм, коричневый) 13,95 долл. США
  • Карта SanDisk Ultra 32 ГБ microSDHC UHS-I с адаптером - 98 МБ / с U1 A1 - SDSQUAR-032G-GN6MA $ 7,99
  • Модуль камеры Raspberry Pi V2-8 мегапикселей, 1080p 428,20
  • Радиатор GeeekPi Raspberry Pi 4, 20 алюминиевых радиаторов Raspberry Pi с теплопроводящей клейкой лентой для Raspberry Pi 4 Model B (плата Raspberry Pi не входит в комплект) $ 7,99
  • Raspberry Pi 4 Model B 2019 Quad Core 64 Bit WiFi Bluetooth (4 ГБ) $ 61,96
  • (Упаковка из 200 штук) Транзистор 2N2222, транзистор 2N2222 - 92 NPN 40 В 600 мА 300 МГц 625 мВт Сквозное отверстие 2N2222A $ 6,79
  • EDGELEC 100 шт. Резистор 100 Ом 1/4 Вт (0,25 Вт) ± 1% допуск Металлический пленочный фиксированный резистор 5,69 долл. Высокоинтенсивные сверхяркие лампы накаливания Компоненты электроники Лампы Диоды $ 6,30
  • J-B Weld Plastic Bonder $ 5.77

Шаг 1: прототип 1

Прототип 1
Прототип 1

Первый тест в упаковке:

У команды был Pi 3 предыдущего года, который был доступен для тестирования. Добавлены пи-камера, понижающая / повышающая схема DC-DC и кольцевой светильник Andymark.

В то время я не рассматривал Pi 4, поэтому не беспокоился о потребностях в питании. Питание подавалось через USB от roboRIO. Камера поместилась в корпус без доработок. Кольцевой фонарь был приклеен к крышке корпуса горячим способом и подключен к плате ускорения. Плата повышения была подключена к портам GPIO 2 и 6 на 5 вольт, а выход был отрегулирован до 12 вольт для работы кольца. Внутри корпуса не было места для платы ускорения, поэтому она также была приклеена к внешней стороне. Программное обеспечение было установлено и протестировано с использованием целей из 2019 игрового года. Команда разработчиков программного обеспечения дала высокую оценку, поэтому мы заказали Pi 4, радиаторы и вентилятор. И пока они были в пути, корпус был спроектирован и напечатан на 3D-принтере.

Шаг 2: прототип 2

Prototype 2
Prototype 2
Prototype 2
Prototype 2
Prototype 2
Prototype 2

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

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

Хорошие новости и плохие новости. Кольцевой световой поток был недостаточным, когда мы находились на расстоянии более 15 футов от цели, так что пришло время переосмыслить освещение. Поскольку потребовались изменения, рассматриваю этот агрегат как прототип 2.

Шаг 3: прототип 3

Прототип 3
Прототип 3
Прототип 3
Прототип 3

Прототип 2 был оставлен вместе, чтобы программное обеспечение могло продолжать улучшать их систему. Тем временем был найден еще один Pi 3, и я построил еще один испытательный стенд. У него был Pi3, USB lifecam 3000, припаянный к плате, повышающий преобразователь и вручную припаянная диодная матрица.

Опять хорошие новости, плохие новости. Массив может осветить цель с расстояния более 50 футов, но потеряет цель, если угол отклонения превышает 22 градуса. С помощью этой информации можно было создать окончательную систему.

Шаг 4: конечный продукт

Конечный продукт
Конечный продукт
Конечный продукт
Конечный продукт
Конечный продукт
Конечный продукт

У прототипа 3 было 6 диодов, разнесенных друг от друга на 60 градусов и направленных прямо вперед.

Последние изменения заключались в добавлении 8 диодов, расположенных на расстоянии 45 градусов друг от друга вокруг линзы, с 4 диодами, направленными вперед, и 4 диодами, наклоненными на 10 градусов, что дает поле обзора 44 градуса. Это также позволяет устанавливать корпус на роботе вертикально или горизонтально. Был напечатан новый корпус с изменениями для размещения Pi 3 или Pi 4. Лицевая сторона корпуса была изменена для отдельных диодов.

Тестирование не показало никаких проблем с производительностью между Pi 3 или 4, поэтому отверстия в корпусе были сделаны для установки любого Pi. Были удалены задние точки крепления, а также выхлопные отверстия в верхней части купола. Использование Pi 3 еще больше снизит стоимость. Pi 3 работает холоднее и потребляет меньше энергии. В конце концов, мы решили использовать PI 3 для экономии средств, и команда разработчиков программного обеспечения хотела использовать некоторый код, который будет работать на Pi 3, который не был обновлен для Pi 4.

Импортируйте STL в слайсер вашего 3D-принтера - и вперед. Этот файл находится в дюймах, поэтому, если у вас есть слайсер, такой как Cura, вам, вероятно, придется масштабировать деталь до% 2540, чтобы преобразовать ее в метрическую систему. Если у вас есть Fusion 360, файл.f3d можно изменить в соответствии с вашими потребностями. Я хотел включить файл.step, но инструкции не позволяют загружать файлы.

Необходимые основные инструменты:

  • Инструмент для зачистки проводов
  • Плоскогубцы
  • Паяльник
  • Термоусадочные трубки
  • Кусачки
  • Бессвинцовый припой
  • Поток
  • Руки помощи или щипцы
  • Тепловая пушка

Шаг 5: Подключение диодной матрицы

Схема подключения диодной матрицы
Схема подключения диодной матрицы
Схема подключения диодной матрицы
Схема подключения диодной матрицы
Схема подключения диодной матрицы
Схема подключения диодной матрицы

Уведомление о безопасности:

Паяльник Никогда не прикасайтесь к элементу паяльника….400 ° C! (750 ° F)

Удерживайте нагреваемые провода пинцетом или зажимами.

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

Когда паяльник не используется, всегда возвращайте его на подставку.

Никогда не кладите его на верстак.

Выключайте прибор и отключайте его от сети, когда он не используется.

Припой, флюс и очистители

Надевайте защитные очки.

Припой может «плеваться».

По возможности используйте припои без канифоли и свинца.

Храните чистящие растворители в раздаточных бутылках.

После пайки всегда мойте руки водой с мылом.

Работайте в хорошо вентилируемых помещениях.

ОК, приступим к работе:

Лицевая сторона корпуса была напечатана с диодными отверстиями на 0, 90, 180, 270 точек с наклоном на 10 градусов. Отверстия в точках 45, 135, 225, 315 прямые.

Поместите все диоды на лицевую сторону корпуса, чтобы проверить размер отверстия 5 мм. При плотной посадке диоды будут направлены под правильным углом. Длинный вывод на диоде - это анод, к каждому диоду припаяйте резистор 100 Ом. Паяные выводы диода и резистора замыкаются, оставляя длинный вывод с другой стороны резистора (см. Фотографии). Прежде чем двигаться дальше, проверьте каждую комбинацию. Батарейка AA и 2 измерительных провода тускло загорят диод и подтвердят правильность полярности.

Поместите комбинированный диод / резистор обратно в корпус и расположите выводы зигзагообразно, чтобы каждый вывод резистора касался следующего резистора, образуя кольцо. Припаиваем все выводы. Я бы смешал немного пластикового связующего для сварки J-B (https://www.amazon.com/J-B-Weld-50133-Tan-1-Pack) и смазать комбо диод / резистор эпоксидной смолой. Я подумал о суперклее, но не был уверен, что цианоакрилат затуманивает диодную линзу. Я сделал это в конце всей моей пайки, но хотел бы сделать это здесь, чтобы уменьшить разочарование, когда диоды не удерживаются на месте во время пайки. Эпоксидная смола схватывается примерно за 15 минут, так что это хорошее место для отдыха.

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

Шаг 6: Подключение понижающего / повышающего напряжения

Buck / Boost Проводка
Buck / Boost Проводка
Проводка Buck / Boost
Проводка Buck / Boost
Buck / Boost Проводка
Buck / Boost Проводка
Buck / Boost Проводка
Buck / Boost Проводка

Перед подключением понижающего преобразователя нам нужно будет установить выходное напряжение. Поскольку мы используем PDP для подачи 12 вольт, я подключил напрямую к порту PDP, предохраненному на 5 ампер. Прикрепите вольтметр к выходу платы и начните вращать потенциометр. Пройдет несколько оборотов, прежде чем вы увидите изменение, так как плата проходит заводские испытания на полную мощность, а затем остается на этой настройке. Установите 5,15 вольт. Мы устанавливаем несколько милливольт, чтобы соответствовать тому, что Pi ожидает увидеть от зарядного устройства USB и любой линейной нагрузки от вентилятора и диодной матрицы. (Во время первоначального тестирования мы видели неприятные сообщения от Pi с жалобами на низкое напряжение на шине. Поиск в Интернете дал нам информацию о том, что Pi ожидает более 5,0 вольт, поскольку большинство зарядных устройств выдают немного больше, а типичный источник питания для Pi составляет зарядное устройство USB.)

Далее нам нужно подготовить корпус:

Понижающий преобразователь и Pi удерживаются 4-40 крепежными винтами. Сверло №43 идеально подходит для создания точных отверстий для нарезания резьбы лентой 4-40. Приложите преобразователь Pi и понижающий преобразователь к стойкам, сделайте отметку и просверлите сверлом №43. Высота стоек обеспечивает достаточную глубину для укропа, не проходя через спину полностью. Забейте отверстия глухим метчиком 4-40. Самоклеющиеся винты, используемые в пластике, здесь подойдут, но у меня было 4-40 винтов, так что я использовал именно их. Винты необходимы для доступа к SD-карте (в этом корпусе внешний доступ к карте не предусмотрен).

Следующее отверстие, которое нужно просверлить, предназначено для кабеля питания. Я выбрал точку в нижнем углу, чтобы она проходила вдоль кабеля Ethernet снаружи и сбоку, а затем под Pi внутри. Я использовал экранированный двухжильный кабель, поскольку он имел под рукой любую пару проводов 14-го калибра. Если вы используете пару проводов без оболочки, нанесите 1-2 слоя термоусадки на провод в том месте, где он входит в корпус, для защиты и снятия напряжения. Размер отверстия определяется вашим выбором проволоки.

Теперь вы можете припаять провода к входным линиям преобразователя постоянного тока в постоянный. Подключения обозначены на плате. Красный провод к входу + Черный провод к входу-. Выйдя из платы, я припаял 2 коротких оголенных провода, которые служат проводом для связи вентилятора, Pi и транзистора.

Шаг 7: Окончательная разводка и эпоксидная смола

Окончательная разводка и эпоксидная смола
Окончательная разводка и эпоксидная смола
Окончательная разводка и эпоксидная смола
Окончательная разводка и эпоксидная смола
Окончательная разводка и эпоксидная смола
Окончательная разводка и эпоксидная смола

К Pi выполнено только 4 подключения. Ленточный кабель заземления, питания, управления светодиодами и интерфейса камеры.

На Pi используются 3 контакта: 2, 6 и 12.

Отрежьте красный, черный и белый провод до 4 дюймов. Зачистите 3/8 дюйма изоляции с обоих концов проводов, оловянных концов проводов и оловянных штырей на Pi.

  • Припаяйте красный провод к контакту 2 GPIO, выскользнув 1/2 дюйма термоусадочной трубки, подайте тепло.
  • Припаяйте черный провод к контакту 6 GPIO, выскользнув 1/2 дюйма термоусадочной трубки, подайте тепло.
  • Припаяйте белый провод к контакту 12 GPIO, выскользнув 1/2 дюйма термоусадочной трубки, подайте тепло.
  • Припаять красный провод к выпиранию +
  • Припаяйте черный провод к выходу-
  • Добавьте 1 дюйм термоусадки к белому проводу и припаяйте к резистору 100 Ом и от резистора к базе транзистора. Утеплить термоусадочным материалом.
  • Транзисторный эмиттер на бак -
  • Коллектор транзистора со стороны катода диодной матрицы
  • Диодная матрица Анод / Резистор к Бак +
  • Проветрить красный провод, чтобы выключить +
  • Проветрить черный провод, чтобы выкрутить-

Последнее соединение:

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

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

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

Шаг 8: Программное обеспечение

Программное обеспечение
Программное обеспечение
Программное обеспечение
Программное обеспечение
Программное обеспечение
Программное обеспечение
Программное обеспечение
Программное обеспечение

Пока эпоксидка застывает, загрузим программное обеспечение на SD-карту. вам понадобится адаптер SD-карты для подключения к компьютеру (https://www.amazon.com/Reader-Laptop-Windows-Chrom….

Перейти к:

www.raspberrypi.org/downloads/raspbian/ и загрузите Raspbian Buster Lite. Чтобы прошить SD-карту с помощью raspbian, вам понадобится другой программный инструмент BalenaEtcher, его можно найти здесь, К настоящему времени эпоксидная смола должна была достаточно затвердеть, чтобы вы могли установить SD-карту и прикрутить плату повышения / понижения. Перед защелкиванием крышки убедитесь, что никакие провода не соприкасаются с крышкой, а кабель камеры не касается лопастей вентилятора. После того, как крышка установлена, я дую на вентилятор и смотрю, как он движется, чтобы убедиться, что нет помех от проводов или ленточного кабеля.

Время включать:

При первом включении вам понадобится кабель hdmi, если у Pi 4 - кабель mini hdmi, клавиатура USB и монитор hdmi, а также подключение к Интернету. Подключите к источнику питания 12 Вольт, PDP с выключателем на 5 А.

После входа в систему первым делом нужно запустить инструмент настройки. Здесь можно установить SSH вместе с включением камеры PI. https://www.raspberrypi.org/documentation/configur… содержит инструкции, которые могут помочь.

Перезагрузитесь перед установкой Chameleon Vision

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

С веб-страницы Chameleon Vision:

Chameleon Vision может работать в большинстве операционных систем, доступных для Raspberry Pi. Однако рекомендуется установить Rasbian Buster Lite, доступный здесь https://www.raspberrypi.org/downloads/raspbian/. Следуйте инструкциям по установке Raspbian на SD-карту.

Убедитесь, что Raspberry Pi подключен через Ethernet к Интернету. Войдите в Raspberry Pi (имя пользователя pi и пароль raspberry) и выполните следующие команды в терминале:

$ wget https://git.io/JeDUk -O install.sh

$ chmod + x install.sh

$ sudo./install.sh

$ sudo перезагрузить сейчас

Поздравляю! Ваш Raspberry Pi теперь настроен для запуска Chameleon Vision! После перезагрузки Raspberry Pi Chameleon Vision можно запустить с помощью следующей команды:

$ sudo java -jar chameleon-vision.jar

Когда выйдет новая версия Chameleon Vision, обновите ее, выполнив следующие команды:

$ wget https://git.io/JeDUL -O update.sh

$ chmod + x update.sh

$ sudo./update.sh

Управление светодиодной матрицей:

Ваша светодиодная матрица не будет гореть без программного управления

Первая робототехника в этом году имеет правило против ярких светодиодных фонарей, но разрешит их, если их можно будет выключать и включать по мере необходимости. Колин Гидеон «SpookyWoogin», FRC 3223, написал сценарий Python для управления светодиодами, который можно найти здесь:

github.com/frc3223/RPi-GPIO-Flash

Эта система также будет запускать видение FRC, если ваша команда уже потратила время на программное обеспечение для этой платформы. С FRC vision создается образ всей SD-карты, поэтому не нужно загружать raspbian. Получите здесь

Это даст вам систему технического зрения в отличном форм-факторе. Удачи на соревнованиях!

Конкурс Raspberry Pi 2020
Конкурс Raspberry Pi 2020
Конкурс Raspberry Pi 2020
Конкурс Raspberry Pi 2020

Финалист Raspberry Pi Contest 2020

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