| Solve Maze 2012 |
· Objectives
- เพื่อสร้างหุ่นยนต์ที่หาทางออกจากเขาวงกตได้
- เพื่อสร้างหุ่นยนต์ที่สามารถเรียนรู้และหาทางออกที่สั้นที่สุดได้
- เพื่อสร้างหุ่นยนต์ที่สามารถติดต่อกับคอมพิวเตอร์ โดยใช้คอมพิวเตอร์เป็นตัวสั่งการ และตัวหุ่นยนต์เป็นผู้ปฎิบัตตามและส่งข้อมูลมาให้
· Design
o System Overview
ภาพรวมการทำงานของระบบหาทางออกจากเขาวงกต ซึ่งระบบที่ได้ทำนี้ได้ให้การประมวลผลในการจำแผนที่แล้วหาทางออกที่สั้นที่สุดไปอยู่ในระบบของคอมพิวเตอร์ ซึงระบบคอมพิวเตอร์จะทำการวาดแผนที่ขึ้นมาและมีการประมวลผลหาทางออกโดยส่งข้อมูลผ่านบลูทูธไปยังหุ่นยนต์ และหุ่นยนต์จะทำการวิ่งไปในเขาวงกตซึ่งส่งข้อมูลที่ได้รับจากเซนเซอร์ว่ามีกำแพงอยู่ตรงไหนในระยะที่วิ่งไป เพื่อให้เครื่องคอมพิวเตอร์มาประมวลผลต่อโดยส่งข้อมูลต่างๆผ่านบลูทูธ ดังที่จะแสดงในภาพต่อไปนี้
รูปที่ 1 ภาพรวมของระบบ
· Objectives
- เพื่อสร้างหุ่นยนต์ที่หาทางออกจากเขาวงกตได้
- เพื่อสร้างหุ่นยนต์ที่สามารถเรียนรู้และหาทางออกที่สั้นที่สุดได้
- เพื่อสร้างหุ่นยนต์ที่สามารถติดต่อกับคอมพิวเตอร์ โดยใช้คอมพิวเตอร์เป็นตัวสั่งการ และตัวหุ่นยนต์เป็นผู้ปฎิบัตตามและส่งข้อมูลมาให้
· Design
o System Overview
รูปที่ 1 ภาพรวมของระบบ
o Mechanics
การออกแบบหุ่นยนต์ให้มีล้อขับ 2 ล้อ อยู่ตรงกลางของตัวหุ่นยนต์ เพื่อที่จะหมุนซ้ายขวาได้โดยที่ตัวหุ่นยนต์ยังอยู่ตำแหน่งเดิม หุ่นยนต์มีความสูงน้อยที่สุด เพื่อความมั่นคงในการแคลื่อนที่ มีล้อกลมหน้าหลังเพื่อเพิ่มความมั่นคงให้กับตัวหุ่นยนต์ในการเคลื่อนที่ ซึ่งที่ต้องการมีอยู่ในชุดสำเร็จรูป
รูปที่ 2 หุ่นยนต์ที่ได้ออกแบบไว้
รูปที่ 3 หุ่นยนต์ที่ได้ออกแบบไว้ว่าจะมีส่วนประกอบใดบ้าง
รูปที่ 4 ตารางแสดงรายละเอียดหุ่นยนต์ที่ได้ออกแบบไว้
รูปที่ 5 รายละเอียดชุดขับ
รูปที่ 6 ตารางแสดงรายละเอียดของชุดขับ
o Electronics
จากแผงวงจรควบคุมหลัก POP-XT ที่มี ได้ทำการอกแบบจุดที่จะใช้เชื่อมต่อกับอุปกรณ์เซนเซอร์และอุปกรณ์อิเล็กทรอนิกส์ต่างๆ ดังรูป
รูปที่ 7 แสดงตำแหน่งการเชื่อมต่อระหว่างแผงควมคุมกับอุปกรณ์ต่างๆ
และได้กำหนด Pin ต่างๆที่ใช้ในการเชื่อมต่อระหว่างไมโครคอนโทรลเลอร์กับอุปกรณ์อิเล็กทรอนิกส์ ซึ่งมีการใช้งานดังรูป
รูปที่ 8 แสดงตำแหน่ง Pin ที่ใช้ในอุปกรณ์ต่างๆ
o Programming
ระบบโปรแกรมต่างๆที่ได้ออกแบบไว้ซึ่งได้แบ่งออกเป็น 4 ระบบ โดยมีระบบรวมดังรูปที่ 9 และรูปแสดงการทำงานของโปรแกรมแบบระเอียดในรูปที่ 10 - 13
รูปที่ 9 แสดงระบบรวมของโปรแกรม
รูปที่ 10 แสดงให้เห็นการเชื่อมต่อด้วยบลูทูธ
การสื่อสารของโปรแกรม Hi Level ที่ทำงานอยู่บน Computer กับส่วนของหุ่นยนต์ สื่อสารกันผ่านทาง Bluetooth ผ่านทาง Service SPP (Serial Port Profile)
รูปที่ 11 แสดงให้เห็นถึงการเรียนรู้เขาวงกต
การสั่งให้หุ่นยนต์เรียนรู้เขาวงกตนั้น โปรแกรมบนคอมพิวเตอร์จะส่งคำส่งไปบอกหุ่นยนต์ว่าจะเข้าสู่การทำงานในส่วนของการเรียนรู้เขาวงกต จากนั้นโปรแกรมจะสั่งให้หุ่นเคลื่อนที่ และบอกตำแหน่งใหม่ให้หุ่นยนต์ หุ่นยนต์ก็จะเคลื่อนที่ตามคำสั่ง หากหุ่นยนต์เคลื่อนที่ไปถึงจุดหมายปลายทางแล้วหุ่นยนต์จะส่งลักษณะของเขาวงกตในช่องที่หุ่นยนต์อยู่กลับมาให้โปรแกรมบนคอมพิวเตอร์ โปรแกรมบนคอมพิวเตอร์ก็จะนำข้อมูลไปวาดรูปร่างของเขาวงกตบนหน้าจอ และจะตรวจสอบว่าหุ่นยนต์สำรวจครบแล้วหรือยัง ถ้ายังโปรแกรมจะสั่งให้หุ่นสำรวจในจุดถัดๆ ต่อจนครบ
รูปที่ 12 แสดงให้เห็นถึงการประมวลผลหาทางออกจากเขาวงกตที่มี
ในส่วนการหาเส้นทางโปรแกรมบนเครื่อง Computer จะหาเส้นทางทั้งหมดที่เป็นไปได้ว่าจากจุดเริ่มต้นไปจนถึงจุดสิ้นสุดนั้น มีทางไหนที่สามารถเดินไปได้บ้าง แล้วใช้การนับจำนวนช่องที่เดินเป็น cost หากเส้นทางไหนที่จำนวนช่องในการเดินน้อยสุด ช่องนั้นคือทางที่สั้นที่สุด
รูปที่ 13 แสดงให้เห็นถึงการทำงานแบบส่งข้อมูลระหว่างหุ่นยนต์และคอมพิวเตอร์เพื่อไปถึงจุดหมาย
· Implementation
o Mechanics
หุ่นยนต์ที่ได้ประกอบขึ้นมีลักษณะดังรูปที่ 14 และมีขนาดดังรูปที่ 15
รูปที่ 14 รูปแบบโดยรวมของหุ่นยนต์วิ่งหาทางออก
รุปที่ 15 ขนาดความกว้างและความสูงของหุ่นยต์วิ่งหาทางออก
ซึ่งอุปกรณ์ที่ได้ใช้ในการสร้างหุ่นยนต์วิ่งหาทางออกเขาวงกตมีดังนี้
ล้อพลาสติกสำหรับชุดเฟืองขับมอตอร์และยาง
เป็นล้อกลมมีเส้นผ่านศูนย์กลาง 65 มิลลิเมตร สามารถสวมเข้ากับแกนของชุดเฟืองขับมอเตอร์ได้ทันทีโดยไม่ต้องดัดแปลงเพิ่มเติมขันยึดด้วยสกรูเกลียวปล่อย 2 มิลลิเมตร ส่วนยางขอบล้อที่ใช้ร่วมด้วยผลิตจากยางพาราผิวมีดอกยางเพื่อช่วยเพิ่มสมรรถนะในการเกาะพื้นผิว
ฉากโลหะเป็นล้อกลมมีเส้นผ่านศูนย์กลาง 65 มิลลิเมตร สามารถสวมเข้ากับแกนของชุดเฟืองขับมอเตอร์ได้ทันทีโดยไม่ต้องดัดแปลงเพิ่มเติมขันยึดด้วยสกรูเกลียวปล่อย 2 มิลลิเมตร ส่วนยางขอบล้อที่ใช้ร่วมด้วยผลิตจากยางพาราผิวมีดอกยางเพื่อช่วยเพิ่มสมรรถนะในการเกาะพื้นผิว
รูปที่ 16 ล้อพลาสติกสำหรับชุดเฟืองขับมอตอร์และยาง
แผ่นกริด
เป็นแผ่นพลาสติกที่ผลิตจากวัสดุ ABS ขนาด 80 x 60 มิลลิเมตร ในแต่ละมีรูขนาด 3 มิลลิเมตรที่มีระยะห่างกัน 5 มิลลิเมตร
รูปที่ 17 แผ่นกริด
แผ่นฐานกลม
เป็นแผ่นพลาสติกที่ผลิตจากวัสดุ ABS เป็นแผ่นฐานสำหรับยึดอุปกรณ์ต่างๆ มีรูปร่างเป็นกลมประกอบด้วยล้อกลมกึ่งอิสระทั้งด้านหน้าและหลัง ช่วยเสริมความคล่องตัวให้กับหุ่นยนต์ได้เป็นอย่างดี ที่แผ่นฐานมีรูขนาด 3 มิลลิเมตรสำหรับติดตั้งอุปกรณ์หรือโครงสร้างกลไกเพิ่มเติม
รูปที่ 18 แผ่นฐานกลม
เป็นชิ้นส่วนโลหะกว้าง 7.5 มิลลิเมตรที่ดัดเป็นมุมฉากในแต่ชิ้นจะมีรูขนาด 3 มิลลิเมตรสำหรับร้อยสกรูเพื่อติดตั้งหรือต่อกับชิ้นส่วนโครงสร้างอื่นๆ
รูปที่ 20 ฉากโลหะ
สกรูและนอต
เป็นอุปกรณ์สำหรับยึดชิ้นส่วนต่างๆเข้าด้วยกันประกอบด้วยสกรูเกลียวปล่อย 2 มิลลิเมตร, 3x8
มิลลิเมตร, 3x10 มิลลิเมตร, 3x15 มิลลิเมตร , 3x40 มิลลิเมตร, สกรูหัวตัด 3x8 มิลลิเมตร และนอต 3 มิลลิเมตร
รูปที่ 21 สกรูและนอต
เสารองพลาสติก
เป็นอุปกรณ์ช่วยยึดชิ้นส่วนต่างๆ และประคองรองรับแผงวงจร, แผ่นกริดและแผ่นฐานทำจากพลาสติก ABS เหนียวสามารถตัดได้มีลักษณะเป็นแท่งทรงกระบอกภายในมีรูตลอดตัวสำหรับร้อยสกรู 3 มิลลิเมตร
รูปที่ 22 เสารองพลาสติก
o Electronics
แผงวงจรควบคุมหลัก POP-XT
POP-XT เป็นแผงวงจรไมโครคอนโทรลเลอร์ที่ใช้ไมโครคอนโทรลเลอร์ตระกูล AVR เบอร์ ATmega32U4 ของ Atmel (www.atmel.com) มีส่วนเชื่อมต่อพอร์ต USB เพื่อใช้ในการสื่อสารข้อมูลและดาวน์โหลดโปรแกรมได้ในตัว โดยไม่ต้องใช้สายสัญญาณหรืออุปกรณ์แปลงสัญญาณใดๆ เพิ่มเติมจึงทำให้การใช้งานง่ายและสะดวกมาก รวมถึง POP-XT ได้ เลือกใช้ฮาร์ดแวร์ที่เข้ากันได้กับฮาร์ดแวร์ของโครงการไมโครคอนโทรลเลอร์ระบบเปิด (โอเพ่นซอร์ส : open source) ที่ ชื่อ Arduino (www.arduino.cc/en) ในรุ่น Arduino Leonardo จึงทำให้ สามารถนำชุดพัฒนาของ Arduino1.0 มาใช้งานได้ภายในชุดพัฒนาของ Arduino1.0 มีไลบรารีฟังก์ชันภาษาซีสำหรับติดต่อกับฮาร์ดแวร์จำนวนมากไว้ให้ ทำให้เขียนโปรแกรมสั่งงานอุปกรณ์ต่างๆได้ง่าย โดยไม่จำเป็นต้องศึกษาลงไปในรายละเอียดของไมโครคอนโทรลเลอร์มากนัก แต่ถ้าหากมคี วามต้องการพัฒนาในระดับที่สงูขึ้นก็สามารถนา POPXT
ไปใช้ร่วมกับเครื่องมือพัฒนาโปรแกรมรวมถึงคอมไพเลอร์อื่นๆได้เช่นกัน
รูปที่ 23 แสดงส่วนประกอบของแผงวงจรควบคุม POP-XT
รูปที่ 24 วงจรสมบูรณ์ของแผงวงจรควบคุม POP-XT
BlueStick
โมดูลสื่อสารข้อมูลไร้สายผ่านบลูทูธเป็นอุปกรณ์บลูทูธที่ใช้โปรไฟล์พอร์ตอนุกรม(Serial port profile : SPP) ในการติดต่อเพื่อใช้งานจึงเหมาะอย่างยิ่งสำหรับใช้ในสื่อสารข้อมูลอนุกรมแบบไร้สายผ่านคลื่นวิทยุระบบบลูทูธ
คุณสมบัติทางเทคนิค
- ความไวในการทำงาน -80dBm
- กำลังส่งสูงสุด +4dBm
- เป็นอุปกรณ์ที่เข้ากันได้ตามมาตรฐานบลูทูธ V2.0 + EDR (Enhanced Data Rate) ถ่ายทอดข้อมูลด้วยอัตราเร็ว 3 เมกะบิตต่อวินาที
- ความถี่ใช้งาน 2.4 GHz
- เป็นอุปกรณ์บลูทูธที่ทำงานในโหมดสเลฟและใช้โปรไฟล์พอร์ตอนุกรม (SPP)
- ระยะทำการสูงสุด 10 เมตร
- อัตราบอดตั้งต้น 9,600 บิตต่อวินาที โดยใช้รูปแบบข้อมูล 8 บิต, บิตหยุด 1 บิต และไม่มีบิตตรวจสอบพาริตี้หรือ 8N1
- ตั้งค่าอัตราบอดใหม่ได้ประกอบด้วย 1200, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600, 1382400 บิตต่อวินาที
- รหัสประจำตัวสำหรับใช้ในการจับคู่ตั้งได้ตั้งแต่ 0000 ถึง 9999 (4 หลัก) ค่าตั้งต้นคือ 1234
- ย่านไฟเลี้ยง +3.3 ถึง +5.5V
- มีวงจรสื่อสารข้อมูลอนุกรมหรือ UART ในตัว
- มีสายอากาศติดตั้งภายในตัว
- ขนาด 1.5 ซม. x 4.0 ซม.
มอเตอร์ไฟตรงพร้อมชุดเฟืองขับ
เป็นชุดมอเตอร์พร้อมเฟืองขับรุ่น BO-2 อัตราทด 48:1 มีสายต่อ 2 เส้น คุณสมบัติทางเทคนิคที่สำคัญมี ดังนี้
- ต้องการไฟเลี้ยงในย่าน +3 ถึง +9Vdc
- กินกระแสไฟฟ้า 130mA (ที่ไฟเลี้ยง +6V และไม่มีโหลด)
- ความเร็วเฉลี่ย 170 ถึ ง 250 รอบต่อนาที (ที่ไฟเลี้ยง +6V และไม่มีโหลด)
- นํ้าหนัก 30 กรัม
- แรงบิดตํ่าสุด 0.5 กิโลกรัม-เซนติเมตร
- ติดตั้งเข้ากับตัวยึดพลาสติกแบบมีพุกทองเหลืองสำหรับยึดในตัว
- ขนาด (กว้าง x ยาว x สู ง) 42 x 45 x 22.7 มิลลิเมตร
รูปที่ 26 มอเตอร์ไฟตรงพร้อมชุดเฟืองขับ
แผงวงจรไฟแสดงผล : ZX-LED
ใช้ LED ขนาด 8 มิลลิเมตรต้องการลอจิก “1” ในการขับให้สว่างมีวงจรแสดงในรูปที่ 27
รูปที่ 27 รูปร่างและวงจรของแผงวงจรไฟแสดงผล ZX-LED
แผงวงจรสวิตช์ : ZX-01
มีวงจรและรูปร่างแสดงในรูปที่ 28 ประกอบด้วยสวิตช์พร้อมไฟแสดงผลถ้ากดสวิตช์จะส่งลอจิก “0” ไฟ
สีแดงติด
รูปที่ 28 รูปร่างและวงจรของแผงวงจรสวิตช์ที่ใช้ในชุดหุ่นยนต์ POP-BOT
แผงวงจรตรวจจับแสงสะท้อนอินฟราเรด : ZX-03
มีวงจรและหน้าตาของแผงวงจรแสดงในรูปที่ 29 เป็นแผงวงจรที่ใช้ในการตรวจสอบการสะท้อนของแสงอินฟราเรดของตัวตรวจจับแสงสะท้อนอินฟราเรดซึ่งรวมตัวส่งและตัวรับไว้ในตัวถังเดียวกันโดยตัวตรวจจับแสงสะท้อนอินฟราเรดที่นำมาใช้คือ TCRT5000
รูปที่ 29 หน้าตาและวงจรของแผงวงจรตรวจจับแสงสะท้อนอินฟราเรดที่ใช้ในชุดหุ่นยนต์ POP-BOT
GP2D120 โมดูลตรวจจับระยะทางแบบอินฟราเรด
GP2D120 เป็นโมดูลตรวจจับระยะทางแบบอินฟราเรดมีขาต่อใช้งาน 3 ขาคือขาต่อไฟเลี้ยง (Vcc), ขากราวด์ (GND) และขาแรงดันเอาต์พุต (Vout) การอ่านค่าแรงดันจาก GP2D120 จะต้องรอให้พ้นช่วงเตรียมความพร้อมของโมดูลก่อนซึ่งใช้เวลาประมาณ 32.7 ถึง 52.9 มิลลิวินาที (โดย 1 มิลลิวินาทีเท่ากับ 0.001 วินาที ) ดังนั้น ในการอ่านค่าแรงดันจึงควรรอให้พ้นช่วงเวลาดังกล่าวไปก่อน ดังแสดงข้อมูลเบื้องต้นในรูปที่ 24
GP2D120 เป็นโมดูลตรวจจับระยะทางแบบอินฟราเรดมีขาต่อใช้งาน 3 ขาคือขาต่อไฟเลี้ยง (Vcc), ขากราวด์ (GND) และขาแรงดันเอาต์พุต (Vout) การอ่านค่าแรงดันจาก GP2D120 จะต้องรอให้พ้นช่วงเตรียมความพร้อมของโมดูลก่อนซึ่งใช้เวลาประมาณ 32.7 ถึง 52.9 มิลลิวินาที (โดย 1 มิลลิวินาทีเท่ากับ 0.001 วินาที ) ดังนั้น ในการอ่านค่าแรงดันจึงควรรอให้พ้นช่วงเวลาดังกล่าวไปก่อน ดังแสดงข้อมูลเบื้องต้นในรูปที่ 24
o Programming
โปรแกรมที่ใส่ลงไปในหุ่นยนต์มีการเขียนโปรแกรมควบคุมหุ่นยนต์โดยใช้ระบบ PID ในการควบคุมระยะห่างของกำแพงให้เท่ากัน ซึ่งมีผลทำให้หุ่นยนต์ไม่เดินชนกำแพงและลดความผิดพลาดได้สูงในขนะวิ่งในเขาวงกต
ระบบควบคุม PID
ระบบควบคุมแบบสัดส่วน-ปริพันธ์-อนุพันธ์ (อังกฤษ: PID controller) เป็นระบบควบคุมแบบป้อนกลับที่ใช้กันอย่างกว้างขวาง ซึ่งค่าที่นำไปใช้ในการคำนวณเป็นค่าความผิดพลาดที่หามาจากความแตกต่างของตัวแปรในกระบวนการและค่าที่ต้องการ ตัวควบคุมจะพยายามลดค่าผิดพลาดให้เหลือน้อยที่สุดด้วยการปรับค่าสัญญาณขาเข้าของกระบวนการ ค่าตัวแปรของ PID ที่ใช้จะปรับเปลี่ยนตามธรรมชาติของระบบ โดยการปรับค่าคงที่ใน PID ตัวควบคุมสามารถปรับรูปแบบการควบคุมให้เหมาะกับที่กระบวนการต้องการได้ การตอบสนองของตัวควบคุมจะอยู่ในรูปของการไหวตัวของตัวควบคุมจนถึงค่าความผิดพลาด ค่าโอเวอร์ชูต (overshoots) และ ค่าแกว่งของระบบ (oscillation) วิธี PID ไม่รับประกันได้ว่าจะเป็นระบบควบคุมที่เหมาะสมที่สุดหรือสามารถทำให้กระบวนการมีความเสถียรแน่นอนวิธีคำนวณของ PID ขึ้นอยู่กับสามตัวแปรคือค่าสัดส่วน, ปริพันธ์ และ อนุพันธ์ ค่าสัดส่วนกำหนดจากผลของความผิดพลาดในปัจจุบัน, ค่าปริพันธ์กำหนดจากผลบนพื้นฐานของผลรวมความผิดพลาดที่ซึ่งพึ่งผ่านพ้นไป, และค่าอนุพันธ์กำหนดจากผลบนพื้นฐานของอัตราการเปลี่ยนแปลงของค่าความผิดพลาด น้ำหนักที่เกิดจากการรวมกันของทั้งสามนี้จะใช้ในการปรับกระบวนการ การประยุกต์ใช้งานบางครั้งอาจใช้เพียงหนึ่งถึงสองรูปแบบ ขึ้นอยู่กับกระบวนการเป็นสำคัญ พีไอดีบางครั้งจะถูกเรียกว่าการควบคุมแบบ PI, PD, P หรือ I ขึ้นอยู่กับว่าใช้รูปแบบใดบ้าง
แผนภาพบล็อกของการควบคุมแบบ PID
ทฤษฎี
การควบคุมแบบ PID ได้ชื่อตามการรวมกันของเทอมของตัวแปรทั้งสามตามสมการ:
เมื่อ
,
, และ
เป็นผลของสัญญาณขาออกจากระบบควบคุม PID จากแต่ละเทอมซึ่งนิยามตามรายละเอียดด้านล่าง
[แก้]สัดส่วน
เทอมของสัดส่วนจะเป็นไปตามสมการ:เทอมของสัดส่วน (บางครั้งเรียก อัตราขยาย) จะเปลี่ยนแปลงเป็นสัดส่วนของค่าความผิดพลาด การตอบสนองของสัดส่วนสามารถทำได้โดยการคูณค่าความผิดพลาดด้วยค่าคงที่ Kp, หรือที่เรียกว่าอัตราขยายสัดส่วน
เมื่อ
: สัญญาณขาออกของเทอมสัดส่วน
: อัตราขยายสัดส่วน, ตัวแปรปรับค่าได้
: ค่าความผิดพลาด
: เวลา
ผลอัตราขยายสัดส่วนที่สูงค่าความผิดพลาดก็จะเปลี่ยนแปลงมากเช่นกัน แต่ถ้าสูงเกินไประบบจะไม่เสถียรได้ ในทางตรงกันข้าม ผลอัตราขยายสัดส่วนที่ต่ำ ระบบควบคุมจะมีผลตอบสนองต่อกระบวนการน้อยตามไปด้วย
กราฟ PV ต่อเวลา, Kp กำหนดเป็น 3 ค่า(Ki และ Kd คงที่)
รหัสเทียม
รหัสเทียม (อังกฤษ: pseudocode) ของ ขั้นตอนวิธีระบบควบคุมพีไอดี โดยอยู่บนสมมุติฐานว่าตัวประมวลผลประมวลผลแบบขนานอย่งสมบรูณ์แบบ เป็นดังต่อไปนี้
previous_error = setpoint - actual_position
integral = 0
start:
error = setpoint -
actual_position
integral = integral
+ (error*dt)
derivative = (error
- previous_error)/dt
output = (Kp*error)
+ (Ki*integral) + (Kd*derivative)
previous_error =
error
wait(dt)
goto start
· Video of Operation
· Problem & Solution Procedures
1) ปัญหา : มอเตอร์ในชุดสำเร็จไม่สามารถควมคุมได้
วิธีแก้ไข : เปลี่ยนมอเตอร์เป็นแบบที่มี encoder เพื่อเอาไว้ควบคุมระยะการวิ้งได้
2) ปัญหา : มอเตอร์ที่มี encoder ไม่สามารถนำใส่ชุดกล่องเกียร์ได้เพราะว่ามีแกนที่ยาวเกินไป
2) ปัญหา : มอเตอร์ที่มี encoder ไม่สามารถนำใส่ชุดกล่องเกียร์ได้เพราะว่ามีแกนที่ยาวเกินไป
วิธีแก้ไข : เจาะรูที่กล่องเกียร์ เพื่อให้สามารถใสมอเตอร์เข้าไปได้
3) ปัญหา : interrupt ใช้งานไม่ได้
3) ปัญหา : interrupt ใช้งานไม่ได้
วิธีแก้ไข : อัพโปรแกรมใหม่ที่ inex
4) ปัญหา : เมื่อใช้งานบลูทูธไม่สามารถอัพโหลดโปรแกรมเข้าบอร์ด microcontroller ได้
4) ปัญหา : เมื่อใช้งานบลูทูธไม่สามารถอัพโหลดโปรแกรมเข้าบอร์ด microcontroller ได้
วิธีแก้ไข : ปิดบลูทูธขณะอัพโหลดโปรแกรมเข้าบอร์ด microcontroller
5) ปัญหา : คอมพิวเตอร์ไม่สามารถเชื่อต่อกับ microcontroller ได้
วิธีแก้ไข : ลงไดร์เวอร์ใหม่
6) ปัญหา : หุ่นยนต์วิ่งไม่เป็นเส้นตรง
วิธีแก้ไข : จูนค่า PLD ทำให้หุ่นยนต์รักษาระดับระหว่างกำแพง 2 ด้าน
7) ปัญหา : แผงวงจรตรวจจับแสงสะท้อนอินฟราเรดถุกรบกวนโดนแสงอาทิตย์
วิธีแก้ไข : เปลี่ยนไปใช้ module GP2D120 โมดูลตรวจจับระยะทางแบบอินฟราเรด ซึ่งทนต่อแสงรบกวนจากภายนอกได้ดีกว่า
7) ปัญหา : แผงวงจรตรวจจับแสงสะท้อนอินฟราเรดถุกรบกวนโดนแสงอาทิตย์
วิธีแก้ไข : เปลี่ยนไปใช้ module GP2D120 โมดูลตรวจจับระยะทางแบบอินฟราเรด ซึ่งทนต่อแสงรบกวนจากภายนอกได้ดีกว่า
· Conclusion & Comment
1) หุ่นยนต์สามารถเคลื่อนที่ผ่านเขาวงกตได้ โดยการที่ทุกครั้งที่เดินแต่ละช่องจะมีการตรวจจับกำแพงรอบๆ โดยการเดินทางของหุ่นยนต์นั้นจะใช้วิธีเลี้ยวซ้ายตลอด โดยถ้ากำแพงด้านซ้ายว่างก็จะวิ่งไปทางซ้าย เพียงเท่านี้ก็จะวิ่งออกจากเขาวงกตได้แล้ว แต่ยังมีข้อจำกัดอยู่ที่ว่า ถ้าภายในเขาวงกตนี้มีเส้นทางที่วนได้ ก็อาจจะหาทางออกไม่ได้เลย
2) หุ่นยนต์สามารถที่จะหาทางออกที่ถูกต้องได้ในทันที่ที่ให้วิ่งอีกครั้งในสนามเดิมได้ เพราะว่าหุ่นยนต์ได้ส่งรูปแบบของแผนที่ในสนามให้กับเครื่องคอมพิวเตอร์ ซึ่งเครื่องคอมพิวเตอร์จะเป็นตัวบอกว่าหุ่นยนต์จะต้องเดินไปทางไหนเพื่อที่จะออกจากเขาวงกตได้
· Presentation Video
· Team Member
นายทรงวุฒิ สายทอง 55340700004
มีหน้าที่ในการทำส่วนของ Low level ซึ่งมีหน้าที่ในการสำรวจเขาวงกตแล้วส่งสัญญาณไปที่ส่วนของ Hi level เพื่อเก็บข้อมูล แล้วนำไปสู่ทางออกที่ถูกต้อง ในส่วนนี้ต้องทำระบบควมคุม PID ด้วย เพื่อที่เวล่เดินจะได้ไม่ชนกำแพงและรักษาระยะห่างของกำแพงได้
นายธีระพงษ์ ธนเดโชพล 55340700008
มีหน้าที่ในการทำส่วนของ Hi level ซึ่งเป็นตัวรับข้อมูลและส่งข้อมูลไปยังส่วนของ Low level ว่าจะให้สำรวจหรือว่าหาทางออก และยังเป็นส่วนที่รู้ตำแหน่งว่าตอนนี้หุ่นยนต์อยู่ที่ไหนจะไปยังจุดที่กำหนดยังไง โดยไม่หลงทาง
นายสิทธิกร จองเฉลิมชัย 55340700011
มีหน้าที่ออกแบบสร้างในส่วนของหุ่นยนต์ที่ใช้วิ่งในสนามว่าต้องแก้ไขปรับปรุงส่วนไหนบ้าง สร้างแบบจำลองของหุ่นยนต์จัดหาที่ยึดและวางอุปกรณ์ และเก็บข้อมูลการ Present ต่างๆในรูปแบบเวปและตัดต่อวีดีโอ





































เยี่ยมมากครับ ขอตัวอย่างโค๊ดได้มั้ยครับ
ตอบลบ