İçindekiler:

3-Eksen İvmeölçer, ADXL345, Raspberry Pi ile Python Kullanarak: 6 Adım
3-Eksen İvmeölçer, ADXL345, Raspberry Pi ile Python Kullanarak: 6 Adım

Video: 3-Eksen İvmeölçer, ADXL345, Raspberry Pi ile Python Kullanarak: 6 Adım

Video: 3-Eksen İvmeölçer, ADXL345, Raspberry Pi ile Python Kullanarak: 6 Adım
Video: How to use the MPU6050 sensor module with Raspberry Pi board 2024, Kasım
Anonim
3-Eksen İvmeölçer, ADXL345, Raspberry Pi ile Python Kullanarak
3-Eksen İvmeölçer, ADXL345, Raspberry Pi ile Python Kullanarak

Offroader'ınızın eğilip oyalandığı noktayı kontrol edebilecek bir alet düşünüyorum. Devrilme ihtimali varken birinin ayarlanması durumunda hoş olmaz mıydı? Açıkçası evet. Dağlara çıkmayı ve kurumsal gezileri seven bireyler için gerçekten faydalı olacaktır.

Şüphesiz, gerçek anlamda parlak bir ileri düzey belirleme değerlendirmesi dönemi, IoT üzerimizde. Gadget'lar ve Programlama sevenler olarak, mikro Linux PC'nin Raspberry Pi'nin, yenilikçi metodolojilerde bir patlamayı beraberinde getirerek, genel olarak insanların yaratıcı yeteneklerini ele aldığına inanıyoruz. Peki yakınımızda bir Raspberry Pi ve 3 eksenli İvmeölçer olması durumunda ne yapabileceğimizin akla yatkın sonuçları nelerdir? Keşfetmeliyiz! Bu görevde Raspberry Pi ve 3 eksenli bir ivmeölçer olan ADXL345'i kullanarak X, Y ve Z olmak üzere 3 eksendeki ivmeyi hissedeceğiz. Bu nedenle, 3 boyutlu ivmeyi veya G-Kuvvetini ölçmek için bir çerçeve üretmek için bu geziyi gözlemlemeliyiz.

Adım 1: İhtiyacımız Olan Temel Donanım

İhtiyacımız Olan Temel Donanım
İhtiyacımız Olan Temel Donanım
İhtiyacımız Olan Temel Donanım
İhtiyacımız Olan Temel Donanım
İhtiyacımız Olan Temel Donanım
İhtiyacımız Olan Temel Donanım

Etrafta çalışmak için bir sürü şeyimiz olduğu için sorunlar bizim için daha azdı. Yine de, doğru parçayı tam zamanında ve uygun noktadan monte etmenin başkaları için ne kadar zahmetli olduğunu biliyoruz ve bu, her kuruştan bağımsız olarak haklı. Böylece tüm bölgelerde size yardımcı oluruz. Eksiksiz bir parça listesi almak için aşağıdakileri okuyun.

1. Ahududu Pi

İlk adım bir Raspberry Pi kartı almaktı. Bu küçük, düşük güçlü bilgisayar, elektronik girişimler, Nesnelerin İnterneti (IoT), Akıllı Şehirler, Okul Eğitimi için ucuz ve genellikle basit bir temel sağlar.

2. Raspberry Pi için I2C Kalkanı

Raspberry Pi'nin gerçekten eksik olduğu en önemli şey bir I²C bağlantı noktasıdır. Bunun için TOUTPI2 I²C konektörü size Rasp Pi'yi MULTIPLE I²C cihazlarıyla kullanma duygusu verir. DCUBE Store'dan erişilebilir

3. 3 eksenli ivmeölçer, ADXL345

Analog Devices tarafından üretilen ADXL345, ±16g'ye kadar yüksek çözünürlüklü 13 bit ölçüme sahip düşük güçlü 3 eksenli bir ivmeölçerdir. Bu sensörü DCUBE Store'dan aldık

4. Bağlantı Kablosu

DCUBE Store'da I2C bağlantı kablosuna erişebildik

5. Mikro USB kablosu

En ufak kafa karıştırıcı, ancak güç gereksinimi açısından en katı olanı Raspberry Pi! Raspberry Pi'yi çalıştırmanın en zahmetsiz yolu Mikro USB kablosudur.

6. Web Erişimi Bir İhtiyaçtır

Web erişimi, yerel ağ ve web ile ilişkili bir Ethernet(LAN) kablosu aracılığıyla güçlendirilebilir. Öte yandan, yapılandırma gerektiren bir USB kablosuz donanım kilidi kullanarak bir kablosuz ağ ile ilişkilendirebilirsiniz.

7. HDMI Kablosu/Uzaktan Erişim

Yerleşik HDMI kablosuyla, onu bir dijital TV'ye veya bir Monitöre bağlayabilirsiniz. Nakit ayırmanız gerekiyor! Raspberry Pi, SSH ve Web üzerinden Erişim gibi farklı stratejiler kullanarak uzaktan elde edilebilir. PuTTYopen kaynak yazılımını kullanabilirsiniz.

Adım 2: Donanımı Bağlama

Donanımı Bağlama
Donanımı Bağlama
Donanımı Bağlama
Donanımı Bağlama
Donanımı Bağlama
Donanımı Bağlama
Donanımı Bağlama
Donanımı Bağlama

Çıkan şemaya göre devreyi yapınız. Bir taslak çizin ve kasıtlı olarak konfigürasyondan sonra alın.

Raspberry Pi ve I2C Shield Bağlantısı

Her şeyden önce, Raspberry Pi'yi alın ve üzerindeki I2C Shield'i görün. Kalkanı Pi'nin GPIO pinlerinin üzerine hassas bir şekilde bastırın ve pasta kadar basit olan bu ilerlemeyi bitirdik (çıkışa bakın).

Sensör ve Raspberry Pi Bağlantısı

Sensörü alın ve onunla I2C Kablosunu Arayüz. Bu Kablonun uygun şekilde çalışması için lütfen I2C Çıkışının HER ZAMAN I2C Girişi ile ilişkili olduğunu hatırlayın. Aynısı, GPIO pinleri üzerine monte edilmiş I2C kalkanı ile Raspberry Pi için de alınmalıdır.

En küçük hatanın bile neden olduğu pin çıkışlarını, lehimlemeyi ve kırgınlığı inceleme gereksinimini reddettiği için I2C kablosunun kullanılmasını tavsiye ediyoruz. Bu temel tak ve çalıştır kablosuyla, bir uygulamaya kolayca cihaz tanıtabilir, değiştirebilir veya daha fazla cihaz ekleyebilirsiniz. Bu, işleri karmaşık hale getirir.

Not: Kahverengi kablo, bir cihazın çıkışı ile başka bir cihazın girişi arasındaki Toprak (GND) bağlantısını güvenilir bir şekilde izlemelidir

Web Ağı Anahtardır

Girişimimizi kazanmak için Raspberry Pi'miz için bir web bağlantısına ihtiyacımız var. Bunun için, ev sistemiyle bir Ethernet(LAN) kablosu arabirimi kurmak gibi alternatifleriniz var. Ek olarak, bir seçenek olarak, bir WiFi konektörü kullanmak yararlı bir yoldur. Bunun için bazen, çalışması için bir sürücüye ihtiyacınız var. Bu yüzden tasvirde Linux olana doğru eğilin.

Güç kaynağı

Mikro USB kablosunu Raspberry Pi'nin güç jakına takın. Onu yak ve gitmeye hazırız.

Ekrana Bağlantı

HDMI kablosunu başka bir ekranla ilişkilendirebiliriz. Bazı durumlarda, Raspberry Pi'ye ekrana arabirim oluşturmadan ulaşmanız gerekir veya ondan bazı verileri başka bir yerden görüntülemeniz gerekebilir. Muhtemelen, böyle yapmak için yenilikçi ve finansal açıdan anlayışlı yaklaşımlar vardır. Bunlardan biri - SSH (uzaktan komut satırı girişi) kullanıyor. Bunun için PuTTY yazılımını da kullanabilirsiniz.

Adım 3: Raspberry Pi için Python Kodlaması

Raspberry Pi için Python Kodlaması
Raspberry Pi için Python Kodlaması

Raspberry Pi ve ADXL345 Sensörü için Python Koduna Github Depomuzdan erişilebilir.

Koda geçmeden önce BeniOku belgesinde verilen yönergeleri okuduğunuzdan ve Raspberry Pi'nizi buna göre kurduğunuzdan emin olun. Bu şekilde yapmak için sadece bir dakika duraklayacaktır.

Bir ivmeölçer, uygun ivmeyi ölçen bir cihazdır; uygun ivme, koordinat ivmesi (hız değişim oranı) ile aynı şey değildir. İvmeölçerin tek ve çok eksenli modellerine, vektör miktarı olarak uygun ivmenin büyüklüğünü ve yönünü belirlemek için erişilebilir ve oryantasyonu, ivmeyi, titreşimi, şoku ve dirençli bir ortamda düşmeyi koordine etmek için kullanılabilir.

Kod önünüzde açıktır ve hayal edebileceğiniz en basit yapıdadır ve hiçbir sorun yaşamamanız gerekir.

# Bir özgür irade lisansı ile dağıtılır.# İlişkili çalışmalarının lisanslarına uyması koşuluyla, istediğiniz şekilde, kârlı veya ücretsiz olarak kullanın. # ADXL345 # Bu kod, dcubestore.com adresinde bulunan ADXL345_I2CS I2C Mini Modülü ile çalışmak üzere tasarlanmıştır # https://dcubestore.com/product/adxl345-3-axis-accelerometer-13-bit-i%C2%B2c-mini -modül/

smbus'u içe aktar

ithalat zamanı

# I2C veri yolunu alın

veri yolu = smbus. SMBus(1)

# ADXL345 adresi, 0x53(83)

# Bant genişliği oranı kaydı seç, 0x2C(44) # 0x0A(10) Normal mod, Çıkış veri hızı = 100 Hz bus.write_byte_data(0x53, 0x2C, 0x0A) # ADXL345 adresi, 0x53(83) # Güç kontrol kaydı seç, 0x2D(45) # 0x08(08) Otomatik Uyku devre dışı bus.write_byte_data(0x53, 0x2D, 0x08) # ADXL345 adresi, 0x53(83) # Veri formatı kaydı seç, 0x31(49) # 0x08(08) Kendi kendine test devre dışı, 4 telli arayüz # Tam çözünürlük, Aralık = +/-2g bus.write_byte_data(0x53, 0x31, 0x08)

zaman.uyku(0.5)

# ADXL345 adresi, 0x53(83)

# Verileri 0x32(50), 2 bayttan geri oku # X-Ekseni LSB, X-Ekseni MSB data0 = bus.read_byte_data(0x53, 0x32) data1 = bus.read_byte_data(0x53, 0x33)

# Veriyi 10 bit'e dönüştürün

xAccl = ((data1 & 0x03) * 256) + xAccl > 511 ise data0: xAccl -= 1024

# ADXL345 adresi, 0x53(83)

# Verileri 0x34(52), 2 bayttan geri oku # Y Ekseni LSB, Y Ekseni MSB data0 = bus.read_byte_data(0x53, 0x34) data1 = bus.read_byte_data(0x53, 0x35)

# Veriyi 10 bit'e dönüştürün

yAccl = ((data1 & 0x03) * 256) + yAccl > 511 ise data0: yAccl -= 1024

# ADXL345 adresi, 0x53(83)

# 0x36(54), 2 bayttan veri okuma # Z-Ekseni LSB, Z-Ekseni MSB data0 = bus.read_byte_data(0x53, 0x36) data1 = bus.read_byte_data(0x53, 0x37)

# Veriyi 10 bit'e dönüştürün

zAccl = ((data1 & 0x03) * 256) + zAccl > 511 ise data0: zAccl -= 1024

# Ekrana veri çıkışı

print "X-Ekseninde İvme: %d" %xAccl print "Y-Ekseninde İvme: %d" %yAccl print "Z-Ekseninde İvme: %d" %zAccl

Adım 4: Kodun Uygulanabilirliği

Kodun Uygulanabilirliği
Kodun Uygulanabilirliği

Kodu Github'dan indirin (veya git pull) ve Raspberry Pi'de açın.

Terminalde kodu Derlemek ve Yüklemek için komutları çalıştırın ve Monitör'deki çıktıya bakın. Birkaç dakika sonra, parametrelerin her birini gösterecektir. Her şeyin kolayca çalışmasını sağladıktan sonra, bu girişimi daha büyük bir göreve taşıyabilirsiniz.

Adım 5: Uygulamalar ve Özellikler

ADXL345, ±16 g'a kadar yüksek çözünürlüklü (13 bit) ölçüme sahip küçük, ince, ultra düşük güçlü, 3 eksenli bir ivmeölçerdir. ADXL345, Cep Telefonu Uygulamaları için uygundur. Eğim Algılama Uygulamalarında Statik Yerçekimi Hızlandırmasını ve buna ek olarak Hareket veya Şok nedeniyle yaklaşan Dinamik Hızlanmayı ölçer. Diğer uygulamalar arasında Ahizeler, Tıbbi enstrümantasyon, Oyun ve İşaretleme Cihazları, Endüstriyel Enstrümantasyon, Kişisel Navigasyon Cihazları ve Sabit Disk Sürücüsü (HDD) Koruması yer alır.

6. Adım: Sonuç

Umarım bu görev daha fazla deneyi motive eder. Bu I2C sensörü olağanüstü esnektir, ucuzdur ve erişilebilirdir. Büyük ölçüde süreksiz bir sistem olduğundan, bu görevi genişletmenin ve hatta iyileştirmenin ilginç yolları var.

Örneğin, ADXL345 ve Raspberry Pi kullanarak bir Eğimölçer fikriyle başlayabilirsiniz. Yukarıdaki projede temel hesaplamaları kullandık. Yerçekimine göre bir nesnenin G değerleri, eğim (veya eğim) açıları, yüksekliği veya alçalması için kodu doğaçlama yapabilirsiniz. Ardından, yuvarlanma (önden arkaya eksen, X), eğim (yan yana eksen, Y) ve sapma (dikey eksen, Z) için dönüş açıları gibi ilerleme seçeneklerini kontrol edebilirsiniz. Bu ivmeölçer, 3-D G-Kuvvetlerini görüntüler. Böylece bu sensörü, düşünebileceğiniz çeşitli şekillerde kullanabilirsiniz.

Rahatınız için YouTube'da araştırmanıza yardımcı olabilecek büyüleyici bir video eğitici alıştırmamız var. Bu girişimin daha fazla keşfi motive ettiğine güvenin. Düşünmeye devam et! Sürekli olarak daha fazlası geleceği için aramayı unutmayın.

Önerilen: