สารบัญ:

การยึดจับอัตโนมัติโดยใช้เลเซอร์เซนเซอร์และคำสั่งเสียง: 5 ขั้นตอน (พร้อมรูปภาพ)
การยึดจับอัตโนมัติโดยใช้เลเซอร์เซนเซอร์และคำสั่งเสียง: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: การยึดจับอัตโนมัติโดยใช้เลเซอร์เซนเซอร์และคำสั่งเสียง: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: การยึดจับอัตโนมัติโดยใช้เลเซอร์เซนเซอร์และคำสั่งเสียง: 5 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: EP. 7 Arduino | ESP32 + IR Sensor ตรวจจับวัตถุหรือการเคลื่อนไหว แจ้งเตือนผ่าน Line Notify 2024, ธันวาคม
Anonim
Image
Image
รายการอะไหล่
รายการอะไหล่

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

ขั้นตอนที่ 1: รายการอะไหล่

รายการอะไหล่
รายการอะไหล่

ในโครงการขนาดเล็กนี้ คุณจะต้องมีเพียงไม่กี่ส่วนตามรายการด้านล่าง ในฐานะตัวควบคุม ฉันใช้ Arduino mega 2560 แต่คุณสามารถใช้ UNO หรือ Arduino อื่นๆ ได้ ในฐานะเซ็นเซอร์วัดระยะ ฉันใช้เซ็นเซอร์เลเซอร์ VL53L0X ซึ่งมีความแม่นยำดี (ประมาณสองสามมิลลิเมตร) และระยะสูงสุด 2 เมตร ในโครงการนี้ คุณสามารถใช้สำหรับการทดสอบกริปเปอร์และเซอร์โว แต่คุณควรจ่ายไฟจากแหล่งพลังงานแยกต่างหาก เช่น แหล่งจ่ายไฟ 5V หรือแบตเตอรี่ LiPo (7.4V หรือ 11.1V) ผ่านตัวแปลงสเต็ปดาวน์ที่ลดแรงดันไฟฟ้า ถึง 5V

ชิ้นส่วนที่จำเป็นในโครงการนี้:

  • VL53L0X เลเซอร์ ToF เซนเซอร์ x1
  • เซอร์โวดิจิตอล x1
  • Arduino mega 2560 x1
  • หุ่นยนต์กริปเปอร์โลหะ x1
  • เขียงหั่นขนม x1
  • ปุ่มกดสัมผัส x1
  • บลูทูธ HC-06
  • ตัวต้านทาน 10k x1
  • แหล่งจ่ายไฟ 5V/2A

เวอร์ชันขยาย:

  1. CJMCU-219 โมดูลเซนเซอร์ตรวจจับกระแสไฟ x1
  2. WS2812 RGB LED บอร์ดพัฒนาไดร์เวอร์ x1

ขั้นตอนที่ 2: การเชื่อมต่อชิ้นส่วนอิเล็กทรอนิกส์

การเชื่อมต่อชิ้นส่วนอิเล็กทรอนิกส์
การเชื่อมต่อชิ้นส่วนอิเล็กทรอนิกส์
การเชื่อมต่อชิ้นส่วนอิเล็กทรอนิกส์
การเชื่อมต่อชิ้นส่วนอิเล็กทรอนิกส์
การเชื่อมต่อชิ้นส่วนอิเล็กทรอนิกส์
การเชื่อมต่อชิ้นส่วนอิเล็กทรอนิกส์

รูปแรกแสดงการเชื่อมต่อที่จำเป็นทั้งหมด ในรูปภาพต่อไปนี้ คุณสามารถดูขั้นตอนถัดไปของการเชื่อมต่อแต่ละโมดูลได้ ในตอนเริ่มต้น ปุ่มกดเชื่อมต่อกับพิน 2 ของ Arduino จากนั้นเซอร์โวกับพิน 3 และสุดท้ายคือเซ็นเซอร์ระยะเลเซอร์ VL53L0X ผ่านบัส I2C (SDA, SCL)

การเชื่อมต่อของโมดูลอิเล็กทรอนิกส์มีดังต่อไปนี้:

เลเซอร์เซนเซอร์ VL53L0X -> Arduino Mega 2560

  • SDA - SDA
  • SCL - SCL
  • VCC - 5V
  • GND - GND

เซอร์โว -> Arduino Mega 2560

สัญญาณ (สายสีส้ม) - 3

เซอร์โว -> พาวเวอร์ซัพพลาย 5V/2A

  • GND (สายสีน้ำตาล) - GND
  • VCC (สายสีแดง) - 5V

ปุ่มกด -> Arduino Mega 2560

  • พิน 1 - 3.3 หรือ 5V
  • พิน 2 - 2 (และผ่านตัวต้านทาน 10k ลงกราวด์)

บลูทูธ (HC-06) -> Arduino Mega 2560

  • TXD - TX1 (19)
  • RXD - RX1 (18)
  • VCC - 5V
  • GND - GND

ขั้นตอนที่ 3: รหัส Arduino Mega

Arduino Mega Code
Arduino Mega Code

ฉันได้เตรียมตัวอย่างโปรแกรม Arduino ต่อไปนี้ที่ GitHub ของฉัน:

  • VL53L0X_griper_control
  • Voice_VL53L0X_griper_control

โปรแกรมแรกที่ชื่อว่า "VL53L0X_griper_control" ทำหน้าที่จับอัตโนมัติของวัตถุที่ตรวจพบโดยเลเซอร์เซนเซอร์ VL53L0X ก่อนรวบรวมและอัปโหลดโปรแกรมตัวอย่าง ตรวจสอบให้แน่ใจว่าคุณได้เลือก "Arduino Mega 2560" เป็นแพลตฟอร์มเป้าหมายดังที่แสดงด้านบน (Arduino IDE -> Tools -> Board -> Arduino Mega หรือ Mega 2560) โปรแกรม Arduino จะตรวจสอบลูปหลัก - "void loop()" ว่าการอ่านใหม่จากเลเซอร์เซนเซอร์มาหรือไม่ (ฟังก์ชัน readRangeContinuousMillimeters()) หากระยะทางที่อ่านได้จากเซ็นเซอร์ "distance_mm" มากกว่าค่า "THRESHOLD_CLOSING_DISTANCE_FAR" หรือน้อยกว่า "THRESHOLD_CLOSING_DISTANCE_NEAR" เซอร์โวจะเริ่มปิด ในกรณีอื่น ๆ จะเริ่มเปิดขึ้น ในส่วนถัดไปของโปรแกรม ในฟังก์ชัน "digitalRead(griperOpenButtonPin)" สถานะของปุ่มกดจะถูกควบคุมอย่างต่อเนื่องและหากกดลงไป กริปเปอร์จะเปิดขึ้นทั้งๆ ที่ปุ่มปิดอยู่เนื่องจากวัตถุอยู่ใกล้กัน (distance_mm น้อยกว่า THRESHOLD_CLOSING_DISTANCE_NEAR)

โปรแกรมที่สอง "Voice_VL53L0X_griper_control" ให้คุณควบคุมกริปเปอร์โดยใช้คำสั่งเสียง คำสั่งเสียงได้รับการประมวลผลโดยแอป BT Voice Control สำหรับ Arduino จาก Google Play และส่งต่อไปผ่านบลูทูธไปยัง Arduino โปรแกรม Arduino ตรวจสอบในลูปหลัก - "void loop()" ว่าคำสั่งใหม่ (อักขระ) ถูกส่งจากแอพ Android ผ่านบลูทู ธ หรือไม่ หากมีอักขระที่เข้ามาจากบลูทูธซีเรียล โปรแกรมจะอ่านข้อมูลซีเรียลจนกว่าจะสิ้นสุดคำสั่งเสียง "#" จากนั้นจะเริ่มดำเนินการฟังก์ชัน "void processInput() " และขึ้นอยู่กับคำสั่งเสียง ฟังก์ชันการควบคุมเฉพาะจะถูกเรียก

ขั้นตอนที่ 4: ทดสอบการยึดจับอัตโนมัติ

การทดสอบการยึดจับอัตโนมัติ
การทดสอบการยึดจับอัตโนมัติ
การทดสอบการยึดจับอัตโนมัติ
การทดสอบการยึดจับอัตโนมัติ

วิดีโอจาก "ขั้นตอนที่ 1" แสดงการทดสอบหุ่นยนต์กริปเปอร์ตามโปรแกรมจากส่วนก่อนหน้า "Arduino Mega Code" วิดีโอนี้แสดงวิธีการเปิดอัตโนมัติเมื่อวัตถุอยู่ใกล้กับวัตถุ จากนั้นจึงจับวัตถุนี้หากอยู่ในระยะเอื้อมของกริปเปอร์ ความคิดเห็นจากเซ็นเซอร์ระยะเลเซอร์ที่ใช้ในที่นี้มองเห็นได้ชัดเจนในส่วนถัดไปของวิดีโอเมื่อฉันเคลื่อนขวดไปข้างหน้าและข้างหลัง ซึ่งเป็นสาเหตุให้เกิดปฏิกิริยาตอบสนองอย่างรวดเร็วและเปลี่ยนการควบคุมกริปเปอร์

ขั้นตอนที่ 5: การจับยึดอัตโนมัติด้วยเสียง

Image
Image
Epilog Challenge 9
Epilog Challenge 9

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

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

  • facebook
  • youtube
  • เว็บไซต์ของฉัน

แนะนำ: