Magnetometer verileri

Başlatan Gökhan BEKEN, 15 Ağustos 2014, 17:00:51

Gökhan BEKEN

3 eksenli bir magnetometre'ye neden ihtiyaç olur bilmiyorum ama elimdeki sensörde 3 eksenli manyetometre var. Benim amacım yön algılamak, cep telefonumdaki pusula uygulamasına baktığımda 0 derece ile 359 derece arasında değişen bir değer görüyorum, kuzeye bakarken 0 dereceyi gösteriyor, tam böyle birşey yapmak istiyorum.

Elimdeki sensörde duruma göre -150 civarlarına kadar düşebilen, 150 civarlarına kadar çıkabilen x, y ve z değerleri görüyorum.

Bu değerleri nasıl hesaplamalıyım ki, cep telefonundaki gibi kuzey ile arasındaki dereceyi versin?
Özel mesaj okumuyorum, lütfen göndermeyin.

Tagli

Manyetik alanı bir vektör gibi düşün. Bu alan, sensörün yönelimine göre her eksen üzerine farklı biniyor. İzdüşüm olayı yani. Senin elinde izdüşümler var. Bunlardan asıl vektörü bulmaya çalışıyorsun.
Gökçe Tağlıoğlu

Gökhan BEKEN

@tagli hocam, aynen dediğin gibi,
Az önce, x verilerini 3d bir cisim aktardım, sensör eğildikçe yanlış sonuçlar veriyor, çünkü eğdikçe ölçülen manyetik alanda düşüyor. Aynısını y ekseninde de gözlemledim.
Bu 3 veriye bir formül ile hesaplayarak gerçek açıyı ancak öyle öğrenebilirim sanırım.
Nasıl bir formül kullanmalıyım?
Özel mesaj okumuyorum, lütfen göndermeyin.

Kabil ATICI

#3
manyetik alan=(x^2+Y^2+Z^2)karekök

ivme hesapları için kullanılan formülleri aynen burada da kullanabiliyorsun.
Sonuçta vektörler aynen geçerli..

kullandığın sensörün üreticisi veri kağıtlarında gerekli hesaplamalarla ilgili  örnekler olabilir.

Z yönündeki manyetik alanı hesaba katmamaya çalış, topraktaki demir yüzünden z yönünde'de dünyanın manyetik alanına ek bir alan vardır ve toprak yapısına göre değişiklik gösterir.
ambar7

berat23

"magnetic headin calculation", "magnetometer calibration" diye ararsan çok fazla örnek bulursun.

eğer yere hep paralel olduğunu garantileyebiliyorsan hesap basit, arctan(y,x) kuzeye olan açıyı verir. ama böyle birşey mümkün değil, o yüzden roll pitch açılarını bilmen gerekir ki düzeltme yapasın. bu açılarla birbirleri üzerindeki bileşenlerini bulup vektörü döndüreceksin sonuçta yere pararlel olan xy bileşenin kalacak, sonrası yine arctan. işin kalibrasyon kısmına hiç girmedim, orası şimdiden epey karışık gelebilir.

bildiğim bir konu, her seviyede yardımcı olabilirim ama anlatması uzun olur. takıldığın yerlerde yardım ederim.

Gökhan BEKEN

Teşekkür ederim hafta içi dediklerinizi yaparım. Ambar7 hocam o formülü denedim ama yerle paralel olmadigi zaman düzgün çalışmadı. Bir de belli bir araligi geçince yanlis aci veriyordu.
Özel mesaj okumuyorum, lütfen göndermeyin.

Kabil ATICI

o iki eksenli bir sistem içindi. Bulunduğum ortam manyetik alan açısından baya kirli bir ortama dışarıda deneme şansım olmadı. Hata yapmış olabilir. Üç aşağı beş yukarı olayı fikir sahibi olma açısından yeterlidir. manyetik alan sensör sistemini test etmek içindi.

Elinizde sensörü bilmiyorum ama telefonunki ile karşılaştırıyorsanız, elinizdeki sensör fazla hassas ise olabilir. Bulunduğunuz ortamdaki manyetik alan kaynaklarla etkileşime girme şansı yüksektir. Telefondaki sistemde otomatik manyetik alan karşılama sistemi olabilir.
ambar7

Gökhan BEKEN

Hocam şunu merak ettim, benim sensör, tam gözlemleyemedim ama gördüğüm kadarıyla -150 lerden +150'lere kadar değer üretiyor. Sonucun yanlış çıkmasının sebebi bu olabilir mi?  Sizin kullandığınız sensörün verdiği değerler de böyle miydi?
Özel mesaj okumuyorum, lütfen göndermeyin.

Kabil ATICI

Sonucun yanlış çıkması ortamdaki manyetik olan, hatta sensörün civarındaki bile olabilir.  Oturduğunuz evde komşunun çamaşır makinesi, buzdolabı, gibi aletlerin çalışması, evin metal iskeleti ,evin yakınında trafo bulunması gibi ortamdaki değişik yapılar sensör hassas ise  ölçüm sonucunu fazlasıyla etkileyebilir.
ambar7

Gökhan BEKEN

Alıntı yapılan: berat23 - 15 Ağustos 2014, 19:50:17
eğer yere hep paralel olduğunu garantileyebiliyorsan hesap basit, arctan(y,x) kuzeye olan açıyı verir.
Yere paralel iken yön olarak en yakın sonucu bu şekilde aldım.
pusulaDerece=atan2(magY,magX) * 180 / PI;
Çevirdikçe mantıklı bir şekilde açı üretiyor, tek sorun yönler tutmuyor, mesela kuzeydeyken 82 derece gösteriyor. Ama diğer formüllerde, hep aynı yöne çevirmeme ramen bazı açı aralıklarda düz, bazı aralıklarda tersi yönde yönde dönüyordu.


Alıntı yapılan: berat23 - 15 Ağustos 2014, 19:50:17
roll pitch açılarını bilmen gerekir ki düzeltme yapasın. bu açılarla birbirleri üzerindeki bileşenlerini bulup vektörü döndüreceksin sonuçta yere pararlel olan xy bileşenin kalacak, sonrası yine arctan. işin kalibrasyon kısmına hiç girmedim, orası şimdiden epey karışık gelebilir.
roll ve pitch açılarım mevcut hocam, nasıl düzeltebilirim, biraz daha aydınlatır mısınız?

@ambar7 hocam sizin formülün sonunda * 180 / PI    kısmı var mıydı?
Özel mesaj okumuyorum, lütfen göndermeyin.

Kabil ATICI

#10
aşağı yukarı. 2PI bölüp 360 ile çarpmıştım. sadeleştirirsek aynı kapıya çıkar. bu radyan-derece çevirme işi zaten.
Veri kağıdının 51. sayfasında düzeltme ile ilgili bir hesap var.  Orada her eksen için bir sabit var bu sabite göre   okunan değerin düzeltilmesi gerekebilir. Siz bu sabitleri okudunuz mu bilmiyorum, eğer değerler aynı değilse ölçüm hatası olur. (özellikle x ve Y için)

döndürmeye çalışmak yerine eline bir mıknatıs al ve onu sensör etrafınde döndür ve açı değeri nasıl değişiyor. bu şekilde 360 derece tur atıyorsa, kartın dünyanın  manyetik alanı izlemesine engelleyen bir durum olabilir. Burada bir sorun varsa o zaman durum okuma veya değerlendirme bölümünde bir sıkıntı var. Mıknatısı çok fazla yaklaştırma bazı durumlarda manyetik sensörler kilitlenebiliyor.
ambar7

gumush

Tilt compensation yapmaniz gerek , gomulu tilt compansated modeller zaten oldukca pahallidir.

HMC6343 gibi .
Hikmet Gumus  izmir

Gökhan BEKEN

@ambar7 hocam datashet'in en altına koymuşlar dikkatimden kaçmıştı o formül, siz deyince farkettim. Ama şu an gerek kalmadı.

Elimdeki telefon ile ölçtüğüm değerler arasında Yaklaşık 90 derece fark vardı,
sensörden ölçtüğüm sonuç ile bu değeri topladım, şimdi telefon ile aynı değerleri gösteriyorlar.

Tek sorunum yere paralel olmadığı zaman, pitch ve roll açılarına göre düzeltme yapmak.
Özel mesaj okumuyorum, lütfen göndermeyin.

gumush

Alıntı yapılan: meftun - 18 Ağustos 2014, 13:28:40
Tek sorunum yere paralel olmadığı zaman, pitch ve roll açılarına göre düzeltme yapmak.

Nedeni >
Tilt compensation yapmaniz gerek , gomulu tilt compansated modeller zaten oldukca pahallidir.Ama yazilim yolu ilede yapabilirsiniz.

HMC6343 gibi .
Hikmet Gumus  izmir

Cemre.

Konuyu biraz hortlatacağım @Gökhan BEKEN hocam ama, roll ve pitch açılarını manyetik sensör verileri ile işlemeyi başardınız mı?