วิธีการสร้าง AutoLacing Shoe โดยใช้ Arduino?
ในยุคปัจจุบัน นักวิทยาศาสตร์และวิศวกรพยายามทำให้ทุกอย่างเป็นไปโดยอัตโนมัติ หมายความว่าทุกอย่างจะทำงานได้เองโดยไม่ต้องใช้ความพยายามของมนุษย์ ปัญหาที่พบบ่อยมากในสังคมพบว่าบางคนมีปัญหาในการผูกเชือกรองเท้าด้วยตัวเอง คนเหล่านี้รวมถึงคนพิการ ผู้ที่มีอาการปวดหลัง เด็ก และคนตาบอดในระดับหนึ่ง จึงต้องหาวิธีแก้ไขเพื่อไม่ให้คนเหล่านี้มองว่าเป็นปัญหา
ในโครงการนี้ เราจะทำการแสดงการร้อยเชือกอัตโนมัติ ซึ่งจะผูกเชือกรองเท้าโดยอัตโนมัติโดยไม่ต้องใช้ความพยายามใดๆ โดยจะใช้บอร์ดไมโครคอนโทรลเลอร์ เซ็นเซอร์ป้องกันมอเตอร์ และเซอร์โวมอเตอร์ ทันทีที่ใส่เท้าเข้าไปในรองเท้า
วิธีการ AutoLace การแสดงของคุณโดยใช้ Arduino?
เมื่อเราทราบบทคัดย่อของโครงการแล้ว เรามาเริ่มเก็บรวบรวมข้อมูลเพิ่มเติมและทำตามขั้นตอนในการทำรองเท้า AutoLace นี้โดยใช้ Arduino
ขั้นตอนที่ 1: รวบรวมส่วนประกอบ
วิธีที่ดีที่สุดในการเริ่มโครงการคือการทำรายการส่วนประกอบและศึกษาส่วนประกอบเหล่านี้โดยย่อ เพราะไม่มีใครอยากติดอยู่ตรงกลางของโครงการเพียงเพราะองค์ประกอบที่ขาดหายไป รายการส่วนประกอบที่เราจะใช้ในโครงการนี้ได้รับด้านล่าง:
ขั้นตอนที่ 2: การศึกษาส่วนประกอบ
เมื่อเราทราบบทคัดย่อของโครงการแล้ว และเราก็มีรายการส่วนประกอบทั้งหมดแล้ว ให้เราก้าวไปข้างหน้าและศึกษาโดยย่อเกี่ยวกับส่วนประกอบที่เราจะใช้
Seeduino v4.2เป็นหนึ่งในบอร์ดที่เข้ากันได้กับ Arduino ที่ดีที่สุดในโลกซึ่งใช้ไมโครคอนโทรลเลอร์ Atmega 328 MCU เพราะใช้งานง่าย เสถียรกว่า และดูดีกว่าบอร์ดอื่นๆ มันขึ้นอยู่กับ bootloader Arduino มี ATMEGA16U2 เป็นตัวแปลง UART-to-USB เนื่องจากสามารถใช้เป็นชิป FTDI ได้ เชื่อมต่อกับคอมพิวเตอร์โดยใช้สายไมโคร USB ซึ่งโดยทั่วไปเรียกว่าสายแอนดรอยด์ สามารถใช้แจ็ค DC เพื่อจ่ายไฟให้กับบอร์ดได้ กำลังไฟฟ้าเข้าต้องอยู่ระหว่าง 7V ถึง 15V
Arduino Motor Shield ช่วยให้คุณสามารถควบคุมทิศทางของมอเตอร์และความเร็วโดยใช้ Arduino ได้อย่างง่ายดาย ช่วยให้คุณสามารถระบุหมุด Arduino ได้ ทำให้ง่ายต่อการขับเคลื่อนมอเตอร์ใดๆ เข้าไปในงานของคุณ นอกจากนี้ยังช่วยให้คุณมีตัวเลือกในการควบคุมมอเตอร์ด้วยแหล่งจ่ายไฟที่แตกต่างกันถึง 12v เหนือสิ่งอื่นใด โล่หาง่ายมาก ด้วยเหตุผลทั้งหมดนี้ Arduino Motor Shield หากมีสิ่งที่น่าสนใจเล็กน้อยในคลังแสงของคุณสำหรับการสร้างต้นแบบอย่างรวดเร็วและการทดลองทั่วไป
ตัวต้านทานเซ็นเซอร์แรง (FSR)เป็นเซ็นเซอร์ความดันที่ใช้งานง่ายและสะดวก สิ่งกีดขวางของ FSR ขึ้นอยู่กับน้ำหนักที่ใช้กับพื้นที่การตรวจจับ ยิ่งคุณลงน้ำหนักมากเท่าไหร่ ความขัดแย้งก็ยิ่งน้อยลงเท่านั้น ช่วงการกีดขวางค่อนข้างมาก: > 10 MΩ (ไม่มีน้ำหนัก) ถึง ~ 200 Ω (น้ำหนักสูงสุด) FSR ส่วนใหญ่สามารถตรวจจับกำลังไฟฟ้าได้ตั้งแต่ 100 ก. ถึง 10 กก. FSR ประกอบด้วยสองชั้นและกาวสเปเซอร์ ชั้นนำไฟฟ้าจะถูกแยกออกโดยช่องว่างอากาศบางเมื่อไม่ได้ใส่น้ำหนัก หนึ่งในฟิล์มมีร่องรอยสองรอยที่วิ่งจากหางไปยังบริเวณการตรวจจับ (ส่วนที่เป็นทรงกลม) ร่องรอยเหล่านี้ถักทอเข้าด้วยกันแต่ไม่สัมผัสกัน ฟิล์มอีกแผ่นเคลือบด้วยหมึกชั้นนำ เมื่อคุณกดเซ็นเซอร์ หมึกจะทำให้รอยทั้งสองสั้นลงพร้อมกับการต้านที่ขึ้นอยู่กับน้ำหนัก
อา เซอร์โวมอเตอร์เป็นโรตารี่หรือแอคชูเอเตอร์เชิงเส้นซึ่งสามารถควบคุมและเคลื่อนย้ายได้ในระดับที่เพิ่มขึ้นแน่นอน มอเตอร์เหล่านี้แตกต่างจากมอเตอร์กระแสตรง มอเตอร์เหล่านี้ช่วยให้สามารถควบคุมการเคลื่อนที่เชิงมุมหรือแบบหมุนได้อย่างแม่นยำ มอเตอร์นี้เชื่อมต่อกับเซ็นเซอร์ซึ่งกำลังส่งข้อเสนอแนะเกี่ยวกับการเคลื่อนไหว
ขั้นตอนที่ 3: หลักการทำงาน
หลักการทำงานของโครงการนี้ง่ายมาก เซ็นเซอร์แรงจะถูกนำมาใช้เพื่อตรวจจับว่าเท้าอยู่ในรายการหรือไม่ หากตรวจพบเท้า มันจะส่งสัญญาณไปยังบอร์ด Arduino ซึ่งจะย้ายเซอร์โวมอเตอร์ด้วยความช่วยเหลือของ Arduino Motor Shield เซอร์โวมอเตอร์นี้จะเคลื่อนที่ในลักษณะที่จะดึงเชือกผูกรองเท้าทั้งหมดในคราวเดียว จึงผูกเชือกรองเท้าทั้งหมดโดยอัตโนมัติ
ขั้นตอนที่ 4: การประกอบส่วนประกอบ
เมื่อเราทราบแนวคิดหลักและหลักการทำงานเบื้องหลังโปรเจ็กต์นี้แล้ว ให้เราก้าวไปข้างหน้าและเริ่มรวบรวมทุกอย่างเพื่อสร้างรายการที่จะฉายในตัวเองโดยอัตโนมัติ ในการสร้างผลิตภัณฑ์ขั้นสุดท้ายให้ทำตามขั้นตอนด้านล่าง:
- ขั้นแรก ตัดแต่งแผ่นโลหะเล็กๆ ให้ติดที่ด้านหลังของการแสดง ใช้วัสดุสังเคราะห์เพื่อให้แก้ไขอย่างถาวรและไม่คลายตัว อย่าลืมเว้นช่องว่างระหว่างแผ่นเหล็กกับงานแสดง เพราะเราจะผ่านสายสัมพันธ์บางส่วนไปจากช่องว่างนั้น
- ตอนนี้ใช้เซอร์โวมอเตอร์สองตัวแล้วต่อเข้ากับแผ่นโลหะด้วยกาวร้อน ในการทำให้สิ่งนี้ได้รับการแก้ไขอย่างถาวร ให้ใช้ซิปผูกรอบๆ เพื่อไม่ให้เซอร์โวมอเตอร์เหล่านี้เคลื่อนที่ในภายหลัง หลังจากที่เซอร์โวมอเตอร์ทำงานแล้ว ให้ตัดสายส่วนเกินที่เหลือออก
- ตอนนี้ติดตั้งกล่องแบตเตอรี่ไว้ใต้มอเตอร์เพื่อให้สวิตช์เปิดปิดอยู่ด้านนอก
- ตอนนี้ติดบอร์ด Arduino บนมอเตอร์ ก่อนหน้านี้ การเชื่อมต่อมอเตอร์ชิลด์กับ Arduino จำเป็นต้องเพิ่มบางสิ่งลงในวงจร
- นำ LED และบัดกรีตัวต้านทานไปที่ขาบวกของมันแล้วบัดกรีลวดที่มีความยาวสั้น ๆ เข้ากับขาลบและขาอีกข้างของตัวต้านทาน จากนั้นเชื่อมต่อชุดประกอบนี้กับ Arduino และดันเข้ากับซ็อกเก็ตเชือกผูกรองเท้าที่ไม่ได้ใช้อันใดอันหนึ่ง
- ตอนนี้ใช้เวลา เซ็นเซอร์แรงและใส่รองเท้าในที่ที่ส้นเท้าจะพัก ไม่แนะนำให้บัดกรีหมุดของเซ็นเซอร์แรงเพราะความร้อนของหัวแร้งอาจทำให้พลาสติกของเซ็นเซอร์ละลายได้ ดังนั้นจะดีกว่าถ้าคุณติดกาวหรือเทปพันท่อ
- สุดท้าย ใช้ซิปผูกเชือกรองเท้าทั้งหมดกับเซอร์โวมอเตอร์ เพื่อที่ว่าเมื่อมอเตอร์หมุน มันจะดึงเชือกผูกรองเท้าทั้งหมดพร้อมกัน
ตรวจสอบให้แน่ใจว่าสายบวกของ LED เชื่อมต่อกับ pin2 ของ Arduino Vcc และพินกราวด์ของ Force Sensor จะเชื่อมต่อกับ 5V และกราวด์ของ Arduino และพิน IN ของเซ็นเซอร์แรงจะเชื่อมต่อกับพิน A0 ของบอร์ด Arduino สุดท้าย เสียบหมุดของเซอร์โวมอเตอร์เข้ากับแผงป้องกันมอเตอร์อย่างระมัดระวัง เพื่อไม่ให้เกิดการเชื่อมต่อที่ผิดพลาด
ขั้นตอนที่ 5: เริ่มต้นใช้งาน Arduino
หากคุณไม่คุ้นเคยกับ Arduino IDE มาก่อน ไม่ต้องกังวลเพราะด้านล่าง คุณสามารถดูขั้นตอนที่ชัดเจนของการเบิร์นโค้ดบนบอร์ดไมโครคอนโทรลเลอร์โดยใช้ Arduino IDE คุณสามารถดาวน์โหลด Arduino IDE เวอร์ชันล่าสุดได้จากที่นี่ และทำตามขั้นตอนด้านล่างนี้:
- เมื่อบอร์ด Arduino เชื่อมต่อกับพีซีของคุณแล้ว ให้เปิด "แผงควบคุม" และคลิกที่ "ฮาร์ดแวร์และเสียง" จากนั้นคลิกที่ "อุปกรณ์และเครื่องพิมพ์" ค้นหาชื่อพอร์ตที่บอร์ด Arduino ของคุณเชื่อมต่ออยู่ ในกรณีของฉันคือ "COM14" แต่อาจแตกต่างกันในพีซีของคุณ
- เราจะต้องรวมห้องสมุดเพื่อใช้เซอร์โวมอเตอร์ ห้องสมุดอยู่ด้านล่างในลิงค์ดาวน์โหลดพร้อมกับรหัส ไปที่ ร่าง > รวมไลบรารี > เพิ่มไลบรารี .ZIP
- ตอนนี้เปิด Arduino IDE จากเครื่องมือ ตั้งค่าบอร์ด Arduino เป็น Arduino / Genuino UNO.
- จากเมนูเครื่องมือเดียวกัน ให้ตั้งค่าหมายเลขพอร์ตที่คุณเห็นในแผงควบคุม
- ดาวน์โหลดโค้ดที่แนบมาด้านล่างและคัดลอกไปยัง IDE ของคุณ หากต้องการอัปโหลดรหัส ให้คลิกที่ปุ่มอัปโหลด
คุณสามารถดาวน์โหลดรหัสโดยคลิกที่นี่
ขั้นตอนที่ 6: รหัส
รหัสมีความคิดเห็นค่อนข้างดีและอธิบายตนเองได้ แต่ถึงกระนั้นรหัสก็อธิบายสั้น ๆ ด้านล่าง
1. ในตอนเริ่มต้น ไลบรารีพิเศษจะรวมอยู่ด้วยเพื่อให้สามารถรวมเซอร์โวมอเตอร์กับบอร์ดไมโครคอนโทรลเลอร์และตั้งโปรแกรมผ่านมันได้ วัตถุสองชิ้นถูกสร้างขึ้นเพื่อใช้กับเซอร์โวมอเตอร์ มีการเริ่มต้นพินหรือ Arduino บางตัวที่จะเชื่อมต่อกับไดรเวอร์มอเตอร์และมีการประกาศตัวแปรบางตัวซึ่งจะบันทึกค่าชั่วคราวบางส่วนที่จะใช้ในโปรแกรมหลักในภายหลัง
#รวม// รวมไลบรารีเพื่อเชื่อมต่อเซอร์โวมอเตอร์กับบอร์ดไมโครคอนโทรลเลอร์ 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 และเซอร์โวจะถูกย้ายไปยังสภาวะที่ไม่มีเชือกเริ่มต้น อัตราบอดถูกตั้งค่าในฟังก์ชันนี้ด้วย อัตราบอดคือความเร็วเป็นบิตต่อวินาทีโดยที่ไมโครคอนโทรลเลอร์สื่อสารกับอุปกรณ์ภายนอกที่ต่ออยู่
การตั้งค่าเป็นโมฆะ () { 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 ไปที่ตำแหน่ง unlaced myservo2.write(servoUnlock2); // ย้ายเซอร์โว 2 ไปยังตำแหน่งที่ไม่มีการผูกมัด }
3. วงเป็นโมฆะ ()เป็นฟังก์ชันที่ทำงานซ้ำ ๆ ในลูป ขั้นแรก ค่าอนาล็อกจะถูกอ่านโดยเซ็นเซอร์แรง จากนั้นจะรอให้ค่าของเซ็นเซอร์แรงส่งผ่านค่าเกณฑ์ มันจะรอให้เท้าเข้าที่อย่างสมบูรณ์และจะตั้งเซอร์โวทั้งสองให้อยู่ในตำแหน่งล็อค หากกดสวิตช์ เซอร์โวจะถูกตั้งค่าให้ปลดล็อกและจะรอจนกว่าไฟ LED จะกะพริบเจ็ดครั้ง
วงเป็นโมฆะ () { valF = analogRead (forcePin); // อ่านค่าของแรงเซ็นเซอร์ valS = digitalRead (switchPin); // อ่านค่าของสวิตช์ if (valF>=thresHold) {// รอให้เซ็นเซอร์วัดแรงเท่ากันหรือผ่านเกณฑ์ความดันแล้ว: หน่วงเวลา (1000); // รอให้เท้าเข้าที่ในรองเท้า myservo2.write(servoLock2); // ตั้งค่าเซอร์โวเสริมเป็นล็อกการหน่วงเวลา (1000); // รอหนึ่งวินาที myservo.write(servoLock); // ตั้งค่าเซอร์โวหลักเป็นล็อกตำแหน่งล่าช้า (1000); // รอ digitalWrite หนึ่งวินาที (ledPin, สูง); // เปิด LED จนกว่าเซอร์โวจะปลดล็อค ลบบรรทัดนี้เพื่อประหยัดแบตเตอรี่ } if (valS == HIGH) {// รอให้สวิตช์ถูกกด จากนั้น: myservo2.write(servoUnlock2); // ปลดล็อกการหน่วงเวลาเซอร์โวเสริม (1000); // รอสองวินาที myservo.write(servoUnlock); // ปลดล็อกการหน่วงเวลาเซอร์โวหลัก (500); // รอ จากนั้น LED กะพริบ 7 ครั้ง digitalWrite (ledPin, LOW); ล่าช้า(200); digitalWrite (ledPin, สูง); ล่าช้า (200); digitalWrite (ledPin ต่ำ); ล่าช้า(200); digitalWrite (ledPin, สูง); ล่าช้า(200); digitalWrite (ledPin ต่ำ); ล่าช้า (200); digitalWrite (ledPin, สูง); ล่าช้า(200); digitalWrite (ledPin ต่ำ); ล่าช้า (200); digitalWrite (ledPin, สูง); ล่าช้า(200); digitalWrite (ledPin ต่ำ); ล่าช้า(200); digitalWrite (ledPin, สูง); ล่าช้า(200); digitalWrite (ledPin ต่ำ); ล่าช้า(200); digitalWrite (ledPin, สูง); ล่าช้า(200); digitalWrite (ledPin ต่ำ); ล่าช้า(200); digitalWrite (ledPin, สูง); ล่าช้า(200); digitalWrite (ledPin ต่ำ); // ปิดการหน่วงเวลา LED (1000); } }
ดังนั้นนี่คือขั้นตอนทั้งหมดในการสร้างการแสดงที่ผูกเชือกรองเท้าโดยอัตโนมัติด้วยความช่วยเหลือของเซอร์โวมอเตอร์ ไมโครคอนโทรลเลอร์ และแผงป้องกันมอเตอร์ เมื่อคุณทราบขั้นตอนทั้งหมดนี้แล้ว ขอให้สนุกกับการทำ AutoLacing Show ที่บ้านของคุณ