كيفية صنع حذاء للربط التلقائي باستخدام Arduino؟

في العصر الحديث ، يحاول العلماء والمهندسون جعل كل شيء آليًا. هذا يعني أن كل شيء سيعمل بمفرده دون أي جهد بشري. تم تحديد مشكلة شائعة جدًا في المجتمع تتمثل في أن بعض الأشخاص يواجهون صعوبة في ربط أربطة الحذاء بأنفسهم. يشمل هؤلاء الأشخاص المعوقين ، والأشخاص الذين يعانون من آلام الظهر ، والأطفال والمكفوفين إلى حد ما. لذا ، يجب إيجاد حل حتى لا يرى هؤلاء الأشخاص هذا على أنه مشكلة.



الصورة مأخوذة من Instructables

في هذا المشروع ، سنقوم بعمل عرض أوتوماتيكي Lacing والذي سيربط الأربطة تلقائيًا دون أي جهد بشري. ستفعل ذلك بمساعدة لوحة متحكم ، مستشعر درع المحرك ، ومحرك مؤازر ، بمجرد أن يضع المرء القدم داخل الحذاء.



كيفية الربط التلقائي لبرنامجك باستخدام Arduino؟

الآن ، كما نعرف ملخص المشروع ، دعنا نبدأ في جمع المزيد من المعلومات ونتابع إجراءات كيفية صنع حذاء AutoLace هذا باستخدام Arduino.



الخطوة 1: تجميع المكونات

أفضل طريقة لبدء أي مشروع هي إعداد قائمة بالمكونات وإجراء دراسة موجزة لهذه المكونات لأن لا أحد يرغب في البقاء في منتصف المشروع لمجرد وجود مكون مفقود. فيما يلي قائمة بالمكونات التي سنستخدمها في هذا المشروع:



  • اردوينو أونو
  • درع المحرك
  • أجهزة السيارات
  • فرض
  • يؤدى
  • 1 كيلو أوم المقاوم
  • حذاء
  • قطاع معدني
  • العلاقات البلاستيكية البريدي
  • 1/8
  • أسلاك توصيل
  • البطارية

الخطوة الثانية: دراسة المكونات

الآن بما أننا نعرف ملخص مشروعنا ولدينا أيضًا قائمة كاملة بجميع المكونات ، فلنتقدم خطوة للأمام ونستعرض دراسة موجزة للمكونات التي سنستخدمها.

Seeeduino v4.2 هي واحدة من أفضل اللوحات المتوافقة مع Arduino في العالم والتي تعتمد على متحكم Atmega 328 MCU. لأنه سهل الاستخدام وأكثر ثباتًا ويبدو أفضل من العديد من اللوحات الأخرى. يعتمد على محمل الإقلاع Arduino. يحتوي على ATMEGA16U2 كمحول UART إلى USB لأنه يمكن استخدامه كشريحة FTDI. يتم توصيله بالكمبيوتر باستخدام كبل USB صغير يسمى بشكل عام كبل android. يمكن أيضًا استخدام مقبس التيار المستمر لتشغيل اللوحة. يجب أن تكون طاقة الإدخال من 7 فولت إلى 15 فولت.

مجلس Seeeduino



درع محرك اردوينو تمكنك من التحكم في اتجاه المحرك وسرعته دون عناء باستخدام Arduino. من خلال تمكينك من معالجة دبابيس Arduino فقط ، فإنه يجعل من السهل قيادة أي محرك في مهمتك. كما أنه يتيح لك خيار التحكم في محرك مزود بمصدر طاقة مختلف يصل إلى 12 فولت. وأفضل ما في الأمر أنه من السهل جدًا العثور على الدرع. لكل هذه الأسباب ، فإن Arduino Motor Shield إذا كان قليلًا رائعًا في ترسانتك للنماذج الأولية السريعة والتجارب العامة.

درع المحرك

مقاومات استشعار القوة (FSRs) هي أجهزة استشعار الضغط بسيطة للغاية وسهلة الاستخدام. يعتمد إعاقة FSR على الوزن المطبق على منطقة الكشف. كلما زاد الوزن الذي تقوم بتطبيقه ، قلت المعارضة. نطاق الانسداد ضخم جدًا:> 10 MΩ (بدون وزن) إلى ~ 200 (أقصى وزن). يمكن لمعظم FSRs اكتشاف الطاقة في نطاق 100 جم إلى 10 كجم. يتكون FSR من طبقتين ومادة لاصقة فاصلة. يتم عزل الطبقات الموصلة بواسطة فجوة هوائية رفيعة عندما لا يتم تطبيق أي وزن. يحتوي أحد الأفلام على أثرين يمتدان من الذيل إلى منطقة الكشف (الجزء الدائري). يتم نسج هذه الآثار معًا ، ولكن لا يتم الاتصال بها. الفيلم الآخر مغطى بحبر رائد. عندما تضغط على المستشعر ، يقوم الحبر باختصار الأثرين مع معارضة تعتمد على الوزن.

مستشعر القوة

إلى أجهزة السيارات عبارة عن مشغل دوار أو مشغل خطي يمكن التحكم فيه ونقله بزيادات دقيقة. تختلف هذه المحركات عن محركات التيار المستمر. تسمح هذه المحركات بالتحكم الدقيق في الحركة الزاوية أو الدورانية. يقترن هذا المحرك بجهاز استشعار يرسل ملاحظات حول حركته.

سيرفو موتو

الخطوة 3: مبدأ العمل

مبدأ العمل في هذا المشروع بسيط للغاية. سيتم استخدام مستشعر القوة لاكتشاف ما إذا كانت القدم موضوعة في العرض أم لا. إذا اكتشفت القدم ، فسوف ترسل إشارة إلى لوحة Arduino والتي ستحرك محرك سيرفو بمساعدة Arduino Motor Shield. سوف يتحرك محرك السيرفو هذا بطريقة تسحب كل الأربطة مرة واحدة. ومن ثم ربط جميع أربطة الحذاء تلقائيًا.

الخطوة 4: تجميع المكونات

الآن بما أننا نعرف الفكرة الرئيسية ومبدأ العمل وراء هذا المشروع ، فلنتحرك خطوة للأمام ونبدأ في تجميع كل شيء لعمل عرض يقوم تلقائيًا بتدوير نفسه. لعمل منتج نهائي ، اتبع الخطوات الواردة أدناه:

  1. بادئ ذي بدء ، قم بقص لوح معدني صغير بحيث يتم تثبيته في الجزء الخلفي من الشاشة. استخدم مادة اصطناعية بحيث تثبت بشكل دائم ولا تتحلل. تأكد من ترك فجوة بين اللوحة المعدنية والعرض لأننا سنقوم بتمرير بعض روابط الكابلات من تلك الفجوة.
  2. الآن خذ محركين مؤازرين وأرفقهما باللوحة المعدنية بالغراء الساخن. الآن لجعلها ثابتة بشكل دائم ، استخدم روابط مضغوطة حولها حتى لا تتحرك محركات المؤازرة هذه لاحقًا. بعد أن تسير محركات المؤازرة في السرعة ، قم بقطع الكبل الإضافي المتبقي.
  3. الآن قم بتركيب علبة بطارية أسفل المحركات بحيث يكون مفتاح الطاقة للخارج.
  4. الآن قم بتركيب لوحة Arduino على المحركات. قبل توصيل درع المحرك بـ Arduino ، يجب إضافة بعض الأشياء إلى الدائرة.
  5. خذ مصباح LED وقم بلحام المقاوم إلى ساقه الموجبة ولحام سلك قصير بطول الساق السالبة والساق الأخرى للمقاوم. ثم قم بتوصيل هذا التجميع بـ Arduino وادفعه إلى أحد مآخذ رباط الحذاء غير المستخدمة.
  6. الآن خذ مستشعر القوة ضعه في حذائك حيث يرتاح كعبك. لا يوصى بلحام مسامير مستشعر القوة لأن حرارة مكواة اللحام يمكن أن تذوب بلاستيك المستشعر. لذلك من الأفضل أن تقوم بلصقه أو شريط لاصق عليه.
  7. أخيرًا ، استخدم رابطًا مضغوطًا لربط جميع الأربطة بمحرك مؤازر ، بحيث عندما يدور المحرك ، فإنه يسحب جميع الأربطة مرة واحدة.

تأكد من توصيل السلك الموجب للـ LED بـ pin2 من Arduino. سيتم توصيل دبوس Vcc والدبوس الأرضي لمستشعر القوة بـ 5 فولت وسيتم توصيل دبوس Arduino ودبوس IN الخاص بمستشعر القوة بالدبوس A0 في لوحة Arduino. أخيرًا ، قم بتوصيل دبابيس Servo Motor بغطاء المحرك بعناية حتى لا تقوم بإجراء اتصال خاطئ.

الخطوة 5: بدء استخدام Arduino

إذا لم تكن معتادًا على Arduino IDE من قبل ، فلا تقلق لأنه أدناه ، يمكنك رؤية خطوات واضحة لنسخ الكود على لوحة وحدة التحكم الدقيقة باستخدام Arduino IDE. يمكنك تنزيل أحدث إصدار من Arduino IDE من هنا واتبع الخطوات المذكورة أدناه:

  1. عندما تكون لوحة Arduino متصلة بجهاز الكمبيوتر الخاص بك ، افتح 'لوحة التحكم' وانقر على 'الأجهزة والصوت'. ثم انقر فوق 'الأجهزة والطابعات'. ابحث عن اسم المنفذ الذي تتصل به لوحة Arduino. في حالتي هو “COM14” ولكنه قد يكون مختلفًا على جهاز الكمبيوتر الخاص بك.

    البحث عن ميناء

  2. سيتعين علينا تضمين مكتبة لاستخدام محرك سيرفو. المكتبة مرفقة أدناه في رابط التنزيل مع الرمز. اذهب إلى رسم> تضمين مكتبة> إضافة مكتبة .ZIP.

    تضمين المكتبة

  3. الآن افتح Arduino IDE. من الأدوات ، اضبط لوحة Arduino على اردوينو / جينوينو أونو.

    لوحة الإعداد

  4. من نفس قائمة الأداة ، اضبط رقم المنفذ الذي رأيته في لوحة التحكم.

    منفذ الإعداد

  5. قم بتنزيل الكود المرفق أدناه وانسخه إلى IDE الخاص بك. لتحميل الكود ، اضغط على زر التحميل.

    رفع

يمكنك تنزيل الكود عن طريق النقر هنا.

الخطوة 6: الكود

الكود جيد التعليق وواضح بذاته. ولكن لا يزال ، يتم شرح الرمز بإيجاز أدناه.

1. في البداية ، تم تضمين مكتبة خاصة بحيث يمكن دمج محرك سيرفو مع لوحة التحكم الدقيقة وبرمجته من خلالها. تم إنشاء كائنين لاستخدامهما مع محرك سيرفو. تتم تهيئة بعض المسامير أو Arduino التي سيتم توصيلها بسائق المحرك كما تم الإعلان عن بعض المتغيرات التي ستوفر بعض القيم المؤقتة التي سيتم استخدامها لاحقًا في البرنامج الرئيسي.

# تتضمن // مكتبة إلى محرك مؤازر للواجهة مع لوحة تحكم دقيقة Servo myservo ؛ // يُنشئ الكائن المؤازر 1 Servo myservo2 ؛ // إنشاء كائن مؤازر 2 int forcePin = 0 ؛ // دبوس تناظري 0 متصل بقوة مستشعر int ledPin = 2 ؛ // دبوس رقمي 2 متصل بمفتاح LED intPin = 19 ؛ // يعين مفتاح فتح إلى صمام تناظري 5 int valF ؛ // قيمة صمامات مستشعر القوة ؛ // قيمة التبديل int thresHold = 500 ؛ // يحدد عتبة ضغط مستشعر القوة في servoUnlock = 0 ؛ // يعين المؤازرة الرئيسية على الوضع المحايد غير المحايد (0 درجة) int servoLock = 180 ؛ // يعين المؤازرة الرئيسية على الوضع المربوط (180 درجة) int servoUnlock2 = 180 ؛ // يعين المؤازرة المساعدة على الوضع المحايد غير المحايد (0 درجة) int servoLock2 = 0 ؛ // يعين المؤازرة المساعدة على الوضع المربوط (180 درجة)

2. الإعداد باطل() هي وظيفة يتم تشغيلها مرة واحدة فقط في البداية عند تشغيل وحدة التحكم الدقيقة أو الضغط على زر التمكين. في هذه الوظيفة ، تتم تهيئة دبابيس Arduino لاستخدامها كـ INPUT أو OUTPUT. يتم استخدام الكائنات التي تم إنشاؤها لمحرك مؤازر من قبل لربط محرك سيرفو بالدبوس المحدد للوحة Arduino ويتم نقل المؤازرة إلى الحالة الأولية غير المقيدة. يتم تعيين معدل الباود أيضًا في هذه الوظيفة. معدل الباود هو السرعة بالبت في الثانية التي يتواصل بها الميكروكونترولر مع الأجهزة الخارجية المرفقة.

إعداد باطل () {Serial.begin // تعيين معدل الباود الخاص بوحدة التحكم الدقيقة pinMode (ledPin ، الإخراج) ؛ // يتم إخراج الدبوس الرقمي 2 لـ LED pinMode (switchPin ، INPUT) ؛ // analog pin 5 هو إدخال لمفتاح myservo.attach (9) ؛ // يعلق الماكينات بالدبابيس 9 myservo2.attach (10) ؛ // يعلق الماكينات على دبابيس 10 myservo.write (servoUnlock) ؛ // حرك المؤازرة 1 إلى مواقع غير مترابطة myservo2.write (servoUnlock2) ؛ // نقل المؤازرة 2 إلى مواضع غير مترابطة}

3. حلقة فارغة() هي وظيفة تعمل بشكل متكرر في حلقة. أولاً ، يتم قراءة القيمة التناظرية بواسطة مستشعر القوة. ثم ينتظر أن تتجاوز قيمة مستشعر القوة قيمة حدية. سينتظر حتى تستقر القدم تمامًا في مكانها وستقوم بتعيين كل من الماكينات في موضع القفل. إذا تم الضغط على المفاتيح ، فسيتم ضبط المؤازرة على إلغاء القفل وستنتظر حتى يومض مؤشر LED سبع مرات.

حلقة باطلة () {valF = analogRead (forcePin) ؛ // قراءة قيمة مستشعر القوة valS = digitalRead (switchPin) ؛ // قراءة قيمة التبديل إذا (valF> = thresHold) {// ينتظر مستشعر القوة ليساوي أو يتجاوز عتبة الضغط ثم: تأخير (1000) ؛ // ينتظر القدم لتستقر في مكانها في الحذاء myservo2.write (servoLock2) ؛ // يعين المؤازرة المساعدة لتأخير الوضع المقفل (1000) ؛ // ينتظر ثانية واحدة myservo.write (servoLock) ؛ // يعين المؤازرة الرئيسية لتأخير الموضع المغلق (1000) ؛ // ينتظر كتابة رقمية ثانية واحدة (ledPin، HIGH) ؛ // يتحول إلى 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 ، منخفض) ؛ // يحول تأخير الصمام (1000) ؛ }}

لذلك كان هذا هو الإجراء بأكمله لتقديم عرض يقوم تلقائيًا بربط الأربطة بنفسه بمساعدة محرك مؤازر ، متحكم دقيق ، ودرع محرك. الآن بما أنك تعرف هذا الإجراء بأكمله ، استمتع بعمل عرض AutoLacing الخاص بك في منزلك.