เนื้อหาในบทความ
RP2040 คืออะไร?
RP2040 คือชิปไมโครคอนโทรลเลอร์แรกของ Raspberry Pi Foundation ที่ออกแบบมาเพื่อให้สามารถใช้งานได้ง่ายและมีราคาย่อมเยา ชิปนี้มาพร้อมกับบอร์ด Raspberry Pi Pico ซึ่งเป็นบอร์ดพัฒนาขนาดเล็กที่เหมาะสำหรับโปรเจกต์ IoT งานอิเล็กทรอนิกส์ และการเรียนรู้การเขียนโปรแกรมฝังตัว
RP2040 แตกต่างจากไมโครคอนโทรลเลอร์อื่นๆ ตรงที่ออกแบบโดยทีมงาน Raspberry Pi ที่มีประสบการณ์ในการสร้างคอมพิวเตอร์ขนาดเล็กที่เข้าถึงได้ง่าย และรองรับภาษาโปรแกรมที่หลากหลายทั้ง MicroPython และ C/C++
คุณสมบัติของ RP2040
สเปคทางเทคนิค
- •Dual-Core ARM Cortex-M0+: ความเร็ว 133 MHz
- •264KB SRAM: หน่วยความจำภายในขนาดใหญ่
- •2MB Flash: หน่วยความจำสำหรับเก็บโปรแกรม (บน Pico)
- •26 GPIO Pins: ขา Input/Output ที่ใช้งานได้
- •Flexible I/O: รองรับ UART, SPI, I2C, PWM, ADC
- •PIO (Programmable I/O): ฟีเจอร์พิเศษที่เป็นเอกลักษณ์ของ RP2040
- •ราคา: ~$4 (ประมาณ 150 บาท)
🔥 จุดเด่นของ RP2040
- ✓Dual-core ช่วยให้สามารถทำงานหลายอย่างพร้อมกันได้
- ✓PIO ช่วยสร้างโปรโตคอล custom ได้อย่างยืดหยุ่น
- ✓MicroPython ทำงานได้ทันทีไม่ต้องติดตั้ง compiler
- ✓เอกสารและ Community ที่แข็งแกร่งจาก Raspberry Pi
อุปกรณ์ที่ต้องใช้
Hardware Required
- 1Raspberry Pi Pico (หรือบอร์ด RP2040 อื่นๆ) - ~150-200 บาท
- 2Micro USB Cable - สายเชื่อมต่อคอมพิวเตอร์
- 3Breadboard และ Jumper Wires (สำหรับต่อวงจรทดลอง)
- 4LED และ Resistor (220-330 ohm) - สำหรับทดสอบ
💡 เคล็ดลับ: สามารถซื้อ Raspberry Pi Pico ได้จากร้านอุปกรณ์อิเล็กทรอนิกส์ทั่วไป หรือสั่งซื้อออนไลน์จากผู้จำหน่ายอย่างเป็นทางการ
ติดตั้ง MicroPython บน RP2040
MicroPython เป็นภาษา Python ที่ปรับแต่งให้ทำงานบนไมโครคอนโทรลเลอร์ ช่วยให้คุณสามารถเขียนโปรแกรมได้อย่างรวดเร็วและเข้าใจง่าย
Step 1: ดาวน์โหลด MicroPython Firmware
ไปที่เว็บไซต์ micropython.org และดาวน์โหลดไฟล์ firmware ล่าสุดสำหรับ Raspberry Pi Pico
Raspberry Pi Pico MicroPython UF2 File Step 2: ถือปุ่ม BOOTSEL และเสียบ USB
- 1.กดค้างปุ่ม BOOTSEL ที่อยู่ด้านบนของบอร์ด Pico
- 2.เสียบสาย USB เข้ากับคอมพิวเตอร์ (ค้างปุ่ม BOOTSEL ไว้)
- 3.บอร์ดจะปรากฏเป็นไดรฟ์ USB ชื่อ "RPI-RP2"
- 4.วางไฟล์ UF2 ลงในไดรฟ์นี้
ℹ️ หมายเหตุ: หลังจากวางไฟล์แล้ว บอร์ดจะรีสตาร์ทและ MicroPython พร้อมใช้งานแล้ว
Step 3: ติดตั้ง Thonny IDE
Thonny เป็นโปรแกรม Python IDE ที่เหมาะสำหรับมือใหม่ รองรับการเขียนโปรแกรม MicroPython บน RP2040 ได้อย่างสมบูรณ์
- 1.ดาวน์โหลด Thonny จาก thonny.org
- 2.ติดตั้งโปรแกรมตามปกติ
- 3.เปิด Thonny และเสียบ Pico เข้ากับ USB
- 4.เลือก MicroPython (Raspberry Pi Pico) ที่มุมขวาล่าง
โปรแกรมแรก: Blink LED
เริ่มต้นด้วยการทำให้ LED กระพริบ (Blink) ซึ่งเป็นโปรแกรมแรกของทุกคนที่เริ่มเรียนไมโครคอนโทรลเลอร์
การต่อสาย (Wiring)
- •ต่อขายาว (Anode) ของ LED เข้ากับ GP25 ผ่านตัวต้านทาน 220Ω
- •ต่อขาสั้น (Cathode) ของ LED เข้ากับ GND
import machine
import utime
# ตั้งค่าขา GP25 เป็น output
# (บน Pico มี LED ในตัวต่ออยู่ที่ GP25 อยู่แล้ว)
led = machine.Pin(25, machine.Pin.OUT)
# วนลูปไปเรื่อยๆ
while True:
led.value(1) # เปิด LED
utime.sleep(0.5) # รอ 0.5 วินาที
led.value(0) # ปิด LED
utime.sleep(0.5) # รอ 0.5 วินาที✅ บน Pico: มี LED ในตัวต่ออยู่ที่ GP25 แล้ว คุณสามารถรันโค้ดนี้ได้ทันทีโดยไม่ต้องต่อ LED เพิ่ม!
อ่านค่าจาก GPIO
ตอนนี้ลองอ่านค่าจากปุ่มกด (Push Button) เพื่อเรียนรู้การทำงานกับ Input
การต่อปุ่มกด
- •ต่อขาหนึ่งของปุ่มเข้ากับ GP15
- •ต่ออีกขาหนึ่งเข้ากับ GND
- •ใช้ Internal Pull-up ของ RP2040
import machine
# ตั้งค่าขา GP15 เป็น input พร้อม pull-up resistor
# เมื่อกดปุ่ม จะได้ค่า 0 (LOW)
# เมื่อไม่กด จะได้ค่า 1 (HIGH)
button = machine.Pin(15, machine.Pin.IN, machine.Pin.PULL_UP)
# ตั้งค่า LED
led = machine.Pin(25, machine.Pin.OUT)
while True:
if button.value() == 0: # ถ้ากดปุ่ม
led.value(1) # เปิด LED
else:
led.value(0) # ปิด LEDเชื่อมต่อกับ CynoIoT Platform
RP2040 สามารถเชื่อมต่อกับ CynoIoT Platform ได้หลายวิธี เช่น ผ่าน WiFi (ถ้าใช้บอร์ดที่มี WiFi module แยก) หรือผ่าน Serial/USB
🚀 ตัวเลือกการเชื่อมต่อ
- 1.Serial/USB Connection
ส่งข้อมูลผ่าน Serial USB เหมาะสำหรับการเก็บข้อมูลและดีบัก
- 2.WiFi Module แยก
ใช้ ESP8266 หรือ ESP32 เชื่อมต่อผ่าน SPI/UART เพื่อให้ RP2040 ออนไลน์ได้
- 3.Pico W (WiFi Built-in)
ใช้ Raspberry Pi Pico W ที่มี WiFi ในตัว เชื่อมต่อกับ CynoIoT โดยตรง
ส่งข้อมูลผ่าน Serial (ตัวอย่าง)
import machine
import utime
# ตั้งค่า Serial
uart = machine.UART(0, baudrate=115200)
# ส่งข้อมูลอุณหภูมิจำลอง
while True:
temp = 25.5 # อุณหภูมิจำลอง (°C)
uart.write(f'Temperature: {temp:.1f}\n')
utime.sleep(5) # ส่งทุก 5 วินาทีโปรเจกต์ต่อไปที่ควรลอง
🌡️ Weather Station
ทำสถานีวัดอุกกาบาตด้วย DHT11/DHT22 และส่งข้อมูลไป CynoIoT
🎮 Game Controller
สร้างคอนโทรลเลอร์เกมด้วย PIO และ USB HID
🌈 RGB LED Control
ควบคุม RGB LED ด้วย PWM และสร้าง Light Effects
📡 IoT Gateway
สร้าง IoT Gateway เชื่อมต่อเซ็นเซอร์หลายตัว
🎉 สรุป
ในบทความนี้คุณได้เรียนรู้:
- ✓RP2040 คืออะไรและทำไมถึงน่าสนใจ
- ✓วิธีติดตั้ง MicroPython บน Raspberry Pi Pico
- ✓การเขียนโปรแกรมพื้นฐาน: Blink LED และอ่านค่าปุ่มกด
- ✓วิธีเชื่อมต่อ RP2040 กับ CynoIoT Platform
RP2040 เป็นจุดเริ่มต้นที่ยอดเยี่ยมสำหรับการเรียนรู้ไมโครคอนโทรลเลอร์ ราคาย่อมเยา ใช้งานง่าย และมี community ที่แข็งแกร่ง