機器人擴展單元類庫參考

2019/09/19 修訂

修訂歷史

修訂日期

修訂內容

2019/4/23

首次發佈

2019/9/19

添加了顏色感測器和超聲波感測器

目錄
1. 入門 ................................................................................................ 1
2. ArtecRobo 2.0 .................................................................................. 1
2.1. 機器人擴展單元佈局 ....................................................................... 1
2.2. MicroPython ............................................................................... 2
3. 開發環境 .......................................................................................... 2
4. ArtecRobo 2.0 類庫 ........................................................................... 3
4.1. DC 電機類 .................................................................................. 3
4.1.1.

構造函數 ............................................................................. 3

4.1.2.

控制直流電機 ....................................................................... 3

4.2. 伺服電機類 .................................................................................. 5
4.2.1.

構造函數 ............................................................................. 5

4.2.2.

控制伺服電機 ....................................................................... 5

4.2.3.

發佈 PMM ........................................................................... 5

4.3. 蜂鳴器類 ..................................................................................... 6
4.3.1.

構造函數 ............................................................................. 6

4.3.2.

控制蜂鳴器 .......................................................................... 6

4.3.3.

發佈 PWM .......................................................................... 6

4.4. LED 類....................................................................................... 7
4.4.1.

構造函數 ............................................................................. 7

4.4.2.

控制 LED 燈 ......................................................................... 7

4.5. 紅外光反射器類 ............................................................................ 8
4.5.1.

構造函數 ............................................................................. 8

4.5.2.

查找紅外光反射器的值 ............................................................ 8

4.6. 光感測器類 .................................................................................. 9
4.6.1.

構造函數 ............................................................................. 9

4.6.2.

查找光感測器值..................................................................... 94.7. 聲音感測器類 .............................................................................. 10
4.7.1.

構造函數 ............................................................................ 10

4.7.2.

查找聲音感測器值 ................................................................. 10

4.8. 觸控感測器類 .............................................................................. 11
4.8.1.

構造函數 ............................................................................ 11

4.8.2.

查找觸控感測器值 ................................................................. 11

4.9. 溫度類 ....................................................................................... 12
4.9.1.

構造函數 ............................................................................ 12

4.9.2.

查找溫度感測器值 ................................................................. 124.10. 加速度計類 ................................................................................. 13
4.10.1.

構造函數 ......................................................................... 13

4.10.2.

查找加速度計值 ................................................................ 13

4.11. 超聲波感測器類 ........................................................................... 14
4.11.1.

構造函數 ......................................................................... 14

4.11.2.

查找超聲波感測器值 ........................................................... 14

4.12. 顏色感測器類 .............................................................................. 15
4.12.1.

構造函數 ......................................................................... 15

4.12.2.

查找顏色感測器值.............................................................. 15

5. 附錄 ............................................................................................... 16
5.1. 聲音輸出 .................................................................................... 16
5.2. 顏色代碼 .................................................................................... 16
5.3. 類表 .......................................................................................... 17

1. 入門本手冊是 ArtecRobo 2.0 類庫的參考指南。使用本手冊需要事先瞭解 Python 的基礎知識。

2. ArtecRobo 2.0
ArtecRobo 2.0 由核心單元（Studuino：bit）和機器人擴展單元組成。 MicroPython
是與 Studuino：bit 兼容的程式設計環境之一。

2.1. 機器人擴展單元佈局
機器人擴展單元的佈局如下所示。

機器人擴展單元提供額外的埠，可用於連接感測器和電機到機器人。它包含數位輸出埠、直流電機埠、模擬輸入埠和 I2C 通信埠。 請參閱下表，瞭解哪些部件可用於哪些埠。
埠

部件

數字輸出埠

發光二極體、蜂鳴器、伺服電機

直流電機埠

直流電動機

類比輸入埠

光感測器，聲音感測器，觸控感測器，紅外光反射器

I2C 通信埠

加速度計
1

2.2. MicroPython
MicroPython 是專門為微控制器開發的 Python 版本。程式設計語法與 Python 3.0 相同，
但某些 Python 庫在 MicroPython 中不可用，因為它們不是為與微控制器的有限記憶體
和 CPU 一起使用而設計的。但是，某些特定於 MicroPython 的庫（例如 GPIO 微控制器的庫）已作為標配包含在內。
MicroPython 已被廣泛移植到不同的微控制器， Studuino：bit 庫使用 Studuino：bit
特定版本。

3. 開發環境
uPyCraft 是用於 MicroPython 的一個開發環境。有關如何使用 uPyCraft 的說明，請參閱核心單元類庫參考手冊中的第 6.2 節。

2

4. ArtecRobo 2.0 類庫
ArtecRobo 2.0 類庫的結構如下。
機組
pyatcrobo2

模組
部件

類

部件

直流電機

直流電動機

伺服

伺服電機

蜂鳴器

蜂鳴器

發光二極體

發光二極體

光感測器

光感測器

聲音感測器

聲音感測器

觸控感測器

觸控感測器

溫度

溫度感測器 s超聲波感測器超聲波感測器

彩色感測器

顏色感測器

加速度計

加速度計

4.1. DC 電機類
此類用於控制直流電機。

4.1.1. 構造函數
使用此功能可將控制直流電機的物件插入機器人擴展單元上的指定直流電機埠（M1 或
M2）。
from pyatcrobo2.parts import DCMotor
m1 = DCMotor(‘M1’)

4.1.2. 控制直流電機
使用 cw（） 方法使 DC 馬達順時針旋轉，使用 ccw（） 方法使其逆時針旋轉。 stop（） 方法將停止使直流電機旋轉，而 brake（） 方法將使直流電機的運動完全停止。
功率（功率）方法可用於調節直流電機的速度。將功率參數設置為 0 到 255 之間的數3

位以選取速度。
from pyatcrobo2.parts import DCMotor
import time
m1 = DCMotor(‘M1’)
m2 = DCMotor(‘M2’)
m1.power(100)m2.power(100)m1.cw()
m2.cw()
time.sleep_ms(1000)
m1.stop()
m2.stop()這將使連接到埠 M1 和 M2 的直流電機在停止前以 100 的速度順時針旋轉 1 秒鐘。

4

4.2. 伺服電機類
此類用於控制伺服電機。

4.2.1. 構造函數
使用此功能可將控制伺服電機的物件插入機器人擴展單元上的指定埠（P13、P14、P15 或
P16）。
from pyatcrobo2.parts import Servomotor
sv13 = Servomotor(‘P13’)

4.2.2. 控制伺服電機
使用 set_angle（度） 方法設置伺服電機的角度。
from pyatcrobo2.parts import Servomotor
import time
sv13 = Servomotor(‘P13’)
sv13.set_angle(0)time.sleep_ms(1000)
sv13.set_angle(180)這將使連接到埠 P13 的伺服電機轉向 0°，然後在 1 秒後轉向 180°。

4.2.3. 發佈 PMM
Studuino：bit 使用 PWM 來設置伺服電機角度。它最多可以同時使用四個 PWM。如果您使用 5 個或更多使用 PWM 的零件，您將無法使用您製作的任何伺服電機物件。您可
以通過使用 release（） 方法釋放 PWM 分配給其他伺服電機物件來解決此問題。

5

4.3. 蜂鳴器類
此類用於控制蜂鳴器。

4.3.1. 構造函數
使用此功能可製作物件以控制插入機器人擴展單元上的指定埠（P13、P14、P15 或 P16）
的蜂鳴器。
from pyatcrobo2.parts import Buzzer
bz13 = Buzzer(‘P13’)

4.3.2. 控制蜂鳴器
您可以使用 on（聲音，*，音量=無，持續時間=無）的方法播放蜂鳴器中的聲音。使用聲音參數，通過 MIDI 音符編號或音符名稱來設置聲音的頻率。有關可用註釋編號和名稱的清單，請參見第 5.1 節 5.1
from pyatcrobo2.parts import Buzzer
bz13 = Buzzer(‘P13’)
bz13.on(‘C4’, duration=1000)這將使插入機器人擴展單元埠 P13 的蜂鳴機播放音符 C4 1 秒鐘。

4.3.3. 發佈 PWM
Studuino：bit 使用 PWM 作為其聲音輸出。它最多可以同時使用四個 PWM。如果您使
用 5 個或更多使用 PWM 的部件，您將無法使用您製作的任何 Buzzer 物件。您可以
通過使用 release（） 方法釋放 PWM 分配給其他蜂鳴器物件來解決此問題。

6

4.4. LED 類
此類用於控制 LED。

4.4.1. 構造函數
使用此功能可製作物件以控制插入機器人擴展單元上的指定埠（P13、P14、P15 或 P16）
的 LED。
from pyatcrobo2.parts import LED
led13 = LED(‘P13’)

4.4.2. 控制 LED 燈
使用 on（） 方法開啟 LED，使用 off（） 方法將其熄滅。
from pyatcrobo2.parts import LED
import time
led13 = LED(‘P13’)
while True:
led13.on()
time.sleep_ms(500)
led13.off()time.sleep_ms(500)這將使連接到機器人擴展單元上埠 P13 的 LED 以 500 毫秒的間隔開啟和熄滅。

7

4.5. 紅外光反射器類
此類用於控制紅外光反射器。

4.5.1. 構造函數
使用此功能可製作物件以控制插入機器人擴展單元上的指定埠（P0、P1 或 P2）的紅外光反射器。
from pyatcrobo2.parts import IRPhotoReflector
sensor0 = IRPhotoReflector(‘P0’)

4.5.2. 查找紅外光反射器的值
使用方法 get_value（） 查找紅外光反射器的模擬值。它將被格式化為從 0 到 4095 的
整數。
from pyatcrobo2.parts import IRPhotoReflector
import time
sensor0 = IRPhotoReflector(‘P0’)
while True:
print(sensor0.get_value())
time.sleep_ms(500)這將每 500 毫秒通過終端顯示插入機器人擴展單元埠 P0 的紅外光反射器的值。

8

4.6. 光感測器類
此類用於控制光感測器。

4.6.1. 構造函數
用它來製作物件以控制插入機器人擴展單元上的指定埠（P0，P1 或

P2）的光感測器。

from pyatcrobo2.parts import LightSensor
sensor0 = LightSensor(‘P0’)

4.6.2. 查找光感測器值
使用方法 get_value() 查找光感測器的模擬值。它將被格式化為從 0 到 4095 的整數。
from pyatcrobo2.parts import LightSensor
import time
sensor0 = LightSensor(‘P0’)
while True:
print(sensor0.get_value())
time.sleep_ms(500)這將每 500 毫秒通過終端顯示插入機器人擴展單元埠 P0 的光感測器的值。

94.7. 聲音感測器類
此類用於控制聲音感測器。

4.7.1. 構造函數
使用此功能可製作物件以控制插入機器人擴展單元上的指定埠（P0、P1 或 P2）的聲音
感測器。
from pyatcrobo2.parts import SoundSensor
sensor0 = SoundSensor(‘P0’)

4.7.2. 查找聲音感測器值
使用方法 get_value() 查找聲音感測器的模擬值。它將被格式化為從 0 到 4095 的整
數。
from pyatcrobo2.parts import SoundSensor
import time
sensor0 = SoundSensor(‘P0’)
while True:
print(sensor0.get_value())
time.sleep_ms(500)這將每 500 毫秒通過終端顯示插入機器人擴展單元埠 P0 的聲音感測器的值。

10

4.8. 觸控感測器類
此類用於控制觸控感測器。

4.8.1. 構造函數
使用此功能可製作物件以控制插入機器人擴展單元上的指定埠（P0、P1 或 P2）的觸控
應器。
from pyatcrobo2.parts import TouchSensor
sensor0 = TouchSensor(‘P0’)

4.8.2. 查找觸控感測器值
使用方法 get_value() 查找觸控感測器的數位值。該值將為 0 或 1。使用 is_pressed（） 方法將返回 True/False，以告知您是否正在按下觸控感測器。
from pyatcrobo2.parts import TouchSensor
import time
sensor0 = TouchSensor(‘P0’)
while True:
print(sensor0.get_value())
print(sensor0.is_pressed())
time.sleep_ms(500)這將每 500 毫秒通過終端說明插入機器人擴展單元埠 P0 的觸控感測器是否被按下。如果
按下觸控感測器，它將顯示 0 和 True。如果沒有，它將顯示 1 和 False。

11

4.9. 溫度類此類用於控制溫度感測器。

4.9.1. 構造函數
用它來製作物件以控制插入機器人擴展單元上的指定埠（P0，P1 或 P2）的溫度感測器。
from pyatcrobo2.parts import Temperature
sensor0 = Temperature(‘P0’)

4.9.2. 查找溫度感測器值
使用方法 get_value() 查找溫度感測器的模擬值。它將被格式化為從 0 到 4095 的整數。get_celsius（）方法可用於查找溫度感測器的值（以攝氏度為單位）。
from pyatcrobo2.parts import Temperatureimport time
sensor0 = Temperature(‘P0’)
while True:
print(sensor0.get_value())
print(sensor0.get_celsius())
time.sleep_ms(500)這將每 500 毫秒通過終端顯示插入埠 P0 的溫度感測器的類比值和溫度（以攝氏度為單位）。

12

4.10. 加速度計類
此類用於操作加速度計。

4.10.1.

構造函數

用它來製作物件以控制插入機器人擴展單元上的 I2C 埠的加速度計。
from pyatcrobo2.parts import Accelerometer
sensor0 = Accelerometer(‘I2C’)
加速度計的滿量程（最大可測量加速度）為± 2G，以 G 為單位顯示。

4.10.2.

查找加速度計值使用 get_values() 方法查找加速計的值。這些值將以元組 （x， y， z） 格式返回。
get_x（）、 get_y（） 和 get_z（） 方法都可以分別查找沿 x 軸、y 軸和 z 軸的加速度。
from pyatcrobo2.parts import Accelerometer
import time
sensor0 = Accelerometer(‘I2C’)
while True:
print(sensor0.get_values())
time.sleep_ms(500)這將每 500 毫秒通過終端顯示插入機器人擴展單元 I2C 埠的加速度計的值。

13

4.11. 超聲波感測器類
此類用於控制超聲波感測器。

4.11.1.

構造函數

用它來製作物件以控制插入機器人擴展單元上的指定埠（P0 或 P1）的超聲波感測器。
from pyatcrobo2.parts import UltrasonicSensor
sensor0 = UltrasonicSensor (‘P0’)

4.11.2.

查找超聲波感測器值

使用方法 get_distance() 查找目標對象與感測器的距離。距離將以釐米為單位進行測量，並以浮點數的形式返回。您還可以使用 get_pulse_time（）方法查找超聲波在發射后反彈回感測器所需的時間長度（以微秒為單位）。如果無法測量距離，則會發生運行時錯誤
異常。
from pyatcrobo2.parts import UltrasonicSensor
import time
sensor0 = UltrasonicSensor('P0')
while True:
try:
print(sensor0.get_distance())
except RuntimeError as e:
print(e)time.sleep_ms(100)這將每 100 毫秒通過終端顯示插入機器人擴展單元埠 P0 的超聲波感測器的值。

14

4.12. 顏色感測器類
此類用於控制顏色感測器。

4.12.1.

構造函數

用它來製作物件控制插入機器人擴展單元的 I2C 埠的顏色感測器。
from pyatcrobo2.parts import ColorSensor
sensor0 = ColorSensor (‘I2C’)

4.12.2.

查找顏色感測器值

使用 get_values（） 方法查找目標物件的顏色值。顏色值將以元組格式返回，顯示顏
色中每個分量的飽和度（紅色，綠色，藍色，亮度）。而 get_colorcode（）方法查找目標對象的顏色。
from pyatcrobo2.parts import ColorSensor
import timecolor = ColorSensor('I2C')
while True:
try:
print(color.get_values())
print(color.get_colorcode())
except RuntimeError as e:
print(e)time.sleep_ms(100)這將每 100 毫秒通過終端顯示插入機器人擴展單元 I2C 埠的顏色感測器的值。

15

5. 附錄
5.1. 聲音輸出
Buzzer 類中使用的 MIDI 音符編號和音符名稱如下所示。
MIDI

備忘

MIDI

備忘

MIDI

備忘

MIDI

備忘

MIDI

備忘

MIDI

備忘

MIDI

備忘

48

C3

60

C4

72

C5

84

C6

96

C7

108

C8

120

C9

49

CS3

61

CS4

73

CS5

85

CS6

97

CS7

109

CS8

121

CS9

50

D3

62

D4

74

D5

86

D6

98

D7

110

D8

122

D9

51

DS3

63

DS4

75

DS5

87

DS6

99

DS7

111

DS8

123

DS9

52

E3

64

E4

76

E5

88

E6

100

E7

112

E8

124

E9

53

F3

65

F4

77

F5

89

F6

101

F7

113

F8

125

F9

54

FS3

66

FS4

78

FS5

90

FS6

102

FS7

114

FS8

126

FS9

55

G3

67

G4

79

G5

91

G6

103

G7

115

G8

127

G9

56

GS3

68

GS4

80

GS5

92

GS6

104

GS7

116

GS8

57

A3

69

A4

81

A5

93

A6

105

A7

117

A8

58

AS3

70

AS4

82

AS5

94

AS6

106

AS7

118

AS8

59

B3

71

B4

83

B5

95

B6

107

B7

119

B8

5.2. 顏色代碼
常數

顏色

價值

COLOR_RED

紅1

COLOR_GREEN綠2

COLOR_BLUE

藍

3

COLOR_WHITE

白4

COLOR_YELLOW黃色5

COLOR_ORANGE

橙6

COLOR_PURPLE

紫色

7

COLOR_UNDEF

未知

0

16

5.3. 類表
完整的 ArtecRobo2 類庫如下所示。
功能

類/模組

方法/屬性
__init__（針）

直流電動機

直流電機

伺服

ccw（）

逆時針旋轉直流電機。

stop()

停止旋轉直流電機。

brake()

完全停止直流電機的旋轉。

power（功率）

將功率參數設置為數位 0-255 以更改直流電機的速度。

set_angle（度）__init__（針）蜂鳴器dcm = DCMotor（'M1'）
順時針旋轉直流電機。

release（）

蜂群

使用引腳參數指定引腳 M1 或 M2 並創建直流電機實例。

cw（）__init__（針）
伺服電機

指示

on（聲音， *，音量=-1，
持續時間=-1）

使用引腳參數指定引腳 P13、P14、P15 或 P16 並創建伺服電機實例。
sv = ServoMotor（'P13'）
將度參數設置為角度 0-180 以更改伺服電機的角度。
sv.set_angle（90）釋放分配給伺服電機物件的 PWM。
使用引腳參數指定引腳 P13、P14、P15 或 P16 並創建蜂鳴器實例。
bzr = Buzzer（'P13'）
在聲音、持續時間和音量參數中設置蜂鳴器的聲音。聲音可以使用音符名稱（C3-G9），MIDI 音符編號（48-127）或頻率（整數）來設置，音量可以設置為 1-100，持續時間可以以毫秒為單位進行設置。如果未指定持續時間參數，蜂鳴機將繼續播放，直到您調用 off 方法。如果未指定音量參數，則音量將根據聲音的音高進行調整。
17

bzr.on（'50'，duration=1000） # 蜂鳴器將播放對應於 MIDI 音符編號 50 的音符 1 秒。
bzr.on（'C4'，volume=1，duration=1000） # 蜂鳴器將在第 1 卷處放置註釋 C4 1 秒鐘。
bzr.on（440）off()
release()__init__（針）

發光二極體

LED

on（）

off()

紅外
光反射器

__init__（針）紅外光反射器
get_value（）__init__（針）
光感測器

光感測器
get_value（）

使蜂鳴器停止播放聲音。
bzr.off（）
釋放分配給蜂鳴器物件的 PWM。
使用引腳參數指定引腳 P13、P14、P15 或 P16 並創建 LED 實例。
led = LED（'P13'）
開啟指示燈。
led.on（）熄滅指示燈。
led.on（）
使用引腳參數指定引腳 P0、P1 或 P2 並創建紅外光反射器實例。
irp = IRPhotoReflector（'P0'）
檢索感測器的值 （0-4095）。
irp.get_value（）
使用引腳參數指定引腳 P0、P1 或 P2 並創建光感測器實例。
ls = LightSensor（'P0'）
檢索感測器的值 （0-4095）。
ls.get_value（）18

__init__（針）

溫度感測器

溫度

get_value（）

get_celsius（）__init__（針）
聲音感測器

聲音感測器
get_value（）__init__（針）

觸控感測器

觸控感測器

get_value（）

is_pressed（）
get_pulse_time
超聲波感測器超聲波感測器（）使用引腳參數指定引腳 P0、P1 或 P2 並創建溫度感測器實例。
ts = Temperature('P0')
檢索感測器的值 （0-4095）。
ts.get_value（）檢索溫度感測器的值（以攝氏度為單位）。
ts.get_celsius（）
使用引腳參數指定引腳 P0、P1 或 P2 並創建聲音感測器實例。
ss = SoundSensor（'P0'）
檢索感測器的值 （0-4095）。
ss.get_value（）
使用引腳參數指定引腳 P0、P1 或 P2 並創建觸控感測器實例。
ss = 觸控感測器（'P0'）
檢索感測器的值（0 或 1）。
ss.get_value（）查找感測器的當前狀態。
如果按下觸控感測器，則返回 True。
檢索超聲波從目標物體反彈所需的時間（以微秒為單位）。

get_distance（） 以浮點數的形式檢索與目標對象的距離。距離的單位將是釐米。

顏色感測器

get_values（）

以元組格式檢索感測器的顏色值（紅色、綠色、藍色、亮度）。元組中的每個值都是該分量顏色的飽和度。

get_colorcode

以顏色代碼的形式檢索目標物件的顏色。 （請參閱第 5.2。

彩色感測器
19

__init__（針）

加速度 計

加速度計

get_values（）

使用引腳參數指定引腳 I2C 並創建加速度計實例。
acc = Accelerometer('I2C')
查找沿 x、y 和 z 軸的加速度。最大測量範圍為±2G，單位為 G。
acc.get_values（）

get_x= get_values（）[0]get_y= get_values（）[1]get_z= get_values（）[2]20機器人擴展單元類庫參考

21