# 扩展硬件

## 舵机

```python
from CocoPi import multiFuncGpio
```

### 初始化

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

### 参数说明

| 参数  | 类型 | 描述 |
| ----- | ---- | ------ |
| id    | int  |接口引脚，必填，0表示S1接口，1表示S2接口。      |
| model | int  | 控制模式，必填，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    | int  |舵机转动角度，必填，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    | int  |电机接口对应的引脚，必填，M1引脚为1，M2引脚为2。     |

### 电机转动

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

### 参数说明

| 参数  | 类型 | 描述 |
| ----- | ---- | ------ |
| dir    | int  |电机转动方向，必填，0表示逆时针，1表示顺时针。|
| speed    | int  |转动速度，必填，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)
```

