이것은 Arduino와 Processing을 사용하여 가상 현실을 구현하는 방법을 배우는 매우 흥미로운 프로젝트입니다. 우리 대부분에게 Jon Favreau의 영화 Iron man은 항상 우리의 삶을 더 쉽고 재미있게 만들어 줄 새로운 것을 만드는 영감이었습니다. 저는 개인적으로 영화에 나오는 테크에 감탄했고 항상 이와 비슷한 것을 만들고 싶었습니다. 그래서이 프로젝트에서 저는 컴퓨터 앞에서 손을 흔들고 포인터를 원하는 위치로 옮기고 몇 가지 작업을 수행 할 수있는 것처럼 영화에서 일어나는 가상 현실을 모방하려고했습니다.
여기 에서는 웹캠 앞에서 손을 흔들고 컴퓨터에 무언가를 그리는 방법을 보여 드리겠습니다. 또한 가상으로 손을 움직이고 공중에서 손가락으로 클릭을하여 조명을 전환하는 방법도 보여 드리겠습니다.
개념:
이를 위해서는 Arduino와 Processing이 결합 된 힘을 활용해야합니다. 대부분은 Arduino에 익숙하지만 Processing은 새로운 것일 수 있습니다. Processing은 Arduino와 같은 응용 프로그램이며 오픈 소스이며 무료로 다운로드 할 수 있습니다. Processing을 사용하면 간단한 시스템 애플리케이션, Android 애플리케이션 등을 만들 수 있습니다. 또한 이미지 처리 및 음성 인식을 수행하는 기능도 있습니다. 아두 이노와 똑같고 배우기 쉽지만, 제가이 튜토리얼을 아주 간단하게 작성했기 때문에 처리에 완전히 익숙하지 않아도 걱정하지 마세요.
이 자습서에서는 Processing을 사용하여 UI를 제공하고 이미지 처리를 사용하여 손의 위치를 추적하는 간단한 시스템 응용 프로그램을 만듭니다. 이제 손가락으로 왼쪽 클릭과 오른쪽 클릭을해야합니다. 이를 위해 Arduino Nano에서 읽을 두 개의 홀 센서 (검지 손가락에 하나, 중지 손가락에 하나)를 사용했습니다. Arduino는 또한 Bluetooth를 통해 무선으로 클릭 상태를 컴퓨터에 전송합니다.
복잡하게 들릴 수도 있지만, 나를 믿으십시오. 소리만큼 어렵지는 않습니다. 이제이 프로젝트를 시작하고 실행하는 데 필요한 자료를 살펴 보겠습니다.
필요한 재료:
- Arduino Nano
- 홀 센서 (A3144) – 2Nos
- 작은 자석 조각
- 블루투스 모듈 (HC-05 / HC-06)
- 9V 배터리
- 와이어 연결 도트 보드.
- 장갑 한 켤레
- Arduino IDE (소프트웨어)
- IDE (소프트웨어) 처리
- 웹캠 및 Bluetooth가있는 컴퓨터 (컴퓨터에 외부 Bluetooth 또는 웹캠을 사용할 수도 있음)
회로도 및 하드웨어:
이 프로젝트의 하드웨어 부분은 매우 간단하고 구축하기 쉽습니다. 전체 회로도가 아래에 나와 있습니다.
Arduino, 저항기 및 버그 스틱 핀은 아래와 같이 도트 보드에 납땜됩니다.
홀 센서와 블루투스 모듈은 아래와 같이 커넥터 와이어에 납땜됩니다.
이 두 섹션이 준비되면 사용하기 쉽도록 장갑에 조립할 수 있습니다. 가까운 의료 상점에서 구입할 수있는 일회용 플라스틱 장갑을 사용했습니다. 자석이 엄지 손가락에 있는지 확인하고 홀 센서 1과 홀 센서 2가 검지와 중지 앞에 각각 있어야합니다. 부품을 제자리에 고정하기 위해 오리 테이프를 사용했습니다. 구성 요소가 조립되면 다음과 같이 보일 것입니다.
이제 Arduino IDE를 열고 프로그래밍을 시작하겠습니다.
Arduino 용 프로그램:
이 Arduino 코드의 목적은 홀 센서의 상태를 읽고 Bluetooth 모듈을 사용하여 브로드 캐스트하는 것입니다. 또한 Bluetooth에서 데이터를 수신하고 들어오는 값에 따라 온보드 LED를 토글해야합니다. 전체 프로그램은이 튜토리얼의 끝에 제공됩니다. 아래에 몇 줄도 설명했습니다.
if (Phs1! = HallState_1-Phs2! = HallState_2) // 새 키가 눌 렸는지 확인 {if (HallState_1 == LOW && HallState_2 == LOW) Aisha.write (1); if (HallState_1 == HIGH && HallState_2 == LOW) Aisha.write (2); if (HallState_1 == 낮음 && HallState_2 == 높음) Aisha.write (3); if (HallState_1 == HIGH && HallState_2 == HIGH) Aisha.write (4); }
홀 센서의 상태에 따라 위의 줄에 표시된 것처럼 Bluetooth는 특정 값을 기록합니다. 예를 들어 홀 센서 1이 높고 홀 센서 2가 낮 으면 블루투스 모듈을 통해 베일 "2"를 브로드 캐스트합니다. BT 모듈에 값을 기록하고 인쇄하지 않도록하십시오. 쓰면 처리면에서만 읽기 쉽기 때문입니다. 또한 값은 이전 값과 동일하지 않은 경우에만 전송됩니다.
if (BluetoothData == 'y') digitalWrite (ledpin, HIGH); if (BluetoothData == 'n') digitalWrite (ledpin, LOW);
이 라인은 BT 모듈이 수신하는 값에 따라 핀 13에 연결된 온보드 LED를 토글하는 데 사용됩니다. 예를 들어 모듈이 'y'를 수신하면 LED가 켜지고 'n'을 수신하면 꺼집니다.
처리 프로그램:
Processing 프로그램의 목적은 UI (사용자 인터페이스) 역할을 할 수있는 시스템 응용 프로그램을 만들고 특정 개체를 추적하는 이미지 처리도 수행하는 것입니다. 이 경우 위의 장갑에 붙인 파란색 물체를 추적합니다. 이 프로그램에는 기본적으로 4 개의 화면이 있습니다.
- 보정 화면
- 메인 화면
- 페인트 화면
- LED 토글 화면
손을 흔들고 화면을 공중으로 드래그하여 한 화면에서 다른 화면으로 이동할 수 있습니다. 원하는 곳을 클릭하여 LED를 전환하거나 화면에 무언가를 그릴 수도 있습니다.
전체 처리 프로그램 (마지막에 제공됨)을 복사하여 붙여넣고 창의성에 따라 수정하거나 여기에서 EXE 파일을 간단히 다운로드 한 후 다음 단계에 따라 응용 프로그램을 시작할 수 있습니다.
- 이전에 설치하지 않은 경우 컴퓨터에 JAVA를 설치하십시오.
- 컴퓨터에 완벽한 You Cam 설치
- Arduino의 전원을 켜고 컴퓨터를 Bluetooth 모듈과 페어링하십시오.
- 응용 프로그램 파일 시작
모든 것이 잘되면 Bluetooth 모듈의 LED가 안정되고 웹캠 표시등이 켜진 것을 확인할 수 있습니다. 문제가 있으시면 댓글란을 통해 연락 주시면 도와 드리겠습니다.
마지막에있는 비디오를보고 애플리케이션을 보정하고 사용하는 방법을 알아보십시오.
코드를 수정하고 여기에 더 많은 기능을 빌드하려는 경우 프로그램에 대한 다음 통찰력을 사용할 수 있습니다.
프로세싱 IDE는 여기에서 다운로드 할 수 있습니다. 처리에 대해 더 배우고 더 흥미로운 프로젝트를 만들고 싶다면 여기에서 튜토리얼을 방문 할 수 있습니다.
프로세싱은 직렬 데이터를 읽을 수있는 기능을 가지고 있으며,이 프로그램에서 직렬 데이터는 Bluetooth COM 포트에서 가져옵니다. 아래의이 라인을 사용하여 블루투스가 연결된 COM 포트를 선택해야합니다.
port = new Serial (this, Serial.list (), 9600);
여기 에서 필자의 경우 COM5 인 첫 번째 COM 포트를 선택 했으며 (아래 이미지 참조) Bluetooth 모듈이 9600 전송 속도에서 실행된다고 언급했습니다.
앞서 언급 한 것처럼 이미지 처리 기능도 있으므로이 튜토리얼에서는 웹캠을 사용하여 스케치 내부로 이미지를 보냅니다. 각 이미지에서 특정 개체를 추적합니다. 이에 대한 자세한 내용은이 튜토리얼을 참조하십시오.
나는 코멘트 줄을 통해 프로그램을 설명하기 위해 최선을 다했습니다. 여기에서 파일을 다운로드 할 수 있습니다.
스케치에 대해 더 알고 싶다면 댓글 섹션을 통해 저에게 연락하시면 도와 드리겠습니다.
일:
하드웨어와 소프트웨어가 준비되면 장갑을 끼고 조치를 취할 준비를하십시오. 이제 Arduino에 전원을 공급 한 다음 애플리케이션을 실행하기 만하면됩니다. Bluetooth 모듈의 LED가 안정적이어야합니다. 이제 시스템 애플리케이션이 Arduino와의 Bluetooth 링크를 설정했음을 의미합니다.
추적 할 개체를 선택해야하는 다음 화면이 나타납니다. 이 추적은 개체를 클릭하여 간단히 수행 할 수 있습니다. 이 경우 개체는 파란색 디스크입니다. 이제 개체를 이동하고 포인터가 개체를 따르는 것을 확인할 수 있습니다. 최상의 결과를 얻으려면 고유 한 색상 개체와 밝은 공간을 사용하십시오.
이제 검지 손가락으로 엄지 손가락을 터치하면 "Key 1 Pressed"라는 메시지가 표시되고 중지로 엄지 손가락을 누르면 "Key 2 Pressed"가 표시됩니다. 이것은 모든 것이 잘 작동하고 보정이 끝났음을 나타냅니다. 이제 완료 버튼을 클릭하십시오.
완료 버튼을 누르면 아래 비디오와 같이 아두 이노 보드의 LED를 공중에 페인트하거나 토글 할 수있는 메인 화면으로 이동합니다.