---
# System prepended metadata

title: 關於久坐感測器Proccessing
tags: [UI, Arduino, 坐姿感測, Processing, 壓力感測器]

---

# 關於久坐感測器的設定與程式執行

*由於裝置是由 `Serial port` 進行通訊，因此電腦端需要裝置有線連接，但裝置本身可以獨立運行。

首先，電腦端的程式是由 Processing 的程式運行，因此需要至官網下載安裝 [Processing Download](https://processing.org/download)\
以下即為下載畫面：

![image](https://hackmd.io/_uploads/H1lA0u4NJx.png)

完成安裝後，即可至專案的 [Github](https://github.com/aaronhuang1005/pressure_sensor) 下載程式 (主要是檔名為 `pressure_sensor.pde` 程式)\
以下即為專案 Github 畫面，選擇畫面中 <>code -> Download ZIP 即可下載：

![image](https://hackmd.io/_uploads/S1iC1KE4yl.png)

解壓縮後以先前的 Processing 開啟，以下是開啟的畫面：

![image](https://hackmd.io/_uploads/HkSJQY4EJx.png)

接下來需要根據裝置中的 `Serial port` 順序進行設定，裝置的序列埠的序位為1，則參數設定為0，序列埠的序位為2，則參數設定為1，以此類推...\
以下為裝置管理員所示之序列埠(未包含該裝置，僅示例)，圖中 `COM4` 裝置參數即為0，`COM5` 裝置參數即為1：

![image](https://hackmd.io/_uploads/rkrPQtEVyg.png)

得知參數後即可修改程式中 24 行 `port` 之數字，以下為前數行之程式碼，與修改參數在編號第24：

```java=
import processing.serial.*;

Serial myPort;
PrintWriter outputl;

int A4 = 0;
int A5 = 0;
int A6 = 0;
int A7 = 0;
int time = 740;
int shift = 2;
int right = 0;
int right_pre = 0;
int down = 0;
int down_pre = 0;
int up = 0;
int up_pre = 0;
int left = 0;
int left_pre = 0;
Boolean status = true;
int check = 0;
Boolean palse = false;
int sit_time=0;
int port = 0;  // <----------------------- Modify here
```

修改成功即可按畫面左上之執行程式，執行並設置成功後即可看到執行畫面，如下圖：

![image](https://hackmd.io/_uploads/HkHbUFVEkx.png)

序列埠設定失敗即會跑出 ERROR 畫面，如下圖：

![image](https://hackmd.io/_uploads/SyIH8F44kx.png)

另外，介面的顯示包括壓力分布的情形、重心偏移的位置、左右及前後的偏移差異以及久坐的時間，而操作是由鍵盤操作，由空白鍵切換上述顯示資訊(偏移差->重心偏移圖->久坐時間)，而ESC則是儲存資料並退出。

:::info
以下是介面UI的幾個的頁面(3/3):

1. 左側為壓力分佈，右側一開始為壓力差值(1/3)

![image](https://hackmd.io/_uploads/ByrT8zRVT.png)

\
2. 按下空白鍵後，右側切換為重心分佈(2/3)

![image](https://hackmd.io/_uploads/Syfxuf0Ep.png)

\
3. 再次按下空白鍵後，右側切換為久坐時間(3/3)

![image](https://hackmd.io/_uploads/rkc2_fA4T.png)

:::