Сенсорный контроллер Fusion

На этой странице описывается, как собрать контроллер версии 2 для испытательного стенда для слияния датчиков. Тест слияния сенсоров является частью набора для тестирования изображения камеры (Camera ITS) в наборе для тестирования совместимости (CTS). Контроллер rev2 разработан для облегчения сборки и снижения затрат. Дополнительными преимуществами являются развязка питания между электроникой и сервоприводами и управление до шести сервоприводов с одного контроллера.

Обзор сенсорного контроллера Fusion версии 2

Испытательный стенд для слияния датчиков

Испытательный стенд для слияния датчиков обеспечивает фиксированное движение телефона для воспроизводимого тестирования. Телефон поворачивается перед мишенью в виде шахматной доски, чтобы можно было делать снимки с телефоном в разных положениях. Тестовая установка поворачивает телефон вокруг центра оси камеры на 90 градусов и обратно примерно за 2 секунды. На рис. 1 показаны два телефона, движущиеся на испытательном стенде слияния датчиков.

Движение телефона на испытательном стенде

Рис. 1. Движение телефона на испытательном стенде

Управление серводвигателем

Аналоговые серводвигатели в испытательном стенде представляют собой позиционные сервоприводы, управляемые с помощью широтно-импульсной модуляции (ШИМ). Типичный пример позиционного управления показан на рисунке 2. Сигнал управления имеет период 20 мс. При изменении ширины импульса на минимальную ширину двигатель перемещается в нейтральное положение, а при изменении ширины импульса на максимальную ширину двигатель перемещается на 180 градусов по часовой стрелке.

Описание сервоуправления

Рис. 2. Типичное описание сервоуправления

Реализация сенсорного контроллера Fusion

Для управления движением серводвигателя через хост испытательному стенду для слияния датчиков требуется USB-соединение. Контроллер тестовой установки rev2 использует плату Arduino UNO R3 с USB-подключением и специальную плату маршрутизации (или экран ), установленную сверху. Двухслойный экран разработан с помощью онлайн-инструмента проектирования печатных плат с открытым исходным кодом и доступен по адресу https://easyeda.com/portmannc/servo_controller . На рисунках 3 и 4 показаны вид сверху и снизу пользовательского экрана маршрутизации.

Пользовательский щит маршрутизации, вид сверху

Рис. 3. Пользовательский экран маршрутизации (вид сверху)

Пользовательский экран маршрутизации, вид снизу

Рис. 4. Пользовательский экран маршрутизации (вид снизу)

Контроллер слияния датчиков rev2 может управлять до шести установками для слияния датчиков с одного хоста. На виде сверху показаны контуры трафаретной печати для установки шести 3-контактных разъемов двигателя вдоль центральной оси. Вверху есть дополнительный разъем, который не используется в этом проекте. На виде снизу показаны трафаретные очертания 4- и 8-контактных разъемов, необходимых для сопряжения с UNO, разъемом питания 5 В и обходным конденсатором 10 мкФ.

Чтобы изолировать сервотоки, питание для сервоприводов подается через внешний разъем 5 В. Электроника UNO питается отдельно через разъем USB, и между двумя платами нет разделения питания. Обратите внимание, что существующий внешний разъем питания на UNO не используется и закрыт конструкцией корпуса, чтобы избежать путаницы при подключении питания к контроллеру.

Сборка сенсорного контроллера rev2

Спецификация материалов (BOM)

Кол-во Описание PN/ссылка
1 Плата маршрутизации датчиков толщиной 1,6 мм https://easyeda.com/portmannc/servo_controller
1 Ардуино УНО R3 https://store.arduino.cc/usa/arduino-uno-rev3
1 2,1x5,5 мм, сквозное отверстие 5 В, цилиндрический разъем под прямым углом 101179
1 Танталовые конденсаторы 16 В, 10%, 10 мкФ TAP106K016CCS
1 1x2, шаг 200 мил (5,08 мм), разъем Phoenix Contact со сквозным отверстием 651-1755736
6 1x3x, шаг 100 мил (2,54 мм), вилка со сквозным отверстием 732-5316-НД
1 1x8x, шаг 100 мил (2,54 мм), вилка со сквозным отверстием 732-5321-НД
1 1x4x, шаг 100 мил (2,54 мм), вилка со сквозным отверстием 732-5317-НД
3 Стойки 11 мм «мама-мама» (ширина 5 мм, резьба М3-0,5) Р30-1001102
4 Стойки «папа-мама» 6 мм (ширина 5 мм, резьба M3-0,5) Р30-3000602
3 Крепежные винты M3-0,5 6 мм с полукруглой головкой 36-9191-3-НД
4 Крепежные винты M3-0,5 8 мм с плоской головкой XM2510008A20000
2 Крепежные винты M3-0,5 6 мм с плоской головкой XM2510006A20000
6 № 4, 1/2 дюйма винты для листового металла с круглой головкой 90925А110
1 Блок питания 5 В, 15 Вт, сертифицированный UL, штекер 2,1x5,5 мм (двигатели) 36-9191-3-НД

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

  • Паяльник, припой, припой-присоска
  • Маленькая крестовая отвертка
  • Отвертка Torx размера T10

Заполнение платы маршрутизации

Заполните верхнюю и нижнюю часть маршрутной платы деталями, подходящими по их контурам. В нижней части платы штекерные разъемы можно выровнять, поместив разъемы в правильные места на плате Arduino и поместив плату маршрутизации поверх разъемов. Затем разъемы 1x8 и 1x4 можно припаять на место, гарантируя хорошее выравнивание между Arduino и платой маршрутизации. То же самое можно сделать и с разъемом питания, но для плотной сборки необходима прокладка, так как разъем питания не опирается на Arduino после сборки. После припайки шунтирующего конденсатора на верхнюю часть платы можно установить шесть штекерных разъемов 1x3 для управления двигателем и разъем 1x2 Phoenix Contact. Обратите внимание, что головка должна быть ориентирована так, чтобы нижняя часть разъема с защелкой была обращена к двигателям, чтобы обеспечить максимальное пространство для крепления двигателя.

Когда все компоненты припаяны, можно собрать систему, используя стойки и винты. Между платой Arduino и нижней частью пластикового корпуса имеется четыре стойки диаметром 6 мм, которые обеспечивают механическую стабильность. Тем не менее, между Arduino и пользовательским экраном есть только три 11-мм стойки «мама-мама», потому что одно отверстие на Arduino (то, что рядом с контактом SCL) непригодно для использования из-за его близости к разъему «мама» на Arduino. Прикрутите три стойки «мама-мама» к трем стойкам «папа-мама», чтобы прикрепить стойки к Arduino. Затем прикрепите экран платы маршрутизации к стойкам с помощью трех винтов M3. На рис. 5 показан концептуальный вид с торца заполненного шилда, установленного на Arduino. На рис. 6 представлена ​​фотография заполненной и смонтированной системы.

Концептуальный вид с торца населенного щита, установленного на Arduino

Рис. 5. Заполненный экран с разъемами, разъемом питания и распорками (концептуальный вид с торца)

Заселенный верх щита

Рис. 6. Населенный шилд rev2.2, установленный на Arduino (вид сверху)

Корпус контроллера

Контроллер включает специальный корпус. Механический чертеж показан на рисунке 7.

Механический чертеж корпуса

Рис. 7. Механический чертеж корпуса

Собранный контроллер крепится к корпусу четырьмя винтами с потайной головкой через нижнюю пластину корпуса. Корпус можно собрать с помощью шести винтов с круглой головкой и двух винтов с плоской головкой. Соответствующая информация, такая как номер сервопривода и внешний источник питания 5 В, выгравирована на пластиковой верхней части. На рис. 8 представлена ​​фотография контроллера внутри собранного корпуса.

Собранная система в корпусе

Рис. 8. Собранная система в корпусе

Программное управление с хоста

В UNO можно загрузить микрокод для назначения выводов ШИМ сигналам двигателя и определения диапазонов длительности импульсов для разных углов. Микрокод для управления вращением сервоприводов шести двигателей HS-755MB включен в раздел Другие ресурсы . В этом разделе также есть ссылка на простую программу rotator.py , которая вращает сервоприводы.

Использование контроллера rev2

Использование камеры ITS:

python tools/run_all_tests.py device=device_id camera=0 rot_rig=arduino:1 scenes=sensor_fusion

С включенным тестовым скриптом:

python rotator.py --ch 1 --dir ON --debug

Другие источники

Загрузка механических чертежей

Загрузка программного обеспечения