การสร้างรถบังคับ Arduino ด้วย รีโมท (Remote Control) เป็นหนึ่งในโปรเจกต์ที่น่าสนใจและเป็นที่นิยมในวงการผู้เริ่มต้นด้านอิเล็กทรอนิกส์และโปรแกรมมิ่ง โดยใช้ Arduino เป็นพื้นฐานในการสร้างระบบควบคุมและ Remote Control เพื่อควบคุมการเคลื่อนที่ของรถบังคับอย่างง่ายดาย ในบทความนี้เราจะสำรวจวิธีการสร้างรถบังคับ Arduino พร้อมกับ Remote Control อย่างง่ายๆ สำหรับผู้ที่สนใจเริ่มต้นศึกษาหรือสร้างโปรเจกต์ที่น่าสนใจนี้

หลักการทํางาน

การทำงานของรถบังคับ Arduino ด้วย Remote Control มีหลักการทำงานดังนี้:

  1. การรับสัญญาณจาก Remote Control:
    • Remote Control จะส่งสัญญาณไร้สายไปยังโมดูล RF หรืออุปกรณ์รับสัญญาณอื่นๆ บนรถบังคับ.
    • โมดูล RF จะรับสัญญาณและแปลงเป็นสัญญาณดิจิตอลที่สามารถอ่านได้จาก Arduino.

  2. การอ่านข้อมูลจาก Remote Control:
    • Arduino จะอ่านสัญญาณดิจิตอลที่รับมาจากโมดูล RF หรืออุปกรณ์รับสัญญาณอื่นๆ.
    • ข้อมูลที่อ่านได้จะบอกถึงการกดปุ่มหรือการเคลื่อนไหวที่ผู้ใช้ทำบน Remote Control.

  3. การควบคุมมอเตอร์:
    • โดยใช้ข้อมูลที่ได้จาก Remote Control, Arduino จะควบคุมการทำงานของมอเตอร์ที่ต่อกับรถบังคับ.
    • การเคลื่อนที่ของรถสามารถควบคุมได้โดยการเปิดหรือปิดมอเตอร์แต่ละตัว และการกำหนดความเร็วให้มอเตอร์.

  4. การแปลงค่าสัญญาณเป็นการเคลื่อนที่:
    • Arduino จะอ่านค่าสัญญาณที่ได้จาก Remote Control และแปลงเป็นคำสั่งการเคลื่อนที่ของรถ เช่น การเดินหน้า, ถอยหลัง, หรือหยุด.

  5. การควบคุมการทำงานของรถ:
    • โดยใช้การควบคุมมอเตอร์และการอ่านค่าจาก Remote Control, Arduino จะสั่งการให้รถบังคับทำงานตามคำสั่งที่ได้รับ.
    • รถบังคับจะเคลื่อนที่ไปข้างหน้า, ถอยหลัง, หรือหยุดตามคำสั่งที่ผู้ใช้กำหนดผ่าน Remote Control.

  6. การปรับแต่งและขยายความสามารถ:
    • ผู้ใช้สามารถปรับแต่งการทำงานของรถบังคับได้ตามต้องการ เช่น เพิ่มฟังก์ชันพิเศษ เปลี่ยนแปลงการตอบสนองของ Remote Control, หรือเพิ่มเซนเซอร์สำหรับการตรวจจับสิ่งกีดขวาง.


อุปกรณ์ที่ใช้

1. RB-0001 Arduino UNO R3

2. RB-0002 Sensor Shield V 5.0

3. RB-0003 Motor Driver Module L298N

4. RB-0016 Jumper (F2M) 20cm Female to Male

5. RB-0017 Jumper (F2F) 20cm Female to Female

6. RB-0019 รางถ่าน 18650 – 2 ก้อน

7. RB-0021 ถ่านชาร์จ 18650 NCR18650B 3.7v 3400mAh 2 ก้อน

8. RB-0023 2WD Smart Robot Car Chassis Kits

9. RB-0025 เสารองแผ่นพีซีบีโลหะแบบเหลี่ยม 8 mm

10. RB-0011 Infrared IR Wireless Remote Control Module Kits

11. RB-0200 CR2025 3V Lithium Button Coin Battery


การสร้าง รถบังคับ Arduino ด้วย Remote Control


1.ประกอบหุ่นยนต์และเชื่อมต่อวงจร


ใช้สว่านเจาะรู เพื่อยึดเสารองแผ่นพีซีบี สำหรับ Arduino UNO เข้ากับ โครงหุ่นยนต์



ยึด Arduino UNO เข้ากับเสารองแผ่นพีซีบี



เสียบ Sensor Shield เข้ากับ บอร์ด Arduino R3



ยึดเสารองแผ่นพีซีบี สำหรับ Motor Driver เข้ากับ โครงหุ่นยนต์



ยึด Motor Driver เข้ากับเสารองแผ่นพีซีบี



ใช้กาวร้อน ยึดรางถ่าน เข้ากับ โครงหุ่นยนต์



การต่อวงจร


  • สายสีแดงของรางถ่าน 7.4 โวลต์ เชื่อมต่อเข้ากับสวิตช์ปิดเปิด
  • สายสีดำของรางถ่าน 7.4 โวลต์ เชื่อมต่อกับ Jumper (F2M) ผู้-เมีย สีดำ (ตัดขั้วด้านผู้ออก) แล้วจึงเชื่อมต่อเข้ากับ กราวด์ (GND) ของ Sensor Shield


  • ใช้สาย Jumper (F2M) ผู้-เมีย สีแดง (ตัดขั้วด้านเมียออก) เชื่อมต่อจากสวิตช์ปิดเปิดอีกด้าน ไปยัง Power Supply ของ Motor Driver


  • ใช้สาย Jumper (F2M) ผู้-เมีย สีดำ เชื่อมต่อระหว่าง กราวด์ (GND) ของ Motor Driver กับ GND หรือ G ของ Sensor Shield
  • ใช้สาย Jumper (F2M) ผู้-เมีย สีน้ำตาล เชื่อมต่อจากการจ่ายไฟ 5 โวลต์ ของ Motor Driver ไปยัง 5 โวลต์ หรือ V ของ Sensor Shield



จากนั้น ใช้สาย Jumper (F2F) เมีย-เมีย สีอะไรก็ได้ เชื่อมต่อวงจร ระหว่าง Sensor Shield กับ Motor Driver ตามรูป

มี Jumper อยู่ที่ขา ENA และ ENB ของ บอร์ด Motor Driver ให้ถอดออก



ใส่ถ่าน เข้าไปที่รางถ่าน เมื่อ เปิดสวิตช์ ต้องมีไฟเข้า โดยสังเกตไฟ LED สีแดง ที่ Sensor Shield และ ไฟ LED สีแดงที่ Motor Driver จะมีไฟติด


เชื่อมต่อสายสีแดง – ดำ เข้ากับมอเตอร์ ทั้ง 2 ตัว โดยให้สายสีแดงอยู่ด้านบน และ สายสีดำอยู่ด้านล่าง



ยึดมอเตอร์ ทั้ง 2 ตัว เข้ากับ โครงหุ่นยนต์



ยึด ล้อหน้า เข้ากับ โครงหุ่นยนต์



ใส่ ล้อ เข้าไปที่มอเตอร์



เชื่อมต่อ สายมอเตอร์ทั้ง 2 ด้าน เข้ากับ Motor Driver (ตรวจสอบสีของสายไฟให้ถูกต้องตามรูป)


2.ติดตั้ง Arduino IDE


สิ่งแรกคือการติดตั้ง Arduino IDE เพื่อให้คุณสามารถค้นหา Arduino IDE ใน Google

จากนั้นคุณมีสองทางเลือก

หนึ่งคือการติดตั้งเวอร์ชัน1 หรือเพื่อติดตั้งเวอร์ชัน 2

เราจะติดตั้งเวอร์ชัน 2 เพราะมีคุณสมบัติเพิ่มเติมบางอย่าง แต่ไม่ว่าคุณจะเลือกอะไรมันจะทำงานเช่นกัน ดังนั้นคุณสามารถเลือกอย่างใดอย่างหนึ่ง

ดาวน์โหลด Arduino IDE จากที่นี่

https://www.arduino.cc/en/software

This image has an empty alt attribute; its file name is e1-1024x573.png


3. ทดสอบ การเคลื่อนที่ของหุ่นยนต์


การทดสอบนี้ เป็นการตรวจสอบการต่อสายต่างๆ เช่น การเชื่อมต่อสายของมอเตอร์ ทั้ง 2 ตัว รวมทั้งสายอื่นๆ ของหุ่นยนต์ที่เราสร้าง ว่าถูกต้องหรือไม่ ถ้าถูกต้องหุ่นยนต์จะดำเนินการดังนี้

คือ เดินหน้า -> ถอยหลัง -> เลี้ยวซ้าย -> เลี้ยวขวา


และนี่คือโค้ดที่ใช้ทดสอบ


int MA1 = 6; // Motor A1
int MA2 = 7; // Motor A2
int PWM_A = 3; // Speed Motor A

int MB1 = 8; // Motor B1
int MB2 = 9; // Motor B2
int PWM_B = 5; // Speed Motor B

int SPEED = 150; // Speed PWM 0 - 255

void setup() {

//Setup Channel A
pinMode(MA1, OUTPUT); //Motor A1
pinMode(MA2, OUTPUT); //Motor A2
pinMode(PWM_A, OUTPUT); //Speed PWM Motor A

//Setup Channel B
pinMode(MB1, OUTPUT); //Motor B1
pinMode(MB2, OUTPUT); //Motor B2
pinMode(PWM_B, OUTPUT); //Speed PWM Motor B
}

void loop() {


Stop(2000);
Forward(600);
Stop(200);
Backward(600);
Stop(200);
turnLeft(400);
Stop(200);
turnRight(400);


}

void Backward(int time)
{
digitalWrite(MA1, LOW);
digitalWrite(MA2, HIGH);
analogWrite(PWM_A, SPEED);

digitalWrite(MB1, HIGH);
digitalWrite(MB2, LOW);
analogWrite(PWM_B, SPEED);

delay(time);
}

void Forward (int time)
{
digitalWrite(MA1, HIGH);
digitalWrite(MA2, LOW);
analogWrite(PWM_A, SPEED);

digitalWrite(MB1, LOW);
digitalWrite(MB2, HIGH);
analogWrite(PWM_B, SPEED);

delay(time);
}

void turnLeft(int time)
{
digitalWrite(MA1, HIGH);
digitalWrite(MA2, LOW);
analogWrite(PWM_A, SPEED);

digitalWrite(MB1, LOW);
digitalWrite(MB2, LOW);
analogWrite(PWM_B, 0);

delay(time);
}

void turnRight(int time)
{
digitalWrite(MA1, LOW);
digitalWrite(MA2, LOW);
analogWrite(PWM_A, 0);

digitalWrite(MB1, LOW);
digitalWrite(MB2, HIGH);
analogWrite(PWM_B, SPEED);

delay(time);
}

void Stop(int time)
{
digitalWrite(MA1, LOW);
digitalWrite(MA2, LOW);
analogWrite(PWM_A, 0);

digitalWrite(MB1, LOW);
digitalWrite(MB2, LOW);
analogWrite(PWM_B, 0);

delay(time);

}


ลิงค์โค้ด : https://lungmaker.com/code/test-motor-arduino.ino


เชื่อมต่อสาย USB ระหว่าง คอมพิวเตอร์ กับ Arduino UNO


ตรวจสอบ Port ของบอร์ด Arduino โดย คลิกที่ Device Manager



ที่ Ports (COM & LPT) จะพบ Port ของบอร์ด Arduino ในตัวอย่างเป็น Arduino Uno (COM19)



ไปที่ Tools -> Board -> Arduino AVR Boards -> Arduino Uno



เลือก Port โดยไปที่ Tools -> Port -> COM19
(โดย COM19 แต่ละเครื่องจะไม่เหมือนกัน ให้เลือกตามที่ปรากฎ)



คลิกที่ Upload



รอจนกระทั่งขึ้น Done uploading. ที่แถบด้านล่าง แสดงว่าเราอัพโหลดโปรแกรมลงบอร์ดได้สำเร็จแล้ว



วิดีโอผลลัพธ์การทำงาน การเคลื่อนที่ของหุ่นยนต์ Arduino

ถ้ายังทำงานไม่ถูกต้อง คือ เดินหน้า -> ถอยหลัง -> เลี้ยวซ้าย -> เลี้ยวขวา ให้กลับไปแก้ไขการต่อวงจร การต่อสายต่างๆ เช่น การต่อสายมอเตอร์ จนกว่าจะทำงานถูกต้อง ถึงจะสามารถไปทำงานในขั้นตอนต่อไป


4.เชื่อมต่อ IR receiver และทดสอบ


ใช้สาย Jumper (F2F) เมีย-เมีย ในการเชื่อมต่อ


เพิ่ม ไลบรารี่ IRremote เข้าที่ Arduino IDE
โดย ไปที่ Sketch -> Include Library -> Manage Libraries….



ค้นหา irremote (IRremote by shirrif, z3t0, ArminJo) แล้วทำการติดตั้ง โดยคลิกที่ INSTALL



แสดงการติดตั้งสำเร็จ


และนี่คือโค้ดที่ใช้ทดสอบ

#include <IRremote.h>

#define IR_RECEIVE_PIN 11

void setup() {
Serial.begin(9600);
IrReceiver.begin(IR_RECEIVE_PIN);
}

void loop() {
if (IrReceiver.decode()) {
IrReceiver.resume();
Serial.println(IrReceiver.decodedIRData.command);
}
}


ลิงค์โค้ด : https://lungmaker.com/code/ir-receiver-pin-11.ino


Upload Code




รอจนกระทั่งขึ้น Done uploading. ที่แถบด้านล่าง แสดงว่าเราอัพโหลดโปรแกรมลงบอร์ดได้สำเร็จแล้ว



ไปที่ Tools -> Serial Monitor แล้วเลือก Both NL & CR และ เลือก 9600 baud



ใส่ถ่าน CR2025 3V ไปที่ Remote Control


ทดสอบการทำงาน




ทดสอบกดปุ่มด้านบน


ที่ Serial Monitor ด้านล่าง แสดงผลเป็น 24



ทดสอบกดปุ่มด้านล่าง


ที่ Serial Monitor ด้านล่าง แสดงผลเป็น 82



ทดสอบกดปุ่มด้านซ้าย


ที่ Serial Monitor ด้านล่าง แสดงผลเป็น 8



ทดสอบกดปุ่มด้านขวา


ที่ Serial Monitor ด้านล่าง แสดงผลเป็น 90



ทดสอบกดปุ่มกลาง


ที่ Serial Monitor ด้านล่าง แสดงผลเป็น 28


ถ้ากดปุ่มแล้ว Serial Monitor แสดงผลเป็นตัวเลขออกมา แสดงว่าการต่อสายของเราถูกต้องแล้ว และเราจะนำค่าที่ได้ไปเขียนโปรแกรมเพื่อควบคุมรถ ต่อไป


5. ทดสอบ รถบังคับ Arduino ด้วย Remote Control


โค้ด รถบังคับ Arduino ด้วย Remote Control

วิดีโอผลลัพธ์การทำงาน รถบังคับ Arduino ด้วย Remote Control


สรุป

การสร้างรถบังคับ Arduino ด้วย Remote Control มีข้อดีมากมายที่น่าสนใจ เช่น:

  1. ควบคุมได้ระยะไกล: การใช้ Remote Control ช่วยในการควบคุมรถบังคับ Arduino ทำให้สามารถควบคุมรถได้ในระยะไกลโดยไม่ต้องเข้าใกล้มันอยู่ตลอดเวลา ซึ่งเป็นประโยชน์มากในการทดลองหรือในสถานที่ที่ไม่สะดวกในการเข้าใกล้รถเพื่อควบคุม.

  2. ความสะดวกสบาย: การใช้ Remote Control ทำให้การควบคุมรถบังคับเป็นเรื่องสะดวกและง่ายมากขึ้น เนื่องจากผู้ใช้สามารถทำได้โดยไม่ต้องใช้สายเชื่อมต่อกับรถ และสามารถควบคุมได้ทันทีเมื่อต้องการ.

  3. ความยืดหยุ่นในการปรับแต่ง: ระบบ Remote Control สามารถปรับแต่งให้เหมาะสมกับความต้องการของผู้ใช้ได้ตามต้องการ เช่น การเพิ่มหรือเปลี่ยนแปลงฟังก์ชันต่างๆ การปรับแต่งระยะการควบคุม หรือการเพิ่มเซนเซอร์สำหรับการตรวจจับสภาพแวดล้อม เป็นต้น.

  4. เรียนรู้และการศึกษา: การสร้างรถบังคับ Arduino ด้วย Remote Control เป็นโอกาสที่ดีในการฝึกทักษะในการโปรแกรมและการออกแบบระบบอิเล็กทรอนิกส์ นอกจากนี้ยังเป็นโอกาสที่ดีในการเรียนรู้เกี่ยวกับการควบคุมระบบอัตโนมัติและการสื่อสารไร้สาย.

  5. การนำไปใช้ในงานประโยชน์: รถบังคับ Arduino ที่ควบคุมด้วย Remote Control สามารถนำไปใช้ในหลากหลายงานประโยชน์ เช่น การสำรวจพื้นที่ที่ไม่สามารถเข้าถึงได้ง่าย การนำส่งสินค้าในโรงงานหรือโกดัง หรือการใช้ในงานต่างๆที่ต้องการความยืดหยุ่นในการควบคุมและการเคลื่อนที่.

Leave a Reply

Your email address will not be published. Required fields are marked *

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

Privacy Preferences

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

Allow All
Manage Consent Preferences
  • Always Active

Save