วิธีสร้างรองเท้า AutoLacing โดยใช้ Arduino

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



รูปภาพที่นำมาจาก Instructables

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



วิธี AutoLace การแสดงของคุณโดยใช้ Arduino

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



ขั้นตอนที่ 1: รวบรวมส่วนประกอบ

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



  • Arduino uno
  • มอเตอร์โล่
  • เซอร์โวมอเตอร์
  • บังคับ
  • LED
  • ตัวต้านทาน 1k-ohm
  • รองเท้า
  • แถบโลหะ
  • ซิปพลาสติกผูก
  • 1/8
  • สายจัมเปอร์
  • แบตเตอรี่

ขั้นตอนที่ 2: ศึกษาส่วนประกอบ

ตอนนี้เมื่อเราทราบบทคัดย่อของโครงการแล้วและเรายังมีรายการส่วนประกอบทั้งหมดให้เราก้าวไปข้างหน้าและศึกษาสั้น ๆ เกี่ยวกับส่วนประกอบที่เราจะใช้

Seeeduino v4.2 เป็นหนึ่งในบอร์ดที่เข้ากันได้กับ Arduino ที่ดีที่สุดในโลกซึ่งใช้ไมโครคอนโทรลเลอร์ Atmega 328 MCU เพราะใช้งานง่ายเสถียรกว่าและดูดีกว่าบอร์ดอื่น ๆ มันขึ้นอยู่กับ Arduino bootloader มันมี ATMEGA16U2 เป็นตัวแปลง UART-to-USB เนื่องจากมันสามารถใช้เป็นชิป FTDI ได้ เชื่อมต่อกับคอมพิวเตอร์โดยใช้สายไมโคร USB ซึ่งโดยทั่วไปเรียกว่าสายแอนดรอยด์ สามารถใช้แจ็ค DC เพื่อจ่ายไฟให้กับบอร์ดได้ กำลังไฟฟ้าเข้าต้องอยู่ระหว่าง 7V ถึง 15V

คณะกรรมการ Seeeduino



Arduino Motor Shield ช่วยให้คุณควบคุมทิศทางมอเตอร์และความเร็วของ Arduino ได้อย่างง่ายดาย ด้วยการเปิดใช้งานเพียงแค่ระบุพิน Arduino ทำให้ง่ายต่อการขับเคลื่อนมอเตอร์ใด ๆ ในงานของคุณ นอกจากนี้ยังช่วยให้คุณมีตัวเลือกในการควบคุมมอเตอร์ด้วยแหล่งจ่ายไฟที่แตกต่างกันถึง 12v เหนือสิ่งอื่นใดโล่นั้นหาง่ายมาก ด้วยเหตุผลทั้งหมดนี้ Arduino Motor Shield หากมีสิ่งที่น่าสนใจเล็กน้อยในคลังแสงของคุณสำหรับการสร้างต้นแบบอย่างรวดเร็วและการทดลองทั่วไป

มอเตอร์โล่

ตัวต้านทานเซนเซอร์แรง (FSR) เป็นเซ็นเซอร์ความดันที่เรียบง่ายและใช้งานง่าย การขัดขวาง FSR นั้นขึ้นอยู่กับน้ำหนักที่ใช้กับพื้นที่ตรวจจับ ยิ่งคุณใช้น้ำหนักมากเท่าใดฝ่ายค้านก็จะยิ่งลดลง ช่วงการอุดตันค่อนข้างใหญ่:> 10 MΩ (ไม่มีน้ำหนัก) ถึง ~ 200 Ω (น้ำหนักสูงสุด) FSR ส่วนใหญ่สามารถตรวจจับกำลังได้ในขอบเขต 100 กรัมถึง 10 กก. FSR ประกอบด้วยสองชั้นและกาวสเปเซอร์ ชั้นนำจะถูกแยกโดยช่องว่างอากาศที่บางเฉียบเมื่อไม่มีการใช้น้ำหนัก ภาพยนตร์เรื่องหนึ่งมีร่องรอยสองเส้นที่วิ่งจากหางไปยังพื้นที่ตรวจจับ (ส่วนรอบ) ร่องรอยเหล่านี้ถักทอเข้าด้วยกัน แต่ไม่สามารถสัมผัสได้ ฟิล์มอื่น ๆ ปิดทับด้วยหมึกชั้นนำ เมื่อคุณดันเซ็นเซอร์หมึกจะทำให้ทั้งสองร่องรอยสั้นลงพร้อมกับการต่อต้านที่ขึ้นอยู่กับน้ำหนัก

เซนเซอร์แรง

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

เซอร์โวโมโต

ขั้นตอนที่ 3: หลักการทำงาน

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

ขั้นตอนที่ 4: การประกอบส่วนประกอบ

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

  1. ก่อนอื่นตัดแผ่นโลหะขนาดเล็กเพื่อให้ยึดที่ด้านหลังของการแสดง ใช้ใยสังเคราะห์เพื่อให้แก้ไขได้อย่างถาวรและไม่คลายตัว ตรวจสอบให้แน่ใจว่าคุณเว้นช่องว่างระหว่างแผ่นโลหะกับการแสดงเพราะเราจะร้อยสายเคเบิลผ่านช่องว่างนั้น
  2. ตอนนี้ใช้เซอร์โวมอเตอร์สองตัวแล้วติดเข้ากับแผ่นโลหะด้วยกาวร้อน ตอนนี้เพื่อทำให้สิ่งนี้ได้รับการแก้ไขอย่างถาวรให้ใช้ซิปผูกรอบ ๆ เพื่อไม่ให้เซอร์โวมอเตอร์เหล่านี้เคลื่อนที่ในภายหลัง หลังจากเซอร์โวมอเตอร์ตามจังหวะให้ตัดสายเคเบิลพิเศษที่เหลืออยู่
  3. ตอนนี้ติดเคสแบตเตอรี่ไว้ข้างใต้มอเตอร์เพื่อให้สวิตช์เปิดปิดอยู่ด้านนอก
  4. ตอนนี้ติดบอร์ด Arduino บนมอเตอร์ ก่อนหน้านี้การเชื่อมต่อโล่มอเตอร์กับ Arduino จำเป็นต้องเพิ่มบางอย่างลงในวงจร
  5. ใช้ LED และบัดกรีตัวต้านทานเข้ากับขาบวกและบัดกรีลวดความยาวสั้น ๆ เข้ากับขาลบและอีกขาของตัวต้านทาน จากนั้นเชื่อมต่อชุดประกอบนี้เข้ากับ Arduino และดันเข้ากับซ็อกเก็ตเชือกผูกรองเท้าที่ไม่ได้ใช้
  6. ตอนนี้ใช้เวลา เซนเซอร์แรง และวางไว้ในรองเท้าเพื่อให้ส้นเท้าของคุณวาง ไม่แนะนำให้บัดกรีหมุดของเซ็นเซอร์วัดแรงเนื่องจากความร้อนของหัวแร้งสามารถละลายพลาสติกของเซ็นเซอร์ได้ ดังนั้นจะดีกว่าถ้าคุณติดกาวหรือเทปพันสายไฟ
  7. สุดท้ายใช้ซิปไทผูกเชือกผูกรองเท้าทั้งหมดเข้ากับเซอร์โวมอเตอร์ดังนั้นเมื่อมอเตอร์หมุนมันจะดึงเชือกผูกทั้งหมดพร้อมกัน

ตรวจสอบให้แน่ใจว่าสายบวกของ LED เชื่อมต่อกับ pin2 ของ Arduino Vcc และขากราวด์ของ Force Sensor จะเชื่อมต่อกับ 5V และกราวด์ของ Arduino และขา IN ของเซ็นเซอร์แรงจะเชื่อมต่อกับพิน A0 ของบอร์ด Arduino สุดท้ายเสียบหมุดเซอร์โวมอเตอร์เข้ากับตัวป้องกันมอเตอร์อย่างระมัดระวังเพื่อไม่ให้เชื่อมต่อผิด

ขั้นตอนที่ 5: เริ่มต้นกับ Arduino

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

  1. เมื่อบอร์ด Arduino เชื่อมต่อกับพีซีของคุณแล้วให้เปิด“ แผงควบคุม” และคลิกที่“ ฮาร์ดแวร์และเสียง” จากนั้นคลิกที่“ อุปกรณ์และเครื่องพิมพ์” ค้นหาชื่อพอร์ตที่บอร์ด Arduino ของคุณเชื่อมต่ออยู่ ในกรณีของฉันมันคือ“ COM14” แต่อาจแตกต่างกันในพีซีของคุณ

    กำลังค้นหาพอร์ต

  2. เราจะต้องรวมไลบรารีเพื่อใช้เซอร์โวมอเตอร์ ไลบรารีแนบอยู่ด้านล่างในลิงค์ดาวน์โหลดพร้อมกับรหัส ไปที่ ร่าง> รวมไลบรารี> เพิ่ม. ZIP Library

    รวมห้องสมุด

  3. ตอนนี้เปิด Arduino IDE จาก Tools ให้ตั้งค่าบอร์ด Arduino เป็น Arduino / Genuino UNO

    คณะกรรมการการตั้งค่า

  4. จากเมนูเครื่องมือเดียวกันตั้งค่าหมายเลขพอร์ตที่คุณเห็นในแผงควบคุม

    การตั้งค่าพอร์ต

  5. ดาวน์โหลดรหัสที่แนบด้านล่างและคัดลอกไปยัง IDE ของคุณ ในการอัปโหลดรหัสคลิกที่ปุ่มอัปโหลด

    ที่อัพโหลด

คุณสามารถดาวน์โหลดรหัสได้โดย คลิกที่นี่

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

โค้ดนี้แสดงความคิดเห็นได้ดีและอธิบายได้ด้วยตนเอง แต่ถึงกระนั้นรหัสจะอธิบายสั้น ๆ ด้านล่าง

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

#include // รวมไลบรารีเพื่อเชื่อมต่อเซอร์โวมอเตอร์กับบอร์ดไมโครคอนโทรลเลอร์ Servo myservo; // สร้าง servo objec 1 Servo myservo2; // สร้างวัตถุเซอร์โว 2 int forcePin = 0; // อะนาล็อกพิน 0 เชื่อมต่อกับเซ็นเซอร์แรง int ledPin = 2; // พินดิจิตอล 2 เชื่อมต่อกับ LED int switchPin = 19; // ตั้งสวิตช์ปลดล็อคเป็นขาอนาล็อก 5 int valF; // ค่าของเซ็นเซอร์แรง int valS; // มูลค่าของสวิตช์ int thresHold = 500; // กำหนดเกณฑ์ความดันเซ็นเซอร์แรง int servoUnlock = 0; // ตั้งค่าเซอร์โวหลักเป็นตำแหน่งที่ไม่มีการวางเป็นกลาง (0 องศา) int servoLock = 180; // ตั้งค่าเซอร์โวหลักเป็นตำแหน่งผูก (180 องศา) int servoUnlock2 = 180; // ตั้งค่าเซอร์โวเสริมเป็นตำแหน่งที่ไม่มีการวางเป็นกลาง (0 องศา) int servoLock2 = 0; // ตั้งค่าเซอร์โวเสริมเป็นตำแหน่งที่เจือ (180 องศา)

2. การตั้งค่าเป็นโมฆะ () เป็นฟังก์ชันที่ทำงานเพียงครั้งเดียวในการเริ่มทำงานเมื่อไมโครคอนโทรลเลอร์เปิดอยู่หรือกดปุ่มเปิดใช้งาน ในฟังก์ชั่นนี้พินของ Arduino จะเริ่มต้นเพื่อใช้เป็น INPUT หรือ OUTPUT วัตถุที่ถูกสร้างขึ้นสำหรับเซอร์โวมอเตอร์ก่อนหน้านี้จะถูกใช้เพื่อต่อเซอร์โวมอเตอร์เข้ากับพินเฉพาะของบอร์ด Arduino และเซอร์โวจะถูกย้ายไปยังสภาวะที่ไม่มีการใส่เริ่มต้น อัตราบอดยังตั้งค่าในฟังก์ชันนี้ Baud Rate คือความเร็วในหน่วยบิตต่อวินาทีที่ไมโครคอนโทรลเลอร์สื่อสารกับอุปกรณ์ภายนอกที่ต่ออยู่

การตั้งค่าเป็นโมฆะ () {Serial.begin // การตั้งค่าอัตราการรับส่งข้อมูลของ pinMode ไมโครคอนโทรลเลอร์ (ledPin, OUTPUT); // digital pin 2 คือเอาต์พุตสำหรับ LED pinMode (switchPin, INPUT); // อนาล็อกพิน 5 เป็นอินพุตสำหรับสวิตช์ myservo.attach (9); // แนบเซอร์โวเข้ากับหมุด 9 myservo2.attach (10); // แนบเซอร์โวกับพิน 10 myservo.write (servoUnlock); // ย้ายเซอร์โว 1 ไปยังตำแหน่งที่ไม่ได้ใส่ myservo2.write (servoUnlock2); // ย้ายเซอร์โว 2 ไปยังตำแหน่งที่ไม่มีการวาง}

3. ห่วงเป็นโมฆะ () เป็นฟังก์ชันที่ทำงานซ้ำ ๆ ในวง ขั้นแรกให้อ่านค่าอะนาล็อกโดยเซ็นเซอร์แรง จากนั้นจะรอให้ค่าของเซ็นเซอร์วัดแรงส่งผ่านค่าเกณฑ์ มันจะรอให้เท้าเข้าที่อย่างสมบูรณ์และจะตั้งเซอร์โวทั้งสองให้อยู่ในตำแหน่งล็อค หากกดสวิตช์เซอร์โวจะถูกตั้งค่าให้ปลดล็อกและจะรอจนกว่าไฟ LED จะกะพริบเจ็ดครั้ง

โมฆะ loop () {valF = analogRead (forcePin); // อ่านค่าของเซ็นเซอร์วัดแรง valS = digitalRead (switchPin); // อ่านค่าของสวิตช์ if (valF> = thresHold) {// รอให้เซ็นเซอร์แรงเท่ากับหรือผ่านเกณฑ์ความดันแล้ว: หน่วงเวลา (1000); // รอให้เท้าเข้าที่ในรองเท้า myservo2.write (servoLock2); // ตั้งค่าเซอร์โวเสริมเพื่อหน่วงเวลาตำแหน่งล็อค (1000); // รอหนึ่งวินาที myservo.write (servoLock); // ตั้งค่าเซอร์โวหลักเป็นการหน่วงเวลาตำแหน่งล็อค (1000); // รอหนึ่งวินาที digitalWrite (ledPin, HIGH); // เปิดไฟ LED จนกระทั่งเซอร์โวปลดล็อก ถอดสายนี้ออกเพื่อประหยัดแบตเตอรี่ } if (valS == HIGH) {// รอให้สวิตช์ถูกกดจากนั้น: myservo2.write (servoUnlock2); // ปลดล็อกการหน่วงเวลาเซอร์โวเสริม (1,000); // รอสองวินาที myservo.write (servoUnlock); // ปลดล็อกเซอร์โวหลักล่าช้า (500); // รอแล้วกะพริบ LED 7 เท่า digitalWrite (ledPin, LOW); ล่าช้า (200); digitalWrite (ledPin สูง); ล่าช้า (200); digitalWrite (ledPin, LOW); ล่าช้า (200); digitalWrite (ledPin สูง); ล่าช้า (200); digitalWrite (ledPin, LOW); ล่าช้า (200); digitalWrite (ledPin สูง); ล่าช้า (200); digitalWrite (ledPin, LOW); ล่าช้า (200); digitalWrite (ledPin สูง); ล่าช้า (200); digitalWrite (ledPin, LOW); ล่าช้า (200); digitalWrite (ledPin สูง); ล่าช้า (200); digitalWrite (ledPin, LOW); ล่าช้า (200); digitalWrite (ledPin สูง); ล่าช้า (200); digitalWrite (ledPin, LOW); ล่าช้า (200); digitalWrite (ledPin สูง); ล่าช้า (200); digitalWrite (ledPin, LOW); // ปิด LED ปิดการหน่วงเวลา (1,000); }}

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