증강 현실 및 가상 게임 은 게임 산업에서 최근 트렌드가되었습니다. 컴퓨터 게임을하기 위해 키보드 / 조이스틱과 마우스를 사용하는 시대는 지나갔습니다. 이제 모든 게임 콘솔에는 신체 움직임과 제스처를 사용하여 게임을 플레이하는 데 도움 이되는 가상 컨트롤러 가 함께 제공됩니다. 이렇게하면 게임 경험이 많이 증가하고 사용자가 게임에 더 많이 참여하게됩니다.
이 프로젝트에서 우리가 프로젝트를 통해 배우면서 재미있게 놀아 보자. 게임을 만들고 (예, 맞습니다. 게임을 만들려고합니다) 손의 움직임을 사용하여 플레이합니다. 우리는 Arduino와 Accelerometer를 사용하여 고전적인 탁구 공 게임을 만들고 있습니다.
개요:
요즘 우리와 같은 애호가들에게 많은 행복을 가져다 준 수많은 오픈 소스 소프트웨어가 있으며 Processing 은 그중 하나입니다. 이 JAVA 기반 응용 프로그램을 사용하면 자체 소프트웨어 (.exe 형식)와 Android 응용 프로그램 (.apk 파일)을 구축 할 수 있습니다. 그래서 우리는 게임을 만들기 위해이 소프트웨어를 사용할 것입니다. 우리는 이전에 Arduino 대화방을 만들 때 Processing을 사용했습니다.
하드웨어 부분은 가속도계에서 입력을 가져 와서 컴퓨터 / 노트북에 직렬로 공급하는 Arduino로 구성됩니다.
그러니 쇼핑하러 가자 !!!!
필요한 구성 요소:
- Arduino (모든 버전 또는 모델)
- 가속도계
- 전선 연결
- 이자 (Lolz)
가속도계 및 Arduino Nano
회로 설명:
Arduino Ping Pong Ball Game Project의 회로는 복잡한 연결을 포함하지 않습니다. 가속도계와 함께 Arduino Nano를 사용했습니다 . 그러나 아래에 언급 된대로주의해야 할 사항이 거의 없습니다.
1. 가속도계는 5V를 처리 할 수 없으므로 항상 가속도계의 Vcc를 Arduino의 3.3V 핀에 연결하십시오.
2. 모든 가속도계는 프로그래밍하는 동안 처리해야하는 중력의 영향을받습니다 (단순히 필터 사용).
이를 염두에두고 가속도계의 작동과 사용 방법을 살펴 보겠습니다.
가속도계의 작동:
가속도계는 그 각각의 가변 전압을 임의의 방향으로 가속도를 전환 할 수있는 장치이다. 이는 커패시터 (이미지 참조)를 사용하여 수행되며, Accel이 이동함에 따라 내부에있는 커패시터도 이동에 따라 변경 (이미지 참조)됩니다. 커패시턴스가 변하기 때문에 가변 전압도 얻을 수 있습니다.
따라서 위에서 언급했듯이 모든 가속도계는 중력 효과의 문제를 겪습니다. 센서가 아무리 정확하게 보정 되더라도 (애플 폰 Accel.) 중력의 영향을받습니다. 이 문제에 대한보다 기술적 설명은 아래에 나와 있습니다.
이제 Arduino에서 Simple Filter를 사용하여 중력의 영향을 줄일 수 있습니다. 이 필터는 두 개의 배열로 구성됩니다. 하나는 센서의 샘플 값을 저장하는 데 사용되고 다른 하나는 샘플 값을 정렬하고 가장 많이 반복되는 값을 찾는 데 사용됩니다. Arduino에서이 알고리즘을 구현하고 하드웨어를 준비하겠습니다.
Arduino 프로그래밍:
Arduino 프로그램은 아래 코드 섹션에 나와 있습니다. 수정해야 할 중요한 데이터가 없습니다. 그러나 다음을 고려할 수 있습니다.
Accel에 여전히 임의의 값이 표시되면 샘플 크기를 늘립니다.
#define Samplesize 13 // filterSample 번호
Arduino와 Processing 간의 통신 속도를 높이려면 9600 보오율로 재생하십시오. 그러나 두 소프트웨어 (프로그램)에서 변경해야합니다.
void setup () {Serial.begin (9600); }
X 축의 내 가속도계는 맨 왼쪽 끝에서 193, 맨 오른쪽 끝에서 280을 제공하며 Accel을 측정하고 값을 업데이트합니다.
toSend =지도 (smoothData1, 193, 280, 0, 255);
값은 직렬 통신을 위해 단일 바이트 데이터로 매핑됩니다.
명확하게 이해 하려면 아래 주어진 코드 의 주석을 추가로 확인하십시오.
프로그래밍 처리:
Processing 은 아티스트가 그래픽 디자인을 위해 사용하는 오픈 소스 소프트웨어입니다. 이 소프트웨어는 소프트웨어 및 Android 애플리케이션을 개발하는 데 사용됩니다. 개발이 매우 쉽고 Android Development IDE와 매우 유사합니다. 따라서 설명을 짧게했습니다.
탁구 게임 의 처리 코드 는 다음과 같습니다.
- Arduino Ping Ball Game 처리 코드
그것을 마우스 오른쪽 버튼으로 클릭하고 '다른 이름으로 링크 저장..'을 클릭하여 코드 파일을 다운로드하십시오. 그런 다음 '처리 중'소프트웨어에서 파일을 열고 '실행'버튼을 클릭하여 게임을 실행합니다. *.pde 파일을 열려면 '처리'소프트웨어를 설치해야합니다. 코멘트 섹션은 질의를 위해 열려 있으며 프로그램의 코멘트를 확인하여 더 잘 이해할 수 있습니다.
아래 줄에서는 데이터 처리 포트를 결정하므로 코드 처리의 void setup () 함수가 중요합니다.
port = new Serial (this, Serial.list (), 9600); // 9600 전송 속도로 4 번째 PORT를 읽습니다.
여기에서 Arduino의 네 번째 포트에서 데이터를 읽었습니다.
따라서 예를 들어 COM COM COM COM COM이있는 경우
그런 다음 위의 코드는 COM에서 데이터를 읽습니다.
테스트:
이제 Processing 및 Arduino 스케치가 준비되었으므로 아래 주어진 프로그램을 Arduino에 업로드하고 Arduino를 프로그래밍 케이블을 통해 사용자 PC에 연결하고 처리 코드 파일 (.pde)을 실행하여 게임을 시작하십시오. 그게 다야! 가속도계를 움직여 탁구 게임을 하세요. 비디오는 전체 프로젝트를 통해 여러분을 안내 할 것입니다.
프로그램을 이해하면 유사한 게임을 많이 만들고 Arduino를 사용하여 재생할 수 있습니다. 또한 게임에 Y 축과 Z 축이 포함될 수도 있습니다.