아두이노 나노 - 자동차 | Arduino Nano - Car

이 튜토리얼은 아두이노 나노와 IR 리모컨을 사용하여 IR 리모컨 제어 자동차를 만드는 방법을 안내합니다.

IR remote control car

준비물

1×Arduino Nano Amazon
1×USB A to Mini-B USB cable 쿠팡 | Amazon
1×RC Car 쿠팡 | Amazon
1×L298N Motor Driver Module Amazon
1×IR Remote Controller Kit Amazon
1×CR2025 Battery (for IR Remote controller) Amazon
1×1.5V AA Battery (for Arduino Nano and Car) Amazon
1×Jumper Wires Amazon
1×(Recommended) Screw Terminal Adapter for Arduino Nano 쿠팡 | Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

로봇 자동차에 대하여

아두이노 나노의 세계에서, 로봇 자동차는 RC 자동차, 원격 제어 자동차, 스마트 자동차 또는 DIY 자동차로 흔히 알려져 있습니다. 이 멋진 창작물은 IR 리모트 컨트롤러나 Bluetooth/WiFi를 통한 스마트폰 앱으로 멀리서 제어할 수 있습니다. 쉽게 왼쪽이나 오른쪽으로 날카로운 회전을 하거나 앞으로 또는 뒤로 이동할 수 있습니다.

아두이노 나노용 2WD(2륜 구동) 차량은 아두이노 나노 보드를 사용하여 조립하고 운영할 수 있는 소형 로봇 차입니다. 보통 다음과 같은 필수 부품으로 구성됩니다:

  • 섀시: 이것은 차체와 같으며, 다른 모든 구성 요소를 부착하는 부분입니다.
  • 바퀴: 차를 움직이게 하는 두 개의 바퀴입니다. 이들은 두 개의 DC 모터에 연결됩니다.
  • 모터: 두 개의 바퀴를 구동하기 위해 두 개의 DC 모터가 사용됩니다.
  • 모터 드라이버: 모터 드라이버 보드는 아두이노 나노를 모터에 연결하는 중요한 구성 요소입니다. 아두이노 나노로부터의 신호를 받아 모터에 전력과 제어를 제공합니다.
  • 아두이노 나노 보드: 이것은 차의 뇌입니다. 센서와 사용자 명령에서 입력을 읽고 그에 따라 모터를 제어합니다.
  • 전원 출처: 2WD 차는 모터와 아두이노 나노 보드에 전력을 공급하기 위해 보통 배터리와 배터리 홀더가 필요한 전원 출처가 필요합니다.
  • 무선 수신기: 이것은 원격 제어 또는 스마트폰과 무선 통신을 가능하게 하는 적외선, 블루투스 또는 WiFi 모듈입니다.
  • 선택 구성 요소: 프로젝트를 얼마나 고급으로 만들고 싶은지에 따라, 센서(예를 들어, 장애물 회피나 라인 추적 센서 같은)와 같은 다양한 선택 부품을 추가할 수 있습니다.

이 튜토리얼에서 간단하게 하기 위해, 우리는 다음을 사용할 것입니다:

  • 2WD 자동차 키트(샤시, 바퀴, 모터, 배터리 홀더 포함)
  • L298N 모터 드라이버
  • IR 적외선 키트(IR 컨트롤러 및 IR 수신기 포함)

이 페이지 상단의 하드웨어 목록을 확인하세요.

작동 원리

Arduino Nano 2WD car how it work
  • 아두이노 나노는 L298N 모터 드라이버 모듈을 통해 로봇 카의 DC 모터에 연결됩니다.
  • 아두이노 나노는 IR 수신기에 연결됩니다.
  • 배터리는 아두이노 나노, DC 모터, 모터 드라이버, 그리고 IR 수신기에 전력을 공급합니다.
  • 사용자는 IR 리모컨의 상/하/좌/우/확인 키를 누릅니다.
  • 아두이노 나노는 IR 수신기를 통해 상/하/좌/우/확인 명령을 받습니다.
  • 아두이노 나노는 모터 드라이버를 통해 DC 모터를 제어함으로써 차량이 전진/후진/좌/우/정지 하도록 제어합니다.

선연결

Arduino Nano 2WD car Wiring Diagram

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

보통, 우리는 두 가지 전원이 필요합니다:

  • 모터용 하나 (간접적으로 L298N 모듈을 통하여).
  • 또 다른 하나는 Arduino Nano 보드, L298N 모듈, 그리고 IR 수신기용입니다.

그러나, 모든 것에 단 하나의 전원을 사용하여 이를 단순화 할 수 있는 방법이 있습니다. 이를 달성하기 위해서는 1.5V 배터리 4개(총 6V)를 사용할 수 있습니다. 다음과 같이 하면 됩니다:

  • 위의 다이어그램을 따라 배터리를 L298N 모듈에 연결하세요.
  • L298N 모듈의 점퍼 3개를 모두 제거하세요.

아두이노 나노 코드

/* * 이 Arduino Nano 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano/arduino-nano-car */ #include <DIYables_IRcontroller.h> // DIYables_IRcontroller 라이브러리 #define IR_RECEIVER_PIN 13 // IR 수신기에 연결된 아두이노 나노 핀 #define ENA_PIN 7 // ENA 핀 L298N에 연결된 아두이노 나노 핀 #define IN1_PIN 6 // IN1 핀 L298N에 연결된 아두이노 나노 핀 #define IN2_PIN 5 // IN2 핀 L298N에 연결된 아두이노 나노 핀 #define IN3_PIN 4 // IN3 핀 L298N에 연결된 아두이노 나노 핀 #define IN4_PIN 3 // IN4 핀 L298N에 연결된 아두이노 나노 핀 #define ENB_PIN 2 // ENB 핀 L298N에 연결된 아두이노 나노 핀 DIYables_IRcontroller_17 irController(IR_RECEIVER_PIN, 200); // 디바운스 타임은 200ms입니다 void setup() { Serial.begin(9600); irController.begin(); pinMode(ENA_PIN, OUTPUT); pinMode(IN1_PIN, OUTPUT); pinMode(IN2_PIN, OUTPUT); pinMode(IN3_PIN, OUTPUT); pinMode(IN4_PIN, OUTPUT); pinMode(ENB_PIN, OUTPUT); digitalWrite(ENA_PIN, HIGH); // 전속력 설정 digitalWrite(ENB_PIN, HIGH); // 전속력 설정 } void loop() { Key17 key = irController.getKey(); if (key != Key17::NONE) { switch (key) { case Key17::KEY_UP: Serial.println("MOVING FORWARD"); CAR_moveForward(); break; case Key17::KEY_DOWN: Serial.println("MOVING BACKWARD"); CAR_moveBackward(); break; case Key17::KEY_LEFT: Serial.println("TURNING LEFT"); CAR_turnLeft(); break; case Key17::KEY_RIGHT: Serial.println("TURNING RIGHT"); CAR_turnRight(); break; case Key17::KEY_OK: Serial.println("STOP"); CAR_stop(); break; default: Serial.println("WARNING: unused key:"); break; } } } void CAR_moveForward() { digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW); digitalWrite(IN3_PIN, HIGH); digitalWrite(IN4_PIN, LOW); } void CAR_moveBackward() { digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH); digitalWrite(IN3_PIN, LOW); digitalWrite(IN4_PIN, HIGH); } void CAR_turnLeft() { digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW); digitalWrite(IN3_PIN, LOW); digitalWrite(IN4_PIN, LOW); } void CAR_turnRight() { digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, LOW); digitalWrite(IN3_PIN, HIGH); digitalWrite(IN4_PIN, LOW); } void CAR_stop() { digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, LOW); digitalWrite(IN3_PIN, LOW); digitalWrite(IN4_PIN, LOW); }

사용 방법

  • Arduino IDE에서 이 지침을 따라 DIYables_IRcontroller 라이브러리를 설치하십시오.
  • 위에 표시된 다이어그램대로 연결하십시오.
  • 코드 업로드 시 Arduino Nano를 USB 케이블로 전원을 공급할 예정이므로 Arduino Nano의 Vin 핀에서 전선을 분리하십시오.
  • 차를 뒤집어 바퀴가 위로 오도록 하십시오.
  • Arduino Nano를 USB 케이블을 사용하여 컴퓨터에 연결하십시오.
  • 제공된 코드를 복사하여 Arduino IDE에서 열십시오.
  • Arduino IDE에서 Upload 버튼을 클릭하여 코드를 Arduino Nano로 전송하십시오.
  • IR 리모트 컨트롤러를 사용하여 차를 앞으로, 뒤로, 왼쪽, 오른쪽으로 움직이거나 멈추게 하십시오.
  • 바퀴가 명령에 따라 올바르게 움직이는지 확인하십시오.
  • 바퀴가 잘못된 방향으로 움직인다면 L298N 모듈의 DC 모터의 전선을 교체하십시오.
  • Arduino IDE의 시리얼 모니터에서 결과를 확인할 수도 있습니다.
COM6
Send
MOVING FORWARD MOVING BACKWARD TURNING LEFT TURNING RIGHT STOP
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • 모든 것이 정상적으로 작동한다면, 아두이노 나노에서 USB 케이블을 분리하고, 배터리에서 아두이노 나노를 전원 공급하기 위해 Vin 핀에 다시 선을 연결하세요.
  • 차를 바퀴가 땅에 닿게 정상 위치로 다시 뒤집으세요.
  • 자동차를 조종하는 재미를 즐기세요!

코드 설명

위의 아두이노 코드의 주석 라인에서 설명을 찾을 수 있습니다.

다음 튜토리얼을 확인함으로써 코드에 대해 더 자세히 알아볼 수 있습니다:

이 프로젝트를 다음과 같이 확장할 수 있습니다:

  • 장애물이 감지되면 차를 즉시 멈출 수 있도록 장애물 회피 센서를 추가함.
  • 차의 속도를 제어하는 기능 추가 (아두이노 나노 - DC 모터 튜토리얼 참조). 제공된 코드는 차를 전속력으로 제어함.

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

관련 튜토리얼

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!