เจ้า LulaBot!
มุมมองของโปรเจค
LulaBot: Arduino Rolling Robot! คือโปรเจคหุ่นยนต์วิ่ง 2 ล้อพื้นฐานแต่เจ๋งมาก ใช้บล็อคพื้นฐานอย่างมอเตอร์ DC กับ Arduino ในการเรียนรู้วิธีสั่งให้มันวิ่งไปบนพื้นราบได้ ด้วยลอจิกซอฟต์แวร์และเซ็ตอัพฮาร์ดแวร์ที่จัดเต็ม
ขั้นตอนที่ 1: อุปกรณ์ที่ต้องใช้
1. ตัวต้านทาน (Resistor) 3.3k และ 2.2k
<_e_1jU4><_e_1jU4>หมายเหตุ: HC05 มันทนแรงดัน 5v ได้นะ แต่มันเป็นอุปกรณ์ลอจิก 3.3vนี่แหละที่พี่ใช้ตัวต้านทาน 3.3k กับ 2.2k เพื่อลดแรงดันจาก 5v ให้เกือบๆ 3.3v กันไว้ดีกว่าแก้ จริงมะ?<_e_1jU4>สำหรับตัวถังพี่ใช้ กล่องขนไก่แบดมินตัน
การลงมือทำจริง: การเคลื่อนที่และการขับ
โปรเจคนี้จะเผยให้เห็นเลเยอร์ซ้อนๆ ของหุ่นยนต์พื้นฐาน:
- เลเยอร์การเคลื่อนที่: ใช้ มอเตอร์ DC กับเกียร์บ็อกซ์ 2 ตัว หุ่นยนต์จะวิ่งหน้า ถอยหลัง เลี้ยวซ้าย ขวาได้ด้วยการปรับความเร็วของมอเตอร์แต่ละข้าง
- เลเยอร์ขับเคลื่อน: โมดูลขับมอเตอร์ L298N จะจ่ายกระแสสูงที่มอเตอร์ต้องการ จากสัญญาณแรงดันต่ำของ Arduino
- ลูปการเคลื่อนที่แบบลำดับ: โค้ด Arduino ใช้สัญญาณ
digitalWrite()หรือanalogWrite()สองตัวเพื่อขับมอเตอร์ "ขวา" หรือ "ซ้าย" ด้วยความเร็วต่างกัน - เลเยอร์อินเตอร์เฟซเซนเซอร์: เซนเซอร์อัลตราโซนิก (HC-SR04) (ตัวเลือกเสริม) ทำหน้าที่เป็น "ตา" ของหุ่น คอยตรวจจับสิ่งกีดขวางและกระตุ้นให้หุ่นยนต์เลี้ยวอัตโนมัติ
ขั้นตอนที่ 2: หลักการทำงาน
หุ่นยนต์ตัวนี้ควบคุมแบบไร้สาย ดังนั้นแอพบน Android จะส่งตัวอักษรมา แล้ว Arduino จะอ่านผ่านโมดูลบลูทูธ HC05 โดยใช้การสื่อสารแบบ Serial (อนุกรม) สมมติพี่ส่งตัวอักษร 'f' ไป ก็เขียนโค้ดไว้ว่าถ้าอ่านเจอ 'f' ให้รันคำสั่งเดินหน้า ถ้าไม่มีคำสั่งก็ไม่ทำอะไร นั่นคือให้หุ่นหยุดนั่นเอง
โครงสร้างพื้นฐานฮาร์ดแวร์
- Arduino Uno: "สมอง" ของโปรเจค คอยจัดการสัญญาณให้โมดูลขับมอเตอร์และประสานงานภารกิจการเคลื่อนที่และการเลี้ยว
- L298N Motor Driver: จัดการกับไฟ 12V ที่มอเตอร์ต้องการได้อย่างมีประสิทธิภาพ พร้อมทั้งปกป้อง Arduino ของเราด้วย
- มอเตอร์ DC: ให้การเคลื่อนไหวทางกายภาพและทิศทางในทุกการเดินทางของหุ่นยนต์
- ชาซีหุ่นยนต์ 2 ล้อ (2WD Robot Chassis): โครงสร้างที่ใช้ติดตั้ง Arduino, โมดูลขับมอเตอร์ และแบตเตอรี่
- แบตเตอรี่ลิเธียมโพลิเมอร์ 7.4V: สำคัญมากถ้าอยากให้หุ่นยนต์พกพาได้และพึ่งพาตัวเองได้
- สาย Micro-USB: ใช้โปรแกรม Arduino โดยตรงจากคอมและจ่ายไฟไปด้วย
ขั้นตอนที่ 3: สร้างตัวถัง
ไม่รู้ทำไมอัพโหลดรูปไม่ได้เลย ดูในวิดีโอดีกว่า จะได้เห็นว่าพี่ทำตัวถังยังไง
การทำตัวถัง เริ่มจากตัดกล่อง (กล่องขนไก่) ออกก่อน จากนั้นตัดกระดาษแข็งเป็นวงกลมเพื่อวางมอเตอร์แต่ละข้าง (ดูรูปที่ 2 & 3) แล้วใช้กาวร้อนปริมาณที่เหมาะสมยึดทุกอย่างเข้าที่ ตัดช่องเพื่อใส่แบตเตอรี่และชิ้นส่วนอิเล็กทรอนิกส์ข้างในด้วย หลังจากนั้นก็ติดล้อ ตอนนี้จะเห็นว่าล้อแตะพื้นนิดเดียวเอง ใส่กาวร้อนเพิ่มรอบล้อให้ใหญ่ขึ้นหน่อย ดูคล้ายๆ ล้อรถน้ำแข็ง (ดูสองรูปสุดท้าย) จากนั้นก็ทาสีตามใจชอบ มันคือลูกหุ่นยนต์ของน้องเอง ;) พี่ใช้สีสเปรย์ผงน่ะ
ขั้นตอนที่ 4: วงจรและอิเล็กทรอนิกส์
พี่ทำด้วย L293d motor driver เพราะมันเล็กและเหมาะกับหุ่นยนต์ตัวเล็ก แต่เพื่อความสะดวกของน้องๆ พี่ก็ทำวงจรเดียวกันกับโมดูล L298n motor driver (ใช้ง่ายกว่า) จากนั้นก็บัดกรีทุกอย่างลงบน vero board (ดูรูปได้เลย)
หาภาพวงจรด้านล่างให้เจอนะจ๊ะ
การเคลื่อนที่และวงจรป้อนกลับ (Locomotion and Feedback Loop)
เจ้ารถหุ่นยนต์กลิ้งตัวนี้ถูกออกแบบมาให้ทำงานได้อย่างมีประสิทธิภาพสุดๆ:
- ตั้งค่าฮาร์ดแวร์ (Initialize Hardware): วางมอเตอร์ไดรเวอร์และมอเตอร์ลงบนฐานรถ 2WD ให้ถูกต้องแน่นหนา
- เซ็ตเอาต์พุต (Setup Outputs): ในฟังก์ชัน
setup()ของ Arduino ให้กำหนดให้พินควบคุมของมอเตอร์ไดรเวอร์เป็นโหมดOUTPUT - สั่งงานขับเคลื่อน (Driving Execution): ใช้คำสั่งพื้นฐานง่ายๆ (เช่น
forward(),stop(),left()) เพื่อบังคับให้มันวิ่งไปบนพื้น - แสดงผลแบบเห็นและได้ยิน (Visual and Audio Feedback): จ้องดูมันเคลื่อนที่ไปบนพื้นแบบเรียลไทม์ไปเลย ส่วนบัซเซอร์ตัวจิ๋วหรือ LED ก็เอาไว้ใช้บอกสถานะ "เจอทางแล้ววว" ได้
ขั้นตอนที่ 5: อัพโหลดโค้ด & ดาวน์โหลดแอป
|| อาร์ดุยโน่ โปร มินิ มันถูกสุดๆ เลยไง มันเลยไม่มีพอร์ต USB ให้โปรแกรมโดยตรง วิธีอัพโหลดโค้ดคือใช้โมดูล USB to TTL แต่พี่ชอบวิธีนี้มากกว่า นั่นคือใช้อาร์ดุยโน่ Uno ของเราเป็นโปรแกรมเมอร์ให้เจ้าโปร มินิ ตัวนี้เอง
ขั้นตอน:
ถอดไอซี Atmega ออกจากบอร์ด Uno ออกก่อน
ต่อสายตามนี้เลย:
Uno 5v -- pro mini vcc
TX -- tx
RX -- rx
reset -- rst
<_e_1jU4><_e_1jU4>ดาวน์โหลดโค้ดจากลิงก์ด้านล่าง หรือไม่ก็ดูโค้ดที่แปะไว้ด้านล่างสุดของบทความนี้ได้เลย
<_e_1jU4>จากนั้นก็ดาวน์โหลดแอปควบคุมจากลิงก์ด้านล่าง
ขั้นตอนที่ 6: ขั้นตอนสุดท้ายแล้ววว
เปิดแอปที่ดาวน์โหลดมา มันจะขอเปิดบลูทูธ ก็กดตกลงไปเลย แต่ก่อนจะเชื่อมต่อกับ HC-05 ได้ ต้องไป Pair กับโมดูลบลูทูธในตั้งค่า Bluetooth ของมือถือก่อน (รหัสผ่านมันจะบอกไว้อยู่แล้ว)
พี่ใช้แบตเตอรี่ลิเธียม 3.7V จำนวน 2 ก้อน ต่ออนุกรมให้ได้ 7.4V น้องอาจจะใช้แบตเตอรี่ 7V ถึง 9V ก็ได้นะ
ทีนี้ก็สนุกกับการควบคุมมันได้เลย! ถ้าชอบผลงานนี้ก็อย่าลืมกดติดตามช่องพี่ด้วยล่ะ
ไอเดียพัฒนาต่อในอนาคต
- เพิ่มหน้าจอ OLED Identity Dashboard: เอา OLED จอเล็กๆ มาติดแสดงค่าต่างๆ เช่น "พลังชีวิต" หรือ "ดัชนีความเป็นจริง" ของเส้นทางที่หุ่นยนต์เจอ
- เพิ่ม Cloud Interface Registration Support: ใส่โมดูล WiFi (ESP8266/ESP32) แล้วเชื่อมต่อกับแดชบอร์ดบนคลาวด์ เพื่อควบคุมและติดตามรถหุ่นยนต์จากมือถือได้แบบเป๊ะๆ
- เพิ่ม Advanced Velocity Profile Customization Support: ใส่ตัวรับสัญญาณ IR และรีโมทคอนโทรล เพื่อบังคับรถหุ่นยนต์กลิ้งแบบไร้สายด้วยมือ
- เพิ่ม Multi-Sensor Bio-Security Integration Support: ต่อเซ็นเซอร์หลายๆ ตัว (เช่น อัลตราโซนิก) เพื่อช่วยให้หุ่นยนต์เดินทางผ่าน "ความเป็นจริง" หรือเขาวงกตที่ซับซ้อนขึ้นได้
LulaBot: Arduino Rolling Robot! เป็นโปรเจกต์ที่เพอร์เฟกต์มากสำหรับคนที่ชอบอิเล็กทรอนิกส์และอยากได้เครื่องมือหุ่นยนต์ที่โต้ตอบกับเราได้สนุกกว่าเดิม!
ขอบคุณที่อ่านมาจนจบนะน้อง สู้งานต่อไป!