İçindekiler:

LED Pusula ve Altimetre: 7 Adım (Resimli)
LED Pusula ve Altimetre: 7 Adım (Resimli)

Video: LED Pusula ve Altimetre: 7 Adım (Resimli)

Video: LED Pusula ve Altimetre: 7 Adım (Resimli)
Video: SAMSUNG TELEFONLARDA KİMSENİN BİLMEDİĞİ BİLDİRİM AYARI #samsung #android #samsungbildirim 2024, Temmuz
Anonim
Image
Image
Devre Şeması ve PCB
Devre Şeması ve PCB

LED'li nesneler beni her zaman büyülemiştir. Bu nedenle bu proje, popüler dijital pusula sensörü HMC5883L'yi 48 LED ile birleştirmeyi amaçlıyor. LED'leri bir daire içine yerleştirerek, aydınlatan led, gittiğiniz yöndür. Her 7.5 derece, ayrıntılı sonuçlar veren yeni bir LED'i çalıştıracaktır.

GY-86 kartı ayrıca bir MS5611 barometrik basınç sensörü sağlar. Bu sensör yardımıyla yüksekliği hesaplamak mümkündür. Yüksek çözünürlüğü nedeniyle altimetreler için mükemmeldir.

GY-86 kartındaki MPU6050 sensörü hem 3 eksenli ivmeölçer hem de 3 eksenli jiroskopa sahiptir. Jiroskop, zaman içinde açısal konumun hızını ölçebilir. İvmeölçer, yerçekimi ivmesini ölçebilir ve trigonometri matematiği kullanılarak sensörün konumlandığı açıyı hesaplamak mümkündür. İvmeölçer ve jiroskop verilerini birleştirerek sensör yönü hakkında bilgi almak mümkündür. Bu, HMC5883L pusulası (yapılacak) için eğim telafisi için kullanılabilir.

Bu talimattaki kısa talimat videoları, nasıl çalıştığını ayrıntılı olarak açıklayacaktır. Kalibrasyon prosedürleri otomatiktir, bu nedenle başarı garanti edilir. Sıcaklık, Celsius (varsayılan) veya Fahrenheit olarak mevcuttur.

İyi eğlenceler !!

Adım 1: Altimetre

Image
Image

Altimetre, MS5611 barometrik basınç sensörünü kullanır. Yükseklik, atmosferik basınç ölçümüne dayalı olarak belirlenebilir. Yükseklik ne kadar büyük olursa, basınç o kadar düşük olur. Başlangıçta, altimetre 1013,25 mbar'lık varsayılan deniz seviyesi basıncını kullanır. Pin 21'deki düğmeye bastığınızda, bulunduğunuz yerdeki basınç referans olarak kullanılacaktır. Bu şekilde, bir şeyin ne kadar yüksek olduğunu yaklaşık olarak ölçmeyi mümkün kılar (örneğin, bir araba ile yokuş yukarı sürerken).

Bu projede sözde "Hipsometrik formül" kullanılmaktadır. Bu formül, ölçümü telafi etmek için sıcaklıktan yararlanır.

float alt=((powf(source / ((float) P / 100.0), 0.19022256) - 1.0) * ((float) TEMP / 100 + 273.15)) / 0.0065;

Hipsometrik formül hakkında daha fazla bilgiyi burada bulabilirsiniz:

hipsometrik formül

Fabrika kalibrasyon verileri ve sensör sıcaklığı MS5611 sensöründen okunur ve en doğru ölçümleri elde etmek için koda uygulanır. Test sırasında MS5611 sensörünün hava akışlarına ve ışık yoğunluğundaki farklılıklara duyarlı olduğunu buldum. Bu talimat videosundan daha iyi sonuçlar almak mümkün olmalıdır.

2. Adım: Parçalar

1 x Mikroçip 18f26k22 mikrodenetleyici 28-PIN PDIP

3 x MCP23017 16-Bit G/Ç Genişletici 28-pin SPDIP

48 x LED'ler 3mm

MS5611, HMC5883L ve MPU6050 sensörlü 1 x GY-86 modülü

1 x SH1106 OLED 128x64 I2C

1 x Seramik kapasitör 100nF

1 x 100 Ohm direnç

Adım 3: Devre Şeması ve PCB

Devre Şeması ve PCB
Devre Şeması ve PCB

Her şey tek taraflı bir PCB'ye sığar. Burada Eagle ve Gerber dosyalarını bulun, böylece kendiniz yapabilir veya bir PCB üreticisine sorabilirsiniz.

Arabamda LED Pusula ve Altimetre kullanıyorum ve güç kaynağı olarak OBD2 arayüzünü kullanıyorum. Mikrodenetleyici, konektöre mükemmel şekilde oturur.

Adım 4: Eagle PCB Tasarım Yazılımı ile Bir Dairede LED'leri Saniyeler İçinde Mükemmel Bir Şekilde Hizalama

Eagle PCB Design Software'de bu gerçekten güzel özelliği görmelisiniz, bu da sizi saatlerce çalışmadan kurtarır. Bu Eagle özelliği ile LED'leri bir daire içinde saniyeler içinde mükemmel bir şekilde hizalayabilirsiniz.

Sadece "Dosya" sekmesine ve ardından "ULP'yi Çalıştır" a tıklayın. Buradan "cmd-draw.ulp" üzerine tıklayın. "Taşı", "derece adımı" ve "Daire"yi seçin. "Ad" alanına ilk LED'in adını girin. "X merkez koordinatı" ve "Y merkez koordinatı" alanlarında dairenin merkezinin koordinatlarını ızgarada ayarlayın. Bu projede 48 LED vardır, yani 360 bölü 48, "Açı adımı" alanı için 7.5 yapar. Bu dairenin yarıçapı 1.4 inçtir. Enter tuşuna basın ve mükemmel bir LED çemberiniz var.

Adım 5: Pusula Kalibrasyon Süreci

Image
Image

HMC5883L, 1 ila 2 Santigrat derece pusula yönü doğruluğunu sağlayan 12 bitlik bir ADC içerir. Ancak kullanılabilir veriler vermeden önce kalibre edilmesi gerekir. Bu projenin sorunsuz çalışması için x ve y ofsetini sağlayan bu kalibrasyon yöntemi vardır. En gelişmiş yöntem değil ama bu proje için yeterli. Bu işlem size sadece birkaç dakikaya mal olacak ve size güzel sonuçlar verecektir.

Bu yazılımı yükleyip çalıştırarak, bu kalibrasyon işleminde size rehberlik edilecektir. OLED ekran, işlemin ne zaman başlayacağını ve ne zaman biteceğini size söyleyecektir. Bu kalibrasyon işlemi, sensörü tamamen düz tutarken (yere yatay olarak) 360 derece döndürmenizi isteyecektir. Tripod veya benzeri bir yere monte edin. Bunu elinizde tutarak yapmak işe yaramaz. Sonunda ofsetler OLED'de sunulacak. Bu prosedürü birkaç kez çalıştırırsanız, neredeyse eşit sonuçlar görmelisiniz.

Opsiyonel olarak toplanan veriler ayrıca pin 27 (9600 baud) üzerinden RS232 üzerinden de elde edilebilir. Sadece Putty gibi bir terminal programı kullanın ve günlük dosyasındaki tüm verileri toplayın. Bu veriler Excel'de kolayca içe aktarılabilir. Buradan HMC5883L'nizin ofsetinin nasıl göründüğünü daha kolay görebilirsiniz.

Ofsetler, mikrodenetleyicinin EEPROM'una konur. Bunlar, 7. adımda bulacağınız pusula ve altimetre yazılımının başlangıcında yüklenecektir.

Adım 6: Konumunuzun Manyetik Sapmasını Dengeleyin

Image
Image
Sensörler Yarışması
Sensörler Yarışması

Manyetik bir Kuzey ve coğrafi bir Kuzey (Kuzey Kutbu) vardır. Pusulanız dünyanın manyetik alan çizgilerini takip edecek, böylece manyetik Kuzey'i gösterecek. Manyetik Kuzey ile coğrafi Kuzey arasındaki farka manyetik sapma denir. Benim bulunduğum yerde sapma sadece 1 derece 22 dakika yani bunu telafi etmeye değmez. Diğer yerlerde bu sapma 30 dereceye kadar çıkabilir.

Bulunduğunuz yerdeki manyetik sapmayı bulun

Bunu telafi etmek istiyorsanız (opsiyoneldir) mikrodenetleyicinin EEPROM'una sapmayı (derece ve dakika) ekleyebilirsiniz. 0x20 konumunda, dereceleri işaretli onaltılık biçimde ekleyebilirsiniz. Negatif bir sapma da olabileceği için imzalanmıştır. 0x21 konumunda dakikaları onaltılık biçimde de ekleyebilirsiniz.

7. Adım: Kodu Derleyin

Image
Image

Bu kaynak kodunu derleyin ve mikrodenetleyicinizi programlayın. Bu kod, C99 modunda MPLABX IDE v5.20 ve XC8 derleyici v2.05 ile doğru şekilde derlenir (bu nedenle C99 dizinlerini içerir). Ayrıca hex dosyası da mevcuttur, böylece derleme prosedürünü atlayabilirsiniz. Kalibrasyon verilerinin (bkz. adım 5) üzerine yazılmasını önlemek için "EEPROM verileri etkin" onay kutusunun işaretini kaldırdığınızdan emin olun. Programlayıcınızı 3,3 volta ayarlayın!

27 numaralı pimi toprağa bağlayarak sıcaklığı Fahrenheit cinsinden elde edersiniz.

µGUI grafik kitaplığı için Achim Döbler'e teşekkürler

Sensörler Yarışması
Sensörler Yarışması

Sensörler Yarışmasında İkincilik

Önerilen: