ESP32 และ Arduino เบื้องต้น สำหรับงาน CNC หุ่นยนต์ และ IoT
ไมโครคอนโทรลเลอร์ (Microcontroller) คือสมองขนาดจิ๋วที่ใช้ควบคุมอุปกรณ์อิเล็กทรอนิกส์ เป็นหัวใจของงาน CNC หุ่นยนต์ และระบบ IoT ในบทความนี้จะปูพื้นฐาน ESP32 และ Arduino ซึ่งเป็นสองแพลตฟอร์มยอดนิยมสำหรับผู้เริ่มต้นจนถึงมืออาชีพ
Arduino กับ ESP32 ต่างกันอย่างไร?
| คุณสมบัติ | Arduino (Uno/Mega) | ESP32 |
|---|---|---|
| ซีพียู | ATmega328 (8-bit, 16MHz) | Tensilica Xtensa LX6 (32-bit, dual-core 240MHz) |
| WiFi / Bluetooth | ไม่มี (ต้องเพิ่มโมดูล) | มีในตัวทั้ง WiFi + BT |
| ราคา | ถูกมาก ตลาดเก่าแก่ | ถูกมาก คุ้มค่ามาก |
| การเขียนโปรแกรม | Arduino IDE (ง่ายสุดสำหรับมือใหม่) | Arduino IDE, MicroPython, ESP-IDF |
| เหมาะกับ | งานควบคุมง่าย เรียนพื้นฐาน | งานเชื่อมต่อ IoT งาน CNC ควบคุมผ่าน WiFi |
ทำไม ESP32 จึงเป็นตัวเลือกยอดนิยมสำหรับ Mini CNC?
เพราะ ESP32 มีกำลังประมวลผลสูง รองรับ WiFi ในตัว ทำให้สามารถ:
- รันเฟิร์มแวร์ ESP32-GRBL / FluidNC เพื่อควบคุมเครื่อง CNC ผ่านเว็บเบราว์เซอร์หรือมือถือได้ทันที ไม่ต้องต่อสาย USB
- ส่งงาน G-Code ผ่านเครือข่าย (WiFi) จากคอมพิวเตอร์หรือมือถือ
- ติดตามสถานะเครื่อง (อุณหภูมิ, ตำแหน่งหัวกัด) แบบเรียลไทม์ผ่าน IoT
- ทำงานร่วมกับ MQTT เพื่อเชื่อมต่อเข้าระบบอัตโนมัติของโรงงาน
เริ่มต้นเขียนโปรแกรม Microcontroller
1. ภาษา Arduino (C/C++ สไตล์ง่าย)
ตัวอย่างโปรแกรมกระพริบ LED — "Hello World" ของทุกงาน MCU:
void setup() {
pinMode(LED_BUILTIN, OUTPUT); // ตั้ง GPIO เป็นขา output
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // เปิดไฟ
delay(1000); // รอ 1 วินาที
digitalWrite(LED_BUILTIN, LOW); // ปิดไฟ
delay(1000); // รอ 1 วินาที
}
2. MicroPython (เขียนง่าย อ่านง่าย)
ESP32 รองรับ MicroPython ทำให้เขียนโค้ดควบคุมฮาร์ดแวร์ได้กระชับ เหมาะกับผู้เริ่มต้น:
from machine import Pin
import time
led = Pin(2, Pin.OUT) # GPIO2 บน ESP32
while True:
led.on()
time.sleep(1)
led.off()
time.sleep(1)
การใช้งาน ESP32 ควบคุม Stepper Motor สำหรับ CNC
การขับสเต็ปเปอร์มอเตอร์ในงาน CNC มี 2 วิธีหลัก:
- แบบ Step/Direction (ผ่าน Driver เช่น A4988, DRV8825) — ESP32 ส่งสัญญาณพัลส์ควบคุมทิศทางและจำนวนก้าว
- แบบใช้เฟิร์มแวร์ GRBL สำเร็จรูป — ติดตั้ง ESP32-GRBL แล้วต่อ Driver กับมอเตอร์ได้เลย ไม่ต้องเขียนโค้ดเอง
การเชื่อมต่อเซนเซอร์และอุปกรณ์ IoT
ESP32 รองรับการสื่อสารหลายรูปแบบสำหรับงาน IoT:
- GPIO — อ่านสวิตช์ เซนเซอร์ดิจิทัล ควบคุมรีเลย์ มอเตอร์
- ADC (Analog) — อ่านค่าเซนเซอร์แบบอนาล็อก เช่น อุณหภูมิ แรงดัน
- I2C / SPI — เชื่อมจอแสดงผล เซนเซอร์ความเร่ง เซนเซอร์อุณหภูมิ
- UART — สื่อสารกับ GPS, โมดูลอื่น ๆ
- WiFi / MQTT — ส่งข้อมูลขึ้นคลาวด์ ควบคุมระยะไกล
สรุป
ESP32 และ Arduino คือพื้นฐานสำคัญของงาน CNC หุ่นยนต์ และ IoT สมัยใหม่ ESP32 โดดเด่นเรื่องกำลัง + WiFi ในตัว เหมาะกับงาน CNC ควบคุมผ่านเครือข่ายและงาน IoT ส่วน Arduino เหมาะสำหรับเรียนรู้พื้นฐาน หากต้องการเริ่มต้นกับ ESP32 หรืออยากได้บอร์ดพร้อมใช้สำหรับงาน CNC PanmaneeCNC มีอุปกรณ์และคำแนะนำพร้อมให้คำปรึกษาครับ