Cảm biến quang học#
Giới thiệu#
Lớp quang học optical được sử dụng để truy cập dữ liệu từ Cảm biến quang học. 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#
optical Optical = optical(index);
Lớp Destructor#
Destroys the optical object and releases associated resources.
virtual ~optical();
Thông số#
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Cổng thông minh mà cảm biến quang được kết nối, được viết dưới dạng |
Ví dụ#
// Create an optical instance in Port 1
optical Optical1 = optical(PORT1);
Chức năng thành viên#
Lớp optical bao gồm các hàm thành viên sau:
setLight— Bật hoặc tắt đèn LED của Cảm biến quang học.setLightPower— Đặt mức công suất ánh sáng của Cảm biến quang học.isNearObject— Trả về liệu Cảm biến quang có phát hiện vật thể trong phạm vi hay không.color— Trả về màu được phát hiện bởi Cảm biến quang học.brightness— Trả về lượng ánh sáng phản xạ từ vật thể.hue— Trả về sắc độ được phát hiện bởi Cảm biến quang học.objectDetected— Đăng ký một hàm sẽ được gọi khi Cảm biến quang học phát hiện một vật thể.objectLost— Đăng ký một hàm sẽ được gọi khi Cảm biến quang học mất một đối tượng.
Trước khi gọi bất kỳ hàm thành viên nào của lớp optical , cần phải tạo một thể hiện của optical , như được hiển thị bên dưới:
/* This constructor is required when using VS Code.
Optical Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */
// Create an optical object in Port 1
optical Optical1 = optical(PORT1);
setLight#
Chức năng này cho phép bật hoặc tắt đèn LED của cảm biến quang học. Ánh sáng có thể giúp cảm biến quang học nhận diện vật thể và màu sắc rõ nét hơn.
Available Functionsvoid setLight(ledState state);
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Thiết lập trạng thái bật hoặc tắt đèn LED. |
Hàm này không trả về giá trị nào.
Examples// Turn on LED with previous intensity.
Optical.setLight(ledState::on);
setLightPower#
Thiết lập độ sáng của đèn cảm biến quang học. Ánh sáng này có thể giúp cảm biến quang học phát hiện vật thể và màu sắc rõ ràng hơ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ờ.
Nếu đèn của cảm biến quang học đ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 quang đang bật, việc đặt công suất đèn ở mức 0% sẽ tắt đèn.
Available Functionsvoid setLightPower(
int32_t intensity,
percentUnits units = percent );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
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.
Optical.setLightPower(50, percent);
isNearObject#
Trả về giá trị cho biết cảm biến quang học có phát hiện vật thể nào trong phạm vi hoạt động hay không.
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— Phát hiện thấy vật thể ở gần đó.false— Không phát hiện thấy đối tượng.
// If an object is detected by the Optical Sensor, print
// "near object".
if (Optical.isNearObject()){
Brain.Screen.print("near object");
}
color#
Trả về màu sắc được cảm biến quang học phát hiện, dựa trên giá trị sắc độ đã phát hiện.
Available Functionsvex::color color();
Hàm này không chấp nhận bất kỳ tham số nào.
Return ValuesMàu được Cảm biến quang học phát hiện là một trường hợp của lớp màu.
Các màu sắc có thể là:
blue– Giá trị màu sắc nằm giữa 196° và 229°blue_green– Giá trị màu sắc nằm giữa 140° và 195°blue_violet– Giá trị màu sắc nằm giữa 230° và 239°green– Giá trị màu sắc nằm giữa 84° và 139°orange– Giá trị màu sắc nằm giữa 21° và 30°red– Giá trị màu sắc nằm giữa 350° và 14°red_orange– Giá trị màu sắc nằm giữa 15° và 20°red_violet– Giá trị màu sắc nằm giữa 281° và 350°violet– Giá trị màu sắc nằm giữa 240° và 280°yellow– Giá trị màu sắc nằm giữa 54° và 74°yellow_green– Giá trị màu sắc nằm giữa 75° và 83°yellow_orange– Giá trị màu sắc nằm giữa 31° và 53°
// Set a variable, detectColor, to the color detected by the
// Optical Sensor
color detectColor = Optical.color();
// Print the color detected by the Optical Sensor
// to the Brain's screen
Brain.Screen.print(detectColor);
brightness#
Trả về lượng ánh sáng phản xạ trở lại cảm biến quang học.
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 quang học. 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 quang học 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 Optical Sensor
double brightness = Optical.brightness();
// Print the brightness detected by the Optical Sensor to the
// Brain's screen
Brain.Screen.print(brightness);
hue#
Trả về màu sắc được cảm biến quang học 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 quang học phát hiện trong khoảng 0 — 359,00.
Examples// Set a variable, hue, to the value of the hue detected
// by the Optical Sensor.
double hue = Optical.hue();
objectDetected#
Đăng ký một hàm gọi lại khi phát hiện thấy một đối tượng.
Available Functionsvoid objectDetected(void (* callback)(void));
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Một hàm được định nghĩa trước đó sẽ được thực thi khi Cảm biến quang học phát hiện một vật thể mới. |
Hàm này không trả về giá trị nào.
ExamplesXác định hàm gọi lại (bên ngoài
int main())// Called when the Optical Sensor detects an object void detected() { // The Brain will print that the Optical Sensor detected an // object to the Brain's screen. Brain.Screen.print("object detected"); }Đăng ký hàm gọi lại bên trong
int main()/* vexcodeInit() is only required when using VEXcode. Remove vexcodeInit() if compiling in VS Code. */ int main() { // Run when the Optical Sensor detects an object. Optical.objectDetected(detected); }
objectLost#
Đăng ký một hàm gọi lại khi một đối tượng bị mất.
Available Functionsvoid objectLost(void (* callback)(void));
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Một hàm được định nghĩa trước đó sẽ thực thi khi Cảm biến quang học mất một đối tượng được phát hiện. |
Hàm này không trả về giá trị nào.
ExamplesXác định hàm gọi lại (bên ngoài
int main())// Called when the Optical Sensor loses an object void lost() { // The Brain will print that the Optical Sensor lost an // object to the Brain's screen. Brain.Screen.print("object lost"); }Đăng ký hàm gọi lại bên trong
int main()/* vexcodeInit() is only required when using VEXcode. Remove vexcodeInit() if compiling in VS Code. */ int main() { // Run lost when the Optical Sensor loses an object. Optical.objectLost(lost); }