WhereisMyRide · telefon sensörleri · Ekim – Kasım 2026
Telefonumu İstanbul metrosu için bir laboratuvar aletine çevirdim.
WhereisMyRide, "trenim şu an nerede?" sorusunu yanıtlamak için bir uygulama olarak başladı — İstanbul metrosu için canlı konum yayımlanmıyor. Yanıtlamak için uygulama, ben yolculuk ederken telefonun bütün sensörlerini kaydetti. Uygulama artık bitti; zaten pek çok iyi ulaşım uygulaması var. Ama asıl ilginç kısım kayıtlar çıktı: tren koltuğundaki bir telefon tünelin tepelerini, trenin ittiği havayı ve motorlarındaki akımı görebiliyor. Bu sayfa onun gördükleri ve ham sensör okumalarından her sayıya giden matematik.
Bölüm 1 · ivmeölçer
Kayan bir sensörden hız.
Hız, ivmenin integrali. Sorun şu: telefon, trenin itişini küçük bir eğiklikten sızan yerçekiminden ayıramıyor ve bir integral hiçbir hatayı unutmuyor.
\(\delta\theta\) kadar bir eğiklik hatası, ölçülen ivmeye yerçekiminden bir dilim ekliyor:
$$\delta a = g\,\sin\delta\theta \;\approx\; g\,\delta\theta, \qquad \delta\theta = 0.1^\circ \;\Rightarrow\; \delta a \approx 0.017\ \mathrm{m/s^2} \;\Rightarrow\; \delta v \approx 1.5\ \mathrm{m/s}\ \text{after } 90\ \mathrm{s}$$Bu yüzden hata bir sapma artı yavaş bir kayma olarak modellenip, \(e(t) = c_0 + c_1 t\), integralden çıkarılıyor:
$$v(t) = A(t) - c_0\,t - \tfrac{1}{2}\,c_1\,t^2, \qquad A(t) = \int_0^{t} a_{\mathrm{m}}(\tau)\,\mathrm{d}\tau$$Aralarında \(L\) mesafe olan istasyonlar arasındaki \(T\) süreli her sefer için iki gerçek biliniyor: tren iki uçta da duruyor ve hat mesafesini kat ediyor. Bunlar \(c_0\) ve \(c_1\)'i tam olarak belirliyor:
$$v(T) = 0, \qquad \int_0^{T} v(t)\,\mathrm{d}t = L \quad\Longrightarrow\quad \begin{bmatrix} T & \tfrac{1}{2}T^2 \\[2pt] \tfrac{1}{2}T^2 & \tfrac{1}{6}T^3 \end{bmatrix} \begin{bmatrix} c_0 \\ c_1 \end{bmatrix} = \begin{bmatrix} A(T) \\ \int_0^{T} A\,\mathrm{d}t - L \end{bmatrix}$$\(|c_1|\,T\) — hatanın sefer boyunca ne kadar değişmesi gerektiği — onu notlandırıyor: \(0.15\ \mathrm{m/s^2}\) altı iyi, \(0.6\) altı kaba, üstünde telefon oynamış demektir ve sefer atılıyor. Aşağıdaki seferde değeri 0.082.
Tek sefer, aralık S5 → S6. Android'in hazır "doğrusal ivmesi", uzun ve sabit bir itişi yavaşça telefonun eğilmesi sanan bir sensör füzyonu — integrali alınınca treni başladığı yerden 6 m öteye koyuyor (mesafenin %0.3'ü). Yukarıdaki gibi sabitlenmiş ham ivmeölçer mavi çizgi.
Sınır. Sabitleme eğrinin başını, sonunu ve altındaki alanı belirliyor, şeklini değil. Hattın azami hızı 80 km/h, ama 2 aralıkta tepe bunun üstünde (88.9'a kadar) — yaklaşık %10'luk bir şekil hatası, ilk yolculuktan önce tahmin edilen ±%5–10'un tam içinde.
Bölüm 2 · jiroskop + barometre
3B tünel.
Dönüş hızı virajları, her perondaki hava basıncı yüksekliği veriyor. Birlikte tüneli yeniden kuruyorlar — kendi sayfasında, çevirebileceğin bir 3B modelle.
Jiroskop, telefonun kendi eksenlerinde dönmeyi, \(\boldsymbol{\omega}\), ölçüyor. Ölçülen "yukarı" yönüne, \(\hat{\mathbf{g}}\), izdüşürülüp tren dururken okunan sapma \(b\) çıkarılınca trenin dönüş hızı oluyor. Hızla birlikte integrali alınınca planı çiziyor:
$$\psi(t) = \int_0^{t} \big(\boldsymbol{\omega}\cdot\hat{\mathbf{g}} - b\big)\,\mathrm{d}\tau, \qquad x(t) = \int_0^{t} v\cos\psi\,\mathrm{d}\tau, \qquad y(t) = \int_0^{t} v\sin\psi\,\mathrm{d}\tau$$Yükseklik hidrostatikten geliyor; yalnızca peronun durgun havasında okunuyor:
$$\Delta h = -\frac{\Delta p}{\rho\,g}, \qquad \rho \approx 1.2\ \mathrm{kg/m^3} \;\Rightarrow\; 1\ \mathrm{m} \leftrightarrow 11.8\ \mathrm{Pa}$$Virajlar çoğu aralıkta haritayla yaklaşık 1° içinde örtüşüyor; istasyon yükseklikleri 0.6 m içinde tekrarlanıyor; tünel üstündeki tepeleri izliyor.
Bölüm 3 · barometre
Tünelde Bernoulli.
Barometre neden yalnızca peronda okunuyor? Çünkü tren hareket ederken vagondaki basınç herhangi bir tepeden daha fazla oynuyor. Bu oynama gürültü değil — trenin hızını izliyor.
Hareket eden trenin yanından akan havanın bir dinamik basıncı, \(q\), var. Bernoulli'ye göre daha hızlı hava daha düşük statik basınç demek; yani vagonun basıncı \(q\) ile orantılı düşmeli:
$$q = \tfrac{1}{2}\,\rho\,v^2, \qquad p_{\mathrm{car}}(t) - p_{\mathrm{line}}(t) \;\approx\; -\,C\,q(t)$$Burada \(p_{\mathrm{line}}\), iki peron okuması arasındaki düz çizgi. Hattın azami hızında \(q\) zaten 296 Pa — 25 m yüksekliğe eşit. İstasyonlar arasındaki eğim bu yüzden hareket eden bir trende barometreden okunamıyor.
Yukarıdakiyle aynı sefer. Bu seferdeki korelasyon: −0.71.
Kontrol. Her sefer durarak başlayıp durarak bitiyor, arada bir tümsek var; yani tümsek biçimli her şey korele çıkardı. 12 temiz seferde düşüş \(q\)'yu medyan −0.63 korelasyonla izliyor; düz bir tümsek için bu −0.32. Tümsek şekli çıkarılınca \(q\) yine −0.74 veriyor. Belirleyen hız.
Sınır. \(C\) seferden sefere değişiyor (korelasyonda −0.92 ile −0.16 arası): trenin tünellere girip çıkarken yarattığı basınç dalgaları, diğer trenler ve açık havalandırma bacaları kendi oynamalarını ekliyor.
Bölüm 4 · manyetometre
Motorları okuyan pusula.
Motorlar vagondaki kablolardan yüzlerce amper çekiyor. Akım manyetik alan yaratır — ve telefonun pusulası o alanın içinde.
Uzun düz bir \(I\) akımının \(r\) uzaklıktaki alanı:
$$B = \frac{\mu_0\, I}{2\pi\, r}, \qquad \mu_0 = 4\pi\times10^{-7}\ \mathrm{T\,m/A}$$Besleme gerilimi \(U\) sabit; bu yüzden akım motorların verdiği gücü izliyor ve güç, kuvvet çarpı hız:
$$I = \frac{P}{U} = \frac{F\,v}{U}, \qquad F \approx m\,a \quad\Longrightarrow\quad B \;\propto\; a\,v$$Çekişteki tipik tepe 158 µT — Dünya'nın alanının üç katından fazla. Kabloların \(r \approx 1\) m uzakta olduğu varsayılırsa (bir varsayım; gerçek geometri bilinmiyor) bu, şu mertebede bir akım:
$$I = \frac{2\pi\, r\, B}{\mu_0} \approx \frac{2\pi \times 1\ \mathrm{m} \times 158\ \mu\mathrm{T}}{4\pi\times10^{-7}\ \mathrm{T\,m/A}} \approx 800\ \mathrm{A}$$Aynı sefer. Tren frenlediğinde alan negatife dönüyor: akım ters yöne akıyor, yani motorlar jeneratör olarak çalışıyor. Bu enerjinin hatta mı yoksa trendeki dirençlere mi gittiğini bir pusula söyleyemez.
Kontrol. \(B \propto a\,v\) ise alan gücü yalnız ivmeden daha iyi izlemeli. 12 seferde: \(a\,v\) ile medyan korelasyon 0.85, \(a\) ile 0.75; güç 12 seferin 10'unda önde.
Sınır. Akım tahmini bir mertebe: \(r\) tahmin edildi ve kablolar tek bir düz tel değil. \(F \approx m\,a\) ayrıca eğimi ve yuvarlanma direncini yok sayıyor.
Bölüm 5 · enerji ve konfor
Frenler, yerçekimi ve konfor.
A ve B istasyonlarındaki iki duruş arasında motorların verdiği her şey, artı kaybedilen yükseklik, frenlerden ve dirençten çıkmak zorunda:
$$W_{\mathrm{brakes}} + W_{\mathrm{drag}} = W_{\mathrm{motors}} + m\,g\,(h_A - h_B)$$En dik inişte yalnızca bu yükseklik trenin her kilogramı için 398 J. Eğim düzgünse çoğu son duruşa düşüyor; frenleme başladığı andaki hareket enerjisinin, \(\tfrac{1}{2}v^2\), üstüne.
Sürüş konforu ISO 2631-1'e göre: her eksen bir frekans ağırlığıyla süzülüyor — yatayda \(W_d\), dikeyde \(W_k\) — sonra birleştiriliyor:
$$a_w = \sqrt{\frac{1}{T}\int_0^{T} a_W^2(t)\,\mathrm{d}t}, \qquad a_v = \sqrt{a_{w,x}^2 + a_{w,y}^2 + a_{w,z}^2}$$Tünel sayfasında: yerçekiminin bedavaya frenlediği yerler ve frenlerin trenin hareket enerjisinin neredeyse iki katını emdiği yer.
Tahminler, notlandırılmış
İlk yolculuktan önce veri sayfalarından yazıldı. Sonra yolculuklar notlandırdı.
İlk kayıttan önce her sensörün neyi çözebilmesi gerektiğini tipik veri sayfası değerlerinden yazdım. Bunlar verinin notlandırabildikleri.
| Sensör | Tahmin | Ölçülen | Not |
|---|---|---|---|
| İvmeölçer | Hız ±%5–10 içinde, Android'in sensör füzyonu yüzünden muhtemelen düşük | Füzyon itişin neredeyse tamamını yuttu (1,937 m'nin 6 m'si); ham + sabitleme çalışıyor, tepeler ~%10 yüksek | doğru, daha da kötü |
| Jiroskop | Virajlar evet, harita doğruluğu hayır: aralık başına 1–4,5° kayma, 10–60 m yanal | Sapma dururken okununca 8 aralığın 6'sında dönüşler yaklaşık 1° içinde; en kötü haritadan 30–130 m uzak | doğru |
| Barometre, dururken | İstasyon yükseklik farkları yaklaşık 0,5 m'ye kadar | Ayrı yolculuklarda 0.6 m içinde tekrarlanıyor | doğru |
| Barometre, hareket hâlinde | Eğimi değil tünel aerodinamiğini ölçer (20 m/s'de \(q \approx 240\) Pa) | Düşüş \(\tfrac{1}{2}\rho v^2\)'yi izliyor — medyan korelasyon −0.63 | doğru |
| Manyetometre | Çekiş akımı görünür, gürültünün 100 katı üstünde | ~0,2 µT gürültüye karşı 217 µT'ye kadar; gücü izliyor | doğru |
| Konfor (ISO 2631) | Yalnızca aynı telefon konumunda karşılaştırılabilir | Test edilmedi — hiçbir yolculuk aynı anda iki konumda kaydedilmedi. Kural olarak korundu: konfor yalnızca telefon aynı konumdayken karşılaştırılıyor | test edilmedi |
Burada olmayanlar
Gizlilik ve dışarıda bıraktıklarım.
Bunlar kendi yolculuklarım. İstasyon adları, tarihler ve bir aralıktan ne sıklıkla geçtiğim nereye gittiğimin kaydına dönüşürdü; bu yüzden sayfalar yalnızca ölçümleri tutuyor: istasyonlar numaralı, sayılar seferler üzerinden toplanmış ve uygulamanın yaptığı otobüs, yürüyüş ve Bluetooth kayıtları gizli kalıyor.
Neden bitti
Uygulama bitti. Asıl mesele ölçümlerdi.
Pek çok iyi ulaşım uygulaması var ve onlarla yarışmak zaman harcamak istediğim şey değildi. İstediğim, her gün kullandığım bir sistemi cebimdeki araçlarla parçalarına ayırmaktı — ve telefon şaşırtıcı derecede iyi bir laboratuvar çıktı.