로봇은 건설, 군사, 의료, 제조 등 모든 분야에서 자동화에 중요한 역할을하고 있습니다. 라인 팔로워 로봇, 컴퓨터 제어 로봇 등과 같은 기본적인 로봇을 만든 후, 우리는이 가속도계 기반 제스처 제어 로봇 을 사용하여 개발했습니다. arduino uno. 이 프로젝트에서는 로봇을 구동하기 위해 손 동작을 사용했습니다. 이를 위해 우리는 가속에 작용하는 가속도계를 사용했습니다.
필수 구성 요소
- Arduino UNO
- DC 모터
- 가속도계
- HT12D
- HT12E
- RF 쌍
- 모터 드라이버 L293D
- 9 볼트 배터리
- 배터리 커넥터
- USB 케이블
- 로봇 섀시
RF 쌍:
제스처 제어 로봇 버튼이나 조이스틱 등 다른 방법 대신에, 손을 이용하여 제어된다. 여기에서는 로봇을 제어하기 위해 손만 움직이면됩니다. RF 송신기와 가속도계가 포함 된 전송 장치가 손에 사용됩니다. 전진, 후진, 좌회전, 우회전, 정지 등 필요한 작업을 수행 할 수 있도록 로봇에 명령을 전송합니다. 이 모든 작업은 손 제스처를 사용하여 수행됩니다.
여기서 가장 중요한 구성 요소는 가속도계입니다. 가속도계는 + -3g 범위의 3 축 가속도 측정 장치입니다. 이 장치는 가속도를 측정하기 위해 폴리 실리콘 표면 센서와 신호 조절 회로를 사용하여 만들어졌습니다. 이 장치의 출력은 본질적으로 아날로그이며 가속도에 비례합니다. 이 장치는 기울일 때 중력의 정적 가속도를 측정합니다. 그리고 움직임이나 진동의 형태로 결과를 제공합니다.
adxl335 폴리 실리콘 표면 미세 가공 구조 의 데이터 시트에 따르면 실리콘 웨이퍼 위에 배치됩니다. 폴리 실리콘 스프링은 웨이퍼 표면 위에 구조를 매달아 가속력에 대한 저항력을 제공합니다. 구조의 변형은 이동하는 질량에 부착 된 독립적 인 고정 플레이트와 플레이트를 통합하는 차동 커패시터를 사용하여 측정됩니다. 고정판은 180 ° 위상차 사각 파에 의해 구동됩니다. 가속은 움직이는 질량을 편향시키고 차동 커패시터의 불균형을 초래하여 진폭이 가속에 비례하는 센서 출력을 생성합니다. 그런 다음 위상에 민감한 복조 기술을 사용하여 가속의 크기와 방향을 결정합니다.
가속도계 핀 설명
- Vcc 5 볼트 전원이이 핀에 연결되어야합니다.
- X-OUT이 핀은 x 방향으로 아날로그 출력을 제공합니다.
- Y-OUT이 핀은 y 방향으로 아날로그 출력을 제공합니다.
- Z-OUT이 핀은 z 방향으로 아날로그 출력을 제공합니다.
- GND 접지
- ST 센서의 감도 설정에 사용되는 핀
회로도 및 설명
제스처 제어 로봇은 두 섹션으로 나뉩니다.
- 송신기 부분
- 수신기 부분
송신기 부분에서는 가속도계와 RF 송신기 장치가 사용됩니다. 가속도계가 아날로그 출력을 제공한다고 이미 논의했듯이 여기서는이 아날로그 데이터를 디지털로 변환해야합니다. 이를 위해 ADC 대신 4 채널 비교기 회로를 사용했습니다. 기준 전압을 설정하여 디지털 신호를 얻은 다음이 신호를 HT12E 인코더에 적용하여 데이터를 인코딩하거나 직렬 형식으로 변환 한 다음 RF 송신기를 사용하여이 데이터를 환경으로 보냅니다.
수신기 끝에서는 RF 수신기를 사용하여 데이터를 수신 한 다음 HT12D 디코더에 적용했습니다. 이 디코더 IC는 수신 된 직렬 데이터를 병렬로 변환 한 다음 arduino를 사용하여 읽습니다. 수신 된 데이터에 따라 정, 역, 좌, 우 및 정지 방향으로 두 개의 DC 모터를 사용하여 로봇을 구동합니다.
일
제스처 제어 로봇은 손에 송신기를 놓을 때 손의 움직임에 따라 움직입니다. 손을 앞쪽으로 기울이면 로봇은 전진하기 시작하고 다음 명령이 주어질 때까지 전진을 계속합니다.
손을 뒤로 기울이면 로봇은 상태를 바꾸고 다른 명령이 내려 질 때까지 뒤로 이동하기 시작합니다.
로봇을 왼쪽으로 기울이면 다음 명령까지 좌회전합니다.
오른쪽 로봇에서 손을 기울이면 오른쪽으로 돌았습니다.
그리고 로봇을 멈추기 위해 우리는 손을 안정적으로 유지합니다.
송신기 섹션의 회로도
수신기 섹션의 회로도
이 손동작 제어 로봇의 회로는 매우 간단합니다. 위의 회로도에서 볼 수 있듯이 RF 쌍은 통신에 사용되며 arduino와 연결됩니다. 로봇을 실행하기 위해 모터 드라이버가 arduino에 연결됩니다. 모터 드라이버의 입력 핀 2, 7, 10 및 15는 각각 arduino 디지털 핀 번호 6, 5, 4 및 3에 연결됩니다. 여기서는 두 개의 DC 모터를 사용하여 로봇을 구동했습니다. 하나의 모터는 모터 드라이버 3과 6의 출력 핀에 연결되고 다른 모터는 11과 14에 연결됩니다. 9 볼트 배터리는 모터 구동 용 모터 드라이버에 전원을 공급하는데도 사용됩니다..
프로그램 설명
프로그램에서 먼저 모터에 대한 출력 핀을 정의했습니다.
그런 다음 설정에서 고정 할 방향을 지정했습니다.
그런 다음 'if 문'을 사용하여 입력을 읽고 상대 연산을 수행합니다.
이 제스처 제어 로봇에는 다음과 같은 총 5 가지 조건이 있습니다.
손의 움직임 |
제스처에서 Arduino에 대한 입력 |
||||
측면 |
D3 |
D2 |
D1 |
D0 |
방향 |
안정된 |
0 |
0 |
0 |
0 |
중지 |
오른쪽으로 기울이기 |
0 |
0 |
0 |
1 |
우회전 |
왼쪽으로 기울이기 |
0 |
0 |
1 |
0 |
왼쪽으로 돌아 |
뒤로 기울이기 |
1 |
0 |
0 |
0 |
뒤로 |
앞쪽 기울이기 |
0 |
1 |
0 |
0 |
앞으로 |
위의 표 조건에 따라 완전한 프로그램을 작성했습니다. 아래는 완전한 코드입니다.