제조공정
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 10 |
| ||||
|
1단계:이론
이 프로젝트에서는 초음파 거리 센서를 사용하고 있습니다. 사람이 들을 수 없는 범위의 음파를 생성하고 이 음파가 장애물에 부딪치고 되돌아오는 데 필요한 시간을 계산하여 거리를 측정합니다. 이는 박쥐나 유람선이 사용하는 원리와 유사합니다.
우리가 사용할 또 다른 구성 요소는 서보 모터입니다. 그것은 주어진 각도 위치로 매우 정확하게 회전하고 그 상태를 유지할 수 있다는 점에서 일반적인 DC 모터와 다릅니다. 서보 모터에 일정 시간 펄스가 가해지면 해당 각도 위치로 이동합니다.
이 두 구성 요소를 모두 사용하여 로봇의 180도 시야를 확보할 것입니다.
2단계:자료 수집
이 프로젝트는 다음 하드웨어를 사용합니다.
<울>
3단계:기계 조립
범용 PCB의 작은 조각을 사용하여 HC-04용 작은 헤더를 만들고 양면 테이프 조각을 사용하여 서보 혼에 부착합니다.
이 단계는 선택 사항이지만 시스템을 더 작게 만들기 위해 양면 테이프를 사용하여 프로토보드 실드의 돌출 부분에도 서보를 부착했습니다.
최종 결과는 Wall-E의 복부처럼 보일 것입니다.
4단계:Arduino 코드
Arduino 코드는 서보 모터의 움직임과 초음파 센서의 판독값이 캡처되는 시기와 빈도를 제어합니다. 또한 센서 데이터를 직렬 포트로 푸시합니다.
<울>
5단계:MatLab 코드
MatLab 코드는 보드의 실제 제어보다 데이터를 더 많이 다루므로 모든 센서 데이터는 직렬을 통해 PC로 푸시되고 MatLab에서 읽습니다.
이제 Arduino에서 받은 데이터는 두 가지를 알려줍니다. 서보의 회전 정도와 그 방향으로 장애물의 거리. 따라서 이 시점에서 우리가 가지고 있는 데이터는 극좌표계에 있습니다. 시각화할 때 사람의 눈에 이해가 되려면 데카르트 또는 X-Y 좌표계로 변환해야 합니다.
따라서 MatLab 코드는 바로 이 작업을 수행합니다. COM 포트에서 직렬로 데이터를 받아 회전각도가 있는 행렬에 저장한 후 위의 공식에 따라 데카르트 좌표로 변환합니다.
완료되면 그래프에 점을 그려서 출력을 제공합니다. 보드를 상자에 넣었더니 아래와 같은 결과가 나왔습니다.
6단계 :결론
시스템이 완벽하지는 않지만 작업을 완료합니다. 상자의 너비와 길이를 대략적으로 추정하여 데이터를 정확하게 보낼 수 있습니다.
현재 내가 볼 수 있는 유일한 오류는 서보가 움직이는 동안 센서가 흔들리고 센서 자체에서 잘못된 판독값이 발생하기 때문입니다.
이 외에도 시스템은 잘 작동하며 기본 컴퓨터 비전 프로젝트뿐만 아니라 깊이 지각 실험에도 사용할 수 있습니다.
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">theta =0:(pi/180):pi;s =serial('COM10');s.BaudRate=9600fopen(s)i =0;inc =1;while i<180 A =fgets(들); 숫자(i+1) =str2num(A); i =i+1;endfclose(s)j =1 동안 j<181 tab(j,1) =(j-1)*inc tab(j,2) =num(j) tab(j,3) =num( j)*cosd((j-1)*inc) tab(j,4) =num(j)*sind((j-1)*inc) j =j+1end%Figure%polar(theta,num)plot (탭(:,3),탭(:,4))
#include#include #define TRIGGER_PIN 12 #define ECHO_PIN 11 #define MAX_DISTANCE 200 NewPing 소나(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); 서보 마이서보; 정수 위치 =0; int it =10; 무효 setup() { myservo.attach(9); Serial.begin(9600); 지연(3000);} 무효 루프() { int i =0; 정수 t =0; 정수 =0; for (i =0, i <180, i ++) { unsigned int uS =sonar.ping(); myservo.write(i); 지연(20); (t =0; t 섹션> 회로도
서보 및 초음파 센서 연결용 Fritzing 파일 YunConfig.fzz
제조공정
Arduino를 이용한 초음파 거리 측정 프로젝트 초음파 거리 측정은 최근 다양한 응용 분야에서 유용한 도구입니다. 위치 지정, 위치 지정, 치수 측정, 선택, 레벨 측정, 제어 및 프로파일링과 같은 다양한 애플리케이션에서 사용할 수 있습니다. 출력 값으로 몇 가지 수학적 계산을 수행하여 속도 및 기타 다양한 물리적 치수도 측정할 수 있습니다. 이 장치는 로봇 공학 분야에서도 응용할 수 있습니다. 따라서 이러한 애플리케이션을 염두에 두고 초음파 센서는 작은 거리에 대해 물리적인 접촉 없이 거리를 측정할 수 있는 훌륭한 도구입니다.
로봇이나 장난감 자동차를 설계하려는 경우 모터에 대한 지식이 가장 중요합니다. 이러한 모터를 제어하는 매우 비용 효율적이고 쉬운 방법은 L293D 드라이버 모터 실드를 사용하는 것입니다. 더 나은 방법은 Arduino와 같은 마이크로 컨트롤러와 인터페이스에서 사용하는 것입니다. 그 중에서도 L293D 모터 드라이버는 동종 칩셋 중 가장 인기 있는 칩셋 중 하나입니다. 더욱이 서보, 스테퍼 및 DC 모터와 같은 전자 제품의 다양한 응용 분야에 적합합니다. 그러나 그것의 중요한 속성은 두 개의 독립적인 DC 모터에서 방향과 속도