- Необходими компоненти
- ADXL335 Акселерометър
- Електрическа схема
- Как работи крачкомерът?
- Програмиране на брояча на стъпки Arduino
- Тестване на крачкомера Arduino
Фитнес групите стават много популярни в днешно време, което не само брои стъпките, но и проследява изгорените ви калории, показва пулса, времето на шоуто и много други. И тези IoT устройства се синхронизират с облака, така че лесно можете да получите цялата история на вашата физическа активност на смартфон. Изградихме и IoT базирана система за наблюдение на пациентите, където критичните данни са изпратени до ThingSpeak, за да бъдат наблюдавани от всяко място.
Крачкомерите са устройствата, използвани само за отчитане на стъпки. Така че в този урок ще изградим лесен и евтин DIY крачкомер, използвайки Arduino и акселерометър. Този крачкомер ще преброи броя стъпки и ще ги покаже на 16x2 LCD модул. Този крачкомер може да бъде интегриран с този смарт часовник Arduino.
Необходими компоненти
- Arduino Nano
- ADXL 335 Акселерометър
- 16 * 2 LCD
- LCD I2C модул
- Батерия
ADXL335 Акселерометър
ADXL335 е пълен 3-осен аналогов акселерометър и работи на принципа на капацитивното засичане. Това е малък, тънък модул с ниска мощност с полисилициев повърхностно-микрообработен сензор и схеми за кондициониране на сигнали. ADXL335 акселерометърът може да измерва статичното, както и динамичното ускорение. Тук в този проект на Arduino Pedometer, акселерометърът ADXL335 ще действа като сензор за крачкомер.
Един акселерометър е устройство, което може да конвертира ускорение във всяка посока на съответния променлива напрежение. Това се постига чрез използване на кондензатори (препратка към изображението), докато Accel се движи, кондензаторът, намиращ се вътре в него, също ще претърпи промени (препратка към изображението) въз основа на движението, тъй като капацитетът е променлив, може да се получи и променливо напрежение.
По-долу са изображенията за акселерометър от предната и задната страна заедно с описанието на щифтовете-
ПИН Описание на акселерометъра:
- Vcc-5 волта трябва да се свърже към този щифт.
- X-OUT - Този щифт дава аналогов изход в посока x
- Y-OUT - Този щифт дава аналогов изход в посока y
- Z-OUT - Този щифт дава аналогов изход в посока z
- GND - Земя
- ST - Този щифт се използва за зададена чувствителност на сензора
Изграждаме много проекти, използвайки акселерометър ADXL335, включително робот, контролиран с жестове, аларма за детектор за земетресение, игра за пинг понг и др.
Електрическа схема
Електрическа схема за брояч на стъпки на акселерометър Arduino е дадена по-долу.
В тази схема ние взаимодействаме с Arduino Nano с акселерометър ADXL335. Щифтовете X, Y и Z на акселерометъра са свързани с аналогови щифтове (A1, A2 и A3) на Arduino Nano. За да свържем 16x2 LCD модули с Arduino, използваме модула I2C. SCL и SDA щифтовете на модула I2C са свързани съответно към щифтове A5 и A4 на Arduino Nano. Пълните връзки са дадени в таблицата по-долу:
Arduino Nano | ADXL335 |
3.3V | VCC |
GND | GND |
А1 | х |
А2 | Y. |
A3 | Z. |
Arduino Nano | LCD I2C модул |
5V | VCC |
GND | GND |
A4 | SDA |
A5 | SCL |
За първи път изградихме този крачкомер, използвайки настройка на Arduino на макет
И след успешно тестване го репликирахме на Perfboard, като спойкахме целия компонент на Perfboard, както е показано по-долу:
Как работи крачкомерът?
Педометърът изчислява общия брой стъпки, предприети от човек, използвайки трите компонента на движение, които са напред, вертикално и странично. Системата на крачкомера използва акселерометър, за да получи тези стойности. Акселерометърът непрекъснато актуализира максималните и минималните стойности на 3-осното ускорение след всяко определено не. на пробите. Средната стойност на тези 3-осни (Max + Min) / 2 се нарича динамично прагово ниво и тази прагова стойност се използва, за да се реши дали стъпката е предприета или не.
Докато работи, крачкомерът може да бъде във всякаква ориентация, така че крачкомерът изчислява стъпките, използвайки оста, чиято промяна на ускорението е най-голяма.
Сега ще ви дам кратка стъпка за работата на този крачкомер Arduino:
- Първо, крачкомерът започва калибрирането веднага щом се включи.
- След това във функцията void loop непрекъснато получава данните от оста X, Y и Z.
- След това той изчислява общия вектор на ускорението от началната точка.
- Векторът за ускорение е квадратният корен (x ^ 2 + y ^ 2 + z ^ 2) от стойностите на оста X, Y и Z.
- След това той сравнява средните стойности на ускорението с праговите стойности, за да преброи броя на стъпките.
- Ако векторът на ускорението премине праговата стойност, тогава той увеличава броя на стъпките; в противен случай изхвърля невалидните вибрации.
Програмиране на брояча на стъпки Arduino
Пълният код за брояч на стъпки на Arduino е даден в края на този документ. Тук обясняваме някои важни фрагменти от този код.
Както обикновено, стартирайте кода, като включите всички необходими библиотеки. ADXL335 акселерометърът не изисква никаква библиотека, тъй като дава аналогов изход.
#include
След това дефинирайте Arduino Pins, където е свързан акселерометърът.
const int xpin = A1; const int ypin = A2; const int zpin = A3;
Определете праговата стойност за акселерометъра. Тази прагова стойност ще бъде сравнена с вектора на ускорението, за да се изчисли броят на стъпките.
плаващ праг = 6;
Вътре в настройката за празнота функцията калибрира системата, когато е захранена.
калибриране ();
Вътре във функцията на празен цикъл той ще прочете стойностите на оста X, Y и Z за 100 проби.
за (int a = 0; a <100; a ++) {xaccl = float (analogRead (xpin) - 345); забавяне (1); yaccl = float (analogRead (ypin) - 346); забавяне (1); zaccl = float (analogRead (zpin) - 416); забавяне (1);
След получаване на 3-осните стойности, изчислете общия вектор на ускорението, като вземете квадратния корен от стойностите на оста X, Y и Z.
totvect = sqrt (((xaccl - xavg) * (xaccl - xavg)) + ((yaccl - yavg) * (yaccl - yavg)) + ((zval - zavg) * (zval - zavg)));
След това изчислете средната стойност на максималните и минималните стойности на вектора на ускорение.
totave = (totvect + totvect) / 2;
Сега сравнете средното ускорение с прага. Ако средната стойност е по-голяма от прага, увеличете броя на стъпките и вдигнете знамето.
if (totave> prag && flag == 0) {стъпки = стъпки + 1; флаг = 1; }
Ако средната стойност е по-голяма от прага, но флагът е повдигнат, тогава не правете нищо.
else if (totave> prag && flag == 1) {// Не брои}
Ако общата средна стойност е по-малка от прага и флагът е повдигнат, поставете флага надолу.
if (totave <prag && flag == 1) {flag = 0; }
Отпечатайте броя стъпки на сериен монитор и LCD.
Serial.println (стъпки); lcd.print ("Стъпки:"); lcd.print (стъпки);
Тестване на крачкомера Arduino
След като вашият хардуер и код са готови, свържете Arduino към лаптопа и качете кода. Сега вземете настройката на крачкомера в ръцете си и започнете да ходите стъпка по стъпка, той трябва да показва броя на стъпките на LCD. Понякога увеличава броя на стъпките, когато крачкомерът вибрира много бързо или много бавно.
Пълното работещо видео и код за крачкомера ADXL335 Arduino са дадени по-долу.