- المكونات مطلوبة
- مقياس التسارع ADXL335
- مخطط الرسم البياني
- كيف يعمل عداد الخطى؟
- برمجة عداد خطوة اردوينو
- اختبار عداد الخطى اردوينو
تحظى فرق اللياقة البدنية بشعبية كبيرة في الوقت الحاضر ، والتي لا تحسب خطوات الأقدام فحسب ، بل تتعقب أيضًا السعرات الحرارية المحروقة ، وتعرض معدل ضربات القلب ، ووقت العرض ، وغير ذلك الكثير. وتتم مزامنة أجهزة IoT هذه مع السحابة بحيث يمكنك بسهولة الحصول على سجل نشاطك البدني على الهاتف الذكي. لقد قمنا أيضًا ببناء نظام مراقبة المريض المستند إلى إنترنت الأشياء حيث تم إرسال البيانات الهامة إلى ThingSpeak لتتم مراقبتها من أي مكان.
عدادات الخطى هي الأجهزة التي تستخدم فقط لعد خطى. لذلك في هذا البرنامج التعليمي ، سنقوم ببناء عداد خطى DIY سهل ورخيص باستخدام Arduino ومقياس التسارع. سيحسب عداد الخطى هذا عدد الخطوات ويعرضها على وحدة LCD مقاس 16 × 2. يمكن دمج عداد الخطى هذا مع ساعة اردوينو الذكية.
المكونات مطلوبة
- اردوينو نانو
- مقياس التسارع ADXL 335
- 16 * 2 LCD
- وحدة LCD I2C
- البطارية
مقياس التسارع ADXL335
يعتبر ADXL335 مقياس تسارع تناظري كامل ثلاثي المحاور ، ويعمل على مبدأ الاستشعار بالسعة. إنها وحدة صغيرة ورقيقة ومنخفضة الطاقة مع مستشعر مصنوع من مادة البولي سيليكون السطحية الدقيقة ودائرة تكييف الإشارات. يمكن لمقياس التسارع ADXL335 قياس التسارع الثابت والديناميكي. هنا في مشروع Arduino Pedometer ، سيعمل مقياس التسارع ADXL335 كجهاز استشعار عداد الخطى.
و التسارع هو الجهاز الذي يمكن تحويل تسارع في أي اتجاه لمتغير الجهد الخاصة به. يتم تحقيق ذلك باستخدام المكثفات (راجع الصورة) ، أثناء تحرك Accel ، سيخضع المكثف الموجود بداخله أيضًا لتغييرات (راجع الصورة) بناءً على الحركة ، نظرًا لتنوع السعة ، يمكن أيضًا الحصول على جهد متغير.
فيما يلي صور مقياس التسارع من الأمام والخلف جنبًا إلى جنب مع وصف الدبوس-
وصف دبوس مقياس التسارع:
- يجب توصيل مصدر Vcc- 5 فولت بهذا الدبوس.
- X-OUT- يعطي هذا الدبوس إخراجًا تناظريًا في اتجاه x
- Y-OUT- يعطي هذا الدبوس إخراجًا تناظريًا في اتجاه y
- Z-OUT- يعطي هذا الدبوس إخراجًا تناظريًا في اتجاه z
- GND- الأرض
- ST- يستخدم هذا الدبوس لحساسية جهاز الاستشعار
نقوم ببناء العديد من المشاريع باستخدام مقياس التسارع ADXL335 بما في ذلك الروبوت الذي يتم التحكم فيه بالإيماءات ، ومنبه كاشف الزلازل ، ولعبة بينج بونج ، إلخ.
مخطط الرسم البياني
يرد أدناه مخطط الدائرة لعدّاد خطوة مقياس التسارع من Arduino.
في هذه الدائرة ، نتفاعل مع Arduino Nano باستخدام مقياس التسارع ADXL335. ترتبط دبابيس X و Y و Z لمقياس التسارع بدبابيس تناظرية (A1 و A2 و A3) من Arduino Nano. لربط وحدات LCD مقاس 16 × 2 مع Arduino ، فإننا نستخدم وحدة I2C. يتم توصيل دبابيس SCL و SDA لوحدة I2C بدبابيس A5 و A4 من Arduino Nano ، على التوالي. تم توضيح التوصيلات الكاملة في الجدول أدناه:
اردوينو نانو | ADXL335 |
3.3 فولت | VCC |
GND | GND |
أ 1 | X |
أ 2 | ص |
A3 | ض |
اردوينو نانو | وحدة LCD I2C |
5 فولت | VCC |
GND | GND |
A4 | SDA |
A5 | SCL |
قمنا أولاً ببناء عداد الخطى هذا باستخدام إعداد Arduino على لوح التجارب
وبعد الاختبار الناجح ، قمنا بتكرارها على Perfboard عن طريق لحام كل المكونات الموجودة على Perfboard كما هو موضح أدناه:
كيف يعمل عداد الخطى؟
يحسب عداد الخطى العدد الإجمالي للخطوات التي يتخذها الشخص باستخدام المكونات الثلاثة للحركة وهي للأمام والرأسية والجانبية. يستخدم نظام عداد الخطى مقياس التسارع للحصول على هذه القيم. يقوم مقياس التسارع بتحديث القيم القصوى والدنيا للتسريع ثلاثي المحاور باستمرار بعد كل رقم محدد. من العينات. يُطلق على متوسط قيمة هذه المحاور الثلاثة (الحد الأقصى + الحد الأدنى) / 2 مستوى العتبة الديناميكية ، ويتم استخدام هذه القيمة الحدية لتحديد ما إذا كانت الخطوة قد اتخذت أم لا.
أثناء الجري ، يمكن أن يكون عداد الخطى في أي اتجاه ، لذلك يحسب عداد الخطى الخطوات باستخدام المحور الذي تغير تسارعه هو الأكبر.
الآن ، اسمحوا لي أن أقدم لك نظرة سريعة على عمل عداد الخطوات من Arduino:
- أولاً ، يبدأ عداد الخطى في المعايرة بمجرد أن يتم تشغيله.
- ثم في وظيفة الحلقة الفارغة ، تحصل باستمرار على البيانات من المحور X و Y و Z.
- بعد ذلك ، تحسب متجه التسارع الكلي من نقطة البداية.
- متجه التسارع هو الجذر التربيعي (x ^ 2 + y ^ 2 + z ^ 2) لقيم المحور X و Y و Z.
- ثم يقارن متوسط قيم التسارع بقيم العتبة لحساب رقم الخطوة.
- إذا تجاوز متجه التسارع قيمة العتبة ، فإنه يزيد من عدد الخطوات ؛ وإلا فإنه يتجاهل الاهتزازات غير الصالحة.
برمجة عداد خطوة اردوينو
يتم تقديم رمز عداد خطوة Arduino الكامل في نهاية هذا المستند. نحن هنا نوضح بعض المقتطفات المهمة من هذا الرمز.
كالعادة ، ابدأ الكود بتضمين جميع المكتبات المطلوبة. لا يتطلب مقياس التسارع ADXL335 أي مكتبة لأنه يعطي مخرجات تمثيلية.
#تضمن
بعد ذلك ، حدد دبابيس Arduino ، حيث يتم توصيل مقياس التسارع.
const int xpin = A1 ؛ const int ypin = A2 ؛ const int zpin = A3 ؛
حدد قيمة العتبة لمقياس التسارع. ستتم مقارنة هذه القيمة الحدية مع متجه التسارع لحساب عدد الخطوات.
عتبة الطفو = 6 ؛
داخل الإعداد الفارغ ، تقوم الوظيفة بمعايرة النظام عند تشغيله.
معايرة () ؛
داخل وظيفة الحلقة الفارغة ، ستقرأ قيم المحور X و Y و Z لـ 100 عينة.
لـ (int a = 0؛ a <100؛ a ++) {xaccl = float (analogRead (xpin) - 345) ؛ تأخير (1) ؛ yaccl = تعويم (analogRead (ypin) - 346) ؛ تأخير (1) ؛ zaccl = تعويم (analogRead (zpin) - 416) ؛ تأخير (1) ؛
بعد الحصول على قيم 3 محاور ، احسب متجه التسارع الكلي بأخذ الجذر التربيعي لقيم المحور X و Y و Z.
totvect = sqrt (((xaccl - xavg) * (xaccl - xavg)) + ((yaccl - yavg) * (yaccl - yavg)) + ((zval - zavg) * (zval - zavg))) ؛
ثم احسب متوسط قيم متجه التسارع القصوى والدنيا.
totave = (totvect + totvect) / 2 ؛
قارن الآن متوسط التسارع مع الحد الأدنى. إذا كان المتوسط أكبر من الحد الأدنى ، فقم بزيادة عدد الخطوات ورفع العلم.
إذا (totave> عتبة && علم == 0) {الخطوات = الخطوات + 1 ؛ العلم = 1 ؛ }
إذا كان المتوسط أكبر من العتبة ولكن العلم مرفوع ، فلا تفعل شيئًا.
else if (totave> threshold && flag == 1) {// Don't Count}
إذا كان المتوسط الإجمالي أقل من العتبة وتم رفع العلم ، فضع العلم لأسفل.
إذا (totave <threshold && flag == 1) {flag = 0 ؛ }
اطبع عدد الخطوات على الشاشة التسلسلية وشاشة LCD.
Serial.println (خطوات) ؛ lcd.print ("الخطوات:") ؛ lcd.print (خطوات) ؛
اختبار عداد الخطى اردوينو
بمجرد أن يصبح جهازك وكودك جاهزين ، قم بتوصيل Arduino بالكمبيوتر المحمول وتحميل الكود. الآن خذ إعداد عداد الخطى بين يديك وابدأ في المشي خطوة بخطوة ، يجب أن يعرض عدد الخطوات على شاشة LCD. في بعض الأحيان يزيد من عدد الخطوات عندما يهتز عداد الخطى بسرعة كبيرة أو ببطء شديد.
يرد أدناه فيديو العمل الكامل ورمز عداد الخطى ADXL335 Arduino.