Arduino Nano ปัจจุบันนิยมใช้ในงานที่ไม่เป็นต้องต่ออินเตอร์เน็ต และนิยมใช้งานกันมากในงานต้นแบบ ทำโครงงานที่ไม่ซับซ้อน เช่น ระบบควบคุมเรื่องซักผ้าหยอดเหรียญ บอร์ดควบคุมแขนกล บอร์ดควบคุมสายพาน บอร์ดควบคุมจอรายงานชิ้นงานที่ผลิตได้ในไลน์ผลิต เครื่องรดน้ำต้นไม้อัตโนมัติ ไทม์เมอร์เปิด-ปิดเครื่องใช้ไฟฟ้า เป็นต้น โดยตัวบอร์ดมีขนาดเล็ก เสียบลงโพรโทรบอร์ดได้ อัพโหลดโปรแกรมได้ง่ายเพียบเสียบสาย USB เข้าคอมก็อัพโหลดโปรแกรมได้เลย เขียนโปรแกรมด้วย Arduino IDE
RP2 Nano เป็นบอร์ดทดแทน Arduino Nano ใช้ชิป RP2040 ซีพียูแรงกว่า พื้นที่อัพโหลดโปรแกรมมากกว่า แรมมากกว่า ออกแบบมาให้ใช้ทดแทนกันได้มากที่สุด เพื่อให้ใช้บอร์ดเสริม อุปกรณ์เสริมอันเดียวกันกับ Arduino Nano ได้เลย โดยบอร์ด RP2 Nano มีตำแหน่งการวางขา และอ้างอิงหมายเลขขาตรงกับ Arduino Nano เกือบทั้งหมด ส่วนสเปคด้าน CPU แรงกว่า แรมมากกว่า พื้นที่อัพโหลดโปรแกรมเยอะกว่า อัพโหลดโปรแกรมเข้าชิปผ่าน USB ไม่มีชิป USB to Serial/UART
ในบทความนี้จะแนะนำสเปคบอร์ด RP2 Nano, ความแตกต่างกับ Arduino Nano และการเขียนโปรแกรมใช้งานเบื้องต้น
ความแตกต่างด้านสเปคมีดังนี้
Arduino Nano หน่วยประมวลผล (CPU) เป็นแบบ 8 บิต คอร์เดียว (Single-core) ความเร็ว 16MHz
RP2 Nano ใช้ CPU สถาปัตยกรรม Arm Cortex-M0+ เป็นแบบ 32 บิต มี 2 คอร์ (Dual-core) ความเร็ว 133MHz
ดังนั้น RP2 Nano จึงมี CPU ที่เร็วกว่าบอร์ด Arduino Nano ถึง 8 เท่า
Arduino Nano มีแรม 4 kB และรอม (Flash) ที่ใช้เก็บโปรแกรม 32 kB
RP2 Nano มีแรม 264 kB และรอม (Flash) ที่ใช้เก็บโปรแกรม 2 MB
ดังนั้น RP2 Nano จึงมีแรมที่มากกว่าบอร์ด Arduino Nano ถึง 66 เท่า และมีรอม (Flash) ที่มากกว่าบอร์ด Arduino Nano ถึง 62 เท่า
บอร์ด Arduino Nano ใช้ไฟ 5V เป็นหลัก แต่บอร์ด RP2 Nano ใช้ไฟ 3.3V เป็นหลัก ดังนั้นจำเป็นต้องตรวจสอบว่าอุปกรณ์ที่นำมาต่อกับ RP2 Nano นั้นใช้แรงดันไฟฟ้าในการทำงานเท่าไร หากใช้ 3.3V ได้ ก็สามารถจ่ายไฟ 3.3V จากช่อง 3.3V เข้าไปที่ตัวอุปกรณ์ แล้วนำสายสัญญาณมาต่อเข้ากับบอร์ด RP2 Nano ได้เลย แต่หากอุปกรณ์นั้นจำเป็นต้องใช้แรงดัน 5V และเป็นอุปกรณ์ประเภทอินพุตที่ให้แรงดันลอจิก 5V มา จำเป็นต้องต่อ Logic Level Convertor เพื่อแปลงระดับสัญญาณลอจิกก่อน
* อุปกรณ์ที่ใช้แรงดัน 5V ส่วนใหญ่ใช้แรงดัน 3.3V ได้ แต่อุปกรณ์ที่ใช้แรงดัน 3.3V จะใช้แรงดัน 5V ไม่ได้
อุปกรณ์ประเภทอินพุตและเอาต์พุตส่วนใหญ่รองรับแรงดันทั้ง 5V และ 3.3V อยู่แล้ว จึงต่อตรงเข้าบอร์ด RP2 Nano ได้เลย เช่น
อุปกรณ์อื่น ๆ ที่ต่อสัญญาณเข้าบอร์ด RP2 Nano ได้โดยตรง แต่ต้องจ่ายไฟเลี้ยง 5V เช่น
ด้านบนของบอร์ด RP2 Nano มีดังนี้
ด้านล่างของบอร์ด RP2 Nano มีส่วนประกอบดังนี้
(Arduino IDE) บางครั้งการเขียนโปรแกรมที่ไม่ดี อาจไปกระทบระบบเข้าโหมดอัพโหลดโปรแกรมอัตโนมัติ เพื่อให้อัพโหลดโปรแกรมเข้าบอร์ดได้อีกครั้ง จำเป็นต้องบังคับเข้าโหมดอัพโหลดโปรแกรมก่อน จึงจะอัพโปรแกรมได้
(MicroPython) ภาษาไพทอนเป็นภาษาที่ใช้ Interpreter ในการแปลคำสั่งที่มนุษย์เขียนขึ้นไปเป็นภาษาที่ซีพียูเข้าใจ ดังนั้นการเขียนโปรแกรมภาษาไพทอนจำเป็นต้องติดตั้ง Interpreter ก่อน โดยเข้าโหมดอัพโหลดโปรแกรมแล้วคัดลอกไฟล์ .uf2 ไปวาง
การบังคับเข้าโหมดอัพโหลดโปรแกรมให้กดปุ่มตามขั้นตอนดังนี้
(Arduino IDE) ที่โปรแกรม Arduino IDE ให้เลือกพอร์ตเป็น แล้วอัพโหลดโปรแกรมตามปกติ
(MicroPython) นำไฟล์ .uf2 ไปวางในไดร์ที่ชื่อ RP2 ตามปกติ
การเขียนโปรแกรมด้วย Arduino IDE จำเป็นต้องติดตั้งบอร์ด RP2040 เพิ่ม ตามขั้นตอนในบทความ การติดตั้ง และใช้งาน Arduino IDE V2 หัวข้อ การติดตั้งบอร์ด ESP32, ESP8266, STM32, RP2040 เพิ่ม
การเขียนโปรแกรมด้วย Arduino IDE ครั้งแรก จำเป็นต้องทำตามขั้นตอนหัวข้อ การบังคับเข้าโหมดอัพโหลดโปรแกรม ก่อน
เปิดโปรแกรม Arduino IDE ขึ้นมา จากนั้นเลือกบอร์ดเป็น ArtronShop RP2 Nano
เลือกพอร์ตเป็น UF2 Board
เปิดโปรแกรมตัวอย่าง Blink โดยกด File > Example > 01.Basic > Blink
กดปุ่มอัพโหลด เพื่ออัพโหลดโปรแกรมลงบอร์ด (1) แล้วรอจนกว่าจะมีข้อความ Done uploading แสดงขึ้นมา (2) เป็นอันอัพโหลดโปรแกรมเสร็จ
หลังจากอัพโหลดโปรแกรมเสร็จ หลอดแอลอีดี D13 บนบอร์ดจะพริบ
หลังอัพโหลดโปรแกรมครั้งแรก พอร์ตของบอร์ด RP2 Nano จะเปลี่ยนไป ให้เลือกพอร์ตใหม่อีกครั้ง
การอัพโหลดโปรแกรมครั้งถัดไป สามารถกดปุ่มอัพโหลดโปรแกรมได้เลย โดยไม่ต้องทำตามขั้นตอนเข้าโหมดอัพโหลดโปรแกรมอีก
microBlock IDE รองรับการเขียนโปรแกรมด้วยบล็อกและโค้ดไพทอน (MicroPython) ปัจจุบันการเขียนโปรแกรมให้บอร์ด RP2 Nano รองรับในเวอร์ชั่น V2.9.0-beta ซึ่งดาวน์โหลดได้ที่ microBlock IDE offline V2.9.0-beta
อ่านวิธีติดตั้งและใช้งาน microBlock IDE เบื้องต้นได้ที่ เริ่มต้นใช้งาน microBlock IDE เวอร์ชั่นโปรแกรม
เปิดโปรแกรม microBlock IDE ขึ้นมา จากนั้นกดปุ่ม New project เพื่อสร้างโปรเจคใหม่
กด Yes เพื่อยืนยันการสร้างโปรเจคใหม่
หน้าต่าง New project จะแสดงขึ้นมา ในหัวข้อ Hardware กดปุ่ม See more แล้วเลือก ArtronShop RP2 Nano แล้วกด Create
ทดลองเขียนโปรแกรมไฟกระพริบ โดยกดที่เมนู Pin แล้วคลิกค้างที่บล็อก digital write ลากมาไว้ในพื้นที่ทำงาน
กดที่เมนู Control แล้วลาก wait ... seconds และ forever ออกมา
นำบล็อกทั้งหมดมาจัดเรียง ได้โค้ดโปรแกรมไฟกระพริบฉบับเต็ม ดังรูป
เบื้องหลังของโปรแกรม microBlock IDE จะแปลงบล็อก เป็นโค้ดไพทอน (MicroPython) แล้วค่อยอัพโหลดโค้ดไพทอนเข้าไป การใช้งานครั้งแรกจำเป็นต้องติดตั้ง MicroPython ลงบอร์ดก่อน เพื่อให้บอร์ดเข้าใจภาษาไพทอน
กดที่ Board > Update Firmware
หากแสดงข้อความสีแดง (ดังรูป) ให้ทำตามหัวข้อ การบังคับเข้าโหมดอัพโหลดโปรแกรม หากไม่มีข้อความสีแดง ให้ไปขั้นตอนถัดไปเลย
กดปุ่ม Upgrade Firmware เพื่อเริ่มอัพเดท MicroPython ทันที
หน้าต่างให้บันทึกไฟล์ .uf2 จะแสดงขึ้นมา ให้เข้าไปที่ไดร์ชื่อ RPI-RP2 (ไดร์ของบอร์ด RP2 Nano) แล้วกด Save
รอจนกว่าจะมีข้อความ Serial port connected (1) แล้วกดปุ่ม Upload Program เพื่ออัพโหลดโค้ดทันที
หากอัพโหลดโปรแกรมสำเร็จจะแสดงข้อความ Upload Successful (ดังรูป) หลอดแอลอีดีบนบอร์ดก็จะกระพริบทันที
ดาวน์โหลดโปรแกรม Thonny ได้ที่ https://thonny.org/ แล้วติดตั้งโปรแกรมตามขั้นตอน
ระหว่างรอดาวน์โหลดและติดตั้งโปรแกรม Thonny ให้ติดตั้ง MicroPython ลง RP2 Nano ก่อน โดยดาวน์โหลดไฟล์ MicroPython for ArtronShop RP2 Nano ได้ที่ https://dl.artronshop.co.th/RP2-Nano/MicroPython.for.RP2-Nano.v1.19.1-796-gf4811b0b4-dirty.uf2 จะได้ไฟล์ MicroPython.for.RP2-Nano.v1.19.1-796-gf4811b0b4-dirty.uf2 มา
ที่บอร์ด RP2 Nano ให้เข้าโหมดอัพโหลดโปรแกรมตามหัวข้อ การบังคับเข้าโหมดอัพโหลดโปรแกรม แล้วเปิด This PC ขึ้นมา เข้าไปที่ไดร์ที่ชื่อ RPI-RP2 นำไฟล์ MicroPython.for.RP2-Nano.v1.19.1-796-gf4811b0b4-dirty.uf2 ไปวางในไดร์นี้
จากนั้นไดร์ชื่อ USB Drive จะปรากฏขึ้นมา สามารถใส่ไฟล์โค้ดไพทอน (ไฟล์ .py) หรือไฟล์อื่น ๆ ลงไปได้เลย
โดยปกติเมื่อบอร์ดเริ่มทำงาน โค้ดที่อยู่ในไฟล์ main.py จะถูกเรียกขึ้นมาทำงานอัตโนมัติ ดังนั้นโค้ดที่ต้องการให้เริ่มทำงานอัตโนมัติสามารถสร้างไฟล์ main.py ขึ้นมา แล้ววางโค้ดไว้ได้เลย
เมื่อติดตั้งโปรแกรม Thonny เสร็จแล้ว ให้เปิดโปรแกรม Thonny ขึ้นมา จะได้หน้าต่างโปรแกรมดังรูป
ตั้งค่าเชื่อมต่อบอร์ด RP2 Nano โดยกดที่เมนู Run > Configure interpreter...
กดที่แท็บ Interpreter (1) เลือก MicroPython (RP2040) (2) แล้วเลือก COM port ที่มีให้เลือก (3) แล้วกดปุ่ม OK (4)
หากโปรแกรมสามารถเชื่อมต่อกับบอร์ด RP2 Nano ได้สำเร็จ ในหน้าต่าง Shell มีจะข้อความ MicroPython ขึ้น และมีชื่อบอร์ด ArtronShop RP2 Nano ขึ้น (ดังรูป)
ทดลองเขียนโปรแกรมไฟกระพริบดังนี้ (1)
จากนั้นกดปุ่ม Run (2) จากนั้นข้อความในหน้าต่าง Shell จะแสดง MPY: soft reboot (3) ขึ้นมา สังเกตที่บอร์ด RP2 Nano ไฟ D13 จะกระพริบแล้ว
อ่านคำสั่งภาษาไพทอนที่มีให้ใช้ทั้งหมดได้ที่ https://docs.micropython.org/en/latest/rp2/quickref.html
ดาวน์โหลดไลบรารี่บอร์ด RP2 Nano ได้ที่ https://dl.artronshop.co.th/RP2-Nano/RP2%20Nano.fzpz จากนั้นทำตามบทความ การวาดวงจรอิเล็กทรอนิกส์ด้วย Fritzing