이 글에서는 휴대폰 의 G 센서 를 통해 로봇 카를 제어 할 예정이며, 휴대폰을 기울이는 것만으로 로봇을 움직일 수 있습니다. 이 G-Sensor 제어 로봇에 Arduino 및 RemoteXY 앱 도 사용할 것 입니다. RemoteXY 앱은 로봇 제어를위한 스마트 폰 인터페이스를 생성하는 데 사용됩니다. 인터페이스에 조이스틱을 추가하여 로봇을 조이스틱으로 제어 할 수있을뿐만 아니라 전화기를 기울여도 제어 할 수 있습니다.
G-Sensor 또는 Gravity 센서 는 기본적으로 휴대폰의 화면 방향을 제어하는 데 사용되는 스마트 폰의 가속도계입니다. 가속도계 는 중력의 X, Y, Z 방향을 감지하고 전화기의 정렬에 따라 화면을 회전합니다. 요즘 에는 화면의 방향을 결정하기 위해 모바일에서 더 민감하고 정확한 자이로 스코프 센서 가 사용됩니다. 우리 프로젝트에서 로봇 자동차는 전화기가 기울어지는 방향에 따라 움직입니다. 예를 들어 전화기를 앞으로 기울이면 자동차가 앞으로 이동하고 아래로 기울인 다음 자동차가 뒤로 이동합니다. 이것은 모바일에서 자동차 게임을 할 때 G 센서를 사용하여 그에 따라 자동차를 움직이는 것과 같습니다. 마지막에 비디오를 확인하고 여기에서 다른 로봇 프로젝트도 확인하십시오.
필수 구성 요소:
- 두 바퀴 로봇 자동차 섀시
- Arduino UNO
- L298N 모터 컨트롤러
- HC-06 블루투스 모듈 (HC-05도 작동 함)
- 전원 공급 장치 또는 셀
- 전선 연결
RemoteXY 앱을 사용하여 로봇 용 인터페이스 생성:
RemoteXY 앱을 사용하여 Robot Car를 제어하기위한 인터페이스를 생성하려면 다음 링크로 이동해야합니다.
remotexy.com/en/editor/ 웹 페이지는 다음과 같습니다.
그런 다음 화면 왼쪽 에서 스위치 버튼과 조이스틱을 잡고 모바일 인터페이스에 배치합니다. 버튼은 Arduino 내부에 연결된 핀 13의 표시등을 켜고 조이스틱이 로봇 자동차를 움직입니다. 스위치와 조이스틱을 배치 한 후의 웹 페이지는 다음과 같습니다.
그런 다음 조이스틱과 함께 G 센서 활성화 / 비활성화 버튼을 배치해야합니다. 그러면 휴대폰을 왼쪽, 오른쪽, 위, 아래 방향으로 기울여 로봇 자동차를 움직일 수 있습니다. 이 버튼을 사용하여 G 센서를 활성화 및 비활성화 할 수 있습니다. G 센서가 비활성화되면 조이스틱을 움직여 자동차를 제어 할 수 있습니다. 따라서 G 센서 활성화 / 비활성화 버튼을 배치하려면 인터페이스에 배치 한 조이스틱을 클릭하고 왼쪽에는 속성 섹션이 있으며 끝에 G 센서 버튼을 조이스틱 근처에 배치 할 수있는 옵션이 있습니다. 따라서 원하는 곳에 G 센서 버튼을 놓습니다. 이후의 웹 페이지는 다음과 같습니다.
그런 다음 "소스 코드 가져 오기" 버튼을 클릭하고 컴퓨터에 저장합니다. 여기에서 라이브러리를 다운로드하여 Arduino 라이브러리 폴더에 저장하십시오. 다운로드 한 코드를 컴파일하여 오류가 없는지 확인하십시오. 이것은 로봇을 실행하는 코드는 아니지만 Arduino와 함께 앱을 사용하는 데 도움이됩니다. 여기에서 앱을 다운로드하거나 Play 스토어로 이동하여 Android 스마트 폰용 RemoteXY 앱을 다운로드하세요.
회로도 및 설명:
먼저 L298N 모터 컨트롤러를 Arduino와 인터페이스합니다. 모터 컨트롤러의 ENA 및 ENB 핀을 Arduino 핀 12 및 11에 각각 연결합니다. 이 두 핀은 모터의 PWM 제어를위한 것입니다. 이 핀을 사용하여 자동차의 속도를 높이거나 낮출 수 있습니다. 그런 다음 IN1, IN2, IN3 및 IN4를 Arduino 핀 10, 9, 8 및 7에 각각 연결합니다. 이 핀은 모터를 양방향 (시계 방향 및 시계 반대 방향)으로 회전합니다.
모터에 전원을 공급하려면 배터리의 양극과 음극을 12V와 모터 컨트롤러의 접지에 연결하십시오. 그런 다음 모터 컨트롤러의 5V와 접지를 Arduino Vin 및 접지에 연결하십시오.
그런 다음 Bluetooth 모듈 HC-06을 arduino와 연결합니다. HC-05가 있으면 작동합니다. VCC와 Bluetooth 모듈의 접지를 5V와 Arduino의 접지에 연결합니다. 그런 다음 Bluetooth 모듈의 TX 핀을 Arduino의 핀 2에 연결하고 RX 핀을 Arduino의 핀 3에 연결합니다. 또한 Arduino와 함께 Bluetooth를 사용하는 방법에 대해 자세히 알아 보려면 Arduino를 사용하는 Bluetooth 제어 장난감 자동차를 확인하십시오.
코드 설명:
이 모바일 제어 로봇 자동차의 전체 Arduino 코드 는 아래 코드 섹션에 나와 있습니다. 여기서는이 코드가 어떻게 작동하는지 이해할 수 있습니다.
먼저 Software Serial 및 RemoteXY 용 라이브러리를 포함 시켰습니다. RemoteXY 라이브러리는 로봇 자동차를 제어하는 Arduino로 앱을 설정하는 데 도움이됩니다. 그 후 Bluetooth 모듈의 핀을 정의했습니다. Bluetooth 모듈의 TX는 Arduino의 RX 핀인 Arduino의 핀 2에 연결되고 Bluetooth 모듈의 RX는 Arduino의 핀 3에 연결됩니다. Arduino의 TX 핀이며 Bluetooth 모듈의 전송 속도를 9600으로 설정합니다.
#define REMOTEXY_MODE__SOFTWARESERIAL #include
다음 코드는 모터 속도를 높이거나 낮 춥니 다. 조이스틱이 중앙에있을 때 속도는 0이되고 전진 방향에있을 때 속도는 0에서 100으로 증가합니다. 자동차가 방향으로 이동할 때 속도는 0에서 -100으로 감소합니다. 역방향. 차량은 특정 속도로 움직일 수도 있습니다. 이것은 PWM 신호를 제공함으로써 가능합니다. pwm 신호는 조이스틱의 회전에 따라 모터에 제공됩니다.
if (motor_speed> 100) motor_speed = 100; if (motor_speed <-100) motor_speed = -100; if (motor_speed> 0) {digitalWrite (pointer, HIGH); digitalWrite (포인터, LOW); analogWrite (포인터, 모터 _ 속도 * 2.55); } else if (motor_speed <0) {digitalWrite (pointer, LOW); digitalWrite (포인터, HIGH); analogWrite (포인터, (-모터 _ 속도) * 2.55); } else {digitalWrite (포인터, LOW); digitalWrite (포인터, LOW); analogWrite (포인터, 0); }
다음 코드에서는 앱에서 조이스틱을 움직일 때마다 호출되는 함수를 정의했습니다. 앱에서 스위치를 켜면 LED 핀을 켜는 Arduino의 핀 13에 로직 1이 주어집니다. 로봇 카를 앞뒤로 움직이는 동안 Speed 기능이 호출됩니다.
void loop () {RemoteXY_Handler (); digitalWrite (ledpin, (RemoteXY.switch_1 == 0)? LOW: HIGH); 속도 (first_motor, RemoteXY.joystick_1_y-RemoteXY.joystick_1_x); 속도 (second_motor, RemoteXY.joystick_1_y + RemoteXY.joystick_1_x); }
실행 방법:
RemoteXY의 라이브러리를 Arduino 라이브러리에 추가하고 Arduino IDE에 코드를 업로드합니다. 그런 다음 휴대폰에 앱을 다운로드 한 다음 Bluetooth를 켭니다. 앱의 인터페이스는 다음과 같습니다.
그런 다음 Bluetooth로 이동하여 거기에서 Bluetooth를 켭니다. 전원을 켜면 Bluetooth 장치가 표시됩니다. 거기에서 HC-06 Bluetooth 모듈을 선택하면 Robot Car를 제어 할 수있는 인터페이스로 이동합니다.
이것이 우리가 로봇을 움직이기 위해 휴대폰 내부의 중력 센서를 사용하는 방법 입니다. 추가 실험을 통해 G 센서를 사용하여 더 흥미로운 사용을 찾을 수 있습니다 (Arduino와 같은) 사이에 Microcontorller 를 인터페이스하여 외부 사물을 제어 할 수 있습니다.