- Gerekli Bileşenler
- ADXL335 İvmeölçer
- Devre şeması
- Adımsayar Nasıl Çalışır?
- Arduino Adım Sayacını Programlama
- Arduino Pedometreyi Test Etme
Fitness grupları günümüzde çok popüler hale geliyor, bu sadece ayak seslerini saymakla kalmıyor, aynı zamanda yakılan kalorileri de izliyor, kalp atış hızını, gösteri süresini ve daha fazlasını gösteriyor. Ve bu IoT cihazları, bir akıllı telefonda fiziksel aktivitenizin tüm geçmişini kolayca alabilmeniz için bulut ile senkronize edilir. Ayrıca kritik verilerin her yerden izlenmek üzere ThingSpeak'e gönderildiği IoT Tabanlı Hasta İzleme Sistemi kurduk.
Pedometreler yalnızca ayak seslerini saymak için kullanılan cihazlardır. Bu eğitimde, Arduino ve ivmeölçeri kullanarak kolay ve ucuz bir DIY Adımsayar oluşturacağız. Bu Adımsayar ayak seslerinin sayısını sayacak ve bunları 16x2 LCD modülde gösterecektir. Bu adımsayar, bu Arduino Akıllı Saat ile entegre edilebilir.
Gerekli Bileşenler
- Arduino Nano
- ADXL 335 İvmeölçer
- 16 * 2 LCD
- LCD I2C Modülü
- Batarya
ADXL335 İvmeölçer
ADXL335, eksiksiz bir 3 eksenli Analog ivmeölçerdir ve kapasitif algılama prensibine göre çalışır. Polisilikon yüzey mikro işlenmiş sensör ve sinyal koşullandırma devresine sahip küçük, ince, düşük güçlü bir modüldür. ADXL335 ivme ölçer statik ve dinamik ivmeyi ölçebilir. İşte bu Arduino Pedometre projesinde, ADXL335 ivmeölçer bir Pedometre sensörü görevi görecektir.
Bir İvme ölçer, ilgili değişken gerilim için herhangi bir yönde ivme dönüştüren bir cihazdır. Bu, kapasitörler (resme bakın) kullanılarak gerçekleştirilir, Accel hareket ettikçe, içinde bulunan kondansatör de harekete bağlı olarak değişikliklere (resme bakın) maruz kalır, çünkü kapasitans değiştiğinden, değişken bir voltaj da elde edilebilir.
Aşağıda, İvmeölçer için önden ve arkadan pim açıklaması ile birlikte resimler bulunmaktadır
İvmeölçerin Pin Açıklaması:
- Vcc-5 volt besleme bu pime bağlanmalıdır.
- X-OUT- Bu pin, x yönünde bir Analog çıkış verir
- Y-OUT- Bu pin y yönünde bir Analog Çıkış verir
- Z-OUT- Bu pin z yönünde bir Analog Çıkış verir
- GND- Zemin
- ST- Bu pin, sensörün hassasiyetini ayarlamak için kullanılır
Hareket kontrollü robot, Deprem Dedektörü Alarmı, Ping Pong Oyunu vb. Dahil olmak üzere Accelerometer ADXL335 kullanarak birçok proje inşa ediyoruz
Devre şeması
Arduino İvmeölçer Adım Sayacı için Devre Şeması aşağıda verilmiştir.
Bu devrede, ADXL335 İvmeölçer ile Arduino Nano ile arayüz oluşturuyoruz. İvme ölçerin X, Y ve Z pinleri Arduino Nano'nun Analog pinleri (A1, A2 ve A3) ile bağlanır. 16x2 LCD modülleri Arduino ile arayüzlemek için I2C modülünü kullanıyoruz. I2C modülünün SCL & SDA pinleri sırasıyla Arduino Nano'nun A5 ve A4 pinlerine bağlanır. Komple bağlantılar aşağıdaki tabloda verilmiştir:
Arduino Nano | ADXL335 |
3.3V | VCC |
GND | GND |
A1 | X |
A2 | Y |
A3 | Z |
Arduino Nano | LCD I2C Modülü |
5V | VCC |
GND | GND |
A4 | SDA |
A5 | SCL |
Bu Pedometreyi ilk olarak bir breadboard üzerinde Arduino kurulumunu kullanarak oluşturduk
Başarılı bir testten sonra, aşağıda gösterildiği gibi Perfboard'daki tüm bileşeni lehimleyerek onu Perfboard'da çoğalttık:
Adımsayar Nasıl Çalışır?
Bir pedometre, bir kişinin ileri, dikey ve yan hareketin üç bileşenini kullanarak attığı toplam adım sayısını hesaplar. Pedometre sistemi bu değerleri elde etmek için bir ivme ölçer kullanır. İvmeölçer, tanımlanan her sayıdan sonra 3 eksenli hızlanmanın maksimum ve minimum değerlerini sürekli olarak günceller. örnekler. Bu 3 eksenli (Max + Min) / 2'nin ortalama değeri dinamik eşik seviyesi olarak adlandırılır ve bu eşik değeri adımın atılıp atılmayacağına karar vermek için kullanılır.
Koşarken, pedometre herhangi bir yönde olabilir, bu nedenle adımsayar, hızlanma değişikliği en büyük olan ekseni kullanarak adımları hesaplar.
Şimdi size bu Arduino Adımsayarının çalışmasına dair hızlı bir adım atayım:
- İlk olarak, adımsayar güç alır almaz kalibrasyonu başlatır.
- Daha sonra boşluk döngü fonksiyonunda, verileri sürekli olarak X, Y ve Z eksenlerinden alır.
- Bundan sonra, başlangıç noktasından toplam ivme vektörünü hesaplar.
- İvme vektörü, X, Y ve Z ekseni değerlerinin kareköküdür (x ^ 2 + y ^ 2 + z ^ 2).
- Daha sonra adım sayısını saymak için ortalama hızlanma değerlerini eşik değerlerle karşılaştırır.
- İvme vektörü eşik değerini geçerse, adım sayısını artırır; aksi takdirde geçersiz titreşimleri atar.
Arduino Adım Sayacını Programlama
Tam Arduino Adım Sayaç Kodu bu belgenin sonunda verilmiştir. Burada bu kodun bazı önemli parçalarını açıklıyoruz.
Her zamanki gibi, gerekli tüm kitaplıkları ekleyerek kodu başlatın. ADXL335 ivmeölçer analog çıkış verdiği için herhangi bir kütüphane gerektirmez.
#Dahil etmek
Bundan sonra, ivmeölçerin bağlı olduğu Arduino Pinlerini tanımlayın.
const int xpin = A1; const int ypin = A2; const int zpin = A3;
İvmeölçer için eşik değerini tanımlayın. Bu eşik değeri, adımların sayısını hesaplamak için ivme vektörü ile karşılaştırılacaktır.
şamandıra eşiği = 6;
İçinde boşluk kurulum o açıldığında, fonksiyon sistemini kalibre eder.
kalibre et ();
Boş döngü işlevi içinde, 100 örnek için X, Y ve Z ekseni değerlerini okuyacaktır.
for (int a = 0; a <100; a ++) {xaccl = float (analogRead (xpin) - 345); gecikme (1); yaccl = float (analogRead (ypin) - 346); gecikme (1); zaccl = float (analogRead (zpin) - 416); gecikme (1);
3 eksenli değerleri aldıktan sonra X, Y ve Z ekseni değerlerinin karekökünü alarak toplam ivme vektörünü hesaplayınız.
totvect = sqrt (((xaccl - xavg) * (xaccl - xavg)) + ((yaccl - yavg) * (yaccl - yavg)) + ((zval - zavg) * (zval - zavg)));
Ardından maksimum ve minimum ivme vektör değerlerinin ortalamasını hesaplayın.
totave = (totvect + totvect) / 2;
Şimdi ortalama ivmeyi eşikle karşılaştırın. Ortalama eşik değerden büyükse, adım sayısını artırın ve bayrağı yükseltin.
if (totave> eşik && bayrak == 0) {adımlar = adımlar + 1; bayrak = 1; }
Ortalama eşikten büyükse ancak bayrak yükseltilmişse, hiçbir şey yapmayın.
else if (totave> eşik && flag == 1) {// Sayma}
Toplam ortalama eşikten düşükse ve bayrak yükseltilmişse, bayrağı indirin.
eğer (totave <eşik && bayrak == 1) {bayrak = 0; }
Adım sayısını seri monitörde ve LCD'de yazdırın.
Serial.println (adımlar); lcd.print ("Adımlar:"); lcd.print (adımlar);
Arduino Pedometreyi Test Etme
Donanımınız ve kodunuz hazır olduğunda, Arduino'yu dizüstü bilgisayara bağlayın ve kodu yükleyin. Şimdi adımsayar kurulumunu elinize alın ve adım adım yürümeye başlayın, adım sayısını LCD ekranda göstermelidir. Bazen pedometre çok hızlı veya çok yavaş titreştiğinde adım sayısını artırır.
ADXL335 pedometre Arduino için eksiksiz çalışma videosu ve kodu aşağıda verilmiştir.