สร้างจอยบังคับ LoRa ระยะไกล 10 กม. ด้วยตัวเอง!

ฮายยยยชาว Maker! เคยเบื่อไหมครับเวลาทำรถบังคับ (RC) หรือโดรนเล่นเอง แล้วระยะสัญญาณมันสั้นกุด? บลูทูธเดินห่าง 10 เมตรก็หลุด Wi-Fi ไปได้ 50 เมตรก็ขิต หรือต่อให้ซื้อโมดูลวิทยุมาก็ไปได้แค่ 1-2 กิโลเมตร แถมพวกตัวรับส่งสัญญาณระยะไกลๆ ของมืออาชีพก็ราคาแพงหูฉี่!

วันนี้เราจะมาทลายข้อจำกัดนั้นทิ้งไปครับ! กับโปรเจกต์สร้าง "จอยบังคับวิทยุระยะไกล (Custom Long Range RC Controller)" ที่สามารถส่งสัญญาณได้ไกลสูงสุดถึง 10 กิโลเมตร (ในที่โล่ง) ด้วยเทคโนโลยี LoRa! มาพร้อมหน้าจอ OLED แสดงสถานะแบบเรียลไทม์ และเคส 3D Print สุดเท่ที่ดูเหมือนของซื้อจากห้างเลยล่ะ!

ภาพปก: หน้าตาจอยบังคับ RC Controller พลัง LoRa ที่เราจะสร้างกัน
💡 Globalbyte Trick & Services: โปรเจกต์สุดตึงแบบนี้ต้องผสมผสานระหว่างฮาร์ดแวร์อิเล็กทรอนิกส์และงานคราฟต์ครับ! หากเพื่อนๆ กำลังตามหา บอร์ด Arduino, โมดูล LoRa, จอ OLED, จอยสติ๊ก เพื่อนำไปสร้างโปรเจกต์ หรือต้องการทำเคสใส่จอยสวยๆ แบบนี้แต่ไม่มีเครื่องพิมพ์ 3D ทักมาหา Globalbyte ได้เลย! เรามีทั้งอะไหล่อิเล็กทรอนิกส์ และ บริการรับปริ้นท์ 3D (3D Printing Service) พร้อมเนรมิตโปรเจกต์ของคุณให้เป็นจริง!

อุปกรณ์ที่ต้องใช้ (Supplies)

อุปกรณ์ฝั่งตัวส่ง (จอยบังคับ):

  • Arduino Nano (ตัวประมวลผลหลัก)
  • โมดูล LoRa Reyax RYLR998
  • หน้าจอ OLED ขนาด 0.96 นิ้ว (ชิป SH1106)
  • โมดูลจอยสติ๊ก 2 ตัว (Joystick Module)
  • แบตเตอรี่ 18650 จำนวน 2 ก้อน พร้อมรางถ่าน

อุปกรณ์ฝั่งตัวรับ (ติดบนรถ/หุ่นยนต์):

  • Arduino UNO
  • โมดูล LoRa Reyax RYLR998 (อีก 1 ตัว)
  • บอร์ดขับมอเตอร์ L293D Motor Driver Shield

Step 1: งานดีไซน์และ 3D Printing

ความเท่ของโปรเจกต์นี้อยู่ที่ "เคส (Enclosure)" ครับ ผู้สร้างได้ออกแบบเคส 2 ชิ้น (ฐานและฝาปิด) ในโปรแกรม CAD ให้มีส่วนเว้าส่วนโค้งรับกับอุ้งมือ (Ergonomic) เหมือนจอยเล่นเกมจริงๆ โดยเจาะรูสำหรับจอยสติ๊ก จอ OLED และเผื่อพื้นที่ด้านในให้เก็บแบตเตอรี่กับสายไฟได้พอดี แนะนำให้พิมพ์ด้วยเส้นพลาสติก PLA ตั้งค่า Infill ที่ 10% ก็เพียงพอแล้วครับ

Step 2: ทำไมต้อง LoRa? และการต่อวงจรที่ห้ามพลาด!

LoRa (Long Range) คือเทคโนโลยีส่งสัญญาณวิทยุที่ออกแบบมาเพื่อส่งข้อมูลขนาดเล็กให้ได้ระยะทางไกลมากๆ โดยใช้พลังงานนิดเดียว ซึ่งเหมาะสุดๆ กับการส่งค่าจอยสติ๊กไปคุมหุ่นยนต์

โมดูล RYLR998 ที่เราใช้นั้นเจ๋งตรงที่มันคุยกับ Arduino ผ่านสาย Serial ด้วยคำสั่ง AT Commands ง่ายๆ (เช่น สั่ง AT+SEND ข้อมูลก็พุ่งออกไปเลย) ไม่ต้องปวดหัวกับการต่อสาย SPI ยิบย่อย

⚠️ จุดสำคัญที่มือใหม่มักพลาด: โมดูล RYLR998 รับไฟเลี้ยงและสัญญาณ 3.3V เท่านั้น! แต่บอร์ด Arduino Nano ปล่อยสัญญาณออกมาเป็น 5V หากต่อตรงๆ โมดูล LoRa จะพังทันทีครับ! วิธีแก้คือต้องทำ Voltage Divider (วงจรแบ่งแรงดัน) ตรงสาย TX ของ Arduino ไปหา RX ของ LoRa โดยใช้ตัวต้านทาน 22k และ 10k โอห์มครับ
การออกแบบเคส 3D Print และการจัดวางบอร์ดด้านในให้พอดีกับรูหน้าจอและจอยสติ๊ก
ผังวงจรฝั่งจอยบังคับ (ซ้าย) และผังวงจรฝั่งรถบังคับ (ขวา) สังเกตตัวต้านทานที่สายสัญญาณ LoRa
การแสดงผลบนหน้าจอ OLED สุดเท่ และการทดสอบใช้งานจริง

Step 3: การเขียนโปรแกรม (Coding)

ในฝั่งของจอยบังคับ เราจะต้องลงไลบรารี U8g2 สำหรับควบคุมหน้าจอ OLED (ชิป SH1106) ให้แสดงผลกราฟิกสวยๆ ก่อนครับ จากนั้นโค้ดจะคอยอ่านค่า Analog จากจอยสติ๊กทั้งสองฝั่ง แพ็กข้อมูลรวมกันเป็นชุดข้อความ (String) แล้วยิงคำสั่ง AT+SEND ส่งผ่านโมดูล LoRa ออกไป

// ตัวอย่างโค้ดบางส่วนสำหรับฝั่งจอยบังคับ (Transmitter)
#include <SoftwareSerial.h>
#include <U8g2lib.h>

SoftwareSerial loraSerial(2, 3); // RX, TX
U8G2_SH1106_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE);

void setup() {
  Serial.begin(9600);
  loraSerial.begin(9600);
  u8g2.begin();
  
  // ตั้งค่าโมดูล LoRa
  loraSerial.println("AT+ADDRESS=1");
  delay(100);
  loraSerial.println("AT+NETWORKID=6");
  delay(100);
}

void loop() {
  // อ่านค่าจอยสติ๊ก
  int joyLx = analogRead(A0);
  int joyLy = analogRead(A1);
  
  // สร้าง Payload ข้อมูล
  char payload[32];
  snprintf(payload, sizeof(payload), "%d,%d", joyLx, joyLy);
  
  // ส่งข้อมูลผ่าน LoRa
  char loraCmd[64];
  snprintf(loraCmd, sizeof(loraCmd), "AT+SEND=2,%d,%s", strlen(payload), payload);
  loraSerial.println(loraCmd);
  
  delay(150); // ดีเลย์ป้องกันการส่งข้อมูลรัวเกินไป
}

Step 4: ประกอบฝั่งตัวรับ (Receiver)

ส่วนตัวรถหรือหุ่นยนต์ของเรา (Receiver) การต่อวงจรจะง่ายมากครับ แค่ใช้บอร์ด Arduino UNO สวมทับด้วย Motor Driver Shield แล้วเอาโมดูล LoRa (RYLR998) มาต่อเข้ากับขา Serial ของ UNO (อย่าลืมทำ Voltage Divider ตรงขา RX เหมือนเดิมนะ!)

เมื่อบอร์ด UNO ได้รับข้อมูลจาก LoRa ปุ๊บ มันก็จะแยกข้อความออกมาเป็นตัวเลข แล้วเอาไปสั่งให้มอเตอร์เดินหน้า ถอยหลัง หรือเลี้ยวซ้ายขวาได้ทันทีแบบไม่มีดีเลย์เลยครับ!

💡 ไอเทมลับช่วยอ่าน: โปรเจกต์นี้มีรายละเอียดเรื่องการต่อวงจร (Wiring) การพิมพ์ 3 มิติ และโค้ดตัวเต็มที่ยาวมากๆ ครับ หากเพื่อนๆ อยากทำตามแล้วกลัวงง แนะนำให้ก๊อปปี้ลิงก์ บทความต้นฉบับ (Instructables) ไปให้ NotebookLM ของ Google ช่วยย่อยและสรุปสเต็ปการต่อสายไฟ หรืออธิบายโค้ดทีละบรรทัดให้ฟังเป็นภาษาไทยได้เลยครับ จะช่วยให้ทำโปรเจกต์ได้ง่ายขึ้นเยอะเลย!

🚀 อยากเนรมิตไอเดียของคุณให้เป็นจริงแบบครบวงจรที่ Globalbyte!

ไม่ว่าจะเป็นบอร์ดทดลอง Arduino โมดูลสื่อสารไร้สาย หรืออยากให้เราช่วยปริ้นท์เคส 3D สวยๆ ทักมาให้เราดูแลสิครับ!

คำเตือน / ข้อมูลอ้างอิง: บทความนี้เป็นการสรุปและเรียบเรียงเนื้อหาจากภาษาอังกฤษ (Instructables) การทำงานกับโมดูลวิทยุและวงจรไฟฟ้าอาจมีความเสี่ยงหากต่อสายผิดพลาด (เช่น ลืมทำ Voltage Divider จนโมดูลพัง) ขอแนะนำให้ผู้ใช้งานตรวจสอบแผนผัง (Schematic) และดาวน์โหลดไฟล์โค้ด/ไฟล์ 3D ฉบับเต็มจากเว็บไซต์ต้นฉบับอย่างละเอียดก่อนลงมือปฏิบัตินะครับ

ที่มาต้นฉบับ: Custom Long Range LoRa Controller From Scratch (Instructables)

 


Blog posts

เข้าสู่ระบบ

ลืมรหัสผ่านใช่ไหม?

ยังไม่มีบัญชีใช่ไหม?
สร้างบัญชี