วันจันทร์ที่ 29 เมษายน พ.ศ. 2556

Robo ReMI : Resistance Music Instrument



· Objectives

  1. เพื่อศึกษาและเรียนรู้หลักการทำงานระบบอัตโนมัติที่ตอบสนองระหว่างหุ่นยนต์กับเครื่องดนตรี
  2. เพื่อออกแบบระบบหุ่นยนต์เล่นเครื่องดนตรีเรมิแบบอัตโนมัติ
  3. เพื่อนำหุ่นยนต์เล่นดนตรีเรมิ อามูไปใช้งานจริง

· Design

o System Overview

ภาพรวมการทำงานของระบบ ซึ่งระบบนี้จะเป็นเป็นส่วนหลัก ได้ 2 ส่วนคือ Robot และ Instrument ดังที่จะแสดงในภาพด้านล่างนี้ โดย
ในส่วนของ Robot จะทำหน้าที่ในการเล่นดนตรีตามการสั่งงานของระบบคอมพิวเตอร์ที่ส่งมา และภายในตัว Robot จะมีชุดควบคุม เพื่อสั่งงานให้ Motor ต่าง ๆ เล่นเพลงไปตามจังหวะดนตรีที่ถูกส่งเข้ามา
และในสวนของ Instrument ซึ่งเปรียนเสมือนเครื่องดนตรี ซึ่งทำหน้าที่ส่งเสียงเพลงตามโน๊ต และจังหวะดนตรีตาม Robot ซึ่งส่วนประกอบของ Instrument นี้จะมี Sensor ต่าง ๆ เพื่อรับค่า input ของตัว Robot แล้วทำการแปลงค่าไปเป็นโน๊ต และระดับเสียงต่าง ๆ ออกมาเป็นเสียงดนตรี

รูปที่ 1 ภาพรวมของระบบ

o Mechanics

      

ในด้าน Mechanics จะมีทั้งหมด 3 ส่วน โดยมีเครื่องดนตรี และแขนกลอีก 2 ชิ้น ดังรูป


รูปที่  แสดงส่วนต่างๆด้าน Mechanics
เครื่องดนตรี

ในส่วนของเครื่องดนตรีจะเล่นได้ทั้งคนและหุ่นยนต์ มีการทำงานโดยใช้เซนเซอร์ 3 ตัว ในรูปแบบ Force sensor, Distance sensor และ Potentiometer
โดย Force sensor เป็นการกดเพื่อส่งความดังของเสียงดนตรีขึ้นมา และ Distance sensor เป็นส่วนของการให้เสี่ยงของตัวโน๊ต สุดท้ายคือ Potentiometer มีหน้าที่ในการปรับความสูงต่ำของเสียง

รูปที่  แสดงภาพเครื่องดนตรี
แขนกล 2 DOF
การทำงานของแขนกล 2 DOF เป็นการกด Force sensor ร่วมกับหมุน Potentiometer ในแขนกลเดียวกัน โดยใช้มอเตอร์ 2 ตัวในการควมคุม การหมุนและการกด ส่วนของการหมุนจะใช้มอเตอร์ต่อในแนวแกนตั้งฉากส่งแรงบิดผ่านทั้งแขนกล แต่ในส่วนของการกด จะใช้มอเตอร์กดในลักษณะเพลาลูกเบี้ยว โดยใช้สปริงตัวเดียวกับที่ติดในเครื่องดนตรี 



รูปที่  แสดงภาพของแขนกล 2 DOF
แขนกล 1 DOF
แขนกล 1 DOF จะใช้ Linear guide ในการกำหนดการเคลื่อนที่ และใช้ เฟืองสะพานติดกับมอเตอร์ในการเคลื่อนที่ เพื่อที่จะกำหนดให้เกิดเสียงตัวโน๊ตต่างๆ


รูปที่  แสดงภาพของแขนกล 1 DOF


o Electronics

ในส่วนของตัว Robot สามารถแสดงแผงผังการการทำงานได้ ดังรูป



รูปที่ 2 แสดงตำแหน่งการเชื่อมต่อระหว่างแผงควมคุมกับอุปกรณ์ต่างๆ ของ ReMI Robot

สำหรับตัว Instrument  สามารถแสดงแผงผังการการทำงานได้ ดังรูป

รูปที่ 3 แสดงตำแหน่งการเชื่อมต่อระหว่างแผงควมคุมกับอุปกรณ์ต่างๆ ของ ReMI Instrument

และได้กำหนด Pin ต่างๆที่ใช้ในการเชื่อมต่อระหว่างไมโครคอนโทรลเลอร์กับอุปกรณ์อิเล็กทรอนิกส์ ต่าง ซึ่งมีการใช้งานดังรูป 



รูปที่ 4 แสดงตำแหน่ง Pin ที่ใช้ในอุปกรณ์ต่างๆ

o Programming



ส่วนเครื่องดนตรี




ในส่วนของเครื่องดนตรีจะแบ่งเป็น 2 รูปแบบการเล่นคือ
     1.รูปแบบสำหรับมนุษย์ รูปแบบนี้เครื่องดนตรีจะทำงานคล้ายเปียโน
คือกดแล้วจะมีเสียง และปรับความดังหรือเบาเสียงจากปุ่มเพิ่มความดังหรือเบา(force sensor) และห้องเสียงจากปุ่มปรับห้องเสียง(potensiometer)

     2.รูปแบบสำหรับหุ่นยนต์ รูปแบบนี้เนื่องจากแขนของหุ่นยนต์จะต้องอยู่บนแป้น melody ตลอดเวลาดังนั้นจะต้องใช้ปุ่มควบคุมความดัหรือเบาของเสียงเพื่อการสั่งปิดหรือเปิดเสียง








ส่วนของหุ่นยนต์
High Level
- อ่าน MIDI และควบคุมหุ่นยนต์
- ReMI ส่วนของเครื่องดนตรี
- Rebo ReMI หุ่นยนต์เล่นดนตรี


 









· Implementation


o Mechanics


ภายในของเครื่องดนตรีจะเก็บอุปกรณ์ทั้งหมด เพื่อให้สะดวกแก่การเคลื่อนย้าย และสามารถถอดหุ่นยนต์เพื่อที่คนจะใช้เล่นได้ ซึ่งสามารถเก็บหุ่นยนต์เข้าในเครื่องดนตรีได้อีกด้วย ดังรูปที่
รูปที่  แสดงให้เห็นที่เก็บของด้านหลัง
การออกแบบเครื่องดนตรีให้มี 2 ประตูโดยประตูบานเล็กเอาไว้เก็บหุ่นยนต์ทั้ง 2 ตัว และประตูบานใหญ่เอาไว้เปิดเพื่อแก้ระบบวงจรภายในดังรูปที่
รูปที่  แสดงถึงการแยกเปิดประตูได้
แขนกลที่มี 2 DOF เป็นการทำงานจากมเตอร์ 2 ตัว โดยตัวบนจะใช้ในการหมุนตัวต้านทานปรับค่าได้ และตัวล่างจะใช้ในการกดปุ่มให้เกิดแรงในการกดเซนเซอร์ดังรูป
รูปที่  แขนกล 2 DOF
แขนกล 1 DOF ทำงานโดยใช้มอเตอร์ในการขับผ่านเฟืองสะพานเพื่อการสร้างแรงในการเคลื่อนที่ในแนวเส้นตรง และมีการบังคับให้เคลื่อนที่ได้นิ่งมากขึ้นโดยการใส่ Linear guide ดังรูปที่
รูปที่  แขนกล 1 DOF


o Electronics


แผงวงจรควบคุมหลัก ARDUINO UNO


o Programming










Calibrate





Serial Connection



Parameter Setting




Manual Control




· Video of Operation












· Problem & Solution Procedures


1) ปัญหา : ได้จัดซื้อตัวตัวทานปรับค่าได้ตามการ Slide(SoftPot Potentiometer) มาผิด spec โดยได้ซื้อ Force Sensing Sensor และ Strip มา ทำให้ใช้งานไม่ได้
   วิธีแก้ไข : ได้ขอยืมจาก Lab SAMeD มาใช้ชั่วคราวก่อน

2) ปัญหา :  Motor สำหรับเล่นตัว Note ที่ซ์้อมาใช้งานได้สักพักสายสัญญาณ Encoder ผิดปกติ ตรวจสอบพบว่าสายสัญญาณขาดที่ขั้วต่อ

   วิธีแก้ไข : ต้องทำการถอด case ตัว Encoder ของ Motor ออกมา บัดกรีสายใหม่เข้าไปแทนสายสัญญาณเดิม
3) ปัญหา : การเคลื่อนที่แบบเส้นตรงมีการติดขัด ขยับยาก 

   วิธีแก้ไข : ใช้ Linear guide ในการเคลื่อนที่แบบเส้นตรงทั้งหมด


4) ปัญหา : สปริงมีความแข็งเกินไปทำให้มอเตอร์ไม่สามารถกดแขนกลได้

   วิธีแก้ไข : ลดจำนวนสปริงที่ไม่จำเป็นลง เปลี่ยนเฟืองให้กำลังเพิ่มขึ้น

· Conclusion & Comment

1) ยังขาดเรื่องควาสวยงาม
2) เครื่องดนตรีขาดเสียงที่มีความเฉพาะตัวจึงไม่โดดเด่นเรื่องของเสียงดนตรีถึงแม้ว่าจะเล่นเสียงได้หลายเครื่องดนตรีก็ตาม
3) เครื่องดนตรีนี้สามารถเล่นได้ทีละโน๊ต จึงไม่สามารถส่งเสียงที่ทรับซ้อนได้

· Presentation Video



· Team Member


   1.
นาย ณัฐพงษ์ รอดเมือง 55340700002

มีหน้าที่ในการทำส่วนของ Hi Level ซึ่งเป็นโปรแกรมส่งคำสั่งดัวย RS232 เพื่อสั่งให้ SMU Player เล่นดนตรี, และในส่วนของ Low level ได้เขียนโปรแกรมสำหรับชุด ReMI Player ซึ่งเป็นตัว Robot สำหรับเล่นตัว ReMI Instrument ต่าง ๆ

   2. 
นาย ทรงวุฒิ สายทอง  55340700004

มีหน้าที่ในการทำส่วนของการออกแบบวงจร Electronics ต่างๆ รวมถึงการสร้าง Board เพื่อการ Interface กับส่วนของ Board วงจรควบคุม (Arduino UNO) ทั้งสองชุด(ReMI Player and Instrument)

   3.
นายธีระพงษ์ ธนเดโชพล 55340700008

มีหน้าที่เขียนโปรแกรมในส่วนของ Low level สำหรับชุด ReMI Instrument ซึ่งเป็นตัวรับค่า Sensor ต่าง ๆ และส่งคำสั่งไปยัง MIDI Sound Generator ให้เล่นเสียงดนตรีตาม จังหวะ Note ของตัว ReMI Player หรือ ผู้เล่นดนตรี

   4.
นายสิทธิกร จองเฉลิมชัย 55340700011

มีหน้าที่ออกแบบและสร้างในส่วนของหุ่นยนต์ และกลไกต่าง ๆ รวมถึงส่วนโครงสร้างทางกายภาพทั้งหมดของโครงงานชิ้นนี้




วันจันทร์ที่ 26 พฤศจิกายน พ.ศ. 2555

Solve Maze

Solve Maze 2012

· Objectives

  1. เพื่อสร้างหุ่นยนต์ที่หาทางออกจากเขาวงกตได้
  2. เพื่อสร้างหุ่นยนต์ที่สามารถเรียนรู้และหาทางออกที่สั้นที่สุดได้
  3. เพื่อสร้างหุ่นยนต์ที่สามารถติดต่อกับคอมพิวเตอร์ โดยใช้คอมพิวเตอร์เป็นตัวสั่งการ และตัวหุ่นยนต์เป็นผู้ปฎิบัตตามและส่งข้อมูลมาให้

· Design

o System Overview

ภาพรวมการทำงานของระบบหาทางออกจากเขาวงกต ซึ่งระบบที่ได้ทำนี้ได้ให้การประมวลผลในการจำแผนที่แล้วหาทางออกที่สั้นที่สุดไปอยู่ในระบบของคอมพิวเตอร์ ซึงระบบคอมพิวเตอร์จะทำการวาดแผนที่ขึ้นมาและมีการประมวลผลหาทางออกโดยส่งข้อมูลผ่านบลูทูธไปยังหุ่นยนต์ และหุ่นยนต์จะทำการวิ่งไปในเขาวงกตซึ่งส่งข้อมูลที่ได้รับจากเซนเซอร์ว่ามีกำแพงอยู่ตรงไหนในระยะที่วิ่งไป เพื่อให้เครื่องคอมพิวเตอร์มาประมวลผลต่อโดยส่งข้อมูลต่างๆผ่านบลูทูธ ดังที่จะแสดงในภาพต่อไปนี้

รูปที่ 1 ภาพรวมของระบบ

o Mechanics

      การออกแบบหุ่นยนต์ให้มีล้อขับ ล้อ อยู่ตรงกลางของตัวหุ่นยนต์ เพื่อที่จะหมุนซ้ายขวาได้โดยที่ตัวหุ่นยนต์ยังอยู่ตำแหน่งเดิม หุ่นยนต์มีความสูงน้อยที่สุด เพื่อความมั่นคงในการแคลื่อนที่ มีล้อกลมหน้าหลังเพื่อเพิ่มความมั่นคงให้กับตัวหุ่นยนต์ในการเคลื่อนที่ ซึ่งที่ต้องการมีอยู่ในชุดสำเร็จรูป


     รูปที่ 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 มิลลิเมตร ส่วนยางขอบล้อที่ใช้ร่วมด้วยผลิตจากยางพาราผิวมีดอกยางเพื่อช่วยเพิ่มสมรรถนะในการเกาะพื้นผิว

รูปที่ 16 ล้อพลาสติกสำหรับชุดเฟืองขับมอตอร์และยาง

แผ่นกริด
เป็นแผ่นพลาสติกที่ผลิตจากวัสดุ ABS ขนาด 80 x 60 มิลลิเมตร ในแต่ละมีรูขนาด 3 มิลลิเมตรที่มีระยะห่างกัน 5 มิลลิเมตร

รูปที่ 17 แผ่นกริด

แผ่นฐานกลม
เป็นแผ่นพลาสติกที่ผลิตจากวัสดุ ABS เป็นแผ่นฐานสำหรับยึดอุปกรณ์ต่างๆ มีรูปร่างเป็นกลมประกอบด้วยล้อกลมกึ่งอิสระทั้งด้านหน้าและหลัง ช่วยเสริมความคล่องตัวให้กับหุ่นยนต์ได้เป็นอย่างดี ที่แผ่นฐานมีรูขนาด 3 มิลลิเมตรสำหรับติดตั้งอุปกรณ์หรือโครงสร้างกลไกเพิ่มเติม


รูปที่ 18 แผ่นฐานกลม

ชิ้นต่อพลาสติก
เป็นชิ้นส่วนพลาสติกแข็งเหนียวมี 3 แบบคือ ชิ้นต่อแนวตรง, ชิ้นต่อมุมฉาก และชิ้นต่อมุมป้าน สามารถเสียบต่อกันได้ใช้ต่อกันเป็นโครงสร้าง

รูปที่ 19 ชิ้นต่อพลาสติก

ฉากโลหะ
เป็นชิ้นส่วนโลหะกว้าง 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 ซม.


รูปที่ 25 BlueStick โมดูลสื่อสารข้อมูลไร้สายผ่านบลูทูธ

มอเตอร์ไฟตรงพร้อมชุดเฟืองขับ
เป็นชุดมอเตอร์พร้อมเฟืองขับรุ่น 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


รูปที่ 30 แสดงรูปร่างการจัดขาและกราฟแสดงการทำงานของ GP2D120

แบทเตอร์รี่ stark 1000 mah
คุณสมบัติของแบทเตอร์รี่ stark 1000 mah เป็นไปตามรูปที่ 31


รูปที่ 31 แสดงคุณสมบัติของแบทเตอร์รี่

o Programming

โปรแกรมที่ใส่ลงไปในหุ่นยนต์มีการเขียนโปรแกรมควบคุมหุ่นยนต์โดยใช้ระบบ PID ในการควบคุมระยะห่างของกำแพงให้เท่ากัน ซึ่งมีผลทำให้หุ่นยนต์ไม่เดินชนกำแพงและลดความผิดพลาดได้สูงในขนะวิ่งในเขาวงกต
ระบบควบคุม PID
ระบบควบคุมแบบสัดส่วน-ปริพันธ์-อนุพันธ์ (อังกฤษPID controller) เป็นระบบควบคุมแบบป้อนกลับที่ใช้กันอย่างกว้างขวาง ซึ่งค่าที่นำไปใช้ในการคำนวณเป็นค่าความผิดพลาดที่หามาจากความแตกต่างของตัวแปรในกระบวนการและค่าที่ต้องการ ตัวควบคุมจะพยายามลดค่าผิดพลาดให้เหลือน้อยที่สุดด้วยการปรับค่าสัญญาณขาเข้าของกระบวนการ ค่าตัวแปรของ PID ที่ใช้จะปรับเปลี่ยนตามธรรมชาติของระบบ โดยการปรับค่าคงที่ใน PID ตัวควบคุมสามารถปรับรูปแบบการควบคุมให้เหมาะกับที่กระบวนการต้องการได้ การตอบสนองของตัวควบคุมจะอยู่ในรูปของการไหวตัวของตัวควบคุมจนถึงค่าความผิดพลาด ค่าโอเวอร์ชูต (overshoots) และ ค่าแกว่งของระบบ (oscillation) วิธี PID ไม่รับประกันได้ว่าจะเป็นระบบควบคุมที่เหมาะสมที่สุดหรือสามารถทำให้กระบวนการมีความเสถียรแน่นอนวิธีคำนวณของ PID ขึ้นอยู่กับสามตัวแปรคือค่าสัดส่วน, ปริพันธ์ และ อนุพันธ์ ค่าสัดส่วนกำหนดจากผลของความผิดพลาดในปัจจุบัน, ค่าปริพันธ์กำหนดจากผลบนพื้นฐานของผลรวมความผิดพลาดที่ซึ่งพึ่งผ่านพ้นไป, และค่าอนุพันธ์กำหนดจากผลบนพื้นฐานของอัตราการเปลี่ยนแปลงของค่าความผิดพลาด น้ำหนักที่เกิดจากการรวมกันของทั้งสามนี้จะใช้ในการปรับกระบวนการ การประยุกต์ใช้งานบางครั้งอาจใช้เพียงหนึ่งถึงสองรูปแบบ ขึ้นอยู่กับกระบวนการเป็นสำคัญ พีไอดีบางครั้งจะถูกเรียกว่าการควบคุมแบบ PI, PD, P หรือ I ขึ้นอยู่กับว่าใช้รูปแบบใดบ้าง

แผนภาพบล็อกของการควบคุมแบบ PID

ทฤษฎี

การควบคุมแบบ PID ได้ชื่อตามการรวมกันของเทอมของตัวแปรทั้งสามตามสมการ:
\mathrm{MV (t)}=\,P_{\mathrm{out}} + I_{\mathrm{out}} + D_{\mathrm{out}}
เมื่อ
P_{\mathrm{out}}I_{\mathrm{out}}, และ D_{\mathrm{out}} เป็นผลของสัญญาณขาออกจากระบบควบคุม PID จากแต่ละเทอมซึ่งนิยามตามรายละเอียดด้านล่าง

[แก้]สัดส่วน


เทอมของสัดส่วนจะเป็นไปตามสมการ:
เทอมของสัดส่วน (บางครั้งเรียก อัตราขยาย) จะเปลี่ยนแปลงเป็นสัดส่วนของค่าความผิดพลาด การตอบสนองของสัดส่วนสามารถทำได้โดยการคูณค่าความผิดพลาดด้วยค่าคงที่ Kp, หรือที่เรียกว่าอัตราขยายสัดส่วน
P_{\mathrm{out}}=K_p\,{e (t)}
เมื่อ
P_{\mathrm{out}}: สัญญาณขาออกของเทอมสัดส่วน
K_p: อัตราขยายสัดส่วน, ตัวแปรปรับค่าได้
e: ค่าความผิดพลาด  = SP - PV
t: เวลา
ผลอัตราขยายสัดส่วนที่สูงค่าความผิดพลาดก็จะเปลี่ยนแปลงมากเช่นกัน แต่ถ้าสูงเกินไประบบจะไม่เสถียรได้ ในทางตรงกันข้าม ผลอัตราขยายสัดส่วนที่ต่ำ ระบบควบคุมจะมีผลตอบสนองต่อกระบวนการน้อยตามไปด้วย

กราฟ 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 ไม่สามารถนำใส่ชุดกล่องเกียร์ได้เพราะว่ามีแกนที่ยาวเกินไป
   วิธีแก้ไข : เจาะรูที่กล่องเกียร์ เพื่อให้สามารถใสมอเตอร์เข้าไปได้

3) ปัญหา : interrupt ใช้งานไม่ได้


   วิธีแก้ไข : อัพโปรแกรมใหม่ที่ inex

4) ปัญหา : เมื่อใช้งานบลูทูธไม่สามารถอัพโหลดโปรแกรมเข้าบอร์ด microcontroller ได้

   วิธีแก้ไข : ปิดบลูทูธขณะอัพโหลดโปรแกรมเข้าบอร์ด microcontroller


5) ปัญหา : คอมพิวเตอร์ไม่สามารถเชื่อต่อกับ microcontroller ได้
   วิธีแก้ไข : ลงไดร์เวอร์ใหม่


6) ปัญหา : หุ่นยนต์วิ่งไม่เป็นเส้นตรง
   วิธีแก้ไข : จูนค่า PLD ทำให้หุ่นยนต์รักษาระดับระหว่างกำแพง 2 ด้าน

7) ปัญหา : แผงวงจรตรวจจับแสงสะท้อนอินฟราเรดถุกรบกวนโดนแสงอาทิตย์
    วิธีแก้ไข : เปลี่ยนไปใช้ module GP2D120 โมดูลตรวจจับระยะทางแบบอินฟราเรด ซึ่งทนต่อแสงรบกวนจากภายนอกได้ดีกว่า

· Conclusion & Comment

1) หุ่นยนต์สามารถเคลื่อนที่ผ่านเขาวงกตได้ โดยการที่ทุกครั้งที่เดินแต่ละช่องจะมีการตรวจจับกำแพงรอบๆ โดยการเดินทางของหุ่นยนต์นั้นจะใช้วิธีเลี้ยวซ้ายตลอด โดยถ้ากำแพงด้านซ้ายว่างก็จะวิ่งไปทางซ้าย เพียงเท่านี้ก็จะวิ่งออกจากเขาวงกตได้แล้ว แต่ยังมีข้อจำกัดอยู่ที่ว่า ถ้าภายในเขาวงกตนี้มีเส้นทางที่วนได้ ก็อาจจะหาทางออกไม่ได้เลย
2) หุ่นยนต์สามารถที่จะหาทางออกที่ถูกต้องได้ในทันที่ที่ให้วิ่งอีกครั้งในสนามเดิมได้ เพราะว่าหุ่นยนต์ได้ส่งรูปแบบของแผนที่ในสนามให้กับเครื่องคอมพิวเตอร์ ซึ่งเครื่องคอมพิวเตอร์จะเป็นตัวบอกว่าหุ่นยนต์จะต้องเดินไปทางไหนเพื่อที่จะออกจากเขาวงกตได้

· Presentation Video



· Team Member



นายทรงวุฒิ สายทอง  55340700004

มีหน้าที่ในการทำส่วนของ Low level ซึ่งมีหน้าที่ในการสำรวจเขาวงกตแล้วส่งสัญญาณไปที่ส่วนของ Hi level เพื่อเก็บข้อมูล แล้วนำไปสู่ทางออกที่ถูกต้อง ในส่วนนี้ต้องทำระบบควมคุม PID ด้วย เพื่อที่เวล่เดินจะได้ไม่ชนกำแพงและรักษาระยะห่างของกำแพงได้


นายธีระพงษ์ ธนเดโชพล 55340700008

มีหน้าที่ในการทำส่วนของ Hi level ซึ่งเป็นตัวรับข้อมูลและส่งข้อมูลไปยังส่วนของ Low level ว่าจะให้สำรวจหรือว่าหาทางออก และยังเป็นส่วนที่รู้ตำแหน่งว่าตอนนี้หุ่นยนต์อยู่ที่ไหนจะไปยังจุดที่กำหนดยังไง โดยไม่หลงทาง


นายสิทธิกร จองเฉลิมชัย 55340700011

มีหน้าที่ออกแบบสร้างในส่วนของหุ่นยนต์ที่ใช้วิ่งในสนามว่าต้องแก้ไขปรับปรุงส่วนไหนบ้าง สร้างแบบจำลองของหุ่นยนต์จัดหาที่ยึดและวางอุปกรณ์ และเก็บข้อมูลการ Present ต่างๆในรูปแบบเวปและตัดต่อวีดีโอ