مشروع · يُلبس · MPU6050
جهاز يُلبس ينبّهك حين تنحني
الجميع ينحني؛ ولا أحد يلاحظ نفسه وهو يفعل. MPU6050 بدولارين على أعلى الظهر يلاحظ عنك: يقيس زاوية الانحناء للأمام بمرجع الجاذبيّة، ويمنحك خمس ثوانٍ سماحًا، ثمّ يطنّ حتّى تعتدل — ويحتفظ بإحصاء صادق لدقائق انحنائك اليوم.
الزاوية — الجاذبيّة هي المنقلة
لا يحتاج قياس الوضعيّة دمج جيروسكوب: حين تنحني للأمام يتغيّر إسقاط الجاذبيّة على محاور التسارع،
وatan2 واحدة تحوّله إلى درجات من الاعتدال. الجزء المثير هو منطق التدريب:
عتبة، مؤقّت سماح (مدّ اليد للقهوة لا يستحقّ طنينًا)، تنبيه، وساعة انحناء:
// Forward lean from the accelerometer alone — gravity is the reference:
lean = atan2f(ax, sqrtf(ay * ay + az * az)) * 57.3f; // degrees from upright
// The coaching loop: threshold + grace timer + nag + stats
bool over = lean > limit;
if (over && !overSince) overSince = millis();
if (!over) { overSince = 0; buzz = false; }
if (over && millis() - overSince > 5000) { // 5 s grace — reaching for coffee is fine
if (!buzz) { warns += 1; evlog->print("Slouching - sit up!"); }
buzz = true; // real: tone(BUZZER_PIN, 2000, 100);
badMin += tickMinutes; // today's slouch clock
} اللوحة — الإحصاء يثبّت العادة
الجرس يصحّح اللحظة؛ الإحصاء يغيّر العادة. مقياس زاوية حيّ، شارة Good/Slouching، دقائق الانحناء
اليوم، عدد التحذيرات ورسم اتجاه — مع العتبة كأداة number تشدّدها كلّما تحسّنت:
dash.layout("Posture", RICON_MOTION);
dash.gauge("Forward lean", &lean, 0, 60, "deg");
dash.badge("Verdict", &state).labels("Good", "Slouching", "-");
dash.stat("Slouch today", &badMin, "min");
dash.stat("Warnings", &warns, "");
dash.chart("Lean trend", &lean, "deg");
dash.layout("Settings", RICON_GAUGE);
dash.number("Threshold", &limit, 5, 40, 1); // tune the slouch angle live
dash.beginAP("RisalDash-Posture", "12345678"); المثال المرفق (examples/04_Templates/PostureMonitor) يعمل على RisalFakeIMU — ميلانه يتجوّل بين المنطقتين الجيّدة والسيّئة، فترى مؤقّت السماح والتنبيه والساعة تعمل قبل ارتداء أيّ شيء. ساحة IMU العامّة (مكعّب 3D، بوصلة، خطوات) هي قالب MotionIMU الجاهز.
جعله قابلًا للُّبس
| القطعة | ملاحظة |
|---|---|
| ESP32 (أو C3 mini) | C3 أصغر وأقلّ استهلاكًا |
| MPU6050 | I²C، مسطّحًا على أعلى الظهر / الياقة |
| جرس نشط أو محرّك اهتزاز | الاهتزاز ألطف في المكتب |
| 18650 أو Li-Po صغيرة + TP4056 | راجع دليل البطاريّات |
عايِر مرّة عند الإقلاع: خُذ متوسّط ثانية من القراءات جالسًا معتدلًا واطرح الإزاحة — فيصير «الاعتدال» اعتدالك أنت لا زاوية تثبيت الحسّاس.
شاهد حلقة التدريب تعمل على IMU وهميّ قبل أن تخيط شيئًا.