Rabboni
===
###### tags: `RVB` `rabboni`
# 介紹
imu
# 使用方式
Rabboni Python SDK 1.1.0 (Google Drive)
https://drive.google.com/drive/folders/1UyxtonAzTh3_pq-sgSsgtcsDW-9jV0lE?usp=sharing
manual:
http://140.113.169.170/rabboni_file/rabboni_manual_device_v1.1.pdf
相關網址:https://drive.google.com/drive/folders/1ElCVAZngcWG5aF0fVIxYDxp0OeYrzqnm?fbclid=IwAR3UK5S2eWz2Gcj3j-srg7Y_ShB3FH-f7QCILO7j7_xBm82rMFuBpB7s0zo
Rabboni Python SDK
========
Prerequisite
-----
### Linux
(建議: Ubuntu 20.04LTS)
* 下載並解壓縮 sdk
``` bash
$ cd
$ mkdir rab_sdk
$ cd rab_sdk
$ wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=1-UHxy0vb4wP9VQHKZzQ-Rp0S84KxHQtB' -O rabboni-python-sdk-1.1.0.tar.gz
$ tar zxvf rabboni-python-sdk-1.1.0.tar.gz
$ cd rabboni-python-sdk-1.1.0
```
* 安裝 libhidapi-hidraw0 (USB 模式)
``` bash
$ sudo apt install libhidapi-hidraw0
$ sh generate-udev-rules.sh
```
* 安裝 python3 及相關
``` bash
$ sudo apt install python3 python3-pip python3-tk
$ sudo python3 setup.py install
```
Example
-----
* USB 模式
``` python
import traceback as tb
from rabboni import Rabboni
rab = Rabboni()
rab.connect()
rab.set_sensor_config(8, 500, 20, 100)
def usb_custom_callback(status):
"""
參數 status 為一個 dictionary
eg.
Acc: (X,Y,Z), Gyr: (X,Y,Z), Count: (CurrentCount, StoredCount)
{'Acc': (0.614013671875, -0.583984375, 0.58349609375), 'Gyr': (-92.437744140625, -99.212646484375, 0.0152587890625), 'Count': (98, 0)}
"""
print(status)
try:
rab.start_fetching_status(custom_callback=usb_custom_callback)
rab.polling_status()
except AssertionError: # 結束程式
print('Bye~!!')
except Exception:
tb.print_exc()
finally:
rab.export_csv()
rab.export_plot()
rab.disconnect()
```
```
$ sudo python3 usb_rabboni.py
```
# example
``` python
from rabboni impot *
rabbo = Rabboni(mode = "USB")
rabbo.connect()
print("Status:",rabbo.Status)
rabbo.set_sensor_scale(acc_scale = 4, gyr_scale = 2000) ## 設定加速度跟陀螺儀的最大範圍 建
議先設定完離線在進行檔案錄製
try:
rabbo.read_data()
while True:#一直打印資料 直到結束程式
rabbo.print_data()#print 資料
print (rabbo.data_num)
if rabbo.Cur_Cnt > 10:
rabbo.rst_count() #重置 count 會 delay 一下
if rabbo.data_num>100:
rabbo.stop()#停止運作
break
except KeyboardInterrupt:#結束程式
print('Shut done!')
# print (rabbo.Accx_list)#印出到結束程式時的所有 Accx 值
rabbo.stop()#停止運作
```