0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

采用Arduino開發(fā)板和ADXL33的簡(jiǎn)易計(jì)步器設(shè)計(jì)

454398 ? 來(lái)源:一板網(wǎng) ? 作者:王香盤 ? 2020-10-24 11:23 ? 次閱讀

目前,健身手環(huán)在人們的日常生活中變得越來(lái)越流行,它不僅可以計(jì)算人行走的步數(shù),而且還可以記錄您燃燒的卡路里、顯示心跳、顯示時(shí)間等等。通常這些物聯(lián)網(wǎng)設(shè)備已與云平臺(tái)連接同步,因此您可以在智能手機(jī)上輕松獲取所有身體活動(dòng)量的歷史記錄。在前面的文章中,我們還制作了一個(gè)基于物聯(lián)網(wǎng)的患者監(jiān)護(hù)系統(tǒng),其重要數(shù)據(jù)發(fā)送到ThingSpeak云平臺(tái),用戶可以從任何地方進(jìn)行查看。

計(jì)步器(Pedometer)是一種用來(lái)計(jì)算人走路步數(shù)的設(shè)備。在本篇文章中,我們將使用Arduino開發(fā)板和加速度計(jì)ADXL335制作一個(gè)簡(jiǎn)單又便宜的計(jì)步器。該計(jì)步器計(jì)算走路步數(shù),然后將計(jì)算結(jié)果顯示在LCD1602顯示屏上。

所需的組件

● Arduino Nano開發(fā)板

● ADXL335加速度計(jì)

● LCD1602液晶顯示屏模塊

● 電池

ADXL335加速度計(jì)介紹

ADXL335是一款小尺寸、完整的三軸加速度計(jì),基于電容式感應(yīng)原理。它是一個(gè)小尺寸、薄型、低功耗的模塊,帶有一個(gè)經(jīng)過(guò)多晶硅表面微機(jī)械加工的傳感器信號(hào)調(diào)理電路。 ADXL335加速度計(jì)可以測(cè)量靜態(tài)和動(dòng)態(tài)加速度。在本文中,ADXL335加速度計(jì)用作計(jì)步器傳感器。

加速度計(jì)是一種可以將任意方向上的加速度轉(zhuǎn)換為其相應(yīng)的可變電壓的設(shè)備。該設(shè)備通過(guò)使用電容器來(lái)實(shí)現(xiàn)的,隨著加速度移動(dòng),位于其內(nèi)部的電容器也將根據(jù)該運(yùn)動(dòng)而發(fā)生變化,由于電容是變化的,因此可以獲得可變電壓。

下面是加速度計(jì)模塊的正視圖和底視圖:

電路連接圖

Arduino和加速度計(jì)組成的計(jì)步器電路圖如下所示。

在此電路中,我們將ADXL335加速度計(jì)連接到Arduino Nano開發(fā)板。加速度計(jì)的X、Y和Z引腳與Arduino Nano的模擬引腳(A1、A2和A3)連接。我們使用了一個(gè)I2C模塊將LCD1602顯示屏連接到Arduino開發(fā)板。 I2C模塊的SCL和SDA引腳分別連接到Arduino Nano的A5和A4引腳。

我們按照上面所示的電路圖在面包板上連接計(jì)步器的各個(gè)組件:

計(jì)步器是如何工作的?

計(jì)步器使用向前、垂直和側(cè)面的三個(gè)運(yùn)動(dòng)分量來(lái)計(jì)算一個(gè)人行走的總步數(shù)。計(jì)步器使用加速度計(jì)來(lái)獲取這些值。每次取樣后,加速度計(jì)都會(huì)不斷更新3軸加速度的最大值和最小值。這些3軸(Max + Min)/ 2的平均值稱為動(dòng)態(tài)閾值水平,該閾值用于確定是否應(yīng)該記錄該步數(shù)。

計(jì)步器在運(yùn)行時(shí)可以處于任何方向,因此計(jì)步器使用加速度變化最大的軸來(lái)計(jì)算步數(shù)。

現(xiàn)在,我們快速了解一下Arduino計(jì)步器的工作原理

1. 首先,計(jì)步器上電后開始校準(zhǔn)。

2. 然后在void loop函數(shù)中,連續(xù)獲取從X、Y和Z軸的數(shù)據(jù)。

3. 然后,從起點(diǎn)算出總加速度矢量。

4. 加速度矢量是X、Y和Z軸值的平方根(x ^ 2 + y ^ 2 + z ^ 2)。

5. 然后將平均加速度值與閾值進(jìn)行比較,以計(jì)算步數(shù)。

6. 如果加速度矢量超過(guò)閾值,則增加步數(shù);否則,認(rèn)為是無(wú)效的振動(dòng),丟棄該數(shù)據(jù)。

編程Arduino計(jì)步器

在本文的末尾處提供了完整的Arduino計(jì)步器代碼。在這里,我們對(duì)一些重要代碼片段進(jìn)行說(shuō)明。

首先在代碼中包含所有必需的庫(kù)。 ADXL335加速度計(jì)輸出模擬輸出信號(hào),因此不需要任何庫(kù)。

#include 《LiquidCrystal_I2C.h》

復(fù)制代碼

之后,定義加速度計(jì)連接的Arduino引腳。

const int xpin = A1;

const int ypin = A2;

const int zpin = A3;

復(fù)制代碼

定義加速度計(jì)的閾值。將該閾值與加速度矢量進(jìn)行比較,以計(jì)算步數(shù)。

float threshold = 6;

復(fù)制代碼

在void setup()函數(shù)中,在開發(fā)板上電時(shí)調(diào)用以下函數(shù)對(duì)其進(jìn)行校準(zhǔn)。

calibrate();

復(fù)制代碼

在void loop()函數(shù)中,將讀取100個(gè)樣本的X、Y和Z軸值。

for (int a = 0; a 《 100; a++)

{

xaccl[a] = float(analogRead(xpin) - 345);

delay(1);

yaccl[a] = float(analogRead(ypin) - 346);

delay(1);

zaccl[a] = float(analogRead(zpin) - 416);

delay(1);

復(fù)制代碼

獲得3個(gè)軸的值后,通過(guò)取X、Y和Z軸值的平方根來(lái)計(jì)算總加速度矢量。

totvect[a] = sqrt(((xaccl[a] - xavg) * (xaccl[a] - xavg)) + ((yaccl[a] - yavg) * (yaccl[a] - yavg)) + ((zval[a] - zavg) * (zval[a] - zavg)));

復(fù)制代碼

然后計(jì)算最大和最小加速度矢量值的平均值。

totave[a] = (totvect[a] + totvect[a - 1]) / 2 ;

復(fù)制代碼

接下來(lái)將加速度矢量值的平均值與閾值進(jìn)行比較。如果平均值大于閾值,則增加步數(shù)并置位標(biāo)志位。

if (totave[a] 》 threshold && flag == 0)

{

steps = steps + 1;

flag = 1; }

復(fù)制代碼

如果平均值大于閾值,但標(biāo)志位置位,則什么也不做。

else if (totave[a] 》 threshold && flag == 1)

{

// Don’t Count

}

復(fù)制代碼

如果平均值小于閾值且標(biāo)志位置位,則將標(biāo)志位清零。

if (totave[a] 《 threshold && flag == 1)

{

flag = 0;

}

復(fù)制代碼

在串口監(jiān)視器和LCD顯示屏上打印輸出步數(shù)。

Serial.println(steps );

lcd.print(“Steps: ”);

lcd.print(steps);

復(fù)制代碼

測(cè)試Arduino計(jì)步器

準(zhǔn)備好硬件和代碼后,將Arduino開發(fā)板連接到筆記本電腦并上傳代碼。現(xiàn)在,將計(jì)步器握在手中,然后一步步走路,它應(yīng)該會(huì)在LCD上顯示步數(shù)。有時(shí),計(jì)步器非??焖倩蚓徛卣駝?dòng)時(shí),步數(shù)也會(huì)增加。

編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 計(jì)步器
    +關(guān)注

    關(guān)注

    4

    文章

    76

    瀏覽量

    20248
  • Arduino
    +關(guān)注

    關(guān)注

    189

    文章

    6493

    瀏覽量

    190283
  • ADXL335
    +關(guān)注

    關(guān)注

    1

    文章

    15

    瀏覽量

    10629
收藏 1人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    【新品】遠(yuǎn)距離圖傳數(shù)傳模塊開發(fā)板、藍(lán)牙模塊開發(fā)板、無(wú)線模塊開發(fā)板

    新品上市圖傳數(shù)傳模塊開發(fā)板藍(lán)牙模塊開發(fā)板國(guó)產(chǎn)無(wú)線模塊開發(fā)板部分型號(hào)參與送樣文末了解詳情↓↓↓EWT611-900NW20S遠(yuǎn)距離圖傳數(shù)傳模塊開發(fā)板EWT611-900NW20S是一款入
    的頭像 發(fā)表于 06-12 19:33 ?117次閱讀
    【新品】遠(yuǎn)距離圖傳數(shù)傳模塊<b class='flag-5'>開發(fā)板</b>、藍(lán)牙模塊<b class='flag-5'>開發(fā)板</b>、無(wú)線模塊<b class='flag-5'>開發(fā)板</b>

    貝啟BQ3568HM 開發(fā)板被選用為 OpenHarmony 明星開發(fā)板

    經(jīng)開放原子開源基金會(huì)OpenHarmony社區(qū)官方測(cè)評(píng)評(píng)選,貝啟科技BQ3568HM開源鴻蒙開發(fā)板被正式選用為OpenHarmony明星開發(fā)板。BQ3568HM開源鴻蒙開發(fā)板采用
    的頭像 發(fā)表于 05-25 00:22 ?405次閱讀
    貝啟BQ3568HM <b class='flag-5'>開發(fā)板</b>被選用為 OpenHarmony 明星<b class='flag-5'>開發(fā)板</b>

    STM32開發(fā)板一般都會(huì)配置arduino接口,是不是基本上也都會(huì)支持arduino

    STM32開發(fā)板一般都會(huì)配置arduino接口,是不是基本上也都會(huì)支持arduino?這個(gè)在哪里可以查詢開發(fā)板是否支持
    發(fā)表于 03-07 06:33

    用AI人臉識(shí)別開發(fā)板BW21-CBV-Kit驅(qū)動(dòng)墨水屏

    試著用BW21-CBV-Kit點(diǎn)亮2.9寸墨水屏,開發(fā)板例程非常豐富,在arduino開發(fā)的話上手超級(jí)容易。
    的頭像 發(fā)表于 03-04 18:24 ?1017次閱讀
    用AI人臉識(shí)別<b class='flag-5'>開發(fā)板</b>BW21-CBV-Kit驅(qū)動(dòng)墨水屏

    通過(guò)Arduino Nano Matter開發(fā)板構(gòu)建智能卷簾系統(tǒng)

    在本指南中,您將學(xué)習(xí)如何通過(guò)Arduino NanoMatter開發(fā)板上的Silicon Labs(芯科科技)MGM240S多協(xié)議無(wú)線模塊來(lái)構(gòu)建一個(gè)智能卷簾系統(tǒng)。該系統(tǒng)可通過(guò) Amazon
    的頭像 發(fā)表于 02-28 09:46 ?479次閱讀
    通過(guò)<b class='flag-5'>Arduino</b> Nano Matter<b class='flag-5'>開發(fā)板</b>構(gòu)建智能卷簾系統(tǒng)

    STM32MP25x開發(fā)板Bring Up培訓(xùn)課程(中)

    STM32MP25x開發(fā)板BringUp培訓(xùn)課程(上)米爾基于STM32MP257核心開發(fā)板2.修改設(shè)備樹查看生成的Bringup工程空文件的設(shè)備樹,CA35的設(shè)備樹文件夾,其他的是M33
    的頭像 發(fā)表于 02-20 08:06 ?481次閱讀
    STM32MP25x<b class='flag-5'>開發(fā)板</b>Bring Up培訓(xùn)課程(中)

    dsPIC33C Touch-CAN-LIN Curiosity開發(fā)板用戶指南

    電子發(fā)燒友網(wǎng)站提供《dsPIC33C Touch-CAN-LIN Curiosity開發(fā)板用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 01-22 16:18 ?1次下載
    dsPIC<b class='flag-5'>33</b>C Touch-CAN-LIN Curiosity<b class='flag-5'>開發(fā)板</b>用戶指南

    dsPIC33EDV64MC205電機(jī)控制開發(fā)板用戶指南

    電子發(fā)燒友網(wǎng)站提供《dsPIC33EDV64MC205電機(jī)控制開發(fā)板用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 01-21 14:34 ?10次下載
    dsPIC<b class='flag-5'>33</b>EDV64MC205電機(jī)控制<b class='flag-5'>開發(fā)板</b>用戶指南

    ST NPI 新上架開發(fā)板 【NUCLEO-WL33CC1】

    配備STM32WL33 SoC的STM32 Nucleo開發(fā)板STM32WL33xx是一款高性能超低功耗無(wú)線應(yīng)用處理器、適用于sub-1 GHz頻段的無(wú)線射頻應(yīng)用Ultra-Low Power
    發(fā)表于 01-06 14:37 ?0次下載

    Arduino Nano Matter開發(fā)板正式上市

    Silicon Labs(芯科科技)和Arduino在近日共同宣布Arduino Nano Matter開發(fā)板現(xiàn)已正式上市。這是延續(xù)今年3 月芯科科技和Arduino釋出
    的頭像 發(fā)表于 12-10 13:50 ?840次閱讀

    基于Arduino的串口通信項(xiàng)目

    基于Arduino的串口通信項(xiàng)目涉及多個(gè)方面,包括硬件連接、軟件編程、串口參數(shù)配置等。 一、硬件準(zhǔn)備 Arduino開發(fā)板 :確保你有一塊Arduino
    的頭像 發(fā)表于 11-22 09:24 ?2011次閱讀

    正點(diǎn)原子fpga開發(fā)板不同型號(hào)

    正點(diǎn)原子作為國(guó)內(nèi)領(lǐng)先的FPGA開發(fā)板供應(yīng)商,其產(chǎn)品線覆蓋了從入門級(jí)到高端應(yīng)用的各個(gè)領(lǐng)域。這些開發(fā)板不僅適用于學(xué)術(shù)研究,還廣泛應(yīng)用于工業(yè)控制、通信、圖像處理等多個(gè)領(lǐng)域。 1. 入門級(jí)開發(fā)板 1.1
    的頭像 發(fā)表于 11-13 09:30 ?3386次閱讀

    51開發(fā)板芯片資料

    51開發(fā)板芯片資料
    發(fā)表于 09-18 09:29 ?1次下載

    米爾基于NXP iMX.93開發(fā)板的M33處理器應(yīng)用開發(fā)筆記

    資源MYD-LMX9X開發(fā)板(米爾基于NXPiMX.93開發(fā)板)3.軟件資源Windows7及以上版本軟件:IAREmbeddedWorkbench4.板載固件調(diào)試
    的頭像 發(fā)表于 06-29 08:01 ?2059次閱讀
    米爾基于NXP iMX.93<b class='flag-5'>開發(fā)板</b>的M<b class='flag-5'>33</b>處理器應(yīng)用<b class='flag-5'>開發(fā)</b>筆記

    RISC-V有沒(méi)有類似Arduino那樣的開發(fā)板

    使用ARduino開發(fā),由于有第三方提供的庫(kù)支持,在開發(fā)上非常方便。RISC-V有沒(méi)有在Arduino IDE上可以使用的開發(fā)板
    發(fā)表于 06-23 12:32

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品