กลับไปหน้ารวมไฟล์
roger-bot-the-pet-rover-95a278.md

เจ้า ROGER BOT

คอนเซปต์การออกแบบของ Roger Bot ตัวนี้เน้นไปที่ 2 ฟีเจอร์หลักๆ คือ ฟังก์ชันของแขนกล (Robotic Arm) กับความคล่องตัวในการเคลื่อนที่แบบรถ Rover นอกจากนี้พี่ยังจัด [Sensor](https://s.shopee.co.th/7VBG2rX65j) มาให้แบบจุกๆ เพื่อดึงข้อมูลมาโชว์บนจอ [LCD](https://s.shopee.co.th/6AfsSPcAnb) display ส่วนงานโครงสร้างทั้งหมดพี่ใช้โปรแกรม CATIA V5 ออกแบบ แล้วก็ส่งไฟล์ STL ไปลุย 3D printer ออกมาเป็นตัวแบบที่เห็นนี่แหละน้อง

Roger Bot ตัวนี้เกิดมาเพื่อลุยในร่มนะวัยรุ่น อย่าเอาไปวิ่งบนพื้นขรุขระล่ะเดี๋ยวงานเข้า แต่วิ่งบนพื้นเรียบๆ นี่ลื่นปรื๊ดเลย ส่วนเรื่องการขับเคลื่อนตอนนี้ยังมีจุดอ่อนนิดหน่อย ใครมีไอเดียเจ๋งๆ ก็มาบอกพี่ได้นะ พี่ออกแบบล้อเป็นทรง Tripod (สามล้อ) โดยวางระยะล้อหลังให้กว้างหน่อย เวลาแขนกลขยับแรงๆ Roger Bot จะได้ไม่หน้าหงาย แถมใต้ท้องรถยังมีขาซัพพอร์ตพร้อมล้อบอล (Ball wheels) อีก 3 จุด ช่วยประคองน้ำหนักแขนกลตอนทำงานด้วย หล่อเท่เลยงานนี้

อีกเรื่องที่อยากแชร์คือ ตอนแรกพี่กะจะใช้ [Servo](https://s.shopee.co.th/7fUgFAWSki) motor ควบคุมล้อหน้าเพื่อเลี้ยว แต่พอเทสจริงแล้วพบว่าระยะล้อหลังมันกว้างเกินไป ล้อหน้าเลี้ยวยังไงรถก็แทบไม่ขยับ พี่เลยปรับแผนใหม่ ใช้การหมุนล้อหลังสองข้างสวนทางกันแทน (Differential Drive) จะหมุนตามเข็มหรือทวนเข็มก็สั่งได้ดั่งใจเลย

ระบบขับเคลื่อนพี่ใช้ Stepper motors ส่วนแขนกลจัด Servo motors มาให้แบบเต็มระบบ ทั้งหมดนี้ควบคุมด้วยสมองกล [Arduino](https://s.shopee.co.th/7fUgFAWSki) Mega 2650 ที่วางอยู่ท้ายรถนั่นเอง

นอกจากนี้ Roger Bot ยังเปิดเพลงได้ แถมบันทึกเสียงได้ประมาณ 10 วินาทีเอาไว้เปิดวนไปได้ด้วยนะ ส่วนการควบคุมทั้งหมด พี่สั่งงานผ่าน Bluetooth โดยใช้แอปที่เขียนจาก MIT App Inventor 2 จัดไปวัยรุ่น!

Roger Bot ในโหมดตรวจการณ์ (Surveillance mode)

ขั้นตอนการสร้าง (THE BUILD)

เพื่อความเข้าใจง่าย พี่แบ่งส่วนประกอบออกเป็น 3 ส่วนหลักๆ คือ:

  • ตัวถัง (The body)
  • ส่วนหัว (The head)
  • แขนกล (The arm)

ส่วนตัวถัง (THE BODY)

โครงสร้างส่วนตัวถังเกือบทั้งหมดใช้ 3D-printed ยกเว้นพวกล้อ ประกอบด้วยแผ่นเพลท 2 แผ่นยึดเข้าด้วยกัน ช่องว่างระหว่างแผ่นพี่เอาไว้เก็บพวก Voltage regulator modules, แบตเตอรี่ LiPo 11.1 V สองก้อน, LiPo 7.4 V หนึ่งก้อน และแบตเตอรี่ 9 V อีกก้อน พี่ใช้ตัวยึดสกรูไว้ใต้เพลทบนเพื่อจัดระเบียบสายไฟจาก Sensor, โมดูลคุมแรงดัน, Servo และ Stepper Motors ต่างๆ ใต้เพลทบนจะมีขาซัพพอร์ต 3 ขาพร้อมล้อบอล (Ball wheels) ที่หมุนปรับระดับความสูงต่ำได้ เพื่อกระจายน้ำหนักและบาลานซ์ตัว Roger Bot ให้สมดุลที่สุด

มุมมองด้านข้าง (Side view)

โครงสร้างด้านข้างสองฝั่งใช้ติดตั้ง Stepper motors สำหรับขับเคลื่อน และมีลำโพงสำหรับเครื่องเล่น MP3 กับโมดูลบันทึกเสียงติดอยู่ข้างบนด้วย ส่วนล้อพี่ซื้อแยกมาติดตั้งเข้ากับเพลา Mortor ด้วย Metal couplings โดยมีตัวประคองที่ทำจาก 3D-printed อีกที

มุมมองด้านบนส่วนหน้าของแผ่นเพลท

ด้านหน้าของเพลทบนจะเป็นที่อยู่ของส่วนหัว (Head mount) ซึ่งมีชุดบังคับเลี้ยวและลูกปืนติดตั้งอยู่ เหนือโครงสร้างส่วนหัวจะมี Mini breadboard ที่รวมร่างของ Bluetooth module, [PIR](https://s.shopee.co.th/7VBG2YelxK) sensor รวมถึงพวก Transistor และ Resistor ที่ใช้ในวงจรเครื่องเล่น MP3 และโมดูลบันทึกเสียง

ส่วนกลางของเพลทบนจะเป็นจุดติดตั้ง Base rotation servo สำหรับหมุนฐานแขนกล

เคสสำหรับติดตั้ง Base rotation servo

ด้านท้ายของเพลทจะเป็นกล่องเก็บ Board Arduino Mega, Stepper motor drivers 2 ตัว และ Mini breadboards สำหรับจัดการสายไฟ พี่ใส่ RGB LEDs กับ LED ธรรมดาไว้ข้างในกล่องด้วย เพิ่มความหล่อเท่เปลี่ยนสีได้ผ่านแอป บนฝากล่องมีจอ LCD display (ใช้ I2C LCD backpack จะได้ประหยัด Pins บน Arduino Mega) พร้อมพัดลมระบายอากาศให้ Stepper motor drivers ทั้งสองตัว สู้งานนะน้อง!

ส่วนหัว (THE HEAD)

ชุดหัวประกอบด้วยโครงสร้างที่ใส่ Servo สำหรับบังคับเลี้ยวและหมุนหัว ในส่วนหัวของ Roger Bot จะมี Sonic sensors ไว้สำหรับวัดระยะทาง และมีโมดูล RGB LED อีก 2 ตัวที่ควบคุมได้ เจ้า Sonic sensors นี่แหละตัวสำคัญในโหมดตรวจการณ์ (Surveillance mode) เอาไว้หลบสิ่งกีดขวางเวลาเคลื่อนที่ แถมตรงหัวหนีบ (Gripper) ยังสามารถสลับไปใส่ฐานยึดกล้อง RunCam2 ได้ด้วยนะ เสียดายที่ตอนนี้กล้องยังบังคับอัตโนมัติไม่ได้ แต่พี่ว่าจะศึกษาเพิ่มเติมจากคอมมูนิตี้ Arduino ต่อไปนี่แหละ

ส่วนแขนกล (THE ARM)

แขนกลถูกติดตั้งอยู่บน Base servo motor โดยใช้คานวงกลม 3D-printed พี่เสริมความแข็งแรงด้วยแกนสแตนเลส (SS rod) ขนาด 5 มม. แขนตัวนี้มีอิสระในการเคลื่อนที่ถึง 6 Degrees of Freedom (6 DOF) รวมตัวหนีบ (Gripper) ด้วย ตัวหนีบใช้กลไกแบบสกรูเพื่อขันแน่นหรือคลายออก มีแกนประคองคู่ที่แข็งแรงมาก และมี Kill switch อยู่ที่ปลาย Gripper เพื่อสั่งให้ถอยหลังหลังจากคลายตัวหนีบสุดแล้ว (ตอนนี้ยังไม่ได้เขียน Code ตรง Kill switch แต่ Hardware พร้อมรบแล้วน้อง!) ส่วนตัว Gripper พี่ใช้ Stepper motor ขนาดเล็กแต่แรงบิดสูง น้ำหนักเบา เขียนโปรแกรมง่าย

พี่ถ่วงน้ำหนัก (Counter weight) ไว้ 100 กรัมที่ช่วงกลางแขน เพื่อค้านแรง Moment และช่วยเรื่อง Balance เวลาแขนขยับไปมา

หลักการทำงาน (HOW IT WORKS)

มาดูการทำงานแบบเจาะลึก พี่แบ่งให้ 5 ส่วนหลักๆ ตามนี้:

  • ระบบเสียง (Audio capability)
  • การเคลื่อนที่เชิงกล (Mechanical movement)
  • การโต้ตอบ (Interaction capability)
  • การจัดการพลังงาน (Power management)

ระบบเสียง (AUDIO CAPABILITY)

พี่ใช้ 2 โมดูลหลักคือ MP3 module กับ Voice recorder module

โมดูล MP3 Audio Sound Player Decoder

ตัวนี้ปกติจะมีปุ่ม Play/Pause, Next, Previous มาให้บนบอร์ด พี่เลยโมวงจรใหม่ ใส่ NPN Transistor 4 ตัวเข้าไปเพื่อใช้ควบคุมปุ่มพวกนี้ผ่าน Bluetooth จากในแอป Mini breadboard หลังหัว Roger Bot นี่แหละคือศูนย์รวมสายไฟ ขา Collector ของ Transistor ต่อลง Ground, ขา Base ต่อเข้า Digital Pins ของ Arduino Mega ส่วนขา Emitter ต่อเข้าที่ขาปุ่มกด พอเราสั่งงานจน Pin เป็น 'HIGH' กระแสก็จะไหลผ่านขา Base ทำให้วงจรครบถ้วนเหมือนเรากดปุ่มเองเลย

ไดอะแกรมวงจรระบบเสียง

โมดูลบันทึกเสียง (ISD 1820)

เจ้า ISD1820 บันทึกเสียงได้ 10 วินาทีและเล่นซ้ำได้ ตัวนี้ดีหน่อยตรงที่มี Pin Out มาให้เชื่อมกับ Arduino ได้เลย แค่ส่งสัญญาณ 'HIGH' หรือ 'LOW' ไปที่ Pins ก็สั่ง Record หรือ Playback ได้แล้ว แต่ระวังนะน้อง! โมดูลนี้ใช้ไฟ 3.3 V ในขณะที่ Arduino เราส่ง 5 V ออกมา พี่เลยต้องใช้ Resistance Voltage Divider บน Mini breadboard เพื่อ Drop แรงดันลงมา ห้ามช็อตนะตัวนี้!

ผังการต่อสายระบบเสียง

การเคลื่อนที่เชิงกล (MECHANICAL MOVEMENT CAPABILITY)

ตรงนี้จะอธิบายเรื่องแขนกล การเลี้ยวล้อหน้า และส่วนหัว รวมถึงการคุม Stepper motors ด้วย

ฟังก์ชันการควบคุมแขนกลของ Roger Bot

แขนกลใช้ Servos ทั้งหมด 6 ตัว โดย 5 ตัวหมุนได้ 300 องศา ส่วนตัวที่หมุน Gripper หมุนได้ 180 องศา ชุดบังคับเลี้ยวกับส่วนหัวก็ใช้ Servo 180 องศาเหมือนกัน ทุกตัวจะทำงานได้ดีที่สุดที่ไฟ 8 V (ยกเว้น Servo ตรงหัวใช้ 4-6 V) พี่ใส่ Capacitor 16 V 100mF เพื่อช่วยให้ Servo เคลื่อนที่ได้นิ่มนวลขึ้น ส่วนฐานแขนกลใช้ Servo 2 ตัวคู่กัน ตอนแรกประกอบแล้วองศามันเหลื่อมกัน 5.5 องศา พี่เลยแก้ใน Code เอา สบายมาก!

ส่วนการขับเคลื่อนรถ พี่ใช้ Bipolar Stepper motors (Nema 17) 2 ตัว คุมด้วย Driver A4988 มีพัดลม 5 V คอยเป่าระบายความร้อนที่สั่งเปิดปิดผ่าน Bluetooth ได้ด้วยนะ การจะทำให้รถวิ่งนิ่มๆ น้องต้องค่อยๆ ปรับจูน Step กับ Torque ของ Motor ให้เข้าที่หน่อยนะวัยรุ่น

การต่อสาย Gripper stepper motor (28BJY-48) กับ Driver ULN2003

ตัวหนีบ (Gripper) ใช้ Stepper motor 4 เฟสขนาดเล็ก (28BJY-48) แรงบิดสูง คุมด้วย Driver ULN2003 ซึ่งพี่ซ่อนไว้แถวๆ โมดูลเสียงนั่นแหละ

ตำแหน่งและหมายเลขของ Servo แต่ละตัว

ผังการต่อสาย Servo, Motor ขับเคลื่อน และ Sensor ต่างๆ

การโต้ตอบ (INTERACTION CAPABILITY)

เราคุยกับ Roger Bot ผ่าน Bluetooth โดยใช้แอปที่ทำจาก MIT App Inventor 2 มันจะส่งข้อมูลจาก Sensor มาโชว์บนจอ LCD ผ่านการเชื่อมต่อแบบ I2C

หน้าตาแอปและ Block control ใน MIT APP Inventor 2

Bluetooth module HC-05 ต่อเข้ากับ RX/TX ของ Arduino Mega สื่อสารผ่าน Serial port เพื่อเชื่อมต่อกับแอปในมือถือเรา

HC-SR04 Sonic sensor ต่อไฟ 5 V และ GND เข้าบอร์ด ขา Echo และ Trig ต่อเข้า Digital pins ของ Arduino Mega ข้อมูลจากตรงนี้แหละที่ใช้ในโหมดตรวจการณ์

LM35 วัดอุณหภูมิ และ DHT11 วัดความชื้น ต่อไฟ 5 V เหมือนกัน สัญญาณจาก LM35 เข้า Analog pin ส่วน DHT11 เข้า Digital pin สองตัวนี้วางอยู่ใต้เพลทบนแถวๆ แบตเตอรี่

นอกจากนี้ยังมี PIR sensor และ Light sensor (วัดแสง) ต่อเข้ากับ Arduino Mega เพื่อคอยตรวจจับความเคลื่อนไหวและระดับแสงรอบๆ ตัวมัน

การจัดการพลังงาน (POWER MANAGEMENT)

  • LiPo 11.1 V - ใช้เลี้ยง Servo 300 องศา 5 ตัว และ Driver ULN2003
  • LiPo 11.1 V - ใช้เลี้ยง Servo 180 องศา 2 ตัว และ Stepper motors ที่ใช้ขับเคลื่อน
  • LiPo 7.4 V - ใช้เลี้ยง LEDs เกือบทั้งหมด, จอ LCD และโมดูลที่ต้องการไฟ 5 V
  • แบตเตอรี่ 9 V ธรรมดา - ใช้เลี้ยงบอร์ด Arduino Mega, พัดลมระบายอากาศ และ LED อีกนิดหน่อย

ไฟจาก LiPo 11.1 V จะถูกลดแรงดันเหลือ 8 V ด้วย Step down module เพื่อจ่ายให้ Servo ส่วนพวก Stepper motors พี่จัดไฟตรง 11.1 V เข้าไปเลยเพื่อความแรง! การต่อสายทั้งหมดทำบน Breadboard บอกเลยว่าใช้เวลาจัดระเบียบสายไฟในกล่องแคบๆ นั่นนานพอดูเลยน้อง!

รายละเอียดทางเทคนิคเพิ่มเติม

หุ่นยนต์สัตว์เลี้ยงโต้ตอบได้ (Interactive Pet Robotics)

Roger Bot ถูกออกแบบมาให้เป็นเพื่อนกึ่งอัตโนมัติ ที่ผสมผสานความสามารถของหุ่นยนต์เคลื่อนที่เข้ากับการโต้ตอบเหมือนสัตว์เลี้ยง

  • Chassis Architecture: สร้างบน Platform ขับเคลื่อนล้อ ใช้ Arduino ประสานงานผ่าน L298P motor shield (หรือ Driver ที่เทียบเท่า)
  • Sensory Interaction: มี Ultrasonic sensors เป็น "ดวงตา" ไว้หลบสิ่งกีดขวาง และอาจจะเพิ่ม Sound Sensor เพื่อให้มันตอบสนองต่อเสียงปรบมือหรือเสียงเห่าของน้องหมาได้ด้วยนะ

การควบคุมผ่านมือถือและพฤติกรรม

  • MIT App Inventor Integration: น้องสามารถ "ขับ" Roger Bot ได้ผ่านแอป Android ที่เขียนเอง โดยส่งข้อมูลผ่าน HC-05 Bluetooth module
  • Emotion Logic: ด้วยการปรับ Speed และรูปแบบการขยับ (เช่น ทำท่า "ส่ายหาง" โดยใช้ Rear Servo หรือหมุนตัวเร็วๆ) หุ่นยนต์ก็จะดูเหมือนกำลังตื่นเต้นหรือสงสัย ทำให้มันดูมีชีวิตชีวา ไม่ใช่แค่เครื่องจักรที่วิ่งไปมาเฉยๆ งานนี้หล่อเท่แน่นอนน้อง!

ข้อมูล Frontmatter ดั้งเดิม

title: "Roger Bot' the Pet Rover"
description: "Roger Bot can be custom programmed, in addition to its built-in Bluetooth program for its robotic arm and rover capabilities."
author: "hannu_hell"
category: "Motors & Robotics"
tags:
  - "robot arm"
  - "multifunctional robot"
  - "rover"
views: 11158
likes: 4
price: 299
difficulty: "Intermediate"
components:
  - "1x Electric Drill with drill bits of different size"
  - "2x LM2596 DC-DC step down transformer module"
  - "1x Jumper wires (generic)"
  - "1x HC-05 Bluetooth Module"
  - "1x 5mm SS rod (50 cm)"
  - "1x DHT11 Temperature & Humidity Sensor (4 pins)"
  - "1x Socket wrench"
  - "1x Multiple output voltage conversion module (5V, 3.3V)"
  - "5x JX 300 Servo Motor (300 degrees rotation)"
  - "2x RGB LED module"
  - "2x Speaker: 3W, 4 ohms"
  - "1x Soldering iron (generic)"
  - "1x 7.4 V 2S Lipo 15 C 800mAh Battery"
  - "2x Resistor 1k ohm"
  - "1x Standard LCD - 16x2 White on Blue"
  - "5x Resistor 221 ohm"
  - "1x Allen Wrench"
  - "6x General Purpose Transistor NPN"
  - "1x Smoothing File"
  - "1x USB MP3 Audio Sound Player Decoder Module"
  - "1x Fluke Multimeter"
  - "1x Arduino Mega 2560"
  - "4x Bolt and Nut (M6x110)"
  - "7x Servo Arm metal disk"
  - "1x Super Glue"
  - "2x Speaker 3W  4 ohms"
  - "1x Screw Driver (plus)"
  - "1x Bolts and nuts (M2.5x12, M2.5x20)"
  - "1x Cooling Fan"
  - "1x Resistor 10k ohm"
  - "1x I2C LCD backpack"
  - "4x Wheels with tyres"
  - "3x ON/OFF switch"
  - "4x M3x15 metal hex spacer standoffs"
  - "1x 5 mm rigid flange coupling for nema 17 motors"
  - "1x LM35 Temperature sensing module"
  - "1x 9V battery (generic)"
  - "1x Hand held Saw"
  - "2x JX 180 Servo (180 degrees rotation)"
  - "1x Ultrasonic Sensor - HC-SR04 (Generic)"
  - "6x M3x35 metal hex spacer standoffs"
  - "2x NEMA 17 Stepper Motor"
  - "1x PIR Motion Sensor (generic)"
  - "1x LDR light sensor module"
  - "1x Screw Driver (minus)"
  - "1x 28BYJ-48 12V DC 32 step Motor"
  - "3x Mini Breadboard"
  - "1x ISD 1820 Voice recorder module"
  - "1x 3D Printer (generic)"
  - "1x Pushbutton switch 12mm"
  - "1x 11.1 V 3S lipo 25 C 2200mAh Battery"
  - "1x ULN2003 Stepper Driver"
  - "10x Bolt and Nut (M6x60)"
  - "1x EMAX ES 3104 Servo Motor (180 degrees rotation)"
tools: []
apps:
  - "1x Arduino IDE"
  - "1x MIT App Inventor 2"
downloadableFiles:
  - "https://create.arduino.cc/editor/hannu_hell/4cbb1ae6-aa31-4ee7-b995-dd97407ae905/preview"
  - "https://create.arduino.cc/editor/hannu_hell/4cbb1ae6-aa31-4ee7-b995-dd97407ae905/preview"
documentationLinks: []
passwordHash: "cd920cad8d616b58c3ac15ee910ae72530e19de15f0f642f6fb0becf753c22cd"
encryptedPayload: "U2FsdGVkX19ZXBlZCFXR758NPtFybFywK6E8Eq//t0kWp6UrEBEaxrVEqW2TOci3v9AJxa46p3bnhMjzDiz1Cvik1OoknwwF0c0G1qc+YYw225r4T6xYASXnPMKBcr3d"
seoDescription: "Build Roger Bot, a pet rover with custom programmed features and built-in Bluetooth for robotic arm and rover capabilities."
videoLinks:
  - "https://www.youtube.com/embed/eZMB2vMXpww"
  - "https://www.youtube.com/embed/CduJwgfCAu0"
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/roger-bot-the-pet-rover-95a278_cover.jpg"
lang: "th"