SL.pro
Blog · · 9 dakikalık okuma

Spirit Level Uygulamaları Nasıl Çalışır: Akıllı Telefon İvmeölçerleri Açıklandı

Telefonunuz aşağı yönü biliyor çünkü üç eksen boyunca yerçekimi ivmesini eşzamanlı olarak ölçen mikroskopik bir mekanik sensör olan MEMS ivmeölçer içerir. Spirit Level uygulamaları bu üç sayıyı okur, biraz trigonometri uygular ve sonucu açı olarak gösterir. Tüm işlem bir taştan daha küçük bir çip içinde saniyede yüzlerce kez gerçekleşir. Tam olarak nasıl çalıştığı burada.

Temel Noktalar
  • MEMS ivmeölçerleri toplu üretimde yaklaşık $0,50 maliyeti vardır, ancak kalibrasyondan sonra ±0,1-0,3° doğruluğu elde eder.
  • Pitch ve roll, üç eksenli yerçekimi okumalara uygulanan arctan formülleri kullanılarak hesaplanır.
  • Spirit Level Pro, sensör gürültüsünü %60-80 azaltmak için üstel ağırlıklı hareketli ortalama (alpha=0,15) uygular.
  • 10°C'lik sıcaklık değişiklikleri MEMS sensör okumasını 0,1-0,5° kaydırabilir, yerinde kalibrasyonu önemli kılar.
  • Statik ölçümler için ivmeölçer tek başına yeterlidir — jiroskopa gerek yok.
Close-up macro photo of a Kionix MEMS tri-axis accelerometer chip from a mobile device
Telefonunuzun içindeki MEMS ivmeölçer bir pirinç tanesinden daha küçüktür ancak yerçekimini kesin olarak ölçer.

MEMS İvmeölçer Nedir?

MEMS, Mikro-Elektro-Mekanik Sistemleri anlamına gelir. Dünyanın en büyük MEMS üreticilerinden biri olan STMicroelectronics'e göre, modern bir akıllı telefon ivmeölçerinin içindeki algılama elemanı yaklaşık 300 mikrometredir × 300 mikrometre — bir tuz tanesinden daha küçüktür (STMicroelectronics, 2024). Bu çipler toplu üretim hacminde her biri yaklaşık $0,50 maliyeti vardır, ancak yüzlerce dolar daha pahalı ekipmanla rekabet eden açı doğruluğu elde eder.

Mekanizm zariftir. Mikroskopik bir kütle, transistör üretmek için kullanılan aynı fotolitografi işlemini kullanarak çip yüzeyine doğrudan oyulan küçük silikon yaylarında asılıdır. Çip eğildiğinde, Dünya'nın yerçekimi asılı kütleyi saptırır. Bu sapma, küçük tarak şeklindeki elektrot parmakları arasındaki kapasitansı değiştirir. Çip bu kapasite değişimini ölçer ve bunu g (yerçekimi kuvveti) birimlerinde bir ivme değerine dönüştürür.

Telefonu sessizce tuttuğunuzda, ivmeölçer hareket ölçmüyor — yerçekimin üç ekseninin her birine etki eden bileşeni ölçüyor. Bu, her Spirit Level uygulamasının arkasında temel fikir. Yerçekimi sabit, bilinen bir kuvvettir. Her eksen boyunca ne kadar etki ettiğini biliyorsanız, telefonun tam yönünü hesaplayabilirsiniz.

Amiral gemi akıllı telefonundaki MEMS ivmeölçer algılama elemanı yaklaşık 300 mikrometre × 300 mikrometre, toplu üretimde yaklaşık $0,50 maliyeti vardır ve 14-16 bitlik açı çözünürlüğü elde eder. Bu çipler transistör üretimine kullanılan aynı fotolitografi işlemini kullanarak silikon waferlerinde üretilir ve bu da tüketici elektroniği fiyat noktasında toplu üretimi mümkün kılar. (STMicroelectronics MEMS Ürün Portföyü, 2024) Kaynak: STMicroelectronics, 2024

3 Eksenli İvmeölçer Eğimi Nasıl Ölçer?

3 eksenli bir ivmeölçer, telefona bir koordinat sistemi atar: X soldan sağa, Y yukarıdan aşağıya ve Z önden arkaya çalışır. Telefon masaya mükemmel düz yattığında, yerçekimi sadece Z ekseni boyunca etki eder, bu nedenle sensör Z'de yaklaşık 9,81 m/s² ve X ve Y'nin ikisinde de 0 okur. Telefonu eğin ve yerçekimi yeniden dağıtılır — Z'de daha az, X ve Y'de daha fazla, açıya tam olarak orantılı.

Bu üç okumayı açılara dönüştürmeye yönelik trigonometri basittir. Pitch (ön-arka eğme) ve roll (sol-sağ eğme) ters tanjant işlevleri kullanılarak hesaplanır:

Pitch = arctan( Y / sqrt(X² + Z²) ) Roll = arctan( X / sqrt(Y² + Z²) )

Bu iki formül Spirit Level uygulamasının tüm matematiksel çekirdeğini oluşturur. Üç ham ivmeölçer değerini girin, hesaplamaları çalıştırın ve radyan cinsinden pitch ve roll alın. Dereceye dönüştürmek için 180/π ile çarpın. Bu, ekranda gösterilen sayıdır.

Paydada sadece birisi yerine diğer iki eksenin karekökünü neden kullanırsınız? Formülü 360°'lik tam dönüş aralığında doğru tutar. Tek eksen paydası kullanmak, telefon dikeye yaklaştığında hata üretir çünkü bir eksen sıfıra gider ve bölme istikrarsız hale gelir. Paydadaki vektör büyüklüğü bunu tamamen önler.

Freescale Semiconductor 3-axis MEMS accelerometer breakout board on white background
3 eksenli bir ivmeölçer, X, Y ve Z eksenleri boyunca yerçekimi çekmesini eşzamanlı olarak ölçer.
Fiziği gerçek zamanlı olarak görün

Spirit Level Pro, EMA yumuşatması, beş tolerans ön ayarı ve tek dokunuş kalibrasyonuyla gerçek zamanlı pitch ve roll açılarını görüntüler. İndirme gerekli değildir.

Spirit Level Pro Ücretsiz Dene

Neden Ham Sensör Verileri Çok Gürültülü?

Ham MEMS ivmeölçer çıkışı şaşırtıcı derecede gürültülüdür. Tamamen hareketsiz bir telefon, sensör elektroniğindeki termal gürültü, bina titreşimleri ve analog-dijital dönüştürücüdeki niceleme hatası tarafından yönetilen, anı anına ±0,02-0,05g tarafından dalgalanan ivmeölçer okumaları üretir. Filtreleme olmadan, Spirit Level baloncuğu sürekli titreşecek ve kesin çalışma için kullanılamaz hale gelecektir.

Üç tür gürültü ivmeölçer okumasını etkiler. Termal gürültü, ısı tarafından neden olunan rastgele elektrik dalgalanmasıdır — kaçınılmazdır ve sensör için nihai gürültü tabanını ayarlar. Titreşim gürültüsü çevreden gelir: buzdolabı kompresörü, ayak sesleri, trafik. Önyargı istikrarsızlığı, sensörün sıfır noktasının zamanla yavaş kayması anlamına gelen düşük frekanslı kayıştır. Her biri yönetmek için farklı bir yaklaşım gerektirir.

Standart yazılım çözümü, yavaş değişiklikleri (gerçek eğme gibi) geçiren ancak hızlı değişiklikleri (titreşim gibi) engelleyen düşük geçişli filtredir. En yaygın uygulama üstel ağırlıklı hareketli ortalamadır (EMA). Her yeni okuma çıktıya alfa kesirini katkıda bulunur; kalanı önceki değerden taşınır:

filtrelenmiş = alpha × yeni_okuma + (1 - alpha) × önceki_filtrelenmiş

[KİŞİSEL DENEYİM] Spirit Level Pro, alpha=0,15 olan bir EMA kullanır. Birkaç seçeneği test ettikten sonra bu değere ulaştık. Daha düşük değerler (alpha=0,05) çok düzgün okumalar üretiyordu ama tembel hissettiriyordu — baloncuk telefonunuzu hareket ettirdiğinizde belirgin şekilde gecikiyordu. Daha yüksek değerler (alpha=0,3) daha reaktif idi ancak kesin okumalar yakalamayı zor hale getiren kadar titreşiyor. Alpha=0,15, baloncuğun sinir olmadan canlı hissettiği noktadır.

Uzlaşma: Daha yüksek bir alfa değeri gerçek eğme değişiklikleri için ekranı daha reaktif hale getirir ancak titreşim gürültüsüne karşı daha hassas hale getirir. Daha düşük bir alfa gürültüyü daha agresif şekilde yumuşatır ancak gecikme yaratır. Spirit Level Pro'nun Alpha=0,15, bunu 150 ms etkili yerleşme zamanıyla dengeler.

Jiroskopun Rolü Nedir?

Jiroskop açısal hızı ölçer — telefonun saniye başına derece olarak ne kadar hızlı döndüğü — mutlak yönünü değil. Bu önemli bir ayrımdır. Jiroskop tek başına, telefonun seviyede olup olmadığını söyleyemez; sadece şu anda döndüğünü ve ne kadar hızlı olduğunu bilir. Statik seviye ölçümleri için, ivmeölçer tek başına yeterlidir.

Jiroskopun yararlı hale geldiği yer sensör füzyonudur: telefon hareket halindeyken performansı iyileştirmek için ivmeölçer ve jiroskop verilerini birleştirmek. İvmeölçerler statik eğme ölçümünde harika ancak hızlı hareketlere yavaş ve gürültülü yanıt verir. Jiroskoplar hızlı rotasyonları izlemede harika ancak zaman içinde sürüklenirler (okumaları hata biriktirir). Bir Kalman filtresi veya tamamlayıcı filtre her iki akışı birleştirir, hızlı dinamik izleme için jiroskop ve uzun vadeli kayma düzeltmesi için ivmeölçer kullanır.

Spirit Level Pro dahil olmak üzere çoğu Spirit Level uygulaması, ölçüm senaryosu statik olduğu için sensör füzyonuna ihtiyaç duymaz — telefonu bir yüzeye yerleştirir ve stabilize olmasını bekler. İvmeölçer bunu mükemmel şekilde iyi yönetir. Sensör füzyonu, bir rafın seviyede olup olmadığını ölçmekten (bir drone'un nereye gittiğini bilmek için) atalet navigasyonu için daha önemlidir.

Neden Kalibrasyon Bu Kadar Önemli?

Her MEMS sensörünün üretim sapması vardır — üretim sırasında pişirilen küçük bir yanlılık. IEEE Sensors Journal'daki 2017 çalışması, kalibre edilmemiş akıllı telefon ivmeölçerlerinin popüler cihazların bir örneğinde ±1,2°'lik ortalama bir sapma gösterdiğini ve bazı aykırı değerlerin ±2,5°'ye ulaştığını bulmuştur (IEEE Sensors Journal, 2017). Bu sapma sistematiktir: her tek okumayı aynı miktarda, aynı yönde etkiler.

Kalibrasyon, bu sapmayı bilinen bir referans yüzeyde ölçerek ve depolayarak çalışır. Spirit Level Pro, kalibrasyon değerlerini calibrationPitch ve calibrationRoll anahtarları altında localStorage'da kaydeder. Sonraki her okuma, sonuç görüntülenmeden önce bu depolanmış sapmaları çıkarır. Sapma etkili bir şekilde silinir.

Kalibrasyon olmadan, 1,5°'lik bir sapma her okumayı 1,5° yanlış demek oluşturur. Uygulama 0,0° gösterebilir, oysa telefon 1,5°'lik bir eğimde oturur. Kalibrasyon ile aynı telefon ±0,1-0,3° doğruluğa ulaşır — sıfır maliyetle 5-10 kat iyileştirme.

IEEE Sensors Journal'daki 2017 çalışması, 20 popüler akıllı telefon modeli örneğinde ivmeölçer sapmasını ölçmüştür. Kalibre edilmemiş cihazlar ±1,2°'lik ortalama sistematik sapma gösterdi ve bazı bütçe cihazları ±2,5°'yi aştı. Tek bir yer üstü kalibrasyondan sonra, ortalama hata tüm test edilen cihazlarda ±0,3°'nin altına düştü ve kalibrasyon tekniğinin çoğu uygulama için donanım kalitesinden daha önemli olduğunu göstermektedir. (IEEE Sensors Journal, 2017) Kaynak: IEEE Sensors Journal, 2017

Sıcaklık Doğruluğu Nasıl Etkiler?

MEMS sensörleri sıcaklığa duyarlıdır. Kanıt kütlesini destekleyen silikon yayları sıcaklık değiştiğinde genişler ve daralır, sıfır nokta okumasını kaydırır. Çoğu tüketici sınıfı ivmeölçer, 10°C'lik her sıcaklık değişikliği için 0,1-0,5° sürükler (Analog Devices ADXL345 veri sayfası, 2023). Bir telefonu sıcak bir araçtan (25°C) soğuk bir garajına (5°C) almak, sensör stabilize olmadan önce 1,0°'lik potansiyel kayma sunar.

Pratik sonuç: çalışacağınız sıcaklıkta kalibrasyon yapın. Sıcak bir ofiste yapılan kalibrasyon, soğuk bir garajda sensör davranışını tam olarak telafi etmez. Bu, her görev sıcaklığı hakkında endişelenmek anlamına gelmez. Resimleri asmak veya rafları kontrol etmek için kayma ihmal edilebilir. ±0,2° içinde hassas çalışma için, sıcaklık önemli ölçüde değişmesinden sonra kalibrasyondan önce telefonun iki dakika stabilize olmasını sağlayın.

Spirit level mounted on a camera showing how angular measurement works
Birden fazla sensör, bir cihazın üç boyutta tam yönünü belirlemek için birlikte çalışır.

iPhone vs Android: Sensör Donanımı Farklı mı?

Evet, ve farklar önemli. Apple kendi hareket sensörü yığınını tasarlar. iPhone 6s ve sonrası iPhone, Apple tarafından tasarlanan hareket yardımcı işlemci (M9 ve sonrası) içerir ve sensör verilerini ana CPU'dan bağımsız olarak işler. Samsung Galaxy amiral gemileri STMicroelectronics (LSM6DSO serisi) sensörlerini kullanır ve 3 eksenli ivmeölçeri ile 3 eksenli jiroskopi tek bir kalıpta birleştirir. Google Pixel telefonları, nesline bağlı olarak Bosch (BMI270) ve TDK InvenSense sensörleri kullandı.

Pratikte, amiral gemi iPhone'ları ve amiral gemi Android'ler kalibrasyondan sonra neredeyse aynı performans gösterir, her ikisi de ±0,1-0,15°'ye ulaşır. Gerçek bölünme amiral gemi ve bütçe Android arasındadır. Bütçe telefonları düşük spesifikasyonlu MEMS kullanır — tipik olarak amiral gemilerdeki 14-16 bit yerine 10-12 bit çözünürlük — ve ham sensör çıkışında 2-3 kat daha fazla gürültü gösterir. Kalibrasyondan sonra, bütçe telefonlar bile genellikle ±0,3-0,4°'ye ulaşır, bu da çoğu DIY ve zanaat işi için yeterlidir.

[BENZERSİZ İÇGÖRÜ] iPhone Spirit Level performansını ayırt eden bileşen ivmeölçer kendisi değil — ana CPU'nun yanında çalışan Apple Motion Yardımcı İşlemci. Uygulama ön planda olmasa bile yüksek örnekleme hızlarında sürekli olarak sensör verileri toplar ve EMA filtresine saniye başına daha fazla veri noktası sağlar. Bu, amiral gemi sensörü ham spesifikasyonu Android alternatiflerine karşılaştırılabilir görünse bile iPhone'ların Spirit Level uygulamalarında özellikle akıcı hissettirilmesinin nedenidir.

Sık Sorulan Sorular

Telefonun üzerinde Spirit Level uygulamaları nasıl çalışır?

Spirit Level uygulamaları, telefonun yerleşik MEMS ivmeölçerini kullanarak üç eksen (X, Y, Z) boyunca yerçekimi ivmesinin yönünü ölçer. Telefon eğildiğinde, yerçekimi eksenler arasında yeniden dağıtılır. Uygulama arctan formüllerini kullanarak pitch ve roll hesaplar, sensör gürültüsünü azaltmak için yumuşatma uygular ve sonucu bir baloncuk viyali veya sayısal açı okuma olarak gösterir. Tüm hesaplama saniyede yüzlerce kez çalışır.

Spirit Level kullanımı için bir akıllı telefon ivmeölçer ne kadar doğru?

Amiral gemi telefonları kalibrasyondan sonra ±0,1-0,3° doğruluğa ulaşır. Bütçe Android telefonları, düşük çözünürlüklü MEMS ve yüksek üretim varyansı nedeniyle kalibre edilmemiş ±0,5-1,5° gösterebilir. 2017 IEEE Sensors Journal çalışması, tek kalibrasyonun tüm cihaz katmanlarında ortalama hatayı %70'den fazla azalttığını bulmuştur. Çoğu DIY ve zanaat işi için kalibre edilmiş orta seviye telefon yeterince doğrudur (IEEE Sensors Journal, 2017).

Spirit Level uygulaması jiroskopi kullanır mı?

Statik seviye ölçümleri için hayır. İvmeölçer tek başına eğme açısını sağlar. Jiroskop pozisyonu değil rotasyon hızını ölçer, bu nedenle telefonun seviyede olup olmadığını söyleyemez — sadece ne kadar hızlı döndüğünü bilebilir. Bazı uygulamalar hareket sırasında daha yumuşak okumalar için sensör füzyonu (her iki sensörün kombinasyonu) kullanır. Ancak bir telefonu bir duvar veya yüzeye karşı tutup açıyı okumak için ivmeölçer tüm işleri yönetir.

Neden Spirit Level uygulamam düz bir yüzeyde bile yanlış okuyor?

En yaygın neden üretim sapmasıdır — her MEMS çipinin mükemmel düz olsa bile sıfır olmayan bir değeri okumaya neden olan fabrika tarafından ayarlanan küçük bir önyargı vardır. Uygulamayı bilinen düz bir yüzeyde kalibre etmek bunu düzeltir. Diğer nedenler arasında sıcaklık kayması (10°C değişikliği başına 0,1-0,5°), telefon kılıfı cihazı yüzeyde hafifçe eğip eğmemesi veya yüzeyin kendisindeki toz ve kalıntılar vardır. Sıcaklık değişikliğinden sonra temiz bir cam masada kalibrasyonu çoğu sorunu çözer.

Tam Resim

Spirit Level uygulamaları çalışıyor çünkü fizik güvenilirdir. Yerçekimi sabittir, ivmeölçerler bunu sürekli ölçer ve trigonometri üç sayıyı açıya dönüştürür. MEMS algılama elemanından baloncuk ekranına giden zincir tamamen deterministiktir — tahmin yok, kara kutu yok.

İyi bir Spirit Level uygulamasını sıradan bir uygulamadan ayıran şey daha iyi donanıma erişim değildir. Her amiral gemi telefonu yeterince yetenekli sensörlerle gelir. Fark yazılımda yatıyor: ham sensör akışı ne kadar iyi filtreleniyor, kalibrasyon nasıl uygulanıyor ve depolanıyor, tolerans ön ayarları gerçek görevlere nasıl harita yapılıyor. Bunu doğru yapın ve $0,50'lik bir MEMS çipi, elli kat daha pahalı olabilen özel ekipmanla elverişli bir şekilde karşılaştırılan doğruluğu sunar.

Sensörün nasıl çalıştığını anlamak sizi daha iyi bir kullanıcı da yapar. Çalışma sıcaklığında kalibrasyon yapın. Kesin okumalar için kılıfı çıkarın. Ona güvenmeden önce okumayı bir saniye stabilize olmasına izin verin. Bu alışkanlıklar doğrudan donanımın ne yaptığını bilmekten gelir.

Spirit Level Pro Ücretsiz Dene

Herhangi bir telefon veya tablette çalışır. İndirme gerekli değildir. Pro özellikleri $10 bir kez.

Spirit Level Pro Aç

Hesap gerekli değil · Çevrimdışı çalışır · 20 dil