0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

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

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

用Raspberry Pi和SensorMedal制作IoT跳繩設(shè)備:用SensorMedal檢測跳躍次數(shù)并在顯示器上顯示

楊勇 ? 2023-02-20 13:34 ? 次閱讀

第一部分:用跳繩測試儀解決運(yùn)動(dòng)不足問題!

大家好,我是吉田!

在第一部分中,我們簡要介紹了本項(xiàng)目以及所需的準(zhǔn)備工作,從第二部分開始,我們將著手制作這款旨在解決運(yùn)動(dòng)不足問題的跳繩設(shè)備。首先,讓我們嘗試在跳繩上附加SensorMedal,并檢測跳躍次數(shù)吧。在四位顯示器上以數(shù)字形式顯示次數(shù),可以方便您隨時(shí)查看跳躍次數(shù)。

pYYBAGPyzcWAQW-wAAGTBZAJzlg845.jpg

本部分所需部件

跳繩

poYBAGPyzZSAa-AYAAB1zwaR4_s341.jpg

ROHM SensorMedal(SensorMedal-EVK-002)

pYYBAGPyzZaAa4Y0AACN-y6Q7Io389.jpg

Raspberry Pi zero(Raspberry Pi Zero W)

pYYBAGPyzZmACcDcAACssHa76rI331.jpg

FOUR LETTER LED PHAT

pYYBAGPyzZuARf7oAACS5896Ozg928.jpg

本部分的流程

用SensorMedal進(jìn)行跳繩計(jì)數(shù)

在四位顯示器上顯示

跳繩并顯示次數(shù)

總結(jié)

1. 用SensorMedal進(jìn)行跳繩計(jì)數(shù)

在制作跳繩設(shè)備時(shí),需要準(zhǔn)備一根跳繩。對(duì)跳繩沒有格外要求,如果可能的話,最好使用手柄較粗較長的,這樣更容易操作。

pYYBAGPyzdWAc2wCAAKh-YsIqvo885.jpg

然后,考慮計(jì)算跳躍次數(shù)的方法。最直接的辦法就是對(duì)跳繩旋轉(zhuǎn)部分每轉(zhuǎn)一圈計(jì)一次這樣進(jìn)行計(jì)數(shù)。這個(gè)可以通過將磁鐵等連接到跳繩的旋轉(zhuǎn)端并用霍爾傳感器對(duì)其進(jìn)行檢測來實(shí)現(xiàn)。然而,在旋轉(zhuǎn)部分安裝霍爾傳感器并安裝用來獲取檢測結(jié)果的電路,還涉及到空間問題,難度較高。

這次我們使用SensorMedal的加速度傳感器來檢測跳繩手柄部分的加速度,并作為跳躍次數(shù)來計(jì)數(shù)。這樣的話,還可以捕捉雙飛和雙臂交叉跳等的動(dòng)作,也許還可以檢測出跳法。

poYBAGPyzdeAZ89PAABYm583ulw234.png

現(xiàn)在,我們先將紐扣電池CR2450裝入SensorMedal中并打開電源。用扎帶等將已經(jīng)接通電源的SensorMedal連接到跳繩的手柄上。SensorMedal很輕,而且尺寸不大,所以我認(rèn)為裝上它并不會(huì)妨礙跳繩。

pYYBAGPyzduACr74AAKcK1uSEhY779.jpg

接下來,準(zhǔn)備用Raspberry Pi Zero來接收這個(gè)SensorMedal的傳感器值。另外,安裝一個(gè)名為“bluepy”的庫,以便用藍(lán)牙將Raspberry Pi和SensorMedal連接起來。

然后,使用Github(http://github.com/bokunimowakaru/SensorMedal2)上的便利程序來顯示從SensorMedal接收到的數(shù)值。使用“git clone”下載程序。

運(yùn)行示例程序ble_logger_SensorMedal2.py。

pi@raspizero:~ $ sudo pip3 install bluepy
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting bluepy 
Installing collected packages: bluepy
Successfully installed bluepy-1.3.0

pi@raspizero:~ $ sudo git clone http://github.com/bokunimowakaru/SensorMedal2
Cloning into 'SensorMedal2'...
Unpacking objects: 100% (78/78), done.

pi@raspizero:~ $ cd SensorMedal2/
pi@raspizero:~/SensorMedal2 $ sudo python3 ble_logger_SensorMedal2.py
Device c5:xx:yy:zz::d0 (random), RSSI=-65 dB
  Short Local Name = ROHMMedal2_0107_01.00
  Flags = 06
  Incomplete 16b Services = 0000180a-0000
  Manufacturer = 0100c86abcdef
    ID            = 0x1
    SEQ           = 188
    Temperature   = 27.99 ℃
    Humidity      = 71.52 %
    Pressure      = 998.578 hPa
    Illuminance   = 93.3 lx
    Accelerometer = 1.453 g ( 0.062 0.844 1.181 g)
    Geomagnetic   = 92.6 uT ( -15.8 -58.0 -70.4 uT)
    Magnetic      = 0x3
    Steps         = 8 歩
    Battery Level = 90 %
    RSSI          = -65 dB

作為加速度,SensorMedal輸出Accelerometer上的x、y 、z軸的加速度,以及合成的重力加速度(g)。在前面的圖中,跳繩時(shí)的重力加速度為2?4g,SensorMedal以相似的形式,檢測到一定的重力加速度,并輸出Steps的值。這次我們將使用這個(gè)數(shù)值作為跳繩時(shí)的跳躍次數(shù)。
另外,還需要計(jì)算一下跳繩時(shí)消耗的卡路里。在第一部分的文章中,提到過通過卡路里計(jì)算,可知每分鐘跳100次左右、跳30分鐘消耗的卡路里是270大卡,所以我們直接使用這個(gè)數(shù)值。
(每跳一次消耗的卡路里=270大卡/30*100次≒0.1大卡/次)

使用了該數(shù)值的Python程序ble_jump.py如下:

pi@raspizero:~/SensorMedal2 $ sudo cp ble_logger_SensorMedal2.py ../Programs/ble_jump.py

--- 下面的第5?7、第12、第16?18、第42?55行是更改或添加部分 ---

interval = 1 #動(dòng)作間隔
start_seq = 0
jump_cnt = 0

---
    # 每個(gè)BLE設(shè)備的接收數(shù)據(jù)處理
    for dev in devices:
        # print("nDevice %s (%s), RSSI=%d dB" % (dev.addr, dev.addrType, dev.rssi))
        isRohmMedal = False
        sensors = dict()
        for (adtype, desc, val) in dev.getScanData():
            # print("  %s = %s" % (desc, val))
            if desc == 'Short Local Name' and val[0:18] == 'ROHMMedal2_xxxx_xx': # 在xxxx_xx中輸入您使用的SensorMedal編號(hào)
                print(“JUMP!”)
                isRohmMedal = True
            if isRohmMedal and desc == 'Manufacturer':
---
               # 在顯示器上顯示
                print('    ID            =',sensors['ID'])
                print('    SEQ           =',sensors['SEQ'])
                “”” print('    Temperature   =',round(sensors['Temperature'],2),'℃')
                print('    Humidity      =',round(sensors['Humidity'],2),'%')
                print('    Pressure      =',round(sensors['Pressure'],3),'hPa')
                print('    Illuminance   =',round(sensors['Illuminance'],1),'lx')
                print('    Accelerometer =',round(sensors['Accelerometer'],3),'g (',
                                            round(sensors['Accelerometer X'],3),
                                            round(sensors['Accelerometer Y'],3),
                                            round(sensors['Accelerometer Z'],3),'g)')
                print('    Geomagnetic   =',round(sensors['Geomagnetic'],1),'uT (',
                                            round(sensors['Geomagnetic X'],1),
                                            round(sensors['Geomagnetic Y'],1),
                                            round(sensors['Geomagnetic Z'],1),'uT)')
                print('    Magnetic      =',sensors['Magnetic'])
                print('    Steps         =',sensors['Steps'],'歩')
                print('    Battery Level =',sensors['Battery Level'],'%')
                print('    RSSI          =',sensors['RSSI'],'dB') ”””

                SEQ = sensors['SEQ']
                jump_cnt = sensors['Steps']

                if SEQ in [0,1] and jump_cnt == 0:
                    start_seq+= 1
                    print(“START!")
                else:
                    last_cnt = jump_cnt

                if start_seq >= 1:
                    cur_cnt = jump_cnt
                    cur_cal = round(cur_cnt*0.1,1)
                    jump_text= str(cur_cnt)+" Jump "+str(cur_cal)+" Cal"
                    print(jump_text)

               '''
                for key, value in sorted(sensors.items(), key=lambda x:x[0]):
                    print('    ',key,'=',value)
                '''

像sudo python3 ble_jump.py一樣運(yùn)行這個(gè)程序后,按一下SensorMedal上的開關(guān)?,F(xiàn)在,可以跳繩了!您看到如下顯示的跳躍次數(shù)和燃燒的卡路里了嗎?

pYYBAGPyzd6AUYyTAACUASD0sNQ044.png

2. 在四位顯示器上顯示

獲得跳躍次數(shù)后,我們嘗試在手邊顯示該數(shù)值吧。這次我們使用可與Raspberry Pi Zero完美兼容的Pimoroni的四位顯示器。這個(gè)顯示器由每個(gè)字符的顯示器和電路板組成,所以需要把它們焊接起來。

poYBAGPyzeOAABZlAAJ3ebjYmv4758.jpg

下面的照片是焊接好的狀態(tài)(焊得有點(diǎn)粗糙)。

pYYBAGPyzeaAMz6zAAEWf0GUKy4716.jpg

焊接完成后,將Pimoroni提供的庫安裝到Raspberry Pi上。請(qǐng)?jiān)L問下面的Github:

[ Pimoroni 四位顯示器的 Github https://github.com/pimoroni/fourletter-phat ]

pYYBAGPyzeqAR-SvAAKi7f85k7Y833.png

或者只需使用Raspberry Pi運(yùn)行以下命令進(jìn)行安裝:

$ curl https://get.pimoroni.com/fourletterphat | bash

安裝完成后,將會(huì)在名為“Pimoroni”的目錄下找到一個(gè)名為“fourletter-phat”的顯示示例程序。在這個(gè)示例程序中,讓我們運(yùn)行一下程序 (clock.py),顯示當(dāng)前時(shí)間作為時(shí)鐘。

$ python ~/Pimoroni/fourletter-phat/examples/clock.py

當(dāng)前時(shí)間顯示如下:

poYBAGPyze-APzP7AAKesyOQQsA351.jpg

3. 跳繩并顯示次數(shù)

我們已經(jīng)實(shí)現(xiàn)了四位數(shù)字的顯示,現(xiàn)在我們嘗試顯示跳繩時(shí)的跳躍次數(shù)。只需復(fù)制ble_jump.py并添加下面的淺藍(lán)色部分即可創(chuàng)建為ble_jump_4d.jpy。

pi@raspizero:~/Programs $ sudo cp ble_jump.py ble_jump_4d.py

--- 下面的第4、11、12行為更改或添加部分 ---
import fourletterphat
---
                if start_seq >= 1:
                    cur_cnt = jump_cnt
                    cur_cal = round(cur_cnt*0.1,1)
                    jump_text= str(cur_cnt)+" Jump "+str(cur_cal)+" Cal"
                    print(jump_text)
                    fourletterphat.print_number_str(cur_cnt)
                    fourletterphat.show()
               '''
                for key, value in sorted(sensors.items(), key=lambda x:x[0]):
                    print('    ',key,'=',value)
                '''

最后,讓我們更細(xì)致地安裝SensorMedal和Raspberry Pi。首先,我決定將它們安裝到跳繩手柄上方相對(duì)平坦的位置。使用較大刀具等在上部開一個(gè)孔,以便Raspberry Pi Zero的引腳正好嵌入進(jìn)去。在開孔位置的背面安裝Raspberry Pi,正面安裝四位顯示器。

pYYBAGPyzfKAGnr4AAKlKYHbRnQ361.jpg
注意不要讓它們干涉繩索部分,將Raspberry Pi和四位顯示器固定在開孔的兩面安裝好之后,跳繩設(shè)備就制作完成啦!

pYYBAGPyzfmAPsWKAAKESEv3zWY693.jpg

現(xiàn)在讓我們運(yùn)行ble_jump_4d.py并開始跳繩吧!

pYYBAGPyzfyAJVc-AAGjWfYe03k344.jpg

4. 總結(jié)

至此,我們成功地使用Raspberry Pi和SensorMedal實(shí)現(xiàn)了跳繩的數(shù)字化,并關(guān)聯(lián)物聯(lián)網(wǎng)。當(dāng)初的計(jì)劃是制作一款通過輕松的跳繩運(yùn)動(dòng)來助力解決運(yùn)動(dòng)不足問題的設(shè)備。

我們已經(jīng)實(shí)現(xiàn)了基本的功能:跳躍次數(shù)計(jì)量和顯示次數(shù)。您可以試用一下這款跳繩,看看它是否能夠正確計(jì)數(shù)。

在下一部分中,我們會(huì)將創(chuàng)建激發(fā)動(dòng)力的機(jī)制,將跳繩連接到互聯(lián)網(wǎng),以保存和顯示以往的次數(shù)和消耗的卡路里。

敬請(qǐng)期待!

本系列連載一覽

第一部分:用跳繩測試儀解決運(yùn)動(dòng)不足問題!
第二部分:用SensorMedal檢測跳躍次數(shù)并在顯示器上顯示(本章)
第三部分:連接Google Drive,保存并查看跳繩結(jié)果
第四部分:在設(shè)備上安裝顯示器以增加動(dòng)力!

審核編輯黃宇

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

    關(guān)注

    6

    文章

    3607

    瀏覽量

    54463
  • Raspberry Pi
    +關(guān)注

    關(guān)注

    1

    文章

    554

    瀏覽量

    22128
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何在Raspbian設(shè)置沒有顯示器和鍵盤的Raspberry Pi

    在本教程中,我們將了解如何在新安裝的 Raspbian 設(shè)置沒有顯示器和鍵盤的 Raspberry Pi。
    發(fā)表于 09-22 16:31 ?1533次閱讀
    如何在Raspbian<b class='flag-5'>上</b>設(shè)置沒有<b class='flag-5'>顯示器</b>和鍵盤的<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>

    OLED顯示器如何與Raspberry Pi一起使用?

    我們大多數(shù)人都熟悉16×2點(diǎn)陣LCD顯示器,在大多數(shù)項(xiàng)目中用于向用戶顯示一些信息。但是這些LCD顯示器有很多局限性。在本教程中,我們將了解OLED顯示器以及如何將它們與
    的頭像 發(fā)表于 11-17 16:52 ?4556次閱讀
    OLED<b class='flag-5'>顯示器</b>如何與<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>一起使用?

    ATtiny13制作一個(gè)PoV顯示器

    電子發(fā)燒友網(wǎng)站提供《ATtiny13制作一個(gè)PoV顯示器.zip》資料免費(fèi)下載
    發(fā)表于 07-15 11:41 ?0次下載
    <b class='flag-5'>用</b>ATtiny13<b class='flag-5'>制作</b>一個(gè)PoV<b class='flag-5'>顯示器</b>

    如何在Raspberry Pi Pico中使用OLED顯示器

    電子發(fā)燒友網(wǎng)站提供《如何在Raspberry Pi Pico中使用OLED顯示器.zip》資料免費(fèi)下載
    發(fā)表于 10-18 09:15 ?4次下載
    如何在<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> Pico中使用OLED<b class='flag-5'>顯示器</b>

    Raspberry Pi和Arduino Micro制作的虛擬窺視孔

    電子發(fā)燒友網(wǎng)站提供《Raspberry Pi和Arduino Micro制作的虛擬窺視孔.zip》資料免費(fèi)下載
    發(fā)表于 11-11 11:23 ?0次下載
    <b class='flag-5'>用</b><b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>和Arduino Micro<b class='flag-5'>制作</b>的虛擬窺視孔

    可以檢測鴿子并在Raspberry Pi運(yùn)行的系統(tǒng)

    電子發(fā)燒友網(wǎng)站提供《可以檢測鴿子并在Raspberry Pi運(yùn)行的系統(tǒng).zip》資料免費(fèi)下載
    發(fā)表于 12-14 09:58 ?0次下載
    可以<b class='flag-5'>檢測</b>鴿子<b class='flag-5'>并在</b><b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b><b class='flag-5'>上</b>運(yùn)行的系統(tǒng)

    Raspberry Pi的視覺識(shí)別事物

    電子發(fā)燒友網(wǎng)站提供《Raspberry Pi的視覺識(shí)別事物.zip》資料免費(fèi)下載
    發(fā)表于 12-26 10:16 ?0次下載
    <b class='flag-5'>用</b><b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>的視覺識(shí)別事物

    Raspberry Pi和圓形櫻桃派計(jì)算Pi

    電子發(fā)燒友網(wǎng)站提供《Raspberry Pi和圓形櫻桃派計(jì)算Pi.zip》資料免費(fèi)下載
    發(fā)表于 12-30 09:58 ?0次下載
    <b class='flag-5'>用</b><b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>和圓形櫻桃派計(jì)算<b class='flag-5'>Pi</b>

    Raspberry PiSensorMedal制作IoT跳繩設(shè)備:連接Google Drive,保存并查看跳繩結(jié)果

    第一部分:跳繩測試儀解決運(yùn)動(dòng)不足問題!第二部分:SensorMedal檢測跳躍
    的頭像 發(fā)表于 02-20 11:14 ?855次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>和<b class='flag-5'>SensorMedal</b><b class='flag-5'>制作</b><b class='flag-5'>IoT</b><b class='flag-5'>跳繩</b><b class='flag-5'>設(shè)備</b>:連接Google Drive,保存并查看<b class='flag-5'>跳繩</b>結(jié)果

    Raspberry PiSensorMedal制作IoT跳繩設(shè)備跳繩測試儀解決運(yùn)動(dòng)不足問題!

    大家好,我是吉田!隨著在室內(nèi)度過的時(shí)間越來越多,我趁機(jī)制作了各種旨在解決運(yùn)動(dòng)不足問題的項(xiàng)目。這次為大家介紹的項(xiàng)目是把在家中也能輕松使用的健身器材“跳繩”數(shù)字化,并將其與物聯(lián)網(wǎng)連接起來。
    的頭像 發(fā)表于 02-20 11:45 ?661次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>和<b class='flag-5'>SensorMedal</b><b class='flag-5'>制作</b><b class='flag-5'>IoT</b><b class='flag-5'>跳繩</b><b class='flag-5'>設(shè)備</b>:<b class='flag-5'>用</b><b class='flag-5'>跳繩</b>測試儀解決運(yùn)動(dòng)不足問題!

    Raspberry PiSensorMedal制作IoT跳繩設(shè)備 第四部分:在設(shè)備安裝顯示器以增加動(dòng)力

    第一部分:跳繩測試儀解決運(yùn)動(dòng)不足問題!第二部分:SensorMedal檢測跳躍
    的頭像 發(fā)表于 03-23 15:18 ?699次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>和<b class='flag-5'>SensorMedal</b><b class='flag-5'>制作</b><b class='flag-5'>IoT</b><b class='flag-5'>跳繩</b><b class='flag-5'>設(shè)備</b> 第四部分:在<b class='flag-5'>設(shè)備</b><b class='flag-5'>上</b>安裝<b class='flag-5'>顯示器</b>以增加動(dòng)力

    一款Raspberry Pi和傳感制作的可穿戴式小型健康管理設(shè)備!第四部分?劇終篇

    第1部分:Raspberry Pi Zero和羅姆SensorMedal制作健康管理設(shè)備!第2
    的頭像 發(fā)表于 02-24 10:06 ?2066次閱讀
    一款<b class='flag-5'>用</b><b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>和傳感<b class='flag-5'>器</b><b class='flag-5'>制作</b>的可穿戴式小型健康管理<b class='flag-5'>設(shè)備</b>!第四部分?劇終篇

    Raspberry Pi和傳感制作“可自動(dòng)營造舒適空間的裝置” 第四部分?劇終篇

    第1回:Raspberry Pi和傳感制作“可自動(dòng)營造舒適空間的裝置” 第一部分第2回:
    的頭像 發(fā)表于 02-24 10:17 ?642次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>和傳感<b class='flag-5'>器</b><b class='flag-5'>制作</b>“可自動(dòng)營造舒適空間的裝置” 第四部分?劇終篇

    Raspberry Pi添加15美元的顯示器

    電子發(fā)燒友網(wǎng)站提供《為Raspberry Pi添加15美元的顯示器.zip》資料免費(fèi)下載
    發(fā)表于 06-20 11:04 ?0次下載
    為<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>添加15美元的<b class='flag-5'>顯示器</b>

    工業(yè)觸摸屏顯示器怎么

    工業(yè)觸摸屏顯示器怎么
    的頭像 發(fā)表于 07-31 17:30 ?1698次閱讀