Robot ARM 2 หุ่นยนต์ แขนกล 7 servo


Last UPDATE 09/08/2015


หุ่นยนต์ แขนกล robot ARM 7 servo


UPDATE 23/09/2014
- ปรับ source code ให้ Servo ทำงานนิ่งขึ้น
- แนะนำ ให้ใช้ C ค่า 2200uf/16v - 4700uf/16v คร่อมที่แหล่งจ่ายด้วย


ประกาศ ไม่สามารถเสียบแผ่นเข้าสลักได้
    เนื่องจากได้รับคำร้องเรียนจากลูกค้าว่าสินค้าบางชุด มีปัญหาไม่สามารถเสียบเข้าร่องหรือสลักได้ เพราะแน่นเกินไป สามารถติดต่อเพื่อเปลี่ยนเป็นชุดใหม่ได้ภายใน 14 วัน นับจากวันที่ได้รับสินค้าครับผม ~!!



ประกาศ น๊อตยึดแกนหมุน ผิดขนาด
    เนื่องด้วยช่วงนี้มีลูกค้าแจ้งเป็นจำนวนมากว่า น๊อตที่ใช้ยึดแกนหมุน(ในถุงเซอร์โว SG5010) ผิดขนาด ทำให้ไม่สามารถยึดเฟืองกับแกนหมุนได้ ซึ่งจะส่งผลให้แกนหมุนไม่แน่น เบื้องต้นคุณลูกค้า อาจจะต้องหาน๊อตขนาด 2.5 x 6mm เกลียวปล่อยขายทั่วไปใช้แทนไปก่อน
หรือแจ้งความจำนงติดต่อมาเพื่อให้ทางเราจัดส่งน๊อตไปให้ก็ได้ครับ
M2.5x6 robot arm

อย่างไรก็ดีช่วงนี้ทางเราจะพยายามตรวจคัดกรองให้รอบคอบมากยิ่งขึ้น และจะเร่งรัดกับ Supplier ให้ช่วยหาทางแก้ไขต่อไป


ประกาศ น๊อตยึดเฟืองเซอร์โว ผิดขนาด
    สืบเนื่องจากขณะนี้ทางโรงงาน ได้มีการเปลี่ยนขนาดน๊อตของเซอร์โวให้สูงกว่าเดิม หากถุงน๊อตที่มาพร้อมกับ Servo 
เป็นขนาดดังรูป ถือว่าโชคร้ายแล้วครับ ต้องหาที่ซื้อใหม่กันอย่างเดียว ส่วนลูกค้าที่ซื้อหลังจากวันนี้ประกาศนี้ จะมีการใส่น๊อต 2*8mm
ไปให้เรียบร้อยครับ.. รวม 24 ตัว โดยท่านสามารถใช้แทนน๊อตในถุง Servo  ทั้ง 7 ตัวได้เลย 
(SG5010 ใช้ชุดละ 4 ตัว, SG90 ใช้ชุดละ 2 ตัว รวมทั้งสิ้น 24 ตัว)

(ซ้าย : ขนาดน๊อตที่แถมอยู่ในถุง servo, ขวา :  ขนาดที่ถูกต้อง 2*8mm)



    วันนี้ผมจะรีวิว หุ่นยนต์ แขนกลตัวใหม่ มาพร้อมมือจับ โดยใช้เซอร์โว 7 ตัว ราคาประหยัด อุปกรณ์น้อยชิ้น สร้างง่าย และใช้งานง่ายให้ชมกันครับ
โดยหุ่นยนต์แขนกลตัวนี้ ดัดแปลงมาจาก http://jjshortcut.wordpress.com/2010/02/26/my-own-robotic-arm/
โดยปรับแต่งรายละเอียดเล็กๆ น้อยให้ สวยงามขึ้นและแข็งแรงขึ้น



ด้านล่างนี้เป็นตัวอย่างจาก อ.ไพฑูรย์ นพกาศ โรงเรียนหนองฉางวิทยา จ.อุทัยธานี เป็นการควบคุมโดยผ่าน Wireless Play Station Controller
ด้านล่างนี้ผลงานน้องธีรภัทร์ จันทร์ศรี แขนกลหยิบวัตถุแยกสี มีเทคนิคที่น่าสนใจคือ
- เสริมความแข็งแรงด้วยแท่งกาวร้อน นำไปค้ำยันโครงสร้างไว้ (เป็นแท่งกาวที่ใช้ในปืนยิงกาวร้อนทั่วไป ลดการสั่นแกว่งได้ระดับนึง)
- ไฟที่ใช้เลี้ยงเซอร์โวและวงจร มาจาก DVD เก่า ให้กระแสได้สูงมาก ทำให้เซอร์โวทำงานนิ่งมาก ^_^
- ที่บอร์ด shield ตัดขาไฟ 5v กับ vin

วิดีโอ YouTube



แขนกลตัวนี้มี 7 servo แบ่งเป็นส่วนตัวแขน 5 servo และมือหนีบ 2 servo การประกอบนั้นไม่ยาก เพราะเกือบทุกส่วน ออกแบบมาให้เข้าล๊อคกันพอดี ขอเพียงแค่ระวัง ลำดับการหยิบชิ้นส่วนมาประกอบให้ถูกต้อง ก็ไม่มีปัญหาการใช้งาน

รูปแบบการประกอบอย่างละเอียดนั้นให้ดูไปตามลำดับ ที่จะนำเสนอต่อไปนี้ครับ

เริ่มต้นส่วนแขนกล
ให้เตรียมเครื่องมือพวก คีมจับและไขควงให้เรียบร้อย ส่วนน๊อตมีไม่กี่ประเภท แบ่งเป็น

- น๊อตตัวเมีย 38 ตัว
- nyloc nut 8 ตัว (สำหรับจุดหมุนต่างๆ)
- 3x12 mm 38 ตัว
- 3x15 mm 2 ตัว
- 3x20 mm 3 ตัว
- 2x8  mm 24 ตัว โดยรุ่นหลังๆ จะมีการแถมน๊อตชุดนี้ไปให้แทนน๊อตที่แถมมากับ Servo สาเหตุเพราะจะได้ขนาดที่เหมาะสมกว่าน๊อตที่แถม

หุ่นยนต์ แขนกล robot ARM 7 servo
(ในรูปมีน๊อตรวมกับส่วนมือจับไปด้วย ซึ่งเราไม่ได้ใช้ ณ ตอนนี้)

เตรียม Servo
หุ่นยนต์ แขนกล robot ARM 7 servo
จากนั้นให้หยิบ servo มา สังเกตุในถุงเล็กๆ จะมียาง ให้นำยางมาหุ้มใส่ในรูของ Servo ให้ครบทุกตัว ทั้ง 5 ตัว ตามรูป
น๊อตยึด servo จะใช้ 3*12mm ทุกตัว ส่วนน๊อตที่ยึดเฟืองของเซอร์โว จะใช้ 2*8mm


คุณสมบัติของ Servo TowerPro
 Model Dimension WeightStallTorque Speed Operating VoltageTemperatureDead Band Width 
 SG90 23x12.2x29mm 9g1.8kg/cm(4.8v) 0.1sec/60degree(4.8v) 4.8v 0℃ - 55℃ 10μs 
 SG5010 40.2x20.2x43.2mm 38g5.5kg/cm(4.8V)
6.5kg/cm(6V)
0.2sec/60degree(4.8v)
0.16sec/60degree(6v)
 4.8-6V0℃ - 55℃10μs


***แนะนำ :: ก่อนการประกอบ servo ควรจัดให้ตำแหน่งของ servo อยู่ตรงตำแหน่งๆ กลางๆ ไว้ก่อน
ก็จะดีมิเช่นนั้นอาจจะต้องมาปรับทีหลัง ซึ่งอาจจะไม่สะดวก
การปรับตำแหน่ง servo ให้ใช้ source code ข้างล่าง


ส่วนฐาน
หุ่นยนต์ แขนกล robot ARM 7 servo
(เริ่มประกอบฐาน ด้วยน๊อตขนาด 3*12)
สังเกตุดีๆ ว่าที่ฐานยึด servo จะมีรู 3 รู เราจะใช้ทำเป็นแกนค้ำ เพราะแขนมีน้ำหนักมาก ให้ใช้น๊อต 3*20 ยึดตัวเมียด้านบนก่อน ด้วย Nyloc ตัวแรก
ส่วนด้านล่างใช้ Nyloc ยึดอีกที และจัดระดับหัวน๊อตตัวผู้ ให้อยู่ต่ำกว่าจุดหมุน servo เล็กน้อย (ไว้ประกอบเสร็จค่อยมาจัดอย่างจริงจังอีกที)
จากนั้นจึงเอาส่วน แผ่นยึด servo ไปประกอบกับฐานแล้วใส่น๊อตให้เรียบร้อย
Robot Arm Base
(รูปเสาค้ำ ใช้ป้องกันกรณีแขนยกน้ำหนักมากๆ แล้วฐานจะเอียง
เว้นระยะให้หัวน๊อตแค่เกือบสัมผัสฐานแผ่นหมุนเพียงเล็กน้อย ประมาณ 2-3 มม.)
หมายเหตุ
** ที่จริงขั้นตอนการทำเสาค้ำนี้ไม่ค่อยมีผลเท่าไรนัก ไม่ต้องกังวลมากครับ


จุดหมุนของฐาน
หุ่นยนต์ แขนกล robot ARM 7 servo
 
จุดยึด servo เราจะใช้พลาสติกลมๆ เป็นหลัก ส่วนอันอื่นเก็บใส่ถุงไว้ชิงโชค
 
 
 
หุ่นยนต์ แขนกล robot ARM 7 servo
 
เพราะจะต้องมีการใส่น๊อตจากจุดใต้ฐาน หากเราไม่ยึด servo ของแขนเข้าไว้ก่อน จะใส่น๊อตจากด้านล่างไม่ได้
จึงต้องใส่ชิ้นส่วนต่างๆ ให้ได้ตามรูปนี้ เท่านั้น ! เซอร์โวใส่ได้ตัวเดียว ห้ามใส่เกินเด็ดขาด
 
หยิบน๊อต 3*12 จัดไป อย่าให้เนิ่นช้า...
 
UPDATE !! ขอแก้ที่ผิด
- ลำดับการประกอบนั้นถูกแล้ว แต่รูปตัวอย่าง หันผิดด้าน ด้านที่ถูกนั้นให้ดูรูปข้างล่างนี้...
 
สังเกตุว่า จะมีจุดอ้างอิง คือรูที่อยู่ตรงขอบ (ที่อยู่สูงกว่าอีกด้าน) ซึ่ง Servo ทั้งสองตัว ต้องทำให้เหมือนกันนะครับ
เมื่อแก้ไขแล้วก็ให้ทำตามลำดับได้ตามปกติ ขออภัยในความไม่สะดวก(^_^!)
 
 
หุ่นยนต์ แขนกล robot ARM 7 servo
จากนั้นก็ยกไปประกอบ เข้ากับฐาน ใส่น๊อตยึด servo ที่อยู่ในถุงด้วย
 
แค่นี้เสร็จส่วนจุดหมุนแล้ว...
 
 
เริ่มประกอบแขน
การประกอบแขนนี้เราจะต้องประกอบไปพร้อมกันทุกแกน เพียงแต่จะแบ่งเป็นซีกซ้ายและขวา
หุ่นยนต์ แขนกล robot ARM 7 servo
เราจะใช้เฟืองวงกลม พร้อมน๊อต 2*8mm ที่อยู่ในถุง servo เป็นหลัก ขันน๊อตไป ทั้ง2อัน แต่เราจะใช้แค่อันเดียวก่อน

หุ่นยนต์ แขนกล robot ARM 7 servo
ประกอบแขนแรกให้ได้ตามรูปนี้ (สังเกตุว่า รู 3รู มันไม่ได้อยู่กึ่งกลางแขน ให้เลือกที่ด้านที่สั้น จะอยู่ชิดกับด้านที่ใส่ servo)
และอย่าใส่อุปกรณ์ใดๆ เกินกว่ารูปเด็ดขาด แล้วจะหาว่าไม่เตือน (ฮิฮิ)

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

หุ่นยนต์ แขนกล robot ARM 7 servo
นำชิ้นส่วนแขนส่วนอื่นประกอบเข้าด้วยกัน การประกอบแขนจะเน้นที่ 3*12mm ส่วนจุดหมุนสองจุดเราจะใช้
3*15 mm และแหวนรองอะครีลิค ซึ่งมาในชุดประกอบ โปรดจำไว้ว่าทุกๆ จุดหมุน เราจะใช้ Nyloc จากตรงนี้เราสามารถใส่ servo อีกตัวได้แล้ว
หุ่นยนต์ แขนกล robot ARM 7 servo
(รูปอีกด้าน แสดงจุดหมุน 2 รู จะใช้ 3*15mm + แหวนรอง กลม (มี 2 อัน) และส่วนยึดทั่วไปใช้ 3*12mm)

หุ่นยนต์ แขนกล robot ARM 7 servo
นำ servo ที่เหลือใส่กับแขนอีกด้าน ตามรูป แล้วนำมาประกอบเข้าด้วยกับแขนที่ประกอบไปแล้วอีกด้าน

หุ่นยนต์ แขนกล robot ARM 7 servo
ใส่น๊อตให้เรียบร้อย จะได้แขนกลที่สำเร็จแล้วดังนี้  ซึ่งจะมีฐานเป็นแผ่นบางๆ ที่ปลายแขน ตรงนี้จะใช้สำหรับ
วางมือจับในเวลาต่อไป...

เพิ่มเติม สำคัญมาก!!
ในกรณีเมื่อเราใส่แขนเข้ากับหัวไหล่หุ่นยนต์ (ด้านที่มี Servo 2 ตัวหันหน้าไปทางเดียวกัน)
แล้วปรากฏว่าองศาของแขนทั้งสองข้างมันไม่ตรงกัน หรือเหลื่อมกัน ให้ทำการเปลี่ยนพลาสติกยึดจากถุง Servo แล้วทดสอบอีกครั้ง


(บางกรณีแขนทั้งสองข้างไม่ตรงกัน ต้องปรับเปลี่ยนที่ พลาสติกในถุง Servo จะทำให้งานง่ายขึ้น :)


อย่าลืมว่า เฉพาะส่วนนี้เป็นการใช้ Servo 2 ตัวช่วยกันทำงาน เพื่อเพิ่มแรงยก คุณต้องเปลี่ยนพลาสติก จนกว่าจะเจอตัวที่ทำให้แขนขนานกันให้ได้
หากมันขัดกันนิดเดียวก็ไม่ได้ เพราะเมื่อทำงาน Servo จะขัดกันเอง ทำให้ Servo สั่น และร้อน หากเปลี่ยนพลาสติกในถุงแล้วก็ยังไม่ได้ ก็ให้ลองเปลี่ยนกับถุงอื่นๆ หรืออาจจะต้องเปลี่ยน Servo กับตัวอื่นๆก็ต้องทำ มันจำเป็น!!

คำแนะนำที่สำคัญอีกประการหนึ่งก็คือในขณะที่เราทำการไขน๊อตยึดที่แกนกลาง Servo หรือแม้แต่การประกอบ หากออกแรงเยอะ ก็มีสิทธิที่จะทำให้ องศาของ Servo ขยับได้ ซึ่งมีผลทำให้องศาของ Servo ทั้งสองผิดเพี้ยนกันไป และถ้าขืนยังใช้ต่อ ก็จะมีปัญหาเรื่อง Servo ขัดกันเอง
ทางที่ดี คือควรจะประกอบไปในขณะที่ยังเสียบไฟไปที่บอร์ด เพื่อตั้งค่า Servo ให้อยู่ Default ขณะไขไปด้วย !!!

หุ่นยนต์ แขนกล robot ARM 7 servo
ส่วนแขนกลที่เสร็จสมบูรณ์

การประกอบมือจับ

หุ่นยนต์ แขนกล robot ARM 7 servo

ชิ้นส่วนมือจับจะรวม Mini Servo ไปด้วย 2 ตัว ซึ่งแบ่งเป็นมือจับ และข้อมือของหุ่นยนต์
การประกอบมือจับก็ประกอบไม่ยาก แต่อาจจะหงุดหงิดใจนิดหน่อยเพราะอุปกรณ์มันชิ้นเล็ก และมี Nyloc Nut เป็นหลัก การใช้คีมช่วยจับ จะทำให้งานง่ายมากขึ้นเลยทีเดียว โดยมีน๊อตที่ใช้ ตามรายละเอียดดังนี้
- น๊อตตัวเมีย 6 ตัว
- nyloc 7 ตัว
- แหวนรอง 3mm 4-8 ตัว(แล้วแต่ตามความเหมาะสม)
- 3x12 mm 2 ตัว
- 3x20 mm 11 ตัว
- แหวนรอง 3*8 mm 8 ตัว (ใช้คู่กับน๊อต 2x8 ที่แถมมาในถุง Servo ตัวเล็กสีฟ้า (แหวน 2 ตัว ต่อ น๊อต 1 ตัว))

สำหรับการนำส่วนข้อมือ ไปประกอบเข้ากับแขนกล จะใช้น๊อตดังนี้
- 3x25 mm 4 ตัว
- น๊อตตัวเมีย 4 ตัว

เตรียมชิ้นส่วน
ชิ้นส่วนสำหรับมือจับนั้นมีไม่มาก (ตามรูป) แต่ความยากอยู่ที่ชิ้นเล็ก หยิบลำบาก และต้องทำงานร่วมกับน๊อตแบบ Nyloc
หุ่นยนต์ แขนกล robot ARM 7 servo
การประกอบ เราจะประกอบพร้อมๆ กันทุกๆ จุดหมุน ดังนั้นจึงเริ่มจากการพลิกชิ้นส่วนกลับด้าน เพื่อเริ่มประกอบจากด้านหลังขึ้นมา
หุ่นยนต์ แขนกล robot ARM 7 servo
เมื่อพลิกกลับแล้ว ให้เริ่มเรียงอุปกรณ์ให้ได้ตามรูป ด้วยน๊อต 3*20mm
หุ่นยนต์ แขนกล robot ARM 7 servo
ปิดด้วยชิ้นส่วนสุดท้าย แล้วจบด้วย Nyloc ทั้ง 4 ตัว ใส่แบบหลวมๆ ไว้ก่อน เท่านี้ก็เป็นอันเสร็จพิธี ในขั้นตอนแรก

เริ่มประกอบเฟืองของมือบีบ
(update)

เมื่อเราไปดูในถุง Servo ตัวเล็ก ให้นำชิ้นส่วนดังรูปออกมานำมาทาบกับ ชิ้นส่วนตามรูป แล้วตัดส่วนเกินออกไป
ในรูปจะเห็นแหวนรอง 4 อัน ให้ใช้ 2 อันต่อ 1 น๊อต เมื่อประกอบแล้วจะต้องได้ตามรูปนี้
หุ่นยนต์ แขนกล robot ARM 7 servo
หุ่นยนต์ แขนกล robot ARM 7 servo
จากรูปจะเห็นว่าถ้าไม่รองด้วยแหวน (ในที่นี้หน้า 3mm) จะทะลุมาแน่นอน แต่บางถุงของ Servo อาจจะเป็นน๊อตสั้นๆ ก็ไม่ต้องรองก็ได้ครับ
** ปัจจุบันนี้ให้ใช้แหวนอลูมิเนียมแทน เพราะสวยงามกว่าและเข้ากับน๊อต ซึ่งได้จัดเตรียมไว้ให้เรียบร้อยแล้ว

หุ่นยนต์ แขนกล robot ARM 7 servo
นำชิ้นส่วนที่ติดเฟืองเรียบร้อยแล้ว มาประกอบเข้ากับชิ้นส่วนที่ประกอบเสร็จก่อนหน้านี้ รองด้วยแหวนรองด้วย
ตรงนี้เป็นจุดหมุน ดังนั้น จึงต้องใช้ Nyloc ด้วยนะครับ
หุ่นยนต์ แขนกล robot ARM 7 servo
นำ Servo ตัวเล็ก ใส่จากด้านล่าง แล้วสวม แผ่นยึด Servo จากด้านหลัง ปรับทิศทางให้ตรงกันพอดี
แล้วยึดด้วยน๊อตขนาด 3*20mm ทั้ง 4 ตัว แล้วนำไปเสียบให้ตรงกับ Servo

หุ่นยนต์ แขนกล robot ARM 7 servo
หยิบชิ้นส่วนเฟืองของมือจับที่เหลือ พร้อมด้วยแหวนรอง 3mm 2ชิ้น นำมาประกอบตามรูป โดยต้องยึดด้วย Nyloc
แต่ด้วยน๊อตมันจะสูงพ้นตัวจับ เราจึงต้องหาคีมมาหนีบไว้ก่อน แล้วค่อยขันน๊อตให้เข้าที่ ก่อนเริ่มขันจริงในเวลาที่เสร็จแล้ว

หุ่นยนต์ แขนกล robot ARM 7 servo
ปรับทิศทางของมือจับ และเริ่มขันน๊อตให้แน่นขึ้น ส่วนที่เป็น Nyloc อย่าให้แน่นเกินไปจนหมุนไม่ได้ และอย่าให้หลวมเกินไปจนขยับได้
เทคนิคง่ายๆ ในการทดสอบความแน่นก็คือ ให้ขันน๊อตให้พอตึงมือ จากนั้นเริ่มคลายน๊อตออก ทีละน้อย
ทดลองเอาปลายเล็บจิกน๊อตแล้วหมุน ต้องหมุนได้แบบฝืดเล็กน้อย ถือว่าใช้ได้

หุ่นยนต์ แขนกล robot ARM 7 servo
เพียงเท่านี้่ก็เสร็จส่วนมือจับ


ส่วนข้อมือ
ส่วนนี้เป็นส่วนสุดท้าย ที่จะยึดมือจับและแขนกลเข้าด้วยกัน เราจะใช้น๊อต 3*25mm 4 ตัว เป็นตัวยึดเข้าหากัน และใช้ 3*12mm 2 ตัวเป็นตัวยึดข้อมือและมือจับเข้าด้วยกัน
หุ่นยนต์ แขนกล robot ARM 7 servo
หยิบเฟืองของ Servo ตามรูป (หรือจะใช้แบบมือจับก็ได้) รวมถึงน๊อตในถุงด้วย แหวนรองให้ใช้แหวนรองอลูมิเนียม 2 อัน:น๊อต 1 ตัว
เพียงเท่านี้่ก็เสร็จส่วนมือจับ
ส่วนที่เกินออกมาอาจจะตัดเพื่อความสวยงามหรือไม่ตัดก็ได้ ไม่มีผล เพราะว่าจุดหมุนตรงนี้ ไม่มีอะไรกีดขวาง

หุ่นยนต์ แขนกล robot ARM 7 servo
นำส่วนข้อมือหมุนไปประกอบเข้ากับมือจับ ด้วยน๊อต 3*12mm ตามรูป
แล้วยกไปสวมเข้ากับส่วนปลายของแขนหุ่นยนต์ ยึดด้วยน๊อต 3*25mm ก็เสร็จพิธี...
หุ่นยนต์ แขนกล robot ARM 7 servo


อธิบายการต่อวงจรเพื่อควบคุม Servo ทั้ง 7 ตัว
หากคุณไม่มี shield ก็สามารถทำได้ แต่อาจจะยุ่งยากสักหน่อย เพราะต้อง jump สายจากขาของบอร์ด Arduino มารวมกันที่ protoboard
7 ตัวๆ ละ 3 เส้น ทั้งหมดก็ 21เส้น แต่ถ้าใช้ Shield ก็ง่าย เพียงเสียบ แล้วใช้งานได้ทันที

Sensor Shield pinout
อธิบายตำแหน่งขาต่างๆ ของ Sensor Shield V4 ที่เราจำหน่าย (Click ที่รูปเพื่อขยาย)


ปกติแล้วไฟเลี้ยงทั้งบอร์ด Arduino จะมาจาก USB Port ซึ่งก็สามารถใช้งานได้แต่ถ้าใช้กับ shield รวมถึงอุปกรณ์ต่อเชื่อมที่มีการกินกระแสสูงๆ เช่น motor, servo ก็จะใช้ไม่ได้เพราะ USB จ่ายกระแสได้ไม่พอแน่นอน ยิ่งงานนี้ใช้ servo ถึง 7 ตัว จึงแทบจะเป็นไปไม่ได้ที่จะใช้ไฟเลี้ยงจากวงจรบนบอร์ด Arduino

**ไฟเลี้ยง Servo
ไฟเลี้ยงวงจร ควรใช้แหล่งจ่ายไฟตรงกระแสสูงๆ เช่น power supply ของคอมพิวเตอร์ แต่ที่แนะนำควรใช้แบตแห้ง หรือ Li-po เป็นต้น

Update นับตั้งแต่ 20/01/2014 เป็นต้นไป เราได้เปลี่ยน Sensor Shield จาก V4 เป็น V5 แล้ว ในราคาเท่าเดิมครับ !!

Sensor Shield V5

อธิบายตำแหน่งขาต่างๆ ของ Sensor Shield V5 ตัวใหม่ ที่เราจำหน่าย (Click ที่รูปเพื่อขยาย)

คำเตือน อย่าได้พยายามเอา servo ทั้ง 7 ควบคุมโดยใช้ไฟเลี้ยงจาก USB เพียงอย่างเดียว !! มิเช่นนั้นอาจะเกิดความเสียหายได้ !!

ก่อนจะเสียบบอร์ด Shield ลงไปที่ Arduino ขอให้สังเกตุว่าบน shield จะมีการดึงไฟ 5v. จากบอร์ด Arduino ดังนั้น เราจึงต้องตัดขา 5v. และขา VIN ของ Shield ทิ้ง!! เพื่อไม่ให้มันดึงไฟจากบอร์ด Arduino ขึ้นมา (เพราะเราจะต่อไฟภายนอก 5v-6v เข้าไปด้วยตัวเอง)
(**แต่ถ้าหากว่าจะเก็บ Shield ไปใช้งานอื่น ก็ไม่ต้องตัดขาทิ้งก็ได้นะครับ เพียงแต่ต้องระวัง Servo ไปดึงไฟจาก Arduino Board เพราะมันจะไปดึงไฟจาก USB Port อีกที ถ้าเปิดไว้นานๆ อาจจะทำให้ port USB เสียได้)

นี่คือวิธีที่ดีที่สุด คือต้องแยกวงจรระหว่างไฟเลี้ยงบอร์ด กับไฟเลี้ยงบน shield (ที่จะให้ Servo ทั้ง 7 อีกต่อหนึ่ง)
เพราะ servo สามารถกินไฟได้ถึง 6v. แต่บอร์ด Arduino ใช้ไฟเพียง 5v. ถ้าแยกไฟเลี้ยงออกจากกันก็จะทำให้ใช้กำลัง servo ได้เต็มที่
อีกทั้งขณะที่ Servo ทำงาน อาจจะมีกระแสกระชาก ทำให้เกิดการ reset ตัวเองของ Arduino ได้ ทั้งหมดนี้จึงควรจะแยกไฟออกจากกันครับ
อ่อ...ถ้าจะให้ดี ให้หา Capacitor ค่า 2200uf/16v มาคร่อมแหล่งจ่ายไฟ ที่ให้ Servo ด้วย ก็ดีเหมือนกันนะครับ
ถ้าใช้ Servo เฟืองเหล็กเช่น Tower Pro MG995 ก็ควรใช้ค่า 4700uf/16v ครับ

หมายเหตุ :
- หากว่าเป็น Shield V4 เราจะต้องใส่ไฟ +/- ไปที่ ช่องใดช่องหนึ่ง หรือช่อง 5V เดิมก็ได้ ก็เสร็จเรียบร้อย
- หากว่าเป็น Shield V5 เราจะต้องใส่ไฟ +/- ไปที่ ช่องไฟ Input ได้เลย แต่อย่าลืมเอา Jumper ตรง SEL PWR ออกด้วยนะครับ


Robot ARM 7 Servo แขนกล 7 เซอร์โว
ภาพตัวอย่างการสั่งควบคุม Servo ทั้ง 7 ตัว ด้วย Arduino และ Shield V.4

การเสียบสาย Servo ไปที่ Shield V.4
- Jumper บน Shield (สีเขียวๆ) ให้เสียบที่ 'COM' (ขา 2-3) เพื่อจะได้สามารถ upload ไปที่ Arduino ได้โดยไม่ต้องถอดเสียบ shield
- Servo จะมี 3 เส้น คือ GND สีน้ำตาล (G), VCC สีแดง (V), และ SIGNAL สีส้ม (S) อ้างอิงจาก source code ให้เสียบจากขา D5 เป็นตัวที่ 1 ไปจน D11 เป็น servo ตัวที่ 7
- ใช้ไฟเลี้ยง Servo อยู่ที่ 4.8V - 6V โดยใช้ร่วมกับขา V และ G ในที่ใดๆ ก็ได้ แต่ในที่นี้ใช้ช่อง A5 เพราะสะดวก

จากแหล่งจ่ายไฟทั้งสองที่ โดยที่แรกจะไปเลี้ยงบอร์ดวงจรของ Arduino (ประมาณ 3-5v)
ส่วนอีกที่หนึ่งจะไปเลี้ยง Shield โดยใช้ไฟไม่เกิน 6v.  อย่างไรก็ดี หากใช้ แบตเตอร์รี่ได้ก็จะดีกว่าการใช้หม้อแปลงไฟ 6v. เพราะกระแสจากแบตเตอร์รี่ ค่อนข้างจะนิ่งและเรียบกว่า แต่ถ้าไม่มีก็ใช้ Supply ทั่วๆ ไปก็ได้

การเสียบสาย Servo ไปที่ Shield V.5
    เหมือนกับ V.4 ทุกประการ เพียงแต่การนำไฟเข้าจะมี connector เฉพาะ ด้านล่างซ้ายของ Shield ก็เพียงแค่ใส่ตรงขั้ว และขันน๊อตให้แน่น เพียงเท่านี้ก็เป็นอันเสร็จพิธี


ตัวอย่าง source code ของ Arduino ที่ใช้ควบคุม Servo 
- Arduino IDE 1.0.5 
- Arduino 328 Compatible
- Sensor Shield board v.4/v.5

หลักการคร่าวๆ ง่ายเหมือนปอกกล้วย ซึ่งมี 3 ขั้นตอนดังนี้
1. ประกาศตัวแปร object เพื่อใช้ควบคุม ในที่นี้ชื่อ 'myservo'
2. กำหนดว่า object ที่จะควบคุมนั้นไปควบคุมจากขาไหน  ในที่นี้ใช้ขา 5-11 ครบ 7 ตัวพอดี
3. สั่งหมุน
จบ.~

// ==============================================================
// Simple Servo Control with Arduino and Shield
// Powered By DuinoThumb.com (Siamese Electronics Arts)
// ==============================================================

#include <Servo.h> 

// STEP 1. ประกาศ Obj เพื่อการควบคุม Servo ให้ครบทุกตัว (สูงสุด 8 ตัว)
Servo myservo1;  // servo ตัวที่ 1
Servo myservo2;  // servo ตัวที่ 2
Servo myservo3;  // servo ตัวที่ 3
Servo myservo4;  // servo ตัวที่ 4
Servo myservo5;  // servo ตัวที่ 5
Servo myservo6;  // servo ตัวที่ 6
Servo myservo7;  // servo ตัวที่ 7
 
int pos = 0;    // ค่าตำแหน่งเริ่มต้นของ Servo
 
void setup() 
  // STEP 2. กำหนดให้ขาที่ต้องการเป็นขาควบคุม Servo ตัวนั้นๆ
  myservo1.attach(5);  // กำหนดให้ขา D5 เป็นขาควบคุม Servo1
  myservo2.attach(6);  // กำหนดให้ขา D6 เป็นขาควบคุม Servo2
  myservo3.attach(7);  // กำหนดให้ขา D7 เป็นขาควบคุม Servo3
  myservo4.attach(8);  // กำหนดให้ขา D8 เป็นขาควบคุม Servo4
  myservo5.attach(9);  // กำหนดให้ขา D9 เป็นขาควบคุม Servo5
  myservo6.attach(10); // กำหนดให้ขา D10 เป็นขาควบคุม Servo6
  myservo7.attach(11); // กำหนดให้ขา D11 เป็นขาควบคุม Servo7
 
 
void loop() 
  // STEP 3. สั่งให้ Servo หมุนไปในตำแหน่งที่ต้องการ  
  // ----------------------------------------------------------
  // สั่งให้หมุนไป..
  for(pos = 0; pos < 180; pos += 2)  // รอบการสั่งให้หมุนไปจาก 0 ไปจนถึง 180 องศา ทีละ 2 step
  {                                  
    myservo1.write(pos);
    myservo2.write(pos);
    myservo3.write(pos);
    myservo4.write(pos);
    myservo5.write(pos);
    myservo6.write(pos);
    myservo7.write(pos);
    delay(15);                       // หน่วงเวลารอ servo ทำงานให้เสร็จ (เพราะ mcu ทำงานเร็วกว่า servo)
  } 
  // ----------------------------------------------------------
  // สั่งให้หมุนกลับ
  for(pos = 180; pos>=1; pos -= 2)     // รอบการสั่งให้หมุนกลับจาก 180 มาที่ 0 องศา
  {                                
    myservo1.write(pos);
    myservo2.write(pos);
    myservo3.write(pos);
    myservo4.write(pos);
    myservo5.write(pos);
    myservo6.write(pos);
    myservo7.write(pos);
    delay(15);                       // หน่วงเวลา
  } 
}
// ==============================================================

*** แนะนำ ::
- คุณสามารถปรับเปลี่ยนไปใช้ขา Analog ในการควบคุม Servo ก็ได้โดยเทียบค่านี้
  A0 = 14
  A1 = 15
  A2 = 16
  A3 = 17
  A4 = 18
  A5 = 19
source code ตัวอย่างการควบคุมแขนกลจาก Computer ผ่าน (USB) Serial port สามารถ download ด้านล่างบทความ


(ตัวอย่างการหมุน Servo ทั้ง 7 ตัว ของชุดแขนกล Robotic ARM)

โปรแกรมสำหรับควบคุมแขนกล
คุณสามารถเปิดโปรแกรม Serial port monitor ทั่วๆ ไปได้ (เช่นของ Arduino IDE ก็ได้) แต่ในที่นี้แนะนำโปรแกรม Putty
เพราะ Free และมีความสามารถหลากหลาย  เพียงแค่คุณปรับค่าความเร็วบอร์ดเรตเป็น 115200 8,n,1 ใน comport นั้นๆ
ก็สามารถควบคุมแขนกลได้ทันที...
โปรแกรม putty สามารถ download ได้ที่นี่ >> CLICK <<


ชุดโครงแขนกล ราคา 1,600 บาท ฟรีค่าจัดส่ง EMS
ประกอบด้วย แขนกลอะครีลิค พร้อมมือจับ และน๊อตทั้งหมด (รวมน๊อตของเซอร์โว และน๊อตพิเศษด้วย)
ลูกค้าต้องจัดหา Servo เอง (สามารถใช้ได้ทั้ง เฟืองเหล็กและพลาสติก)

แขนกลชุดนี้ ราคา 2,990 บาท
ในชุดประกอบไปด้วย แขนกลอะครีลิค พร้อมมือจับ น๊อตทั้งหมด และ Servo รวมทั้งสิ้น 7 ตัว
ราคานี้ ไม่รวมค่าส่ง และไม่มีบอร์ด control ในชุดนะครับ

::Options
- Arduino UNO R3 compatible พร้อมสาย USB (จีนแท้ๆ) ปกติราคา 400 บาท สำหรับลูกค้าแขนกลลดเหลือ 300 บาท
- บอร์ด Shield 300 บาท
- package , หีบห่อ และค่าจัดส่ง ครั้งละ 100 บาท (เพราะหนัก)




ลองทำดูไม่ยากอย่างที่คิดครับ (^_^)
เป็นหนึ่ง

ċ
robotarm24.zip
(3k)
Tanakur Vitoonrach,
23 ก.ย. 2557 00:20
ċ
simpletest.zip
(1k)
Tanakur Vitoonrach,
23 พ.ย. 2556 20:23