- Nepieciešamās sastāvdaļas
- ADXL335 akselerometrs
- Ķēdes shēma
- Kā darbojas pedometrs?
- Arduino Step Counter programmēšana
- Arduino pedometra pārbaude
Mūsdienās fitnesa grupas kļūst ļoti populāras, un tās ne tikai uzskaita soļus, bet arī izseko sadedzinātās kalorijas, parāda sirdsdarbības ātrumu, izrādes laiku un daudz ko citu. Šīs IoT ierīces tiek sinhronizētas ar mākoni, lai viedtālrunī varētu ērti iegūt visu jūsu fizisko aktivitāšu vēsturi. Mēs esam izveidojuši arī IoT balstītu pacientu uzraudzības sistēmu, kur kritiskie dati ir nosūtīti uz ThingSpeak, lai tos varētu uzraudzīt no jebkuras vietas.
Soļu skaitītāji ir ierīces, kuras izmantoja tikai soļu skaitīšanai. Tāpēc šajā apmācībā mēs izveidosim vienkāršu un lētu DIY pedometru, izmantojot Arduino un akselerometru. Šis soļu skaitītājs uzskaitīs soļu skaitu un parādīs tos uz 16x2 LCD moduļa. Šo pedometru var integrēt ar šo Arduino Smart Watch.
Nepieciešamās sastāvdaļas
- Arduino Nano
- ADXL 335 akselerometrs
- 16 * 2 LCD
- LCD I2C modulis
- Akumulators
ADXL335 akselerometrs
ADXL335 ir pilnīgs 3 asu analogais akselerometrs, un tas darbojas pēc kapacitatīvās uztveres principa. Tas ir mazs, plāns, mazjaudas modulis ar polisilīcija silikona virsmas apstrādātu sensoru un signālu kondicionēšanas shēmu. ADXL335 akselerometrs var izmērīt gan statisko, gan dinamisko paātrinājumu. Šeit šajā Arduino pedometra projektā ADXL335 akselerometrs darbosies kā soļu skaitītāja sensors.
Akselerometrs ir ierīce, kas var pārvērst paātrinājums jebkurā virzienā, lai tās attiecīgās mainīgu spriegumu. Tas tiek panākts, izmantojot kondensatorus (skatiet attēlu), jo Accel pārvietojas, tajā esošais kondensators arī mainīsies (atsaucieties uz attēlu), pamatojoties uz kustību, jo kapacitāte ir mainīga, var iegūt arī mainīgu spriegumu.
Zemāk ir akselerometra attēli no priekšpuses un aizmugures kopā ar tapas aprakstu-
Akselerometra apraksts:
- Pie šīs tapas jāpievieno Vcc- 5 voltu barošana.
- X-OUT - šī tapa nodrošina analogo izvadi x virzienā
- Y-OUT - šī tapa dod analogo izvadi y virzienā
- Z-OUT - šī tapa nodrošina analogo izvadi z virzienā
- GND- Zeme
- ST - šo tapu izmanto sensora jutības iestatīšanai
Mēs veidojam daudzus projektus, izmantojot akselerometru ADXL335, tostarp ar žestu vadītu robotu, zemestrīces detektora trauksmi, galda tenisa spēli utt.
Ķēdes shēma
Arduino akselerometra soļu skaitītāja shēmas diagramma ir sniegta zemāk.
Šajā shēmā mēs saskaramies ar Arduino Nano ar ADXL335 akselerometru. Akselerometra X, Y un Z tapas ir savienotas ar Arduino Nano analogajām tapām (A1, A2 un A3). Lai savienotu 16x2 LCD moduļus ar Arduino, mēs izmantojam I2C moduli. I2C moduļa SCL un SDA tapas ir savienotas ar Arduino Nano attiecīgi A5 un A4 tapām. Pilnīgi savienojumi ir norādīti zemāk esošajā tabulā:
Arduino Nano | ADXL335 |
3.3V | VCC |
GND | GND |
A1 | X |
A2 | Jā |
A3 | Z |
Arduino Nano | LCD I2C modulis |
5V | VCC |
GND | GND |
A4 | SDA |
A5 | SCL |
Vispirms mēs izveidojām šo pedometru, izmantojot Arduino iestatījumu uz maizes dēļa
Pēc veiksmīgas pārbaudes mēs to atkārtojām Perfboard, pielodējot visu Perfboard sastāvdaļu, kā parādīts zemāk:
Kā darbojas pedometrs?
Soļu skaitītājs aprēķina kopējo soļu skaitu, ko persona ir veikusi, izmantojot trīs kustības komponentus, kas ir uz priekšu, vertikāli un uz sāniem. Lai iegūtu šīs vērtības, soļu skaitītāja sistēma izmanto akselerometru. Akselerometrs nepārtraukti atjaunina 3 asu paātrinājuma maksimālo un minimālo vērtību pēc katra noteiktā Nr. paraugu. Šo 3 asu (Max + Min) / 2 vidējo vērtību sauc par dinamiskā sliekšņa līmeni, un šo sliekšņa vērtību izmanto, lai izlemtu, vai tiek sperts solis.
Skrienot, pedometrs var būt jebkurā orientācijā, tāpēc solis aprēķina soļus, izmantojot asi, kuras paātrinājuma izmaiņas ir vislielākās.
Tagad ļaujiet man jums ātri iepazīties ar šī Arduino pedometra darbību:
- Pirmkārt, soļu skaitītājs sāk kalibrēšanu, tiklīdz tas tiek darbināts.
- Tad tukšuma cilpas funkcijā tas nepārtraukti iegūst datus no X, Y un Z ass.
- Pēc tam tas aprēķina kopējo paātrinājuma vektoru no sākuma punkta.
- Paātrinājuma vektors ir kvadrātsakne (x ^ 2 + y ^ 2 + z ^ 2) no X, Y un Z ass vērtībām.
- Tad tā salīdzina vidējās paātrinājuma vērtības ar sliekšņa vērtībām, lai skaitītu soļa numuru.
- Ja paātrinājuma vektors šķērso sliekšņa vērtību, tas palielina soļu skaitu; pretējā gadījumā tas izmet nederīgās vibrācijas.
Arduino Step Counter programmēšana
Pilnīgs Arduino Step Counter kods ir norādīts šī dokumenta beigās. Šeit mēs izskaidrojam dažus svarīgus šī koda fragmentus.
Kā parasti, sāciet kodu, iekļaujot visas nepieciešamās bibliotēkas. ADXL335 akselerometram nav nepieciešama bibliotēka, jo tas nodrošina analogo izvadi.
# iekļaut
Pēc tam definējiet Arduino Pins, kur ir pievienots akselerometrs.
const int xpin = A1; const int ypin = A2; const int zpin = A3;
Definējiet akselerometra sliekšņa vērtību. Lai aprēķinātu soļu skaitu, šo sliekšņa vērtību salīdzinās ar paātrinājuma vektoru.
pludiņa slieksnis = 6;
Tukšā iestatījuma iekšpusē funkcija kalibrē sistēmu, kad tā tiek darbināta.
kalibrēt ();
Tukšā cikla funkcijas iekšpusē tā nolasīs X, Y un Z ass vērtības 100 paraugiem.
par (int a = 0; a <100; a ++) {xaccl = pludiņš (analogRead (xpin) - 345); kavēšanās (1); yaccl = pludiņš (analogRead (ypin) - 346); kavēšanās (1); zaccl = pludiņš (analogRead (zpin) - 416); kavēšanās (1);
Pēc 3 asu vērtību iegūšanas aprēķiniet kopējo paātrinājuma vektoru, ņemot kvadrātsakni no X, Y un Z ass vērtībām.
totvect = sqrt (((xaccl - xavg) * (xaccl - xavg)) + ((yaccl - yavg) * (yaccl - yavg)) + ((zval - zavg) * (zval - zavg)));
Pēc tam aprēķiniet vidējā maksimālā un minimālā paātrinājuma vektora vērtības.
totave = (totvect + totvect) / 2;
Tagad salīdziniet vidējo paātrinājumu ar slieksni. Ja vidējais rādītājs ir lielāks par slieksni, palieliniet soļu skaitu un paceliet karodziņu.
if (totāvs> slieksnis && karogs == 0) {soļi = pakāpieni + 1; karogs = 1; }
Ja vidējais rādītājs ir lielāks par slieksni, bet karogs ir pacelts, tad nedariet neko.
else if (totave> slieksnis && flag == 1) {// Neskaitīt}
Ja kopējais vidējais rādītājs ir mazāks par slieksni un karogs ir pacelts, tad nolieciet karogu.
if (totave <slieksnis && flag == 1) {flag = 0; }
Izdrukājiet soļu skaitu sērijveida monitorā un LCD.
Serial.println (soļi); lcd.print ("Soļi:"); lcd.print (soļi);
Arduino pedometra pārbaude
Kad aparatūra un kods ir gatavi, pievienojiet Arduino klēpjdatoram un augšupielādējiet kodu. Tagad paņemiet rokās pedometra iestatījumus un sāciet soli pa solim, tam LCD ekrānā jāparāda soļu skaits. Dažreiz tas palielina soļu skaitu, kad pedometrs vibrē ļoti ātri vai ļoti lēni.
Pilns ADXL335 pedometra Arduino darba video un kods ir sniegts zemāk.