精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

采用Arduino開發板和ADXL33的簡易計步器設計

454398 ? 來源:一板網 ? 作者:王香盤 ? 2020-10-24 11:23 ? 次閱讀

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

計步器(Pedometer)是一種用來計算人走路步數的設備。在本篇文章中,我們將使用Arduino開發板和加速度計ADXL335制作一個簡單又便宜的計步器。該計步器計算走路步數,然后將計算結果顯示在LCD1602顯示屏上。

所需的組件

● Arduino Nano開發板

● ADXL335加速度計

● LCD1602液晶顯示屏模塊

● 電池

ADXL335加速度計介紹

ADXL335是一款小尺寸、完整的三軸加速度計,基于電容式感應原理。它是一個小尺寸、薄型、低功耗的模塊,帶有一個經過多晶硅表面微機械加工的傳感器信號調理電路。 ADXL335加速度計可以測量靜態和動態加速度。在本文中,ADXL335加速度計用作計步器傳感器。

加速度計是一種可以將任意方向上的加速度轉換為其相應的可變電壓的設備。該設備通過使用電容器來實現的,隨著加速度移動,位于其內部的電容器也將根據該運動而發生變化,由于電容是變化的,因此可以獲得可變電壓。

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

電路連接圖

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

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

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

計步器是如何工作的?

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

計步器在運行時可以處于任何方向,因此計步器使用加速度變化最大的軸來計算步數。

現在,我們快速了解一下Arduino計步器的工作原理

1. 首先,計步器上電后開始校準。

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

3. 然后,從起點算出總加速度矢量。

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

5. 然后將平均加速度值與閾值進行比較,以計算步數。

6. 如果加速度矢量超過閾值,則增加步數;否則,認為是無效的振動,丟棄該數據。

編程Arduino計步器

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

首先在代碼中包含所有必需的庫。 ADXL335加速度計輸出模擬輸出信號,因此不需要任何庫。

#include 《LiquidCrystal_I2C.h》

復制代碼

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

const int xpin = A1;

const int ypin = A2;

const int zpin = A3;

復制代碼

定義加速度計的閾值。將該閾值與加速度矢量進行比較,以計算步數。

float threshold = 6;

復制代碼

在void setup()函數中,在開發板上電時調用以下函數對其進行校準。

calibrate();

復制代碼

在void loop()函數中,將讀取100個樣本的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);

復制代碼

獲得3個軸的值后,通過取X、Y和Z軸值的平方根來計算總加速度矢量。

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

復制代碼

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

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

復制代碼

接下來將加速度矢量值的平均值與閾值進行比較。如果平均值大于閾值,則增加步數并置位標志位。

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

{

steps = steps + 1;

flag = 1; }

復制代碼

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

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

{

// Don’t Count

}

復制代碼

如果平均值小于閾值且標志位置位,則將標志位清零。

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

{

flag = 0;

}

復制代碼

在串口監視器和LCD顯示屏上打印輸出步數。

Serial.println(steps );

lcd.print(“Steps: ”);

lcd.print(steps);

復制代碼

測試Arduino計步器

準備好硬件和代碼后,將Arduino開發板連接到筆記本電腦并上傳代碼。現在,將計步器握在手中,然后一步步走路,它應該會在LCD上顯示步數。有時,計步器非??焖倩蚓徛卣駝訒r,步數也會增加。

編輯:hfy

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 計步器
    +關注

    關注

    4

    文章

    76

    瀏覽量

    19904
  • Arduino
    +關注

    關注

    187

    文章

    6464

    瀏覽量

    186671
  • ADXL335
    +關注

    關注

    1

    文章

    15

    瀏覽量

    10505
收藏 人收藏

    評論

    相關推薦

    基于Arduino的串口通信項目

    基于Arduino的串口通信項目涉及多個方面,包括硬件連接、軟件編程、串口參數配置等。 一、硬件準備 Arduino開發板 :確保你有一塊Arduino
    的頭像 發表于 11-22 09:24 ?234次閱讀

    【迅為】瑞芯微RK3588開發板RK3568開發板區別及優勢

    RK3568開發板
    的頭像 發表于 11-18 14:19 ?229次閱讀
    【迅為】瑞芯微RK3588<b class='flag-5'>開發板</b>RK3568<b class='flag-5'>開發板</b>區別及優勢

    正點原子fpga開發板不同型號

    正點原子作為國內領先的FPGA開發板供應商,其產品線覆蓋了從入門級到高端應用的各個領域。這些開發板不僅適用于學術研究,還廣泛應用于工業控制、通信、圖像處理等多個領域。 1. 入門級開發板 1.1
    的頭像 發表于 11-13 09:30 ?302次閱讀

    51開發板芯片資料

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

    米爾基于NXP iMX.93開發板的M33處理器應用開發筆記

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

    RISC-V有沒有類似Arduino那樣的開發板

    使用ARduino開發,由于有第三方提供的庫支持,在開發上非常方便。RISC-V有沒有在Arduino IDE上可以使用的開發板?
    發表于 06-23 12:32

    鴻蒙OpenHarmony開發板解析:【芯片解決方案】

    芯片解決方案是指基于某款開發板的完整解決方案,包含驅動、設備側接口適配、開發板sdk等。
    的頭像 發表于 05-10 15:42 ?1167次閱讀
    鴻蒙OpenHarmony<b class='flag-5'>開發板</b>解析:【芯片解決方案】

    SiliconLabs攜手Arduino演示基于MGM240模塊的新型Nano Matter開發板

    Arduino Nano Matter開發板,從而將Matter協議引入Arduino生態系統,為廣大的開發人員提供一個快速涉足Matter互聯互通設計的絕佳途徑。
    的頭像 發表于 04-11 17:35 ?620次閱讀
    SiliconLabs攜手<b class='flag-5'>Arduino</b>演示基于MGM240模塊的新型Nano Matter<b class='flag-5'>開發板</b>

    fpga開發板是什么?fpga開發板有哪些?

    FPGA開發板是一種基于FPGA(現場可編程門陣列)技術的開發平臺,它允許工程師通過編程來定義和配置FPGA芯片上的邏輯電路,以實現各種數字電路和邏輯功能。FPGA開發板通常包括FPGA芯片、時鐘模塊、電源模塊、輸入輸出接口等組
    的頭像 發表于 03-14 18:20 ?1844次閱讀

    fpga開發板使用教程

    FPGA開發板的使用教程主要包括以下幾個關鍵步驟。
    的頭像 發表于 03-14 15:50 ?977次閱讀

    fpga開發板與linux開發板區別

    (Field-Programmable Gate Array)是一種可編程邏輯器件,它可以通過編程改變硬件邏輯電路的功能和結構。FPGA采用了可編程的門極,可以根據需要重新配置內部電路,從而實現不同的功能和邏輯關系。而Linux開發板則是一種嵌入式計算機平臺,其核心是Li
    的頭像 發表于 02-01 17:09 ?2094次閱讀

    51單片機開發板的主要功能 51單片機開發板能做什么

    51單片機開發板是一種基于8051系列單片機芯片的開發板,具有豐富的功能和廣泛的應用。下面將詳細介紹51單片機開發板的主要功能以及能夠實現的各種應用。 一、基本功能: 通用輸入輸出:51單片機
    的頭像 發表于 01-23 15:52 ?3429次閱讀

    使用RA6M5開發板簡易熱成像儀設計

    本項目是使用RA6M5開發板搭載RTThread系統+LVGL圖形庫實現的一個簡易熱成像儀。其中傳感器使用的是mlx90640,屏幕是320*240的電容觸摸屏,整個交互由觸摸完成。
    的頭像 發表于 01-02 13:50 ?768次閱讀
    使用RA6M5<b class='flag-5'>開發板</b>的<b class='flag-5'>簡易</b>熱成像儀設計

    小安派Arduino開發板 ,全新支持以太網口

    上手~ 01 概述 小安派-UNO-ET485 Arduino開發板,采用Arduino UNO經典型設計,排母也是兼容了經典外形,板載加
    的頭像 發表于 12-06 16:00 ?753次閱讀
    小安派<b class='flag-5'>Arduino</b><b class='flag-5'>開發板</b> ,全新支持以太網口

    小安派-UNO-ET485 Arduino開發板簡介

    前面幾款小安派出來的時候,經常有粉絲詢問是否支持Arduino?其它款小安派也是支持的,大家可以去安信可社區搜索查看,小安派-UNO-ET485 Arduino開發板來了,兼容UNO的經典外形,易上手。
    的頭像 發表于 12-03 09:58 ?911次閱讀
    小安派-UNO-ET485 <b class='flag-5'>Arduino</b><b class='flag-5'>開發板</b>簡介