# 擴展硬體

## 伺服馬達

```python
from CocoPi import multiFuncGpio
```

### 初始化

```python
multiFuncGpio(id,model)
```

### 參數說明

| 參數  | 值 | 描述 |
| ----- | ---- | ------ |
| id    | 數位  |接口引腳，必填，0表示S1接口，1表示S2接口。     |
| model | 數位  | 控制模式，必填，mode=0，為空閒狀態，引腳不執行任何功能mode=1，為控制伺服馬達模式，值控制範圍為0°~180°；mode=2，為數位輸入模式，返回值0或1；mode=3，為數位輸出模式，輸出值為0或1；mode=4，為ADC採樣模式，返回值為0~1023；mode=5，為PWM輸出模式，輸出值範圍為0~255；mode=6，為控制蜂鳴器模式，控制範圍為20hz~12000hz；mode=7，為控制燈帶模式，暫未實現。 |

### 轉動

```python
servoCtrl(angle)
```

### 参数说明

| 參數  | 值 | 描述 |
| ----- | ---- | ------ |
| angle    | 數字  |伺服馬達轉動角度，必填，0°-180°。   |

### 样例

```python
import time
from CocoPi import multiFuncGpio

S1= multiFuncGpio(0,1) # S1舵机初始化
S2= multiFuncGpio(1,1) # S2舵机初始化
while True:
    S1.servoCtrl(0) # S1转动到0°
    S2.servoCtrl(0) # S2转动到0°
    time.sleep(1)
    S1.servoCtrl(90) # S1转动到90°
    S2.servoCtrl(90) # S2转动到90°
    time.sleep(1)
```

## 馬達

```python
from CocoPi import dcMotor
```

### 初始化

```python
dcMotor(id)
```

### 參數說明

| 參數  | 值 | 描述 |
| ----- | ---- | ------ |
| id    | 數位  |馬達接口對應的引腳，必填，M1引腳為1，M2引腳為2。    |

### 轉動

```python
dcMotorCtrl(dir,speed)
```

### 參數說明

| 參數  | 值 | 描述 |
| ----- | ---- | ------ |
| dir    | 數字  |馬達轉動方向，必填，0表示逆時針，1表示順時針。|
| speed    | 數位  |轉動速度，必填，0~255|

### 样例

```python
from CocoPi import dcMotor
import time

M1 = dcMotor(1) # M1馬達初始化
M2 = dcMotor(2) # M2馬達初始化

while True:
    M1.dcMotorCtrl(0,150) # M1以150的速度逆時針轉動
    M2.dcMotorCtrl(0,150) # M2以150的速度逆時針轉動
    time.sleep(1)
    M1.dcMotorCtrl(1,150) # M1以150的速度順時針轉動
    M2.dcMotorCtrl(1,150) # M2以150的速度順時針轉動
    time.sleep(1)
```

