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 V5. 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:
// 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ả |
|---|---|---|
|
|
Sets the LED on or off. |
Hàm này không trả về giá trị nào.
Examples// Turn on LED with previous intensity.
Optical.setLight(ledState::on);
setLightPower#
Điều chỉnh độ sáng của đèn LED trên cảm biến quang học. Ánh sáng này giúp cảm biến quang học phát hiện vật thể và màu sắc rõ nét hơn.
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.
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 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ị này nếu cảm biến quang học 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 quang học phát hiện vật thể.false– Cảm biến quang học không phát hiện vật thể.
// 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.
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à:
blackwhitered- Giá trị màu sắc nằm giữa 340° - 20°green- Giá trị màu sắc nằm giữa 80° - 140°blue- Giá trị màu sắc nằm trong khoảng 200° - 240°yellow- Giá trị màu sắc nằm giữa 40° - 60°orange- Giá trị màu sắc nằm giữa 20° - 40°purple- Giá trị màu sắc nằm trong khoảng 240° - 280°cyan- Giá trị màu sắc nằm trong khoảng 140° - 200°
// 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ạ 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 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ề giá trị sắc độ của màu sắc đượ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,99.
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())// Display a message when the Optical Sensor detects an object. void detected() { Brain.Screen.print("object detected"); }Đăng ký hàm gọi lại bên trong
int main()int main() { // Run detected 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())// Display a message when the Optical Sensor loses an object. void lost() { Brain.Screen.print("object lost"); }Đăng ký hàm gọi lại bên trong
int main()int main() { // Run lost when the Optical Sensor loses an object. Optical.objectLost(lost); }