Cảm biến màu#
Giới thiệu#
Lớp colorsensor được sử dụng để truy cập dữ liệu từ Cảm biến màu. Nó sử dụng ánh sáng phản xạ để phát hiện vật thể, nhận dạng màu sắc và đo độ sáng cũng như sắc độ.
Hàm tạo lớp#
colorsensor Color1 = colorsensor(index);
Lớp Destructor#
Hủy đối tượng colorsensor và giải phóng các tài nguyên liên quan.
virtual ~colorsensor();
Thông số#
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Cổng thông minh mà cảm biến màu được kết nối, được viết dưới dạng |
Ví dụ#
// Create an colorsensor instance in Port 1
colorsensor Color1 = colorsensor(PORT1);
Chức năng thành viên#
Lớp colorsensor bao gồm các hàm thành viên sau:
setLight– Bật, tắt hoặc đặt độ sáng cho đèn LED của Cảm biến màu.isNearObject– Trả về liệu một đối tượng có gần Cảm biến màu hay không.detects– Trả về liệu màu được chỉ định có được Cảm biến màu phát hiện hay không.colorname– Trả về tên của màu được phát hiện bởi Cảm biến màu.brightness– Trả về độ sáng được phát hiện của một đối tượng.hue– Trả về giá trị sắc độ được phát hiện.
Trước khi gọi bất kỳ hàm thành viên nào của colorsensor , cần phải tạo một thể hiện colorsensor , như được hiển thị bên dưới:
/* This constructor is required when using VS Code.
Color Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */
// Create an colorsensor instance in Port 1
colorsensor Color1 = colorsensor(PORT1);
setLight#
Thiết lập công suất ánh sáng của đèn LED thuộc cảm biến màu. Ánh sáng này giúp cảm biến màu nhận diện vật thể và màu sắc rõ nét hơn.
Nếu đèn của cảm biến màu đang tắt, việc đặt công suất đèn trên 0% sẽ bật đèn lên.
Nếu đèn của cảm biến màu đang sáng, việc đặt công suất đèn ở mức 0% sẽ tắt đèn.
Tỷ lệ phần trăm càng cao thì ánh sáng càng sáng. Tỷ lệ phần trăm càng thấp thì ánh sáng càng mờ.
Available Functions1 — Bật hoặc tắt đèn LED bằng cách sử dụng
ledState.void setLight( ledState state );
Parameters2 — Bật đèn LED với cường độ sáng cụ thể.
void setLight( int32_t intensity, percentUnits units = percent );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Thiết lập trạng thái bật hoặc tắt đèn LED. |
|
|
Mức công suất để điều chỉnh ánh sáng từ 0 đến 100. |
|
|
Đơn vị biểu thị cường độ ánh sáng: |
Hàm này không trả về giá trị nào.
Examples// Set the light power to 50 percent.
Color1.setLight(50, percent);
isNearObject#
Trả về giá trị này nếu cảm biến màu phát hiện vật thể ở gần.
Available Functionsbool isNearObject();
Hàm này không chấp nhận bất kỳ tham số nào.
Return ValuesHàm này trả về giá trị Boolean cho biết có phát hiện thấy vật thể ở gần hay không:
true– Cảm biến màu phát hiện vật thể.false– Cảm biến màu không phát hiện vật thể.
// If an object is detected by the Color Sensor, print
// "near object".
if (Color1.isNearObject()){
Brain.Screen.print("near object");
}
detects#
Trả về true nếu cảm biến màu phát hiện ra màu sắc được chỉ định.
Available Functions1 — Detects a
colorType.bool detects( colorType color );
Parameters2 — Detects a
vex::color.bool detects( vex::color color );
Thông số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Màu hợp lệ:
|
|
|
A valid custom color, or one of the predefined colors listed above. |
true– Cảm biến màu phát hiện màu sắc.false– Cảm biến màu không phát hiện màu sắc.
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Drive until a red object is seen
Drivetrain.drive(forward);
while (true) {
if (Color1.detects(red)) {
Drivetrain.stop();
break;
}
wait(0.5, seconds);
}
}
colorname#
Trả về màu sắc phù hợp nhất được tìm thấy.
Available FunctionscolorType colorname();
Hàm này không chấp nhận bất kỳ tham số nào.
Return ValuesKhi in trực tiếp, nó sẽ hiển thị giá trị số tương ứng với màu đó:
Màu sắc |
Giá trị số |
|---|---|
|
0 |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
Hàm
convertColorToStringđược VEXcode tự động tạo ra khi cấu hình Cảm biến màu trong cửa sổ Thiết bị. Hàm này chỉ khả dụng trong các dự án VEXcode IQ và sẽ không hoạt động trong các môi trường khác.Khi sử dụng
colornamebên ngoài VEXcode, cần so sánh trực tiếp với giá trịcolorType— bất kỳ màu nào bắt đầu bằngcolorType::(ví dụ:colorType::greenhoặccolorType::red).
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Continuously check the detected color
while (true) {
// Compare the color name with "red"
if (convertColorToString(Color1.colorname()) == "red") {
Brain.Screen.print("Red object!");
} else {
Brain.Screen.print("Not red");
}
wait(0.5, seconds);
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
}
}
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Continuously check the detected color
while (true) {
// Compare the color name with the colorType
if (Color1.colorname() == colorType::red) {
Brain.Screen.print("Red object!");
} else {
Brain.Screen.print("Not red");
}
wait(0.5, seconds);
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
}
}
brightness#
Trả về lượng ánh sáng phản xạ từ vật thể.
Tỷ lệ phần trăm càng cao nghĩa là càng nhiều ánh sáng được phản xạ trở lại cảm biến màu. Tỷ lệ phần trăm càng thấp nghĩa là càng ít ánh sáng được phản xạ trở lại.
Available Functionsdouble brightness(bool bRaw = false);
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Một giá trị Boolean để đọc dữ liệu độ sáng thô thay vì phần trăm. Giá trị mặc định là |
Giá trị kiểu double biểu thị độ sáng được cảm biến màu phát hiện trong khoảng 0 - 100%, hoặc giá trị kiểu double biểu thị dữ liệu thô được cảm biến thu thập.
Examples// Set a variable, brightness, to the value of the brightness
// detected by the Color Sensor
double brightness = Color1.brightness();
// Print the brightness detected by the Color Sensor to the
// Brain's screen
Brain.Screen.print(brightness);
hue#
Trả về màu sắc được cảm biến màu phát hiện.
Sắc độ là một cách để mô tả màu sắc bằng các con số xung quanh vòng tròn màu.

double hue();
Hàm này không chấp nhận bất kỳ tham số nào.
Return ValuesGiá trị kiểu double biểu thị độ màu được cảm biến màu phát hiện trong khoảng 0 — 359,00.
Examples// Set a variable, hue, to the value of the hue detected
// by the Color Sensor.
double hue = Color1.hue();