RisalDash RisalDash

Loyiha · Kiyiladigan · MPU6050

Bukchayganingizda signal beradigan kiyiladigan gadjet

Hamma bukchayadi; buni oʻzida hech kim sezmaydi. Yelka ortidagi $2 lik MPU6050 siz uchun sezadi: gravitatsiyaga nisbatan oldinga egilish burchagini oʻlchaydi, besh soniya muhlat beradi, keyin toʻgʻrilanguningizcha gʻoʻngʻillaydi — va bugun necha daqiqa bukchayib oʻtirganingizni halol sanaydi.

LoyihaKiyiladiganMPU6050ESP32
ESP32 qomat monitori loyihasi: egilish burchagi, zummer va statistika bilan MPU6050 wearable

Burchak — transportir vazifasini gravitatsiya bajaradi

Qomat uchun gyro-fusion kerak emas: oldinga egilganda gravitatsiyaning akselerometr oʻqlaridagi proyeksiyasi siljiydi, bitta atan2 buni vertikaldan gradusga aylantiradi. Qizigʻi — murabbiy mantigʻida: chegara, grace-taymer (kofega intilish signalga sabab emas), eslatma va bukchayish hisoblagichi:

// 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
}

Dashboard — statistika odatni mustahkamlaydi

Zummer lahzani tuzatadi; statistika odatni oʻzgartiradi. Jonli burchak shkalasi, Good/Slouching beyji, kunlik bukchayish daqiqalari, ogohlantirishlar soni va trend grafigi — ustiga number vidjeti sifatida chegara: progress sari qoidani qattiqlashtirasiz:

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");

Kutubxonadagi namuna (examples/04_Templates/PostureMonitor) RisalFakeIMU’da ishlaydi — uning pitch’i yaxshi va yomon zonalar orasida yuradi, shuning uchun grace-taymer, signal va hisoblagich biror narsa taqishdan oldin koʻrinadi. Umumiy IMU maydonchasi (3D kub, kompas, qadamlar) — tayyor MotionIMU shabloni.

Kiyiladigan qilish

QismIzoh
ESP32 (yoki C3 mini)C3 kichikroq va tejamkorroq
MPU6050I²C, yelka ortiga / yoqaga tekis
Aktiv zummer yoki vibromotorofisda vibratsiya odobliroq
18650 yoki kichik Li-Po + TP4056batareya qoʻllanmasi

Startda bir marta kalibrlang: toʻgʻri oʻtirgan holda bir soniyalik oʻqishlarni oʻrtachalab, shu siljishni ayiring — shunda «vertikal» sensorning oʻrnatish burchagi emas, sizning vertikalingiz boʻladi.

Biror narsa tikishdan oldin murabbiy ishlashini fake IMU’da koʻring.