สารบัญ:

แขนหุ่นยนต์ควบคุมด้วย Arduino พร้อมอิสระ 6 องศา: 5 ขั้นตอน (พร้อมรูปภาพ)
แขนหุ่นยนต์ควบคุมด้วย Arduino พร้อมอิสระ 6 องศา: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: แขนหุ่นยนต์ควบคุมด้วย Arduino พร้อมอิสระ 6 องศา: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: แขนหุ่นยนต์ควบคุมด้วย Arduino พร้อมอิสระ 6 องศา: 5 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: แขนกล เขียนโปรแกรมควบคุมอย่างง่าย : How to make a robot arm 2024, กรกฎาคม
Anonim
แขนหุ่นยนต์ควบคุมด้วย Arduino พร้อมอิสระ 6 องศา
แขนหุ่นยนต์ควบคุมด้วย Arduino พร้อมอิสระ 6 องศา
แขนหุ่นยนต์ควบคุมด้วย Arduino พร้อมอิสระ 6 องศา
แขนหุ่นยนต์ควบคุมด้วย Arduino พร้อมอิสระ 6 องศา
แขนหุ่นยนต์ควบคุมด้วย Arduino พร้อมอิสระ 6 องศา
แขนหุ่นยนต์ควบคุมด้วย Arduino พร้อมอิสระ 6 องศา

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

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

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

ตามปกติแล้ว มีเรื่องราวมากกว่าเดิมและหลายภาคส่วนในการก่อสร้างที่ได้รับการย่อตามสิ่งที่คุณเห็นด้านล่าง หากคุณมีความสนใจในเรื่องราวย้อนหลัง สามารถอ่านเพิ่มเติมได้ที่นี่:

ขั้นตอนที่ 1: สิ่งที่คุณต้องการ - ฮาร์ดแวร์และอิเล็กทรอนิกส์

สิ่งที่คุณต้องการ - ฮาร์ดแวร์และอิเล็กทรอนิกส์
สิ่งที่คุณต้องการ - ฮาร์ดแวร์และอิเล็กทรอนิกส์
สิ่งที่คุณต้องการ - ฮาร์ดแวร์และอิเล็กทรอนิกส์
สิ่งที่คุณต้องการ - ฮาร์ดแวร์และอิเล็กทรอนิกส์

ผู้ออกแบบโครงการดั้งเดิมอาศัยอยู่ในยุโรปและต่อมาก็ใช้การวัดทางเมตริกและวัสดุทั่วไปที่นั่น ตัวอย่างเช่น แท่นพิมพ์ที่เขาใช้สำหรับตัวถังมีความหนามาตรฐาน 5 มม. วัสดุที่คล้ายกันในสหรัฐอเมริกาคือ 1/8 ซึ่งหนาประมาณ 3.7 มม. ซึ่งทำให้เกิดช่องว่างในช่องเปิดที่เดิมออกแบบมาให้ติดตั้งแบบกด แทนที่จะแก้ไขภาพวาด ฉันแค่ใช้ Gorilla Glue เพื่อยึดข้อต่อเหล่านี้

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

  • 22 - M3 x 0.5 x 23mm Standoffs
  • 15 - สเปเซอร์ M3 x 15 มม.
  • 40 - สกรู M3
  • M3 Hex Nuts
  • สกรู M3 25mm
  • 1 - ฤดูใบไม้ผลิ
  • เทปกาวสองหน้า 3/4"
  • 5 - SG 5010 TowerPro เซอร์โว
  • 1 - SG92R TowerPro เซอร์โวขนาดเล็ก
  • 1 - SG90 TowerPro เซอร์โวขนาดเล็ก
  • หัวเข็มตรงแถวเดี่ยว 2.54 มม.
  • 1 - เขียงหั่นขนมครึ่งขนาด
  • 1 - สายจัมเปอร์ 'ต่อขยาย' หญิง/ชาย - 40 x 6"
  • แผ่นอะครีลิคสีน้ำเงิน 1 - 12" x 24" หรือชิ้นงานตัดด้วยเลเซอร์จากผู้ให้บริการที่คุณชื่นชอบ
  • 2 - 3mm x 20mm + 4mm x 5mm joint bearing spacers 3D Printed (ดูด้านล่าง)
  • 1 - แผงควบคุม *ดูหมายเหตุในส่วนการเดินสายไฟ
  • 1 - RGB แบบกระจาย (สามสี) 10 มม. LED
  • 1 - Arduino Uno
  • 1 - จอ LCD มาตรฐาน 16x2 + อุปกรณ์เสริม - สีขาวบนพื้นน้ำเงิน
  • 1 - กระเป๋าเป้สะพายหลัง LCD ตัวอักษร i2c / SPI
  • 1 - ไดรเวอร์ PWM/เซอร์โว Adafruit 16 ช่อง 12 บิต
  • 1 - MCP3008 - ADC 10 บิต 8 ช่องพร้อมอินเทอร์เฟซ SPI
  • 3 - JoyStick Breakout Module Sensor *ดูหมายเหตุในส่วนการเดินสายไฟ
  • แจ็ค DC Barrel
  • อะแดปเตอร์ AC เป็น DC
  • สายต่อเซอร์โว - คละความยาว

ชิ้นส่วนเกือบทั้งหมดของแขนนี้ถูกตัดจากอะคริลิกขนาด 1/8 นิ้ว อย่างไรก็ตาม จำเป็นต้องพิมพ์สเปเซอร์แบริ่งข้อต่อสองตัว นอกจากนี้ ต้นฉบับที่ออกแบบนั้นเรียกร้องให้ฐานรองข้อต่อทั้งสองสูง 7 มม. จากเพลาลูกปืน เมื่อฉันเริ่มประกอบต้นแขน เห็นได้ชัดว่าสิ่งเหล่านี้สูงเกินไปเนื่องจากความสูงของเซอร์โว TowerPro ฉันต้องมีตลับลูกปืนข้อต่อใหม่ที่มีฐานสูงเพียง 3 มม. ซึ่งยังไงก็ตาม มันยังสูงไปหน่อยแต่จัดการได้ คุณจะต้องคำนึงถึงความสูงสัมพัทธ์ของเซอร์โวของคุณและคำนึงถึงระยะห่างระหว่างแขนท่อนล่างทั้งสองข้าง:

ความสูงของเซอร์โว + ฮอร์นเซอร์โว + ตลับลูกปืนข้อต่อ + เทปสองหน้า = 47 มม. +/- 3 มม.

ขั้นตอนที่ 2: การประกอบแขน

การประกอบแขน
การประกอบแขน
การประกอบแขน
การประกอบแขน
การประกอบแขน
การประกอบแขน
การประกอบแขน
การประกอบแขน

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

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

  2. หากคุณกำลังใช้รายการชิ้นส่วนที่ฉันมีด้านบน คุณจะต้องประกอบตัวเว้นระยะฐาน 5 ตัวต่อไปโดยร้อยเกลียว M3 x 0.5 x 23 มม. Standoffs 2 อันแต่ละตัวเข้าด้วยกัน แล้วติดเข้ากับเพลทฐานด้านบนด้วยน็อตหกเหลี่ยม
  3. ติดเพลทฐานด้านล่างเข้ากับแท่นรองด้วยสกรู M3 5 ตัว
  4. ติดแผ่นไหล่เข้ากับแผ่นยึดเซอร์โวสองแผ่นโดยใช้กาวอะคริลิกที่ปลอดภัย ฉันใช้กอริลลากาวที่นี่ หมายเหตุ: แผ่นเซอร์โวแต่ละแผ่นมีรูด้านหลังซึ่งช่วยให้เสียบตัวเว้นระยะเสริมแรงเพื่อเชื่อมต่อเข้าด้วยกัน ตรวจสอบให้แน่ใจว่ารูอยู่ในแนวเดียวกัน!* ขณะที่คุณมีกาวติดตัว ให้ต่อเข้ากับเพลทยึดข้อมือกับเพลทหลักของกริปเปอร์* นอกจากนี้ คุณยังสามารถติดแผ่นเซอร์โวข้อมือกับเพลทข้อต่อข้อมือทั้งสองได้อีกด้วย ฉันไม่ได้ทำการเลือกนี้แทนที่จะยึดสิ่งเหล่านี้ร่วมกับการขัดแย้งตามที่อธิบายไว้ด้านล่าง
  5. แนบชุดบ่าที่รักษาแล้วเข้ากับเซอร์โวฐาน ฉันใช้ฮอร์นที่กว้างที่สุดที่มาพร้อมกับเซอร์โวซึ่งเป็นฮอร์นสำหรับติดตั้งก้านหกอัน
  6. การเพิ่มโครงแขนท่อนล่างให้กับเซอร์โวไหล่อาจเป็นเรื่องยุ่งยาก ฉันแนะนำให้ยึดเขาไว้กับโครงแขนท่อนล่างก่อนดำเนินการต่อ หมายเหตุ: ตรวจสอบให้แน่ใจว่าได้จัดเซอร์โวของคุณให้อยู่ตรงกลางสำหรับชุดไหล่ก่อนที่จะติดเข้ากับเฟรม เซอร์โวสองตัวนี้ต้องเคลื่อนที่พร้อมกัน และหากวางไม่ตรงแนวจะทำให้เซอร์โวกระวนกระวายน้อยที่สุด และหากจัดแนวไม่ตรงมากพอ อาจสร้างความเสียหายให้กับเฟรมหรือเซอร์โวได้ * เซอร์โวไหล่แต่ละตัวติดตั้งด้วยขายึดที่ด้านหลังของแผ่นยึดแทนที่จะส่งเซอร์โวผ่านเพลต - ซึ่งจะทำให้คุณสามารถดันฮอร์นไปที่เพลาเซอร์โวในมุมหนึ่งและขันสกรูให้แน่น อย่าเพิ่งยึดเซอร์โวกับแผ่นยึด * ถัดไป เพิ่มเซอร์โวด้านในและติดตั้งแขน

  7. ประกอบโครงแขนท่อนบนและเซอร์โวโดยดันเซอร์โวผ่านช่องว่างในแขน จากนั้นสอดสเปเซอร์ระหว่างเพลทอาร์มทั้งสองและยึดด้วยสกรู M3
  8. เพิ่มเทปกาวสองหน้าที่ด้านหลังของตัวเว้นระยะข้อต่อศอก และตัดแต่งส่วนที่เกิน
  9. ติดสเปเซอร์ที่ด้านล่างของเซอร์โวที่จะทำหน้าที่เป็นตัวกระตุ้นข้อศอก
  10. สอดชุดแขนท่อนบนเข้าไปในเฟรมชุดแขนท่อนล่างและยึดสกรูเซอร์โวฮอร์น
  11. เพิ่มการเสริมแรงระหว่างแผ่นแขนท่อนล่างสองแผ่น ฉันใช้สองแทนสี่เพื่อลดน้ำหนัก
  12. เพิ่มเทปกาวสองหน้าที่ด้านหลังของตัวเว้นระยะข้อต่อข้อมือบน และตัดแต่งส่วนที่เกิน
  13. ติดสเปเซอร์ที่ด้านล่างของเซอร์โวที่จะทำหน้าที่เป็นตัวกระตุ้นข้อมือ
  14. ติดแผ่นรัดข้อมือด้านนอกเข้ากับฮอร์นเซอร์โวของข้อมือและยึดด้วยสกรูฮอร์น
  15. ประกอบแผ่นเซอร์โวข้อมือด้วยเพลตข้อต่อข้อมือและข้อขัดแย้ง
  16. ยึดเซอร์โวข้อมือบนแผ่นเซอร์โวด้วยแผ่นแคลมป์เซอร์โว
  17. คุณจะต้องยึดฮอร์นข้อมือกับเซอร์โวก่อนที่จะติดตั้งชุดกริปเปอร์กับฮอร์นนั้นเนื่องจากการเปิดสำหรับสกรูฮอร์นถูกปิดกั้น
  18. ประกอบชิ้นส่วนกริปเปอร์แบบหลวม ๆ เพื่อให้พอดีก่อนติดฮอร์นเซอร์โวของกริปเปอร์เข้ากับเซอร์โว วิธีนี้จะช่วยให้คุณมีพื้นที่สำหรับขันแตรในขั้นตอนก่อนหน้า
  19. ติดแตรกริปเปอร์เข้ากับเซอร์โวและขันสกรูที่ยึดข้อต่อกริปเปอร์ให้แน่นยิ่งขึ้น หมายเหตุ: อย่าขันน็อตและสลักเกลียวเหล่านี้ให้แน่นจนสุด เนื่องจากจะต้องหลวมเพื่อให้กริปเปอร์เคลื่อนที่ได้

ขั้นตอนที่ 3: การเดินสายไฟและแผงควบคุม

การเดินสายไฟและแผงควบคุม
การเดินสายไฟและแผงควบคุม
การเดินสายไฟและแผงควบคุม
การเดินสายไฟและแผงควบคุม
การเดินสายไฟและแผงควบคุม
การเดินสายไฟและแผงควบคุม

ฉันสร้างโครงการนี้เป็นแพลตฟอร์มการพัฒนาสำหรับแนวคิดบางอย่างที่ฉันมีสำหรับโครงการการศึกษาในภายหลัง ดังนั้น การเชื่อมต่อส่วนใหญ่ของฉันจึงเป็นตัวเชื่อมต่อดูปองท์อย่างง่าย การบัดกรีอย่างเดียวที่ฉันทำคือสำหรับ MCP3008 หากคุณสามารถหากระดานฝ่าวงล้อมสำหรับสิ่งนี้ส่วนประกอบ คุณควรจะสร้างแขนประสานนี้ได้ฟรี

มีองค์ประกอบ 3 กลุ่ม:

  1. อินพุต - รายการเหล่านี้รับข้อมูลจากผู้ใช้และประกอบด้วยจอยสติ๊กและ mcp3008 ADC
  2. เอาต์พุต - รายการเหล่านี้ถ่ายทอดข้อมูลไปทั่วโลกโดยแสดงสถานะให้ผู้ใช้เห็นหรืออัปเดตเซอร์โวด้วยข้อมูลตำแหน่ง รายการเหล่านี้ ได้แก่ หน้าจอ LCD, LCD Backpack, RGB LED, บอร์ดไดรเวอร์ Servo และเซอร์โวสุดท้าย
  3. การประมวลผล - Arduino รวบรวมกลุ่มสุดท้ายซึ่งรับข้อมูลจากอินพุตและผลักข้อมูลออกไปยังเอาต์พุตตามคำสั่งโค้ด

แผนผัง Fritzing ด้านบนให้รายละเอียดการเชื่อมต่อพินสำหรับส่วนประกอบทั้งหมด

อินพุต

เราจะเริ่มต้นด้วยอินพุต จอยสติ๊กเป็นอุปกรณ์แอนะล็อก ซึ่งหมายความว่ามีแรงดันไฟฟ้าผันแปรเป็นอินพุตไปยัง Arduino จอยสติ๊กทั้งสามตัวมีเอาต์พุตแบบอะนาล็อก 2 ช่องสำหรับ X และ Y (ขึ้น ลง ซ้ายขวา) ทำให้ Arduino มีอินพุตทั้งหมด 6 ช่อง ในขณะที่ Arduino Uno มีอินพุตแบบอะนาล็อก 6 ช่อง เราจำเป็นต้องใช้พินสองตัวนี้สำหรับการสื่อสาร I2C ไปยังหน้าจอและตัวควบคุมเซอร์โว

ด้วยเหตุนี้ ฉันจึงรวม MCP3008 แอนะล็อกเป็นดิจิทัลคอนเวอร์เตอร์ (ADC) ชิปนี้รับอินพุตแบบอะนาล็อกสูงสุด 8 ช่องและแปลงเป็นสัญญาณดิจิตอลผ่านพินการสื่อสาร SPI ของ Arduino ดังนี้:

  • MCP Pins 1-6 > เอาต์พุตตัวแปรของจอยสติ๊กนิ้วหัวแม่มือ
  • MCP Pins 7&8 > ไม่มีการเชื่อมต่อ
  • MCP Pin 9 (DGND) > กราวด์
  • MCP Pin 10 (CS/SHDN) > Uno Pin 12
  • MCP Pin 11 (DIN) > Uno Pin 11
  • MCP Pin 12 (DOUT) > Uno Pin 10
  • MCP Pin 13 (CLK) > Uno Pin 9
  • MCP Pin 14 (AGND) > กราวด์
  • MCP ขา 15 & 16 > +5V

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

  • พิน 1 - ฐาน - ข้อมูลอะนาล็อกบนพินนี้จะหมุนเซอร์โวต่ำสุดบนหุ่นยนต์
  • พิน 2 - ไหล่ - ข้อมูลอะนาล็อกบนพินนี้จะหมุนเซอร์โวสองตัวเหนือเซอร์โวฐาน
  • พิน 3 - ข้อศอก - ข้อมูลอะนาล็อกบนพินนี้จะหมุนเซอร์โวตัวถัดไปขึ้นจากเซอร์โวไหล่
  • ขา 4 - ข้อมือ UP/DN - ข้อมูลอะนาล็อกบนพินนี้จะหมุนเซอร์โวข้อมือ ยกและลดระดับชุดกริปเปอร์
  • พิน 5 - The Gripper - ข้อมูลอะนาล็อกบนพินนี้จะเปิดและปิดกริปเปอร์
  • พิน 6 - หมุนข้อมือ - ข้อมูลอะนาล็อกบนพินนี้จะหมุนกริปเปอร์

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

ผลลัพธ์

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

เซอร์โวเชื่อมต่อดังนี้:

  • ตำแหน่ง 0 - เซอร์โวฐาน
  • ตำแหน่ง 1 - เซอร์โวไหล่ (สายเซอร์โว Y)
  • ตำแหน่ง 2 - เซอร์โวข้อศอก
  • ตำแหน่ง 3 - ข้อมือ 1 เซอร์โว
  • ตำแหน่ง 4 - เซอร์โวกริปเปอร์
  • ตำแหน่ง 5 - เซอร์โว 2 ข้อมือ

นอกจากนี้ VCC และ V+ ยังเชื่อมต่อกับ +5 โวลต์ และ GND เชื่อมต่อกับกราวด์

หมายเหตุ 1: หมายเหตุสำคัญประการหนึ่งที่นี่: แรงดันไฟฟ้าของแหล่งจ่ายสำหรับทั้งโปรเจ็กต์เข้ามาทางแผงขั้วต่อสายไฟบนบอร์ดควบคุมเซอร์โว หมุด V+ บนตัวควบคุมเซอร์โวกำลังจ่ายพลังงานจากแผงขั้วต่อไปยังส่วนที่เหลือของวงจร หากคุณต้องการตั้งโปรแกรม Uno ของคุณ ฉันขอแนะนำอย่างยิ่งให้ถอดพิน V+ ก่อนที่จะเชื่อมต่อ Uno กับพีซีของคุณ เนื่องจากกระแสไฟจากเซอร์โวอาจทำให้พอร์ต USB ของคุณเสียหายได้

หมายเหตุ 2: ฉันใช้อะแดปเตอร์ติดผนัง 6V AC เป็น DC เพื่อจ่ายไฟให้กับโครงการ ฉันขอแนะนำอะแดปเตอร์ที่สามารถจ่ายกระแสไฟได้อย่างน้อย 4A เพื่อที่ว่าเมื่อเซอร์โวหนึ่งตัวหรือมากกว่าถูกผูกไว้ กระแสไฟที่พุ่งสูงขึ้นอย่างกะทันหันจะไม่ทำให้ระบบของคุณมืดลงและรีเซ็ต Arduino ของคุณ

หน้าจอ LCD ขนาด 16X2 เชื่อมต่อกับ Adafruit LCD Backpack เพื่อใช้ประโยชน์จากอินเทอร์เฟซ I2C ที่ Servo Controller ใช้อยู่แล้ว SCL บน Servo Controller และ CLK บน Backpack ทั้งสองเชื่อมต่อกับ Pin A5 บน Uno ในทำนองเดียวกัน SDA บน Servo Controller และ DAT บน Backpack ต่างก็เชื่อมต่อกับ Pin A4 บน Uno นอกจากนี้ 5V เชื่อมต่อกับ +5 โวลต์และ GND เชื่อมต่อกับกราวด์ LAT บน Backpack ไม่ได้เชื่อมต่อกับสิ่งใด

สุดท้าย RGB LED เชื่อมต่อกับพิน 7 (RED), 6 (สีเขียว) และ 5 (สีน้ำเงิน) บน Uno ขากราวด์ของ LED เชื่อมต่อกับกราวด์ผ่านตัวต้านทาน 330 โอห์ม

กำลังประมวลผล

สุดท้ายแต่ไม่ท้ายสุด การเชื่อมต่อ Arduino ที่เหลือที่ไม่ได้ระบุไว้ข้างต้นมีดังนี้: ขา 5V เชื่อมต่อกับ +5 โวลต์ และ GND เชื่อมต่อกับกราวด์

ในการตั้งค่าของฉัน ฉันใช้รางด้านข้างของเขียงหั่นขนมเพื่อผูกสายไฟและสายกราวด์ทั้งหมดเข้าด้วยกัน รวมถึงพิน I2C สำหรับอุปกรณ์ทั้งหมด

ขั้นตอนที่ 4: รหัส

รหัส
รหัส

ตามที่ระบุไว้ก่อนหน้านี้ ตอนแรกฉันสร้างโครงการนี้เพื่อเป็นการสาธิตสำหรับ Maker Faire ในพื้นที่ของฉัน ฉันตั้งใจให้มันเป็นของเล่นสำหรับเด็กและผู้ใหญ่ในขณะที่อยู่ที่บูธของเรา ปรากฏว่าเป็นที่นิยมมากกว่าที่ฉันคิดไว้มาก มากเสียจนเด็ก ๆ ต่อสู้เพื่อมัน ดังนั้น เมื่อถึงเวลาสำหรับการเขียนใหม่ ฉันได้รวม "โหมดสาธิต" ที่ใช้การจำกัดเวลา

แขนนั่งอยู่ที่นั่นเพื่อรอใครสักคนที่จะขยับจอยสติ๊ก และเมื่อพวกเขาทำ จะเริ่มจับเวลา 60 วินาที เมื่อสิ้นสุด 60 วินาที ระบบจะหยุดรับข้อมูลจากผู้ใช้และ "พัก" เป็นเวลา 15 วินาที ความสนใจสั้น ๆ อยู่ที่สิ่งที่พวกเขาเป็น ช่วงเวลาพักนี้ช่วยลดความขัดแย้งสำหรับเวลาติด

การใช้งานพื้นฐาน

รหัสที่แสดงในส่วนอ้างอิงด้านล่างค่อนข้างง่าย อาร์เรย์จะติดตามข้อต่อ 6 ข้อด้วยค่าต่ำสุด ขอบเขตสูงสุด ตำแหน่งเริ่มต้น และตำแหน่งปัจจุบัน เมื่อเปิดแขนขึ้น ฟังก์ชันเริ่มต้นจะกำหนดไลบรารีที่จำเป็นในการพูดคุยกับ MCP3008, LCD Backpack (และต่อมาคือหน้าจอ) และกำหนดพิน LED จากนั้นระบบจะตรวจสอบระบบพื้นฐานและกลับไปที่แขน ฟังก์ชั่นหลักเริ่มต้นด้วยกริปเปอร์และทำงานลงไปที่ฐานเพื่อลดโอกาสของการผูกมัดภายใต้สภาวะปกติ หากยืดแขนออกจนสุด อาจเป็นการดีที่สุดที่จะดึงแขนกลับบ้านด้วยตนเองก่อนเปิดเครื่อง เนื่องจากเซอร์โวทั่วไปไม่ได้ให้ความคิดเห็นเกี่ยวกับตำแหน่งของมัน เราจึงต้องวางเซอร์โวแต่ละตัวไว้ที่จุดที่กำหนดไว้ล่วงหน้าและติดตามว่าแต่ละเซอร์โวเคลื่อนที่ได้ไกลแค่ไหน

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

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

ขั้นตอนที่ 5: ลิงค์และแหล่งข้อมูล

การอ้างอิงแขน

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

ไลบรารีซอฟต์แวร์

  • ทรัพยากรตัวควบคุม Adafruit PWM/เซอร์โว
  • ห้องสมุด MCP3008
  • MCP3008 เอกสารข้อมูลสินค้า

แผงควบคุมและรหัส

  • ภาพวาด Tinkercad ของแผงที่ฉันทำ
  • ที่เก็บรหัสปัจจุบัน

แนะนำ: