Google은 흑인 공동체를 위한 인종 간 평등을 진전시키기 위해 노력하고 있습니다. Google에서 어떤 노력을 하고 있는지 확인하세요.

센서 퓨전 컨트롤러

이 페이지에서는 센서 퓨전 테스트 장비의 버전 2 컨트롤러를 조립하는 방법을 설명합니다. 센서 퓨전 테스트는 호환성 테스트 모음(CTS)의 카메라 이미지 테스트 모음(카메라 ITS)의 일부입니다. rev2 컨트롤러는 쉽게 조립하고 비용을 절감하도록 설계되었습니다. 또한, 전자제품과 서보 간의 전원 공급 장치가 분리되고 단일 컨트롤러에서 최대 6개의 서보를 제어할 수 있는 추가적인 이점이 있습니다.

버전 2 센서 퓨전 컨트롤러 개요

센서 퓨전 테스트 장비

센서 퓨전 테스트 장비는 재현 가능한 테스트를 위해 고정된 휴대전화 모션을 제공합니다. 다양한 위치에서 휴대전화를 이용해 이미지를 캡처할 수 있도록 격자무늬 타겟 앞에서 휴대전화가 회전합니다. 테스트 장비는 약 2초간 휴대전화를 카메라 중심축에서 90도 회전시켰다가 제자리로 되돌립니다. 그림 1은 센서 퓨전 테스트 장비에서 이동하는 휴대전화 2대를 보여줍니다.

테스트 장비에서 휴대전화 이동

그림 1. 테스트 장비에서 휴대전화 이동

서보 모터 제어

테스트 장비의 아날로그 서보 모터는 펄스 폭 변조(PWM)를 사용하여 제어되는 위치 서보입니다. 그림 2는 일반적인 위치 제어 예를 보여줍니다. 제어 신호 주기는 20밀리초입니다. 펄스 폭을 최소 너비로 하면 모터가 중립 위치로 이동하고 펄스 폭을 최대 너비로 하면 모터가 시계 방향으로 180도 이동합니다.

서보 제어 설명

그림 2. 일반적인 서보 제어 설명

센서 퓨전 컨트롤러 구현

호스트를 통해 서보 모터 모션을 제어하려면 센서 퓨전 테스트 장비에 USB를 연결해야 합니다. rev2 컨트롤러 테스트 장비는 맨 위에 맞춤 라우팅 보드(또는 실드)가 마운트된 USB 연결 Arduino UNO R3 보드를 사용합니다. 이 2계층 실드는 오픈소스로 제공되는 온라인 PCB 설계 도구로 설계되었으며 https://easyeda.com/portmannc/servo_controller에서 제공합니다. 맞춤 라우팅 실드의 상단 및 하단 뷰는 그림 3과 4에 표시되어 있습니다.

맞춤 라우팅 실드 상단 뷰

그림 3. 맞춤 라우팅 실드(상단 뷰)

맞춤 라우팅 실드 하단 뷰

그림 4. 맞춤 라우팅 실드(하단 뷰)

rev2 센서 퓨전 컨트롤러는 단일 호스트에서 최대 6개의 센서 퓨전 장비를 제어할 수 있습니다. 상단 뷰는 중심축을 따라 6개의 3핀 모터 헤더를 마운트하기 위한 실크스크린 윤곽선을 보여줍니다. 상단에는 이 프로젝트에서 사용하지 않는 추가 커넥터가 있습니다. 하단 뷰는 UNO와 연결하는 데 필요한 4핀 및 8핀 헤더 연결, 5V 전원 잭, 10uF 우회 콘덴서의 실크스크린 윤곽선을 보여줍니다.

서보 전류를 분리하기 위해 외부 5V 잭을 통해 서보용 전력이 제공됩니다. UNO 전자제품은 USB 커넥터를 통해 별도로 구동되며 두 보드 간에 전력은 공유하지 않습니다. 컨트롤러에 전원을 연결할 때 혼란을 피하고자 UNO에 있는 외부 전원 잭은 사용하지 않으며 인클로저 디자인으로 가려집니다.

rev2 센서 퓨전 컨트롤러 조립

자재 명세서(BOM)

수량 설명 PN/링크
1 1.6mm 두께 센서 퓨전 라우팅 보드 https://easyeda.com/portmannc/servo_controller
1 Arduino UNO R3 https://store.arduino.cc/usa/arduino-uno-rev3
1 2.1x5.5mm, 5V 스루홀, 직각 배럴 잭 101179
1 16V, 10%, 10uF 탄탈룸 콘덴서 TAP106K016CCS
1 1x2, 200mil(5.08mm) 피치, 스루홀 Phoenix Contact 헤더 651-1755736
6 1x3x, 100mil(2.54mm) 피치, 스루홀 수 헤더 732-5316-ND
1 1x8x, 100mil(2.54mm) 피치, 스루홀 수 헤더 732-5321-ND
1 1x4x, 100mil(2.54mm) 피치, 스루홀 수 헤더 732-5317-ND
3 11mm 암-암 스탠드오프(너비 5mm, M3-0.5 나사산) R30-1001102
4 6mm 수-암 스탠드오프(너비 5mm, M3-0.5 나사산) R30-3000602
3 M3-0.5 6mm 팬 헤드 머신 나사 36-9191-3-ND
4 M3-0.5 8mm 접시머리 머신 나사 XM2510008A20000
2 M3-0.5 6mm 접시머리 머신 나사 XM2510006A20000
6 4번, 1/2in 둥근머리 판금 나사 90925A110
1 5V, 15W UL 규격 전원 공급 장치, 2.1x5.5mm 플러그(모터) 36-9191-3-ND

기타 필요한 도구

  • 납땜 인두, 땜납, 납흡입기
  • 소형 Phillips 헤드 스크루드라이버
  • 크기가 T10인 별드라이버

라우팅 보드 채우기

라우팅 보드의 상단과 하단을 윤곽선에 맞춘 부품으로 채웁니다. 보드 하단의 경우 Arduino 보드의 올바른 위치에 헤더를 배치하고 커넥터 상단에 라우팅 보드를 배치하여 수 헤더를 정렬할 수 있습니다. 그런 다음, Arduino와 라우팅 보드가 적절하게 정렬되도록 1x8과 1x4 헤더를 납땜하면 됩니다. 전원 잭에서도 동일한 작업을 실행할 수 있지만, 잭은 조립 후 Arduino에 고정되지 않으므로 shim을 단단히 조립해야 합니다. 우회 콘덴서를 납땜한 후, 모터 제어용 1x3 수 헤더 6개와 1x2 Phoenix Contact 헤더로 보드 상단을 채우면 됩니다. 모터 마운트에 최대 공간을 확보하기 위해 커넥터의 스냅 하단이 모터를 향하도록 헤더의 방향이 설정되어 있어야 합니다.

모든 구성요소가 제자리에 납땜되면 스탠드오프와 나사를 사용하여 시스템을 조립할 수 있습니다. Arduino와 플라스틱 인클로저 하단부 사이에 기계적 안정성을 제공하는 4개의 수-암 6mm 스탠드오프가 있습니다. 하지만, Arduino의 한 구멍(SCL 핀 근처의 것)이 Arduino의 암 헤더에 가까워서 사용할 수 없으므로 Arduino와 맞춤 실드 사이에는 3개의 11mm 암-암 스탠드오프만 있습니다. Arduino에 스탠드오프를 고정하기 위해 세 개의 수-암 스탠드오프에 세 개의 암-암 스탠드오프를 나사로 고정합니다. 그런 다음, 라우팅 보드 실드를 3개의 M3 나사로 스탠드오프에 연결합니다. 그림 5는 채워진 실드가 Arduino에 마운트된 모습을 개념화한 단면도입니다. 그림 6은 시스템이 채워지고 마운트된 사진입니다.

채워진 실드가 Arduino에 마운트된 것을 개념화한 단면도

그림 5. 헤더, 전원 잭, 스페이서로 채워진 실드가 표시됨(개념화한 단면도)

채워진 실드 상단

그림 6. 채워진 rev2.2 실드가 Arduino에 마운트된 모습(상단 뷰)

컨트롤러 인클로저

컨트롤러에는 맞춤 인클로저가 포함되어 있습니다. 기계 도면은 그림 7에 표시되어 있습니다.

인클로저의 기계 도면

그림 7. 인클로저의 기계 도면

조립된 컨트롤러는 4개의 카운터싱크 나사로 인클로저 하단 플레이트를 거쳐 인클로저에 마운트합니다. 인클로저는 6개의 둥근머리 나사와 2개의 접시머리 나사로 조립할 수 있습니다. 서보 번호 순서 및 5V 외부 전원 공급 장치와 같은 관련 정보를 플라스틱 상단에 새깁니다. 그림 8은 조립된 인클로저 내에 있는 컨트롤러의 사진입니다.

인클로저에 조립된 시스템

그림 8. 인클로저에 조립된 시스템

호스트에서 소프트웨어 제어

마이크로 코드를 UNO에 다운로드하여 PWM 핀을 모터 신호에 할당하고 다양한 각도에 맞는 펄스 폭 범위를 정의할 수 있습니다. 6개의 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

기타 자료

기계 도면 다운로드

소프트웨어 제어 다운로드