Try   HackMD

AIoT Sensor(智聯感測)全國聯賽 X Rabboni

Version

(如果載了python和rabboni還是不能執行程式,很有可能是版本的問題)

  • IDE : vscode (記得要將vscode加入path)
  • python : 3.7.5
  • numpy : 1.19.2
  • rabboni : 1.73

建議使用虛擬環境做版本管理
這邊是用pipenv來操作
可以開一個資料夾再點選"以code(vscode)開啟"

pipenv 基本指令:

  • pip install pipenv : 透過pip安裝pipenv
  • pipenv python 3.7.5 : 產生 3.7.5 的虛擬環境
  • pipenv install numpy==1.19.2 : 在虛擬環境安裝特定版本的套件
  • pipenv install rabboni==1.73 : 在虛擬環境安裝rabboni套件

與此同時,如果資料夾下沒有pipfile,pipenv會自動生成一個pipfile和pipfile.lock 如下
pipfile :

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
numpy = "==1.19.2"
rabboni = "==1.73"

[dev-packages]
pylint = "*"

[requires]
python_version = "3.7"

都設定好後就可以進入虛擬環境了

  • pipenv shell : 進入虛擬環境
  • pipenv run filename.py : 執行此資料夾下的檔案
  • exit : 離開虛擬環境

Example :

#test.py (測試版本是否正確) from rabboni import * print("test")

Termianl :

PS C:\Users\user\pipenv shell        \example code\code\Python_練習>  
Launching subshell in virtual environment...
Windows PowerShell
Copyright (C) Microsoft Corporation. 著作權所有,並保留一切權利。

(進入虛擬環境)

Launching subshell in virtual environment...
Windows PowerShell
Copyright (C) Microsoft Corporation. 著作權所有,並保留一切權利。

請嘗試新的跨平台 PowerShell https://aka.ms/pscore6

PS C:\Users\user\Desktop\rabboin test\example code\code\Python_練習> pipenv run test.py
test

(執行成功)

PS C:\Users\user\Desktop\rabboin test\example code\code\Python_練習> exit  

(退出虛擬環境)

PS C:\Users\user\Desktop\rabboin test\example code\code\Python_練習> python test.py
Traceback (most recent call last):
  File "test.py", line 1, in <module>
    from rabboni import *
ModuleNotFoundError: No module named 'rabboni'

(報錯)

Rabboni Reference

Term:

accx accy accz : 三軸的加速度
gyrx gyry gyrz : 三軸的角速度

Function For Setup

USB

rabo = Rabboni(mode = "USB") #先宣告一個物件(這邊宣告它叫rabo)
rabo.connect() #透過USB連接裝置,若抓不到會報錯 (void)
rabo.disconnect() #斷開聯絡(關掉USB)
rabo.stop() #斷開聯絡

Bluetooth

rabo=Rabboni(mode = “BLE”) #宣告一個物件(這邊宣告它叫rabo)
rabo.scan() #掃描附近的藍芽裝置 (void)
rabo.print_device() #列出所有附近的藍芽裝置 (void)
rabo.connect(MAC) #填入MAC,連接裝ˋ
#什麼是MAC? 每一個網卡獨一無二的編號,就是MAC address (在Rabboni的後面有)#

rabo.disconnect() #斷開聯絡
rabo.stop() #關掉dongle(建議都要關掉,以免下次發生錯誤)
#dongle:在這邊當作藍芽適配器#

Function Return Parmerter:

(以下的rabo皆為宣告出來的物件)

rabo.Status #是否連上(bool;true:接上 ,false:還沒)

#以下若要Y或Z軸方向資料,就將x改為y或z#

rabo.Accx #當下X軸加速度(float)
rabboni.Gyrx #當下X軸角速度(float)
rabo.Accx_list #紀錄連接到結束的x軸加速度(list)
rabo.Gyrx_lsit #紀錄連接到結束的X軸角速度(list)

Function For Collect or Process Data

rabo.read_data() #讀取感測器資料必須先跑此行,才能讀取所以參數(void)
rabo.print_data() #列出read_data()的資料,格式如下
#Acc_x,y,z
#Gyr_x,y,z
#Count

rabo.rst_count(mode) #重置裝置紀錄的count
#mode:“Both”,”Store_cnt”,”Cur_Cnt”
Rabboni.set_sensor_scale(acc_scale,gyr_scale) #設定感測器取值的範圍
#acc_scale:必填,2,4,8,16
#gyr_scale:必填,250,500,100,2000
#附註:請將設定與錄製分開進行,設定完後離線再進行錄製。

Reference