كيف تصنع عصا ذكية للمكفوفين باستخدام Arduino؟

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



عصا ذكية

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



عصا ذكية للمكفوفين (الصورة مجاملة: ملخص الدائرة)



كيفية استخدام الأردوينو في تصميم الدائرة؟

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



الخطوة 1: المكونات المطلوبة (الأجهزة)

  • LDR
  • صفارة
  • يؤدى
  • جهاز إرسال واستقبال سوبريهترودين
  • المقاوم
  • اضغط الزر
  • فيروبورد
  • بطارية 9 فولت
  • جهاز رقمي متعدد
  • مسدس الغراء

الخطوة 2: المكونات المستخدمة (البرمجيات)

  • Proteus 8 Professional (يمكن تنزيله من هنا )

بعد تنزيل Proteus 8 Professional ، صمم الدائرة عليه. لقد قمنا بتضمين محاكاة البرامج هنا حتى يكون من الملائم للمبتدئين تصميم الدائرة وإجراء الاتصالات المناسبة على الأجهزة.

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

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

  1. اردوينو نانو: Arduino nano عبارة عن لوحة تحكم دقيقة تستخدم للتحكم أو تنفيذ مهام مختلفة في الدائرة. نحرق أ كود C على Arduino Nano لإخبار لوحة التحكم الدقيق بكيفية وما هي العمليات التي يجب إجراؤها. Arduino Nano له نفس وظائف Arduino Uno ولكن بحجم صغير جدًا. المتحكم الدقيق الموجود على لوحة Arduino Nano هو ATmega328p.

    اردوينو نانو



  2. جهاز الاستشعار بالموجات فوق الصوتية HC-SR04: لوحة HC-SR04 عبارة عن جهاز استشعار بالموجات فوق الصوتية يستخدم لتحديد المسافة بين جسمين. يتكون من جهاز إرسال وجهاز استقبال. يقوم جهاز الإرسال بتحويل الإشارة الكهربائية إلى إشارة فوق صوتية ويقوم جهاز الاستقبال بتحويل الإشارة فوق الصوتية إلى الإشارة الكهربائية. عندما يرسل جهاز الإرسال موجة فوق صوتية ، فإنها تنعكس بعد الاصطدام بجسم معين. يتم حساب المسافة باستخدام الوقت ، الذي تستغرقه الإشارة فوق الصوتية للانتقال من جهاز الإرسال والعودة إلى جهاز الاستقبال.

    أجهزة الاستشعار بالموجات فوق الصوتية

  3. 433 ميجا هرتز جهاز الإرسال والاستقبال RF: يعمل على تردد محدد يبلغ 433 ميجاهرتز. هناك العديد من أجهزة التردد اللاسلكي الأخرى المتاحة في السوق ، ومقارنةً بها ، سيعتمد أداء وحدة التردد اللاسلكي على عدة عوامل مثل عندما نزيد من طاقة جهاز الإرسال ، سيتم جمع مسافة اتصال كبيرة. سوف يتسبب ذلك في استنزاف طاقة كهربائية عالية على جهاز الإرسال ، مما يؤدي إلى قصر عمر تشغيل الأجهزة التي تعمل بالبطارية. إذا استخدمنا هذا الجهاز بطاقة إرسال أعلى ، فسيقوم الجهاز بإنشاء تداخل مع أجهزة RF الأخرى.

    جهاز إرسال واستقبال الترددات اللاسلكية

  4. 7805 منظم جهد: منظمات الجهد لها أهمية كبيرة في الدوائر الكهربائية. حتى إذا كان هناك تذبذب في جهد الدخل ، فإن منظم الجهد هذا يوفر جهد خرج ثابت. يمكننا أن نجد تطبيق 7805 IC في معظم المشاريع. يشير الاسم 7805 إلى معنيين ، ويعني '78' أنه منظم جهد موجب ويعني '05' أنه يوفر 5 فولت كمخرج. لذلك سيوفر منظم الجهد لدينا جهد خرج + 5 فولت. يمكن لهذا IC التعامل مع التيار حوالي 1.5A. يوصى باستخدام المشتت الحراري للمشاريع التي تستهلك تيارًا أكثر. على سبيل المثال ، إذا كان جهد الدخل هو 12 فولت وأنت تستهلك 1 أمبير ، فإن (12-5) * 1 = 7 واط. سوف تتبدد هذه 7 واط كحرارة.

    منظم ضغط كهربي

الخطوة 4: تجميع الدائرة

سنحتاج إلى تصميم دائرتين لهذا المشروع. سيتم وضع الدائرة الأولى في مكان مناسب في عصا رجل أعمى والثانية ستكون الارسال RF الدائرة وسيتم استخدامها لمعرفة الدائرة الرئيسية. قبل تصميم الدائرة على Proteus ، نحتاج إلى تضمين مكتبة البروتينات الخاصة بمستقبل الترددات الراديوية في البرنامج. يمكنك تنزيل المكتبة من هنا وبعد تنزيل المكتبة افتح ملف مكتبة المجلد والنسخ MODULO_RF.LIB ملف ولصقه في مجلد مكتبة Proteus. في حالة عدم العثور على مجلد المكتبة ، انقر فوق (C: Program Files (x86) Labcenter Electronics Proteus 8 Professional LIBRARY). عند الانتهاء من مجلد MODELS المفتوح هذا وانسخ RX.MDF والصقه في مجلد Protus MODELS. في حالة عدم العثور على مجلد الطرز ، انقر فوق (C: Program Files (x86) Labcenter Electronics Proteus 8 Professional MODELS).

مخطط الدائرة (الصورة مجاملة: ملخص الدائرة)

المتحكم الدقيق الذي سيتم استخدامه للتحكم في جميع أجهزة الاستشعار في الدائرة هو اردوينو نانو. مصدر الطاقة المستخدم لتشغيل الدائرة هو بطارية 9V ويتم تخفيض الجهد 9V هذا إلى 5V باستخدام a 7805 منظم ضغط كهربي. يمكن أن نرى في الدائرة أن أجهزة الاستشعار بالموجات فوق الصوتية يتم تشغيله بواسطة Vout لمنظم الجهد. يتم توصيل دبابيس الزناد وصدى المستشعر بالدبوس 3 والدبوس 2 من Arduino على التوالي. ال مقاوم يعتمد على الضوء (LDR) متصل بمقياس الجهد بقيمة 10 كيلو و تماثلي إلى رقمي يتم توصيل دبوس التحويل A1 من Arduino بتلك النقطة لملاحظة فرق الجهد. نحتاج إلى معرفة الإشارة المنبعثة من مستقبل الترددات اللاسلكية ، لذلك قمنا بتوصيل دبوس ADC A0 لقراءة الإشارة من مستقبل الترددات اللاسلكية. يتم إعطاء خرج الدائرة بأكملها بواسطة صفارة لذلك ، يتم توصيل الدبوس الموجب للجرس بالدبوس 12 من Arduino ويتم توصيل الدبوس السالب بأرض جهاز الاستشعار بالموجات فوق الصوتية.

لم نقم بتضمين جهاز إرسال التردد اللاسلكي في مخطط دائرتنا لأننا سنقوم بتجميعه على الأجهزة بشكل منفصل. كلما استخدمنا جهاز إرسال واستقبال متغاير بسعة 433 ميجاهرتز ، نحتاج إلى متحكم دقيق لربطهما بذلك ولكن في هذا المشروع نحتاج إلى جهاز الإرسال الوحيد لإرسال إشارات إلى جهاز الاستقبال ، لذلك قمنا بتوصيل دبوس البيانات الخاص بجهاز الإرسال مع Vcc. يتم تمرير دبوس البيانات الخاص بجهاز الاستقبال عبر مرشح RC ثم يتم توصيله بدبوس البيانات A0 في Arduino على التوالي. سنضغط على زر الضغط الموجود على جهاز الإرسال بشكل متكرر وعندما يتم الضغط على الزر ، سيعطي جهاز الاستقبال أي قيمة ثابتة كإخراج.

مرسل RF

الخطوة 5: تجميع الأجهزة

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

تجميع الدائرة على الأجهزة (الصورة مجاملة: ملخص الدائرة)

الخطوة السادسة: الابتداء مع اردوينو

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

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

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

  2. انقر فوق قائمة الأداة. وضبط اللوحة على اردوينو نانو من القائمة المنسدلة.

    لوحة الإعداد

  3. في قائمة الأداة نفسها ، اضبط المنفذ على رقم المنفذ الذي لاحظته من قبل في ملف الأجهزة والطابعات .

    منفذ الإعداد

  4. في قائمة الأداة نفسها ، اضبط المعالج على ATmega328P (محمل الإقلاع القديم).

    المعالج

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

    رفع

لتنزيل الكود ، انقر هنا.

الخطوة السابعة: فهم المدونة

تم التعليق على الكود جيدًا ولا يحتاج إلى شرح. ولكن مع ذلك ، يتم شرح ذلك أدناه:

  1. في بداية الكود ، يتم تهيئة جميع دبابيس لوحة Arduino Nano المتصلة بمستشعر الموجات فوق الصوتية ووحدة RF.
مشغل const int = 3 ؛ // دبوس الزناد لجهاز الاستشعار الأول const int echo = 2 ؛ // Echo pin of 1st Sensor const int Buzz = 13 ؛ // دبوس لتوصيل الجرس const int Remote = A0 ؛ const int Light = A1 ؛ وقت طويل كثافة العمليات إشارة int إنتنس عدد مماثل

2. الإعداد باطل() هي وظيفة تستخدم لضبط جميع المسامير المستخدمة ، مثل إدخال و انتاج. يتم تعريف معدل الباود في هذه الوظيفة. معدل الباود هو سرعة الاتصال التي تتواصل من خلالها لوحة وحدة التحكم الدقيقة مع المستشعرات المدمجة معها.

إعداد باطل () {Serial.begin (9600) ؛ pinMode (Buzz ، الإخراج) ؛ الكتابة الرقمية (الطنين ، منخفضة) ؛ pinMode (الزناد ، الإخراج) ؛ pinMode (echo ، الإدخال) ؛ }

3. الآن ، سننشئ دالة تحسب المسافة.

void calculate_distance (int trigger، int echo) {digitalWrite (trigger، LOW)؛ تأخير ميكروثانية (2) ؛ digitalWrite (الزناد ، عالية) ؛ تأخير ميكروثانية (10) ؛ digitalWrite (الزناد ، منخفض) ؛ time_taken = pulseIn (echo، HIGH) ؛ dist = time_taken * 0.034 / 2 ؛ إذا (dist> 300) dist = 300 ؛ }

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

حلقة باطلة () {// حلقة لانهائية حساب المسافة (الزناد ، صدى) ؛ الإشارة = analogRead (عن بعد) ؛ Intens = analogRead (Light) ؛ // تحقق من الضغط على جهاز التحكم عن بعد int temp = analogRead (Remote) ؛ مماثل_count = 0 ؛ while (Signal == temp) {Signal = analogRead (Remote) ؛ مماثل_count ++ ؛ } // إذا ضغطت عن بعد إذا (similar_count<100) { Serial.print(similar_count); Serial.println('Remote Pressed'); digitalWrite(Buzz,HIGH);delay(3000);digitalWrite(Buzz,LOW); } //If very dark if (Intens800) { Serial.print(Intens); Serial.println('Low Light'); digitalWrite(Buzz,HIGH);delay(500);digitalWrite(Buzz,LOW);delay(500);digitalWrite(Buzz,HIGH);delay(500); digitalWrite(Buzz,LOW);delay(500); } if (dist<50) { Serial.print(dist); Serial.println('Object Alert'); digitalWrite(Buzz,HIGH); for (int i=dist; i>0 ؛ ط -) تأخير (10) ؛ الكتابة الرقمية (الطنين ، منخفضة) ؛ لـ (int i = dist ؛ i> 0 ؛ i--) تأخير (10) ؛ } //Serial.print('dist= ') ؛ //Serial.println (القائمة) ؛ //Serial.print('Similar_count= ') ؛ //Serial.println(similar_count) ؛ //Serial.print('Intens= ') ، //Serial.println (عدد صحيح) ؛ }

الخطوة 8: الاختبار

كما فهمنا الكود ، حمّلناه على وحدة التحكم الدقيقة وقمنا بتجميع الأجهزة أيضًا ، حان الوقت الآن لاختبار مشروعنا. قبل الاختبار ، تأكد من إجراء التوصيلات بشكل صحيح وتحقق من استمرارية الدائرة باستخدام Digital Multi Meter. للتحول على تستخدم كلتا الدائرتين بطارية 9 فولت. ضع شيئًا على السطح الذي تختبره وحرك جهاز الاستشعار بالموجات فوق الصوتية أمامه ويلاحظ أن صوت الجرس يزداد كلما تحرك المستشعر بالقرب من الجسم. هناك احتمالان إذا كان LDR مغطى بالظلام أو إذا كنت تختبر في ضوء الشمس ، سيبدأ الجرس في إصدار صوت تنبيه. إذا تم الضغط على زر الدفع بجهاز إرسال الترددات اللاسلكية ، فسوف يصدر صوت صفير لفترة طويلة. إذا استمر الجرس في إصدار صوت صفير لفترة طويلة ، فهذا يعني أنه تم تشغيل الإنذار بشكل خاطئ. إذا كنت تواجه هذا النوع من الخطأ ، فافتح الشاشة التسلسلية لـ Arduino IDE وتحقق من المعلمات التي تسبب هذا النوع من المشاكل.

اختبار الأجهزة (الصورة مجاملة: ملخص الدائرة)

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