เนื้อหาในบทความ
ภาพรวม Arduino UNO Q
🚀 บอร์ดที่เปลี่ยนโฉมหน้า Arduino
Arduino UNO Q เป็นบอร์ดรุ่นพิเศษที่เกิดจากความร่วมมือระหว่าง Arduino และ Qualcomm หลังจากการเข้าซื้อกิจการของ Qualcomm ในปลายปี 2025 บอร์ดนี้เป็น ไฮบริดบอร์ด ที่รวมสองหัวใจสำคัญไว้ด้วยกัน:
- Qualcomm Dragonwing QRB2210 MPU - ตัวประมวลผลแบบ Application Processor ที่รัน Linux ได้
- STM32 Microcontroller - MCU สำหรับ Real-time Control
ทำไมต้อง UNO Q?
Edge AI
รัน Machine Learning บนบอร์ดได้โดยตรง เหมาะกับ Computer Vision และ AI Inference
Dual Processing
Linux สำหรับ Processing หนักๆ + MCU สำหรับ Real-time Control แยกกันอิสระ
Connectivity
WiFi 6E, Bluetooth 5.3 และรองรับการเชื่อมต่อที่หลากหลาย
Arduino Ecosystem
ยังคงใช้ Arduino IDE และ Libraries ได้เหมือนเดิม
⚠️ เป้าหมายของบอร์ดนี้
Arduino UNO Q ไม่ได้ออกแบบมาเพื่อแทนที่ Arduino UNO รุ่นดั้งเดิม แต่เป็นบอร์ดระดับสูงสำหรับผู้ที่ต้องการพลังการประมวลผลเพิ่มขึ้น โดยเฉพาะโปรเจกต์ที่เกี่ยวกับ AI, Computer Vision หรือ IoT ขั้นสูง หากคุณเพิ่งเริ่มต้น แนะนำให้ใช้ Arduino UNO หรือ ESP32 ก่อน
สเปคทางเทคนิค
Qualcomm Dragonwing QRB2210 MPU (Linux Side)
| สเปค | รายละเอียด |
|---|---|
| CPU | Qualcomm Kryo CPU (ARM Cortex-A78) |
| GPU | Adreno GPU |
| RAM | 4GB LPDDR4X |
| Storage | 16GB eMMC |
| NPU | Hexagon DSP (สำหรับ AI Acceleration) |
| Video | 4K Video Encode/Decode |
STM32 Microcontroller (MCU Side)
| สเปค | รายละเอียด |
|---|---|
| MCU | STM32H7 Series (ARM Cortex-M7) |
| Clock Speed | 480 MHz |
| Flash | 2MB |
| RAM | 1MB SRAM |
| GPIO | Digital I/O, PWM, ADC, DAC, I2C, SPI, UART |
Connectivity & Interfaces
- WiFi 6E (802.11ax)
- Bluetooth 5.3
- USB Type-C (USB 3.2 Gen 1)
- MicroSD Card Slot
- MIPI CSI Camera Connector
- HDMI Output
- 40-pin GPIO Header (เหมือน Raspberry Pi)
สิ่งที่ต้องเตรียม
อุปกรณ์ฮาร์ดแวร์
- Arduino UNO Q Board
- USB Type-C Cable
- MicroSD Card (อย่างน้อย 16GB, แนะนำ Class 10)
- คอมพิวเตอร์ (Windows, macOS หรือ Linux)
- (ไม่บังคับ) 5V 2.5A Power Adapter
- (ไม่บังคับ) MIPI Camera Module
ซอฟต์แวร์
- Arduino IDE 2.x หรือ Arduino Lab for MicroPython
- Terminal Program (PuTTY, Serial Monitor หรือ screen)
- SSH Client (สำหรับเข้า Linux)
- Web Browser (สำหรับเข้า Web UI)
การติดตั้งและเริ่มต้น
Step 1: ติดตั้ง Arduino IDE
ดาวน์โหลดและติดตั้ง Arduino IDE เวอร์ชันล่าสุดจาก arduino.cc
Step 2: เพิ่ม Board Support
- เปิด Arduino IDE
- ไปที่
File > Preferences - ในช่อง "Additional Boards Manager URLs" ใส่:
https://raw.githubusercontent.com/arduino/arduino-cli/master/packages/package_index.json
- ไปที่
Tools > Board > Boards Manager - ค้นหา "UNO Q" และติดตั้ง "Arduino UNO Q by Qualcomm"
Step 3: เชื่อมต่อบอร์ด
- เสียบ USB Type-C Cable เข้ากับบอร์ด UNO Q
- เสียบอีกด้านเข้ากับคอมพิวเตอร์
- รอสักครู่ บอร์ดจะ Boot ขึ้นมา (LED จะกระพริบ)
- ใน Arduino IDE เลือก Board: "Arduino UNO Q"
- เลือก Port: ที่ปรากฏ (เช่น /dev/ttyACM0 หรือ COM3)
Step 4: อัปเดต Firmware (ถ้าจำเป็น)
เคล็ดลับ: เมื่อเชื่อมต่อครั้งแรก Arduino IDE จะถามว่าต้องการอัปเดต Firmware หรือไม่ แนะนำให้ตอบ "Yes" เพื่อให้แน่ใจว่าบอร์ดทำงานด้วยเฟิร์มแวร์ล่าสุด
Step 5: ทดสอบ Blink
อัปโหลดโปรแกรม Blink แบบดั้งเดิมเพื่อทดสอบว่า MCU ทำงานได้:
// โปรแกรมทดสอบ LED บน Arduino UNO Q
// LED บนบอร์ดเชื่อมต่อกับขา LED_BUILTIN
void setup() {
// ตั้งค่าขา LED เป็น Output
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // เปิด LED
delay(1000); // รอ 1 วินาที
digitalWrite(LED_BUILTIN, LOW); // ปิด LED
delay(1000); // รอ 1 วินาที
}กดปุ่ม Upload แล้ว LED บนบอร์ดควรจะกระพริบเป็นเวลา 1 วินาที
การใช้งาน Linux MPU
ด้าน Qualcomm Dragonwing ทำงานบน Linux (Yocto Linux-based) ซึ่งคุณสามารถเข้าถึงได้หลายวิธี:
วิธีที่ 1: Serial Console
- เปิด Serial Monitor ใน Arduino IDE
- ตั้งค่า Baud rate เป็น 115200
- กด Enter จะปรากฏ Login prompt
- Username:
root, Password:arduino
วิธีที่ 2: SSH (เมื่อเชื่อมต่อ WiFi)
- เชื่อมต่อบอร์ดกับ WiFi (ผ่าน Web UI หรือ Serial Console)
- หา IP Address ของบอร์ด
- ใช้ SSH เข้า:
ssh root@<IP_ADDRESS>
วิธีที่ 3: Web UI
- เมื่อบอร์ดเชื่อมต่อ WiFi ให้เปิด Browser ไปที่
http://<IP_ADDRESS> - จะปรากฏ Web Interface สำหรับจัดการบอร์ด
- สามารถดูสถานะ, ตั้งค่า WiFi และอัปโหลดโปรแกรมได้
รัน Python บน Linux
บน Linux MPU คุณสามารถรัน Python ได้โดยตรง:
# เข้า Serial Console หรือ SSH
root@arduino-uno-q:~# python3
Python 3.11.0 (default, Feb 2026)
[GCC 11.3.0] on linux
>>> print("Hello from Arduino UNO Q!")
Hello from Arduino UNO Q!
>>>💡 เคล็ดลับ
ใช้ Linux MPU สำหรับงานที่ต้องการพลังประมวลผลสูง เช่น Image Processing, Machine Learning, Data Logging และใช้ STM32 MCU สำหรับ Real-time Control เช่น การควบคุม Motor, อ่าน Sensor ที่ต้องการ Timing แม่นยำ
การใช้งาน STM32 MCU
ด้าน MCU ใช้ STM32H7 ซึ่งเขียนโปรแกรมได้ด้วย Arduino Framework เหมือนบอร์ด Arduino ทั่วไป:
ตัวอย่าง: อ่านค่า Analog
// ตัวอย่างการอ่านค่า Potentiometer
// ต่อ Potentiometer เข้ากับขา A0
const int potPin = A0; // ขา Analog Input
void setup() {
Serial.begin(115200); // เปิด Serial
}
void loop() {
int potValue = analogRead(potPin); // อ่านค่า (0-4095)
float voltage = potValue * (3.3 / 4095.0); // แปลงเป็น Volt
Serial.print("ค่า: ");
Serial.print(potValue);
Serial.print(" | แรงดัน: ");
Serial.print(voltage);
Serial.println(" V");
delay(100);
}ตัวอย่าง: ใช้ PWM
// ตัวอย่างการควบคุมความสว่าง LED ด้วย PWM
// ต่อ LED เข้ากับขา D9
const int ledPin = 9; // ขา PWM
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
// ค่อยๆ เพิ่มความสว่าง (0-255)
for (int i = 0; i <= 255; i++) {
analogWrite(ledPin, i);
delay(10);
}
// ค่อยๆ ลดความสว่าง
for (int i = 255; i >= 0; i--) {
analogWrite(ledPin, i);
delay(10);
}
}MicroPython บน MCU
นอกจาก C++/Arduino Framework คุณยังใช้ MicroPython บน STM32 ได้:
# MicroPython บน STM32 MCU
from machine import Pin, PWM
import time
# ตั้งค่า PWM บนขา GP9
led = PWM(Pin(9), freq=1000)
# ไล่ความสว่าง
while True:
for duty in range(0, 1024):
led.duty(duty)
time.sleep(0.01)
for duty in range(1023, -1, -1):
led.duty(duty)
time.sleep(0.01)การสื่อสารระหว่าง MPU และ MCU
จุดเด่นของ UNO Q คือสามารถให้ Linux MPU และ STM32 MCU คุยกันได้ ผ่านหลายช่องทาง:
วิธีที่ 1: Shared Memory
ทั้งสองฝั่งสามารถเข้าถึง Shared Memory Region ร่วมกันได้:
// ฝั่ง MCU (C++)
#include "unoq_shared.h"
SharedMemory& shm = SharedMemory::getInstance();
void loop() {
// เขียนข้อมูลไปที่ Shared Memory
shm.writeSensorData(sensorValue);
// อ่านคำสั่งจาก MPU
if (shm.hasCommand()) {
int cmd = shm.readCommand();
// ทำตามคำสั่ง...
}
}# ฝั่ง MPU (Python)
import unoq
shm = unoq.SharedMemory()
while True:
# อ่านข้อมูลจาก MCU
sensor_data = shm.read_sensor_data()
print(f"Sensor: {sensor_data}")
# ส่งคำสั่งไปที่ MCU
shm.write_command(1) # เปิด LED
time.sleep(1)วิธีที่ 2: UART Bridge
ใช้ Serial ในการส่งข้อมูลระหว่างกัน:
// ฝั่ง MCU (C++)
void setup() {
Serial1.begin(115200); // Serial1 เชื่อมต่อกับ MPU
}
void loop() {
// ส่งข้อมูลไป MPU
Serial1.println("SENSOR:25.5");
// รับข้อมูลจาก MPU
if (Serial1.available()) {
String cmd = Serial1.readStringUntil('\n');
// ประมวลผลคำสั่ง...
}
delay(100);
}# ฝั่ง MPU (Python)
import serial
ser = serial.Serial('/dev/ttyS1', 115200, timeout=1)
while True:
# อ่านข้อมูลจาก MCU
if ser.in_waiting:
data = ser.readline().decode('utf-8')
print(f"MCU: {data}")
# ส่งคำสั่งไป MCU
ser.write(b'LED_ON\n')
time.sleep(1)ตัวอย่างโปรเจกต์
โปรเจกต์ 1: Smart Camera
คำอธิบาย
ใช้ MIPI Camera ถ่ายภาพ ประมวลผลด้วย AI บน Linux MPU และส่งผลลัพธ์ไปที่ MCU เพื่อควบคุม Output
อุปกรณ์
- Arduino UNO Q
- MIPI Camera Module
- Servo Motor (ต่อกับ MCU)
การทำงาน
- MPU ถ่ายภาพจากกล้อง
- MPU รัน AI Model ตรวจจับวัตถุ
- MPU ส่งผลลัพธ์ไปที่ MCU ผ่าน Shared Memory
- MCU ควบคุม Servo ตามผลลัพธ์
โปรเจกต์ 2: Edge AI Weather Station
คำอธิบาย
MCU อ่านค่า Sensor หลายตัว ส่งไป MPU เพื่อวิเคราะห์และพยากรณ์ด้วย ML
อุปกรณ์
- DHT22 Sensor (อุณหภูมิ/ความชื้น)
- BMP280 Sensor (ความดัน)
- Light Sensor (LDR)
การทำงาน
- MCU อ่านค่า Sensor ทุกๆ 1 วินาที
- MCU ส่งข้อมูลไป MPU ผ่าน UART
- MPU เก็บข้อมูลและรัน ML Model พยากรณ์
- MPU ส่งผลลัพธ์ไป Cloud (CynoIoT/มือถือ)
โปรเจกต์ 3: Voice Assistant
คำอธิบาย
ใช้ MPU รัน Speech Recognition และ MCU ควบคุม Home Automation
อุปกรณ์
- I2S Microphone
- Relay Module (ควบคุมไฟ/ปั๊ม)
- Speaker (I2S)
การทำงาน
- MPU ฟังเสียงจาก Microphone
- MPU แปลงเสียงเป็นข้อความ (STT)
- MPU ประมวลผลคำสั่ง
- MPU ส่งคำสั่งไป MCU
- MCU ควบคุม Relay/เซ็นเซอร์
เปรียบเทียบกับบอร์ดอื่น
| บอร์ด | CPU | RAM | Connectivity | ราคาโดยประมาณ | เหมาะกับ |
|---|---|---|---|---|---|
| Arduino UNO Q | Qualcomm + STM32H7 | 4GB (MPU) + 1MB (MCU) | WiFi 6E, BT 5.3 | $80-100 | Edge AI, Computer Vision |
| Raspberry Pi 5 | Broadcom BCM2712 | 4GB/8GB | WiFi, BT, Gigabit Ethernet | $60-80 | General Computing, Media |
| ESP32-S3 | Xtensa LX7 Dual | 512KB SRAM | WiFi 5, BT 5 | $5-10 | IoT ทั่วไป, Battery Powered |
| Arduino UNO R4 | RA4M1 (ARM Cortex-M4) | 32KB SRAM | USB | $20-25 | มือใหม่, โปรเจกต์พื้นฐาน |
🎯 เลือกบอร์ดอย่างไร?
- Arduino UNO Q: ต้องการ AI/ML, Computer Vision, หรือ Dual Processing
- Raspberry Pi 5: General Computing, Media Center, Desktop Replacement
- ESP32-S3: IoT ประหยัดไฟ, Battery Powered, ราคาถูก
- Arduino UNO R4: เรียนรู้พื้นฐาน, โปรเจกต์ง่ายๆ
สรุป
Arduino UNO Q เป็นบอร์ดที่น่าสนใจมากสำหรับผู้ที่ต้องการพลังการประมวลผลเพิ่มขึ้น โดยเฉพาะ:
- Edge AI Developers: รัน AI Model บนบอร์ดได้โดยตรง
- Computer Vision Projects: มีกล้องและ NPU สำหรับ Image Processing
- Advanced IoT: ต้องการทั้ง Linux Processing และ Real-time Control
- Makers ที่ต้องการทดลอง: เทคโนโลยีไฮบริดใหม่ๆ
ข้อดี
- ไฮบริด Architecture (MPU + MCU)
- รัน AI/ML ได้บนบอร์ด
- เชื่อมต่อ MIPI Camera ได้
- Arduino Ecosystem เหมือนเดิม
- WiFi 6E และ Bluetooth 5.3
ข้อเสีย
- ราคาสูงกว่าบอร์ดทั่วไป
- ซับซ้อนกว่า (มีสองฝั่งให้จัดการ)
- กินไฟเยอะ (ไม่เหมาะกับ Battery)
- ยังใหม่ ทรัพยากรการเรียนรู้น้อย
ถัดไป
ตอนนี้คุณรู้จัก Arduino UNO Q แล้ว! ลองดูบทความเหล่านี้ต่อ:
- ESP32 Selection Guide 2026 - เปรียบเทียบบอร์ด ESP32 ทุกรุ่น
- ESP32 Low Power Sensor Node - สร้าง Sensor Node ประหยัดไฟ
- เริ่มต้นใช้งาน RP2040 - อีกตัวเลือกบอร์ด ARM Cortex-M