جدول المحتويات:

تطبيق زر قابل للتمديد مع ردود فعل الاهتزاز: 7 خطوات (بالصور)
تطبيق زر قابل للتمديد مع ردود فعل الاهتزاز: 7 خطوات (بالصور)

فيديو: تطبيق زر قابل للتمديد مع ردود فعل الاهتزاز: 7 خطوات (بالصور)

فيديو: تطبيق زر قابل للتمديد مع ردود فعل الاهتزاز: 7 خطوات (بالصور)
فيديو: مش عاوز تتعرف عليا خالص؟ (الأصلي ) 2024, شهر نوفمبر
Anonim
تطبيق زر قابل للتمديد مع ردود فعل الاهتزاز
تطبيق زر قابل للتمديد مع ردود فعل الاهتزاز
تطبيق زر قابل للتمديد مع ردود فعل الاهتزاز
تطبيق زر قابل للتمديد مع ردود فعل الاهتزاز

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

الخطوة 1: المكونات المطلوبة لزر إعداد محرك الاهتزاز

المكونات اللازمة لزر إعداد محرك الاهتزاز
المكونات اللازمة لزر إعداد محرك الاهتزاز
  • اردوينو اونو
  • اللوح
  • هزاز العملة المعدنية المحرك الاهتزاز
  • زر غروف
  • أسلاك العبور من ذكر إلى ذكر (x10)
  • سلك توصيل معزز 4 دبوس
  • سائق محرك لمسي
  • موصل الحافة من ذكر إلى أنثى
  • لحام حديد

الخطوة 2: مخططات إعداد زر الاهتزاز للمحرك

مخططات لزر محرك الاهتزاز إعداد
مخططات لزر محرك الاهتزاز إعداد

تم إنشاء الرسم التخطيطي السابق باستخدام Fritzing.org.

الخطوة 3: إعداد زر إعداد محرك الاهتزاز

الخطوة 1: قم بتوصيل موصل الحافة بمحرك الاهتزاز. قم بلحام أسلاك هزاز العملة المعدنية في أطراف محرك الاهتزاز.

الخطوة 2: قم بتوصيل كابل العبور ذو 4 سنون بفتحة الزر.

الخطوة 3: باستخدام أحد أسلاك العبور ، قم بتوصيل دبوس GRD على Arduino بصف على لوح التجارب.

الخطوة 4: باستخدام سلك توصيل آخر ، قم بتوصيل دبوس Volt 3.3 الموجود على Arduino بصف مختلف على لوح التجارب.

الخطوة 5: الآن سنقوم بتوصيل محرك الاهتزاز بـ Arduino. باستخدام سلك توصيل ثالث ، قم بتوصيل دبوس GND الموجود على محرك الاهتزاز بنفس الصف الموجود على اللوح مثل دبوس GRD من Arduino. افعل الشيء نفسه مع سلك آخر لـ VCC (فولت) على محرك الاهتزاز ، إلى صف فولت من لوح التجارب.

الخطوة 6: استخدم سلكًا آخر لتوصيل دبوس SDA على محرك الاهتزاز بدبوس SDA مباشرة على Arduino. مرة أخرى ، افعل الشيء نفسه مع دبابيس SCL على كليهما. بدلاً من ذلك ، اتبع نهجًا مشابهًا للخطوة 5 وقم بتوصيل دبابيس SDA و SCL على Arduino بالصفوف الخاصة بها على اللوح عبر أسلاك التوصيل. ثم قم بتشغيل سلك من الصف حيث يتم توصيل دبوس SDA على اللوح إلى دبوس SDA على سائق المحرك. افعل الشيء نفسه بالنسبة لصف SCL على اللوح إلى دبوس SCL على سائق المحرك.

الخطوة 7: الآن سننتهي من خلال توصيل الزر بمحرك الاهتزاز و Arduino. استخدم سلك توصيل آخر لتوصيل GRD من سلك العبور ذي 4 سنون المتصل بفتحة الزر إلى نفس الصف مثل أسلاك GRD الأخرى على لوح التجارب. افعل الشيء نفسه مع فولت مرة أخرى (VCC).

الخطوة 8: قم بتوصيل كتابة نهائية من SIG عند كسر الزر بدبوس على Arduino (لأغراض الكود الخاص بنا ، استخدمنا الدبوس 7).

الخطوة 9: قم بتوصيل Arduino وقم بتحميل الكود ، وشاهده يعمل!

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

زر الاهتزاز Motor.c

/ * كود مقتبس من https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide؟_ga=2.227031901.1514248658.1513372975-1149214600.1512613196 * /
#يشمل// مكتبة SparkFun Haptic Motor Driver
#يشمل// مكتبة I2C
SFE_HMD_DRV2605L HMD ؛ // إنشاء كائن سائق محرك لمسي
زر int = 7 ؛ // اختر دبوس الإدخال 7 للزر الانضغاطي
int button_val = 0 ؛ // متغير لقراءة حالة الدبوس
الإعداد باطل()
{
/ * تهيئة كائن محرك المحرك اللمسي * /
HMD.begin () ،
Serial.begin (9600) ؛
HMD. Mode (0) ، // وضع إدخال المشغل الداخلي - يجب استخدام وظيفة GO () لبدء التشغيل.
HMD. MotorSelect (0x36) ؛ // محرك ERM ، فرملة 4x ، كسب حلقة متوسطة ، كسب EMF خلفي 1.365x
مكتبة HMD (2) ؛ // 1-5 & 7 لمحركات ERM ، 6 لمحركات LRA
}
حلقة فارغة()
{
/ * بدء محرك الاهتزاز * /
HMD.go () ،
button_val = digitalRead (زر) ؛
إذا (button_val == عالية) {
/ * تم الضغط على هذه المخرجات لتسجيل هذا الزر ، استخدم لتصحيح * /
Serial.println ("زر الضغط.") ؛
/ * تحتوي مكتبة الأشكال الموجية على 0-122 نوعًا مختلفًا من الموجات * /
HMD. Waveform (0 ، 69) ؛}
آخر{
/ * إذا لم يتم الضغط على الزر ، فقم بإيقاف محرك الاهتزاز * /
HMD.stop () ،
}
}

عرض rawButton-Vibration-Motor.c المستضاف مع ❤ بواسطة GitHub

الخطوة 5: فيديو زر إعداد محرك الاهتزاز

Image
Image

الخطوة 6: نموذج أولي للقفاز القابل للتمديد

النموذج الأولي للقفاز القابل للتمديد
النموذج الأولي للقفاز القابل للتمديد
النموذج الأولي للقفاز القابل للتمديد
النموذج الأولي للقفاز القابل للتمديد

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

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

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

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

الخطوة 7: كود لأزرار متعددة مع خرج اهتزاز فريد

mutliple_buttons_to_vibmotor.ino

/ * الرمز مقتبس من SparkFun https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide * /
#يشمل// مكتبة SparkFun Haptic Motor Driver
#يشمل// مكتبة I2C
SFE_HMD_DRV2605L HMD ؛ // إنشاء كائن سائق محرك لمسي
int button_middle = 7 ؛
int button_index = 5 ؛ // اختر دبوس الإدخال للزر الانضغاطي
int button_ring = 9 ؛
int button_pinky = 3 ؛
الإعداد باطل()
{
HMD.begin () ،
Serial.begin (9600) ؛
HMD. Mode (0) ، // وضع إدخال المشغل الداخلي - يجب استخدام وظيفة GO () لبدء التشغيل.
HMD. MotorSelect (0x36) ؛ // محرك ERM ، فرملة 4x ، كسب حلقة متوسطة ، كسب EMF خلفي 1.365x
مكتبة HMD (2) ؛ // 1-5 & 7 لمحركات ERM ، 6 لمحركات LRA
}
حلقة فارغة()
{
HMD.go () ، // ابدأ محرك الاهتزاز
/ * تحقق من الزر الذي تم الضغط عليه وإخراج الشكل الموجي 0-122 * /
إذا (digitalRead (button_middle) == عالية) {
Serial.println ("زر الضغط.") ؛
HMD. Waveform (0 ، 112) ؛}
elseif (digitalRead (button_index) == HIGH) {
HMD. Waveform (0 ، 20) ؛
}
elseif (digitalRead (button_ring) == HIGH) {
HMD. Waveform (0 ، 80) ؛
}
elseif (digitalRead (button_pinky) == HIGH) {
HMD. Waveform (0 ، 100) ؛
}
/ * إذا لم يتم الضغط على أي زر ، فقم بالتوقف * /
آخر{
HMD.stop () ،
}
}

عرض rawmutliple_buttons_to_vibmotor.ino المستضاف مع ❤ بواسطة GitHub

موصى به: