객체 추적 시스템 만들기 2 부 : 서보 제어

opencv 라즈베리파이 face tracking 얼굴인식 안면인식 image tracking (십일월 2018).

Anonim

객체 추적 시스템 만들기 2 부 : 서보 제어


서보 모터의 기본 작동법과 Arduino Uno를 사용하여 서보 모터와의 인터페이스 방법을 학습하십시오.

이 프로젝트 시리즈의 두 번째 부분에서는 서보를 살펴보고이 프로젝트 시리즈의 다음 단계에서 초음파 센서와 통합하기 위해 매초마다 서보를 임의의 위치로 이동시키는 코드를 구현합니다.

이 프로젝트의 1 부는 여기에서 찾을 수 있습니다 : 객체 추적 시스템 만들기 : 내장 Arduino 라이브러리 사용하기

필수 부품 :

  • 아르 두노 우노
  • 5V 허용 180 ° 서보

배선도는 아래에 있으며 매우 간단합니다 : 단 3 개의 연결. 다이어그램에서 빨간색은 5V, 검정색은 GND, 노란색은 제어 전선입니다.

그림 1 : Arduino / Servo 배선 다이어그램

서보는 제어 핀에 PWM (Pulse Width Modulation) 신호를 보냄으로써 제어됩니다. PWM 신호의 펄스 폭은 서보의 위치를 ​​명령합니다. 아래는 서보의 펄스 폭 제어 체계의 예입니다. 보시다시피, 최소한의 펄스 폭 (0.5ms)에서 서보는 굴절의 가장 왼쪽 끝에 있으며 최대 펄스 폭 (2.5ms)에서는 서보가 굴절의 가장 오른쪽 끝에 있습니다.

그림 2 : 서보 제어 체계

Arduino IDE에는 서보와의 인터페이싱을위한 라이브러리 (Servo.h)가 함께 제공됩니다. 이 라이브러리를 구현하면 Servo를 구동하는 데 필요한 코드가 크게 단순 해집니다. 라이브러리는 PWM 주파수 설정을 처리하고 위치 제어를위한 간단한 명령을 제공합니다. ServoName.write (X) "ServoName"은 사용자가 선택한 고유 한 이름이고 "X"는 각도로 원하는 위치이며 " .write "는 필수 구문입니다. 아래의 코드 스 니펫은 1 초마다 임의의 위치를 ​​생성하고 서보를 그 위치로 이동시키는 예제입니다. 통합 단계에서 난수 생성은 추적 알고리즘의 출력으로 바뀝니다.

USB 포트에서 Arduino에만 전원을 공급하는 경우 서보에 전원을 공급하기 전에 DC 전원을 연결해야합니다. 서보에서 전류를 끌어 오면 5V 레일이 처져 보드가 리셋되어 불안정해질 수 있습니다.

 #include "Servo.h" // Implements easy to use servo controls Servo ServoOne; // Generates an instance of a servo object int ServoPosition = 0; // Variable to be used to assign position of servo void setup() // Initialize { ServoOne.attach(9); // Assigns pin 9 as a servo } void loop() // Main loop { ServoPosition = random(0, 180); // Generates a random number and stores it in ServoPosition ServoOne.write(ServoPosition); // Commands servo to spin to position delay(1000); // Delays for 1000 ms } 

이 프로젝트는 네이티브 라이브러리를 활용하여 주변 장치와의 인터페이스를 단순화합니다. 다음 프로젝트에서는 객체 추적 알고리즘을 생성하는 자체 함수를 작성합니다.

시리즈의 다음 기사 : 객체 감지와 통합 서보 제어

이 프로젝트에 직접 참여하십시오! BOM 가져 오기.