หัวข้อ: modular robot เริ่มหัวข้อโดย: phot ที่ พฤษภาคม 02, 2009, 02:38:57 PM สวัสดีครับ ผม ต้องการจะทำหุ่นยนต์ modular ที่ สามารถแยกส่วนได้ 3 ตัว ครับ โดย ใช้ pic 16f628 ควบคุมดีซีมอเตร์ 2ตัว เซนเซอร์ 2 ตัวเอาไว้เวลาชนสิ่งกีดขวาง กับหาสว่นอืนๆ เเต่ผม ไม่เคยใช้ pic ครับ อยากทราบว่าจะเริ่มยังไง รบกวนพี่ช่วยแนะนำหน่อยได้ไหมครับ เรื่องของวงจรขับมอเตอร์ กับเซนเซอร์ ถ้าพี่มีโค้ดด้วยจะดีมากเลย รบกวนพี่ด้วยคับ ตอนนี้มึนงมากเลย ขอบคุณมากครับ
หัวข้อ: Re: modular robot เริ่มหัวข้อโดย: todaystep ที่ พฤษภาคม 02, 2009, 03:47:25 PM สวัสดีครับ ผม ต้องการจะทำหุ่นยนต์ modular ที่ สามารถแยกส่วนได้ 3 ตัว ครับ โดย ใช้ pic 16f628 ควบคุมดีซีมอเตร์ 2ตัว เซนเซอร์ 2 ตัวเอาไว้เวลาชนสิ่งกีดขวาง กับหาสว่นอืนๆ
- 3 ส่วน นั่นคืออะไร ใช่ 1 ส่วนควบคุม ใช้ pic ,ส่วนที่สองคือ ส่วนขับเคลื่อน, และส่วนที่ 3 คือตัวตรวจจับ หลือเปล่า - หากใช่ ในการออกแบบ คุณต้องรู้ จุดประสงค์การทำงาน ข้อจำกัดของตนเองก่อน ดูที่ องค์ประกอบและโครงสร้างของหุ่นยนต์ http://www.basiclite.com/web/index.php?topic=124.0 เริ่มต้นการสร้างหุ่้นยนต์ http://www.basiclite.com/web/index.php?topic=10.0 หรือลองอ่านเนื้อหาที่ http://www.basiclite.com/web/index.php?board=7.0 ก่อน เช่น 1. หุ่นยนต์ ใหญ่โต แค่ไหน น้ำหนักเท่าไหร่ ทำด้วยอะไร มันจะเป็นคำตอบของการเลือกมอเตอร์ 2. วิธีการขับเคลื่อน มันจะบอกว่าคุณต้องเลือกล้อแบบไหน 3. ระยะการตวจจับ จะบอกว่าคุณต้องเลือกเซ็นเซอร์อะไร 4. ภาคควบคุม หากเลือก pic ก็ต้องมาดู 2 ส่งวน คือส่วนขับ ส่วนแสดงผล ส่วนรับเซ็นเซอร์ก่อน ว่ามีวงจร และสัญญาณควบคุมมากน้อยแค่ไหน และมาดูว่าการทำงานซัพซ้อนแค่ไหน คุณจะได้เลือกหน่วยความจำและเบอร์ PIC ได้ถูก ทีนี้มาดู กรณีศึกษากัน นาย A ได้ร่างคุณสมบัติที่ต้องการไว้ดังนี้ 1. แยกโมดุล ออกเป็น 3 ส่วน คือเซ็นเซอร์ ภาคขับเคลื่อน ภาคควบคุม 2. ทุกส่วนสามารถเปลี่ยนแปลง การทำงานได้ เพื่อเปลี่ยนแปลงโมดุลในอนาคตได้ จากโจทย์ มองได้ว่า นาย A กำลังชุดที่ต้องการความยืดหยุ่น สูง เพราะสามารถแก้ไขได้ทุกส่วน การออกแบบลักษณะนี้ จะค่อนข้างยากกว่า แบบที่กำหนดขา และสัญัญาณควบคม แบบตายตัว นาย A เลือกใช้ การต่อโมดุลโดยการต่อสายไฟ 1. สายไฟเลี้ยง มี 3 เส้น ประกอบด้วย ประกอบด้วย +5V +9V และ GND 2. สายควบคุม ขนาด 8 บิท ใช้สาย 8 เส้น เพื่อติดต่ออุปกรณ์โมดุลต่างๆ 1. ส่วนควบคุม นาย A เลือกใช้ PIC เบอร์ที่มีขาและหน่วยความจำ เยอะที่สุด เพื่อง่ายต่อการติดต่อ และเขียนโปรแกรม โดยไม่ต้องห่วงเรื่องขนาด บอร์ดนี้ ประกอบด้วย - ภาคจ่ายไฟ เพื่อจ่ายไฟฟ้าไปเลี้ยง ให้ไมโคร (5V) ให้ภาคอื่นๆ และใช้แบตเตอรี่ 12V และได้ทำพอร์ทไฟเลี้ยง จำนวน 3 พอร์ท ไว้ - ภาควงจรของไมโคร พอร์ทต่างๆ ถูกต่อแยกออกเป็นพอร์ทต่างๆ เช่น A ฺB C ขนาด 8 บิท ใช้สาย 8 เส้น . 2. ส่วนเซ็นเซอร์ - บอร์ดแรกใช้เซ็นเซอร์ อินฟารเรด ระยะตรวจจับ ไม่เกิน 10 เซ็นติเมตร ภายในบอร์ด ประกอบด้วย ตัวส่งและรับแสงอินฟาเรด จำนวน 3 ชุด เพื่อตรวจจับ แต่ละด้าน และพอร์ทไฟเลี้ยง พอร์ทขาควบคุม - บอร์ดที่ใช้เซ็นเซอร์ อัลตร้าโซนิค ระยะตรวจจับ ไม่เกิน 100 เซ็นติเมตร ประกอบด้วย ตัวส่งและรับอัลตร้าโซนิค จำนวน 1 ชุด และพอร์ทไฟเลี้ยง พอร์ทขาควบคุม 3. ส่วนการขับเคลื่อน เนื่องจากมีไฟเลี้ยงแค่ 12V ขนาดหุ่นเลือกแบบขับเคลื่อนด้วยล้อ จึงเลือกมอเตอร์ขนาดไม่ใหญ่มาก แรงดัน 12V เน้นความเร็วมากกว่า น้ำหนัก จึงเลือกมอเตอร์มีความเร็วรอบสูง จำนวน 2 ตัว ขับเคลื่อนด้าน ซ้าย และขวา ติดตั้งไว้ด้านหลัง ล้อหน้า ใช้แบบล้อฟรี เรื่องของวงจรขับมอเตอร์ กับเซนเซอร์ ถ้าพี่มีโค้ดด้วยจะดีมากเลย ทำเองนะครับ... โค๊ดมันขึ้นอยู่กับการออกการติดต่อ ไม่มีใครเขียนให้คุณได้หรอก คุณควร 1. ไปหาวงจร หรือค้อนหาวงจรที่เกี่ยงข้องมาดูหลายๆ แบบ ทั้งส่วนขับมอเตอร์ ภากเซ็นเซอร์ 2. ดูความสัมพันธ์ การควบคุมของแต่ละแบบ เช่น เซ็นเซอร์จะมี ไฟเลี้ยง 2 เส้น สายสัญญษณไม่เกิน 3 เส้น ภาคมอเตอร์มักจะมีไฟเลี้ยงมอเตอร์ ไฟเลี้ยงวงจรขับ ขาสัญญาณ 2-3 เส้น ลองพยายามดูก่อน ติดขัดอะไร สอบถามกันได้ คิดว่าลองทำทีละส่วนก่อน ส่วนแรกที่คุณควรทำก่อน คือภาคเซ็นเซอร์ ถัดมาคือ ภาคส่วนของมอเตอร์ ประสบการณ์ ย่อมมาจากการลงมือทำ จงใฝ่รู้ และแบ่งปัน หัวข้อ: Re: modular robot เริ่มหัวข้อโดย: phot ที่ กันยายน 21, 2009, 10:13:35 AM ทำไมต้องใช้เซนเซอร์ 2 ชนิดครับ เลือกแบบเดียวไม่ได้ หรอ ครับ
และ เซนเซอร์ที่ไว้หลบหลีก จะใช้ 1 หรือ 2 ชุด อันไหนจะดีกว่ากัน พี่มีตัวอย่าง โปรแกรมเกี่ยวกับเซนเซอร์แสง ไหม ครับ ขอบคุณครับ หัวข้อ: Re: modular robot เริ่มหัวข้อโดย: Admin ที่ กันยายน 21, 2009, 12:42:05 PM modular robot คืออะไร คนออกแบบเท่านั้นที่รู้
ทางชมรม เขาอาจหมายถึง ว่าเราสามารถยืดหยุ่น ให้ปรับเปลี่ยนโมดุล ได้ตามความต้องการ เช่น อาจใช้เซ็นเซอร์แบบไหนมาต่อก็ได้ เปลี่ยนบอร์ดไมโครเป็ยเบอร์หรือตระกูลอื่นก็ได้ซึ่งเป็นลักษณะ ยืดหยุ่นสูงสุด การมีกี่แบบหรือกี่ชุด คุณต้องบอกตนเองว่าเอาไปทำอะไร จะจับเส้นก็อย่างน้อย 2 ชุด คือจับขอบซ้ายและขวา หากเจอทางแยกล่ะ ก็อาจต้องมีอีกชุด อยู่ตรงกลางมาจับทางแยก งานออกแบบ คุณต้องตีโจทย์ให้แตก ทดลองเยอะๆ ดูปัญหา และปรับแก้ (เฮ่อ....ล่าสุดชมรมก็ นี้ปิดไปแล้ว....คิดถึงจัง) หัวข้อ: Re: modular robot เริ่มหัวข้อโดย: phot ที่ กันยายน 21, 2009, 09:12:41 PM ตามที่ออกแบบ หุ่นยนต์จะมีลักษณะ คล้ายหุ่นยนต์งูคับ แต่สามารถเเยกได้เป็น 3 ท่อน เมื่อส่วนหัวไปชนสิ่งกีดขวาง คับ
เมื่อส่วนหัวถอดออกเเล้ว จะหลบสิ่งกีดขวางไป แล้วจะปล่อยสัญญาณ ให้ท่อนที่ 2 ตามมาคับ เเล้วทำการต่อกลับที่เดิม จากนั้น ท่อนที่ 2 จะปล่อยสัญาณ เพื่อให้ท่อนที่ 3 ตามมา ต่อกับท่อนที่ 2 จากนั้นจะเดินไปข้างหน้า คับ ตอนนี้กำลังเขียนโปรแกรมเซนเซอร์ท่อน 1 กับ 2 คับ คำถามคับ 1. ท่อนทึ่ 2 ควรจะมีเซนเซอร์ ไว้หลบสิ่งกีดขวางด้วยไหม 2. ถ้ามีควรจะใช้ชนิดไหน 3. จะเขียนโปรแกรมอย่างไรให้เซนเซอร์รับสัญญาณของท่อนที่ 2 รู้จัก กับ เซนเซอร์ส่งสัญญาณท่อนที่ 1 ขอบคุณคับ หัวข้อ: Re: modular robot เริ่มหัวข้อโดย: Admin ที่ กันยายน 21, 2009, 10:04:17 PM บอกกันละเอียดๆ เสียทีแรก....มันก็จบไปนานแล้ว
(นี่แหละ จึงบอกว่าเวลาตั้งคำถาม บอกให้ละเอียดๆๆ กันหน่อย ) ตามที่ออกแบบ หุ่นยนต์จะมีลักษณะ คล้ายหุ่นยนต์งูคับ แต่สามารถเเยกได้เป็น 3 ท่อน เมื่อส่วนหัวไปชนสิ่งกีดขวาง คับ เมื่อ ส่วนหัวถอดออกเเล้ว จะหลบสิ่งกีดขวางไป แล้วจะปล่อยสัญญาณ ให้ท่อนที่ 2 ตามมาคับ เเล้วทำการต่อกลับที่เดิม จากนั้น ท่อนที่ 2 จะปล่อยสัญาณ เพื่อให้ท่อนที่ 3 ตามมา ต่อกับท่อนที่ 2 จากนั้นจะเดินไปข้างหน้า คับ ตอนนี้กำลังเขียนโปรแกรมเซนเซอร์ท่อน 1 กับ 2 คับ จากตรงนี้ เราต้องสร้างระบบสื่อสารระหว่าง หุ่นแต่ละตัว ในที่นี้ให้คิดว่า เป็นหุ่น 3 ตัวล่ะกัน ไปศึกษาเรื่องโมดุลรับส่งวิทยุมา (อีซอร์สมีขาย) ที่นี้ เราจะสื่อสารยังไงล่ะ มีตั้ง 3 ตัว เราก็ต้องสร้างระบบสื่อสารขึ้นมาเอง เพราะคลื่นวิทยุ มันส่งออกเป้นสัญญาณทีล่ะลูก คิดว่าเป้นระบบสื่อสาร RS232 ล่ะกัน ที่นิยมก็ให้ตัวหนึ่งตัวใดส่ง ตัวที่เหลือเงียบคอยฟังสัญญาณ (อาจมีรหัสตำแหน่ง กับรหัสคำสั่ง) ที่ส่งมา เมื่อส่งเสร็จก็จะคอยฟังการโต้กลับ เช่น ตัวแรกคือ เลข 1 เลข 2 เลข 3 ตามลำดับ ตัวที่ 1 จะส่งสัญญาณ ควบคุมตัวที่เหลือ กรณีชนสิ่งกีดขวาง ก็จะส่งสัญญาณออกไป ตัวที่ 2 และ 3 ก็รับพร้อมกัน ตัวที่ 1 ก็หยุดส่ง แล้วไปทำงานอย่างอื่นเช่น ปลดล๊อกตัวเอง แล้วหลบ ไปหยุดคอย (อาจส่งสัญญาณ ลักษณะการหลบออกไปด้วยเพื่อให้ตัวอื่นทำตาม เช่นไปหลบกี่องศา อาจนับพัลซ์การหมุนมอเตอร์ ทางซ้ายหรือขวา และหลบเป็นระยะทางเท่าไหร่ ) - จากตรงนี้ เริ่มมีกระบวนการเพิ่มขึ้น คือตัวนับพัลซ์ ระยะทาง หากเป็นสเต็ปปิ้งมอเตอร์ ก็นับได้เลย เพราะไมโครเป็นคนส่งไปเอง หากเป้นมอเตอร์ชนิดอื่นก็ต้องมีวงจรนับการเคลื่อนที่ อาจใช้วงแหวนแสง หรือวิธีการอื่นๆ (http://www.fpga4fun.com/images/MouseInternal.jpg) (http://www.web-books.com/eLibrary/Engineering/Circuits/Digital/04358.png) ตัวที่ 2 รับสัญญาณข้อมูลมา ก็ประมวลผลตามสัญญาณที่ ตัวที่ 1 ส่งมา โดยต้องคำนวณ หักลบระยะตัวถัง ตัวที่ 1 ออก เพื่อให้ชนกันพอดี ตัวที่ 3 ก็อาจทำเหมือนๆ กัน กับตัวที่ 2 (หักลบระยะตัวที่ 1 และ 2 ออก) - อ่า แล้วถ้ามันไม่ต่อกันล่ะ ต้องมีกระบวนการอื่นปรับแก้ การต่อและจากของหุ่น 3 ตัว เช่น หุ่นแต่ละตัวต้องมีจุดอ้างอิง ให้เซ็นเซอร์สำหรับการล็อกหุ่นทำงาน (เซ็นเซอร์นี้ไว้ ให้หากันเจอ....ยากเหมือนกัน) คำถามคับ 1. ท่อนทึ่ 2 ควรจะมีเซนเซอร์ ไว้หลบสิ่งกีดขวางด้วยไหม - ไม่จำเป็น ตามที่กล่าวมาคือรับสัญญาณตัวที่1 แล้วมาคำนวณเอาได้ 2. ถ้ามีควรจะใช้ชนิดไหน - ตามตัวที่ 1 3. จะเขียนโปรแกรมอย่างไรให้เซนเซอร์รับสัญญาณของท่อนที่ 2 รู้จัก กับ เซนเซอร์ส่งสัญญาณท่อนที่ 1 - เขียนระบบสื่อสารวิทยุให้ได้ ดูหนังสือ การสื่อสาร RS-485 ของ Inex เล่มสีเขียว ได้ (http://www.inex.co.th/images/book_485.gif) ---------------- งานนี้สิ่งที่ยากคือ การสื่อสารของหุ่น 3 ตัว กับ การบังคับให้หุ่น หากันเจอ พยายามเข้า สู้ สู้ ...แค่แนวทางน่ะ..อย่าเชื่อมาก หัวข้อ: Re: modular robot เริ่มหัวข้อโดย: phot ที่ กันยายน 23, 2009, 11:52:27 AM พี่พอมีวงจร RF บ้างไหมคับผมลองไปหาดูไม่เจอ แล้วการต่อใช้งานล่ะคับ ต้องต่อยังไง หรือใช้ วงจรรับส่ง AM แทนได้ไหม เหมือนกันไหม
ดู (http://www.es.co.th/Picture/RLP-916F.jpg) http://www.es.co.th/detail.asp?Prod=RLP-916F (http://www.es.co.th/Picture/TWS-BS.jpg) http://www.es.co.th/detail.asp?Prod=TWS-BS-3%28433.92MHZ%29 (http://www.etteam.com/product/pics/12INTERFACE/12A25/et-rf24g.jpg) http://www.etteam.com/product/12A25.html (http://www.etteam.com/product/intf/et-rf24g-v2-head.jpg) http://www.etteam.com/product/intf/et-rf-24gv2.html (http://www.silaresearch.com/lib_rec.php?fn=./accpicture/w_rfn12x.jpg) http://www.silaresearch.com/accessory.php (http://www.inex.co.th/images/xbee.gif) http://www.inex.co.th/application/applicationboard.html PKIT-5T v1.0 (http://www.silaresearch.com/productpicture/w_pkit-5t.jpg) PKIT-5R v1.0 (http://www.silaresearch.com/productpicture/w_pkit-5r.jpg) http://www.silaresearch.com/application%28kit%29.php โค๊ดโปรแกรม http://www.silaresearch.com/lib_rec.php?fn=./source/pkit5t.c http://www.silaresearch.com/lib_rec.php?fn=./source/pkit5r.c อื่นๆ (http://www.serasidis.gr/circuits/RF_remote_control/images/Receiver.jpg) http://www.serasidis.gr/circuits/RF_remote_control/RF_remote_control.htm ++++++++++++ อีกอย่างนึง ผมคิดว่าถ้าเราใช้ตัวที่1 ส่งตัวเดียวความถี่ก็มีแค่คลื่นเดียว ตัวรับก้อรับได้เหมือนกันและพร้อม กัน มันก็จะทำงานพร้อมกัน **** การแก้โดยการ เวลาส่งต้องส่ง คำสั่งตำแหน่ง และคำสั่งไป การรับ จัรับพร้อมกันก็จริง แต่เมื่อถอดรหัส แล้ว ไม่ใช่ของฉัน มันก็ไม่สนใจ เช่น ตัวแรกส่ง 2R50 อาจหมายถึง ให้ตัวที่ 2 เลี้ยวขวา ไป 50 พัลซ์ ตัวที่ 3 ก็รับสัญญาณนี้ได้ แต่พอถอดรหัส เจอเลข 2 มันก็รู้แล้วว่า เป็นให้คำสั่งตัวที่ 2 ทำงาน มิใช่ตัวมัน หากเป็นเลข 3 มันจึงจะทำงาน รูปแบบคำสั่ง และจำนวนการส่ง มันขึ้นอยู่แต่ละคนออกแบบ ไปลิสคำสั่งการควบคุมและแจ้งสถานะมา แล้วฝึกส่งดู เช่น ส่วนเคลื่อนที่ R ไปขวา L ไปซ้าย F ไปข้างหน้า B กลับหลัง ส่วนแจ้งสถานะ S สอบถามสถานะภาำพ เช่น ตัวแรกส่ง 2S (หมายถึงสอบถามสถานะของตัวที่ 2 ) ตัวที่ 2 ก็ส่งกลับว่า 2S1010 (1010 อาจเป็นรหัส เช่น 1 ตัวแรกคือตอนนี้ชนกับตัวแรกแล้ว) หากตัวที่ 2 ส่งกลับว่า 2S0010 ( 0 ตัวแรกคือตอนนี้ยังไม่ชนกับตัวแรก) เมื่อตัวแรกรับมาว่า 2S1010 ก็จะรู้ว่าตัวที่ 2 มาเทียบแล้ว ให้ทำการล็อกตัวที่ 2 เข้ากับตัวแรก นี่คือตัวอย่างคำสั่ง แจ้งสถานะ ******************************** ผมเลยวาดโครงสร้างขึ้นมาใหม่ เป็น ตัวที่ 1 ประกอบด้วย สเตปมอเตอร์ 2ตัว ไมโครสวิตไว้ชนข้างหน้า 1 ตัว **** ควรมี 2 ตัวเป็นอย่างน้อย ติดด้านซ้ายและขวา เพราะเวลาชนอาจชนด้านข้าง ได้แยกออกว่าชนได้ไหน และควรหลบด้านไหน วงจร pic วงจรdri motor วงจรส่งrf โซลินอยด์ ขนาดเล็ก ไว้จับส่วนที่2 1 อัน **** เราจะรู้ได้ไงว่า ตัวที่ 2 มาชน และควรล็อก อาจมีเซ็นเซอร์ มาช่วยตรงนี้ ว่่าตัวที่ 2 มาถึงจุดล็อกแล้ว จริงๆ พี่ว่า ทุกตัวทำแบบ มีวงจรรับส่งไปเลย แต่ให้มีการเซ็ทตำแหน่งได้ เช่นมี ดิบสวิช์ไว้เช็ทว่าตัวไหนจะเป็นตัวที่หนึ่ง เพื่อ 1 ไว้เอาตัวไปนมาแทนกันก็ได้ 2 ทุกตัวสมารถส่งข้อมูลได้ ตัวอย่างวงจรรับส่ง (ระวังมัลแวร์ด้วย) http://www.adisak51.com/home/trw24gcircuit.pdf โค๊ดโปรแกรมรับ-ส่ง http://www.adisak51.com/home/ProgramTRW24G.pdf แนบไฟล์ให้ล่ะกัน... |