สารบัญ:

[Arduino Robot] วิธีสร้างหุ่นยนต์ Motion Capture - หุ่นยนต์หัวแม่มือ - เซอร์โวมอเตอร์ - รหัสที่มา: 26 ขั้นตอน (พร้อมรูปภาพ)
[Arduino Robot] วิธีสร้างหุ่นยนต์ Motion Capture - หุ่นยนต์หัวแม่มือ - เซอร์โวมอเตอร์ - รหัสที่มา: 26 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: [Arduino Robot] วิธีสร้างหุ่นยนต์ Motion Capture - หุ่นยนต์หัวแม่มือ - เซอร์โวมอเตอร์ - รหัสที่มา: 26 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: [Arduino Robot] วิธีสร้างหุ่นยนต์ Motion Capture - หุ่นยนต์หัวแม่มือ - เซอร์โวมอเตอร์ - รหัสที่มา: 26 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Ai robots taking over ping pong 👀 #shorts 2024, กรกฎาคม
Anonim
Image
Image
[Arduino Robot] วิธีสร้างหุ่นยนต์ Motion Capture | หุ่นยนต์หัวแม่มือ | เซอร์โวมอเตอร์ | รหัสแหล่งที่มา
[Arduino Robot] วิธีสร้างหุ่นยนต์ Motion Capture | หุ่นยนต์หัวแม่มือ | เซอร์โวมอเตอร์ | รหัสแหล่งที่มา

หุ่นยนต์หัวแม่มือ. ใช้โพเทนชิออมิเตอร์ของเซอร์โวมอเตอร์ MG90S มันสนุกและง่ายมาก! รหัสนั้นง่ายมาก มีประมาณ 30 เส้นเท่านั้น ดูเหมือนภาพเคลื่อนไหว

กรุณาทิ้งคำถามหรือข้อเสนอแนะ!

[การเรียนการสอน]

  • ซอร์สโค้ด
  • ไฟล์การพิมพ์ 3 มิติ

[เกี่ยวกับผู้ผลิต]

Youtube

ขั้นตอนที่ 1: ARDUINO PARTS

ชิ้นส่วน ARDUINO
ชิ้นส่วน ARDUINO
ชิ้นส่วน ARDUINO
ชิ้นส่วน ARDUINO
ชิ้นส่วน ARDUINO
ชิ้นส่วน ARDUINO

ติดตั้ง Arduino IDE

https://www.arduino.cc/en/Main/Software

ติดตั้งไดรเวอร์ CH340 (สำหรับเวอร์ชั่นภาษาจีน)

https://www.wch.cn/download/CH341SER_ZIP.html

ดาวน์โหลด - รหัสที่มา

  • https://github.com/happythingsmaker/ThumbsRobot
  • อย่างที่คุณเห็นมีไฟล์ zip แตกไฟล์ทั้งหมดและดับเบิลคลิกที่ไฟล์ซอร์สโค้ด

เลือกบอร์ด / โปรเซสเซอร์ / พอร์ต Com

  • Arduino นาโน
  • ATmega328P (บูตโหลดเดอร์รุ่นเก่า)

เสียบ Arduino nano. ของคุณ

เสียบสาย USB แล้วพอร์ตใหม่จะปรากฏขึ้น

ค้นหา / เลือกพอร์ต com ที่เกิดขึ้นใหม่

  • คลิกพอร์ตที่ปรากฏและกดปุ่มอัปโหลด
  • กดปุ่มอัพโหลด

ขั้นตอนที่ 2: ชิ้นส่วนการพิมพ์ 3 มิติ

ชิ้นส่วนการพิมพ์ 3 มิติ
ชิ้นส่วนการพิมพ์ 3 มิติ

ดาวน์โหลดไฟล์การสร้างแบบจำลอง 3 มิติจาก Thingiverse

https://www.thingiverse.com/thing:2844993

พิมพ์ทุกส่วนทีละส่วน

ขั้นตอนที่ 3: ส่วนวงจร

ส่วนวงจร
ส่วนวงจร

ใช้บอร์ดขยาย Arduino Nano เนื่องจาก Arduino Nano นั้นไม่มีพินจำนวนมาก คุณจึงต้องใช้บอร์ดขยาย

เมื่อคุณดูสายไฟที่เชื่อมต่อกับมอเตอร์ คุณจะเห็นสามสี สีเหลือง สีแดง และสีน้ำตาล สีน้ำตาลจะต้องเชื่อมต่อกับ G (Ground)

ในขั้นตอนต่อไปเราจะดูอย่างละเอียดอีกครั้ง

ขั้นตอนที่ 4: ชิ้นส่วนฮาร์ดแวร์ - เตรียมชิ้นส่วนทั้งหมด

ชิ้นส่วนฮาร์ดแวร์ - เตรียมชิ้นส่วนทั้งหมด
ชิ้นส่วนฮาร์ดแวร์ - เตรียมชิ้นส่วนทั้งหมด

[อะไหล่]

  • 1 x Arduino นาโน
  • 1 x บอร์ดขยาย Arduino Nano
  • 6 x เซอร์โวมอเตอร์
  • 2 x ลูกตาของเล่น
  • สลักเกลียว 12 x (2 * 6 มม.)

[เครื่องมือ]

  • เครื่องพิมพ์ 3 มิติ (Anet A8)
  • เส้นใยสำหรับการพิมพ์ 3 มิติ (PLA 1.75mm)
  • คีมตัดสายไฟ
  • คีมตัดลวด
  • ปืนกาวร้อนละลาย
  • ไขควงแฉก (+)
  • เทปไฟฟ้า
  • เครื่องมือบัดกรี(Hakko)
  • หัวแร้ง
  • ไขควงไฟฟ้า

ขั้นตอนที่ 5: ปรับเปลี่ยนเซอร์โวมอเตอร์ 3 ตัวเป็นเซ็นเซอร์ตำแหน่ง

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

เราจะใช้โพเทนชิออมิเตอร์นั้นเอง เราต้องเปิดเคส ถอดบอร์ดแล้วเดินสายใหม่อีกครั้ง

ขั้นตอนที่ 6: คลายเกลียว 4 Bolt ที่ด้านหลังแล้วเปิดเคสด้านหน้า

คลายเกลียว 4 Bolt ที่ด้านหลังแล้วเปิดเคสด้านหน้า
คลายเกลียว 4 Bolt ที่ด้านหลังแล้วเปิดเคสด้านหน้า
คลายเกลียว 4 Bolt ที่ด้านหลังแล้วเปิดเคสด้านหน้า
คลายเกลียว 4 Bolt ที่ด้านหลังแล้วเปิดเคสด้านหน้า

คุณจะต้องใช้ไขควงปากแบนเพราะมันเล็กเกินไป มอเตอร์มี 3 ส่วน คือ หน้า ตัว และหลัง

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

ขั้นตอนที่ 7: ถอดเกียร์ 3 ออก

ถอดเกียร์ 3
ถอดเกียร์ 3
ถอดเกียร์ 3
ถอดเกียร์ 3
ถอดเกียร์ 3
ถอดเกียร์ 3

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

เราต้องการเกียร์แรกสำหรับเฟรมโดยรวม เกียร์สองจำเป็นสำหรับข้อจำกัด ดังนั้นเราจึงไม่สามารถกำจัดพวกเขาได้ เราสามารถถอดเกียร์สามออกได้

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

ขั้นตอนที่ 8: เดินสายใหม่ / บัดกรี

เดินสายใหม่ / บัดกรี
เดินสายใหม่ / บัดกรี

ตัดสายไฟที่ต่อกับมอเตอร์

ขั้นตอนที่ 9: ใช้เครื่องมือบัดกรีและถอดบอร์ด

ใช้เครื่องมือบัดกรีและถอดบอร์ด
ใช้เครื่องมือบัดกรีและถอดบอร์ด
ใช้เครื่องมือบัดกรีและถอดบอร์ด
ใช้เครื่องมือบัดกรีและถอดบอร์ด

ขั้นตอนที่ 10: ตัดลวดและเตรียมการบัดกรี

ตัดลวดและเตรียมบัดกรี
ตัดลวดและเตรียมบัดกรี
ตัดลวดและเตรียมบัดกรี
ตัดลวดและเตรียมบัดกรี

และทาแป้งบางๆ แล้วสอดตะกั่วลงไปบนสายเคเบิล

ขั้นตอนที่ 11: ประสานมัน

ประสานมัน
ประสานมัน
ประสานมัน
ประสานมัน
ประสานมัน
ประสานมัน
ประสานมัน
ประสานมัน

จากซ้ายสุด แดง เหลือง น้ำตาล

ขั้นตอนที่ 12: ใส่กาวบนมัน

ใส่กาวบนมัน
ใส่กาวบนมัน
ใส่กาวบนมัน
ใส่กาวบนมัน

และกู้คืนด้านหลัง

เราต้องการโพเทนชิโอมิเตอร์อีก 2 ตัว ทำงานแบบเดียวกันกับมอเตอร์อีกสองตัว

ขั้นตอนที่ 13: สร้างชั้นใต้ดินร่วมแรก

สร้างชั้นใต้ดินร่วมแรก
สร้างชั้นใต้ดินร่วมแรก
สร้างชั้นใต้ดินร่วมแรก
สร้างชั้นใต้ดินร่วมแรก
สร้างชั้นใต้ดินร่วมแรก
สร้างชั้นใต้ดินร่วมแรก

ฉันใช้กระดานทำอาหารในการทำโครงงานนี้ มีราคาถูกและมั่นคงในการใช้งาน ในการยึดโครงบนกระดาน คุณจะต้องใช้สกรูที่มีปลายแหลม ทำให้รูและด้ายในเวลาเดียวกัน

มีมอเตอร์ 6 ตัว 3 มอเตอร์ด้านซ้ายเป็นมอเตอร์เดิม ในทางกลับกันมีมอเตอร์ 3 ตัวที่ดัดแปลงก่อนขั้นตอน

ขั้นตอนที่ 14: สร้างข้อต่อหันเห

ทำข้อต่อหันเห
ทำข้อต่อหันเห
ทำข้อต่อหันเห
ทำข้อต่อหันเห

คุณจะต้องใช้สลักเกลียว M2 * 6 มม.

ขั้นตอนที่ 15: ประกอบข้อต่อหันเหด้วยมอเตอร์ตัวแรก

ประกอบข้อต่อหันเหด้วยมอเตอร์ตัวแรก
ประกอบข้อต่อหันเหด้วยมอเตอร์ตัวแรก
ประกอบข้อต่อหันเหด้วยมอเตอร์ตัวแรก
ประกอบข้อต่อหันเหด้วยมอเตอร์ตัวแรก

ดังที่คุณเห็นในภาพสุดท้าย คุณจะต้องวางข้อต่อในแนวนอน และตำแหน่งควรเป็น 90 องศาของทั้งมอเตอร์และโพเทนชิออมิเตอร์

กล่าวอีกนัยหนึ่งคุณสามารถหมุนข้อต่อหันเห 90 องศาตามเข็มนาฬิกาและทวนเข็มนาฬิกาจากตำแหน่งนั้น

ขั้นตอนที่ 16: ประกอบ Arduino Nano ด้วยบอร์ดขยาย Arduino Nano

ประกอบ Arduino Nano ด้วยบอร์ดขยาย Arduino Nano
ประกอบ Arduino Nano ด้วยบอร์ดขยาย Arduino Nano
ประกอบ Arduino Nano ด้วยบอร์ดขยาย Arduino Nano
ประกอบ Arduino Nano ด้วยบอร์ดขยาย Arduino Nano

ให้แน่ใจว่าทิศทาง พอร์ต USB จะอยู่ด้านเดียวกับแจ็ค DC

ขั้นตอนที่ 17: การเชื่อมต่อชั้นแรก

การเชื่อมต่อชั้นแรก
การเชื่อมต่อชั้นแรก
การเชื่อมต่อชั้นแรก
การเชื่อมต่อชั้นแรก

โพเทนชิออมิเตอร์เชื่อมต่อกับ Analog 0 pin ของ Arduino คุณต้องเสียบปลั๊กให้ถูกต้อง Arduino Nano นี้มี 8 ช่อง ADC (Analog Digital Converter) โดยทั่วไป โพเทนชิออมิเตอร์จะให้ระดับแอนะล็อกหรือโวเลต คุณสามารถอ่านค่าโวลต์นั้นได้โดยใช้หมุด ADC

อีกด้านหนึ่ง เซอร์โวมอเตอร์เชื่อมต่อกับ Digital 9 ของ Arduino เซอร์โวมอเตอร์สามารถควบคุมได้โดยใช้ PWM (Pulse Width Modulation) Arduino Nano มีพิน PWM 6 ช่อง (พิน 9, 10, 11, 3, 5 และ 6) ดังนั้น เราจึงสามารถใช้เซอร์โวมอเตอร์ได้ถึง 6 ตัว

ในขั้นตอนนี้ซอร์สโค้ดจะมีลักษณะดังนี้

#รวม

เซอร์โวเซอร์โว [6]; ตั้งค่าเป็นโมฆะ () {pinMode (A0, INPUT); servo[0].attach(9);}int tempADC[3] = {0};void loop() { tempADC[0] = analogRead(A0); servo[0].write(map(tempADC[0], 0, 1023, 0, 180));}

ขั้นตอนที่ 18: ประกอบเลเยอร์ที่สอง

ประกอบชั้นที่สอง
ประกอบชั้นที่สอง
ประกอบชั้นที่สอง
ประกอบชั้นที่สอง
ประกอบชั้นที่สอง
ประกอบชั้นที่สอง
ประกอบชั้นที่สอง
ประกอบชั้นที่สอง

ชั้นที่สองก็ทำได้ง่ายเช่นกัน สิ่งที่คุณต้องระวังคือการวางไว้ในตำแหน่งที่ถูกต้องเมื่อคุณเสียบสายเคเบิลเข้ากับ Arduino

  • เซอร์โวมอเตอร์ด้านซ้ายเชื่อมต่อกับพิน 10
  • โพเทนชิออมิเตอร์ที่ถูกต้องเชื่อมต่อกับ A1

#รวม

เซอร์โวเซอร์โว [6]; ตั้งค่าเป็นโมฆะ () {pinMode (A0, INPUT); โหมดพิน (A1, INPUT); เซอร์โว[0].แนบ(9); servo[1].attach(10);}int tempADC[3] = {0};void loop() { tempADC[0] = analogRead(A0); servo[0].write(map(tempADC[0], 0, 1023, 0, 180)); tempADC [1] = analogRead (A1); เซอร์โว[1].write(map(tempADC[1], 0, 1023, 0, 180));}

ขั้นตอนที่ 19: ประกอบเฟรมเลเยอร์ที่ 3

ประกอบเฟรมชั้นที่ 3
ประกอบเฟรมชั้นที่ 3

ขั้นตอนที่ 20: ประกอบเฟรมด้วยมอเตอร์ตัวที่ 2 / โพเทนชิออมิเตอร์

ประกอบเฟรมด้วยมอเตอร์ตัวที่ 2 / โพเทนชิออมิเตอร์
ประกอบเฟรมด้วยมอเตอร์ตัวที่ 2 / โพเทนชิออมิเตอร์
ประกอบเฟรมด้วยมอเตอร์ตัวที่ 2 / โพเทนชิออมิเตอร์
ประกอบเฟรมด้วยมอเตอร์ตัวที่ 2 / โพเทนชิออมิเตอร์
ประกอบโครงด้วยมอเตอร์ตัวที่ 2 / โพเทนชิออมิเตอร์
ประกอบโครงด้วยมอเตอร์ตัวที่ 2 / โพเทนชิออมิเตอร์
ประกอบเฟรมด้วยมอเตอร์ตัวที่ 2 / โพเทนชิออมิเตอร์
ประกอบเฟรมด้วยมอเตอร์ตัวที่ 2 / โพเทนชิออมิเตอร์

ขั้นตอนที่ 21: ประกอบมอเตอร์ตัวที่ 3 เข้ากับกรอบร่วม

ประกอบมอเตอร์ตัวที่ 3 เข้ากับโครงข้อต่อ
ประกอบมอเตอร์ตัวที่ 3 เข้ากับโครงข้อต่อ
ประกอบมอเตอร์ตัวที่ 3 เข้ากับโครงข้อต่อ
ประกอบมอเตอร์ตัวที่ 3 เข้ากับโครงข้อต่อ

ขั้นตอนที่ 22: เสียบสายเคเบิลเข้ากับ Arduino

เสียบสายเคเบิลเข้ากับ Arduino
เสียบสายเคเบิลเข้ากับ Arduino
เสียบสายเคเบิลเข้ากับ Arduino
เสียบสายเคเบิลเข้ากับ Arduino
  • มอเตอร์ตัวที่ 3 เชื่อมต่อกับพิน 11
  • โพเทนชิออมิเตอร์ตัวที่ 3 เชื่อมต่อกับ A2

รหัสมีลักษณะเช่นนี้

#include เซอร์โวเซอร์โว[6];เป็นโมฆะการตั้งค่า() {pinMode(A0, INPUT); โหมดพิน (A1, INPUT); โหมดพิน (A2, INPUT); เซอร์โว[0].แนบ(9); เซอร์โว[1].แนบ(10); เซอร์โว[2].attach(11);}int tempADC[3] = {0};void loop() { tempADC[0] = analogRead(A0); servo[0].write(map(tempADC[0], 0, 1023, 0, 180)); tempADC [1] = analogRead (A1); เซอร์โว[1].write(map(tempADC[1], 0, 1023, 0, 180)); tempADC[2] = analogRead (A2); เซอร์โว [2].write (แผนที่ (tempADC [2], 0, 1023, 0, 180));}

ขั้นตอนที่ 23: ประกอบ Thumbs Frame

ประกอบกรอบนิ้วโป้ง
ประกอบกรอบนิ้วโป้ง
ประกอบกรอบนิ้วโป้ง
ประกอบกรอบนิ้วโป้ง

ขั้นตอนที่ 24: ทดสอบและปรับมุม

ทดสอบและปรับมุม
ทดสอบและปรับมุม
ทดสอบและปรับมุม
ทดสอบและปรับมุม
ทดสอบและปรับมุม
ทดสอบและปรับมุม

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

ขั้นตอนที่ 25: หุ่นยนต์อีกหนึ่งตัว?

อีกหนึ่งหุ่นยนต์?
อีกหนึ่งหุ่นยนต์?
อีกหนึ่งหุ่นยนต์?
อีกหนึ่งหุ่นยนต์?

หากคุณต้องการสร้างหุ่นยนต์เพิ่มอีกหนึ่งตัว คุณก็สามารถทำได้ เสียบเซอร์โวเข้ากับ 3, 5 และ 6

#include เซอร์โวเซอร์โว[6]; การตั้งค่าเป็นโมฆะ () {pinMode (A0, INPUT); โหมดพิน (A1, INPUT); โหมดพิน (A2, INPUT); เซอร์โว[0].แนบ(9); เซอร์โว[1].แนบ(10); เซอร์โว[2].แนบ(11); เซอร์โว[3].แนบ(3); เซอร์โว[4].แนบ(5); servo[5].attach(6);}int tempADC[3] = {0};void loop() { tempADC[0] = analogRead(A0); servo[0].write(map(tempADC[0], 0, 1023, 0, 180)); เซอร์โว[3].write(map(tempADC[0], 0, 1023, 0, 180)); tempADC [1] = analogRead (A1); เซอร์โว[1].write(map(tempADC[1], 0, 1023, 0, 180)); เซอร์โว[4].write(map(tempADC[1], 0, 1023, 0, 180)); tempADC[2] = analogRead (A2); เซอร์โว [2].write (แผนที่ (tempADC [2], 0, 1023, 0, 180)); เซอร์โว[5].write(map(tempADC[2], 0, 1023, 0, 180));}

ขั้นตอนที่ 26: เสร็จแล้ว

เสร็จแล้ว!
เสร็จแล้ว!
เสร็จแล้ว!
เสร็จแล้ว!
เสร็จแล้ว!
เสร็จแล้ว!

หากคุณมีคำถามใด ๆ โปรดทิ้งมันไว้:)

การประกวดไมโครคอนโทรลเลอร์
การประกวดไมโครคอนโทรลเลอร์
การประกวดไมโครคอนโทรลเลอร์
การประกวดไมโครคอนโทรลเลอร์

รองชนะเลิศการประกวดไมโครคอนโทรลเลอร์

แนะนำ: