彩色传感器 - 图1

python 编程:

创建实例

  • colorlight(port_num)
    创建colorlight实例,port_num 可取值为 thunbot.PORT_1, thunbot.PORT_2,thunbot.PORT_3, thunbot.PORT_4,thunbot.PORT_A,thunbot.PORT_B

    方法

  • set_mode(opt_mode)
    设置工作模式,opt_mode的取值如下表: | opt_mode 取值 | 模式名 | 功能 | | :—- | :—- | :—- | | MODE_ENV | 环境光模式 | 测量传感器前方光强程度 | | MODE_REFLECT | 反射光模式 | 获取RGB分量的反射光相对强度 | | MODE_COLOR | 颜色模式 | 获得颜色编号 |

注:颜色编号为, 0|无(传感器前方没有色卡)、1|黑色、2|白色、3|红色、4|黄色、5|绿色、6|青色、7|蓝色、8|紫色

  • get_result(result_index)
    获取检测结果,result_index的取值如下表: | result_index 取值 | 功能 | | :—- | :—- | | RESULT_ENV | 获取前方光强程度 | | RESULT_REFLECT_R | 获取反射光红色分量 | | RESULT_REFLECT_G | 获取反射光绿色分量 | | RESULT_REFLECT_B | 获取反射光蓝色分量 | | RESULT_COLOR | 获取颜色编号 | | RESULT_COLOR_H | 获取颜色的H分量 | | RESULT_COLOR_S | 获取颜色的S分量 | | RESULT_COLOR_V | 获取颜色的V分量 | | RESULT_COLOR_R | 获取颜色的R分量 | | RESULT_COLOR_G | 获取颜色的G分量 | | RESULT_COLOR_B | 获取颜色的B分量 |

  • set_reflect_led(opt_data)
    设置工作模式为反射光模式,并设置反射光模式的灯光,opt_data的取值如下表: | opt_data 取值 | 功能 | | :—- | :—- | | RED_ON | 红灯开 | | GREEN_ON | 绿灯开 | | BLUE_ON | 蓝灯开 |

注:opt_data的取值支持按位或

  • set_extremum(opt_mode,opt_type,opt_data)
    设置指定模式的检测范围,参数的取值如下表: | opt_mode 取值 | 模式名 | | :—- | :—- | | MODE_ENV | 环境光模式 | | MODE_REFLECT | 反射光模式 |
opt_type 取值 功能
SET_MINIMUM 设置最小值
SET_MAXIMUM 设置最大值
RESET 复位,恢复默认值

注:opt_data的值在RESET时,不可填写
编程示范

  1. import thunbot
  2. import time
  3. c3 = thunbot.colorlight(thunbot.PORT_1)
  4. # 环境光测试
  5. c3.set_mode(c3.MODE_ENV)
  6. for i in range(0,50):
  7. print("env test",c3.get_result(c3.RESULT_ENV))
  8. time.sleep_ms(200)
  9. # 反射光测试
  10. c3.set_reflect_led(c3.RED_ON)
  11. for i in range(0,50):
  12. print("reflect test,red led on:")
  13. print("R:",c3.get_result(c3.RESULT_REFLECT_R))
  14. print("G:",c3.get_result(c3.RESULT_REFLECT_G))
  15. print("B:",c3.get_result(c3.RESULT_REFLECT_B))
  16. time.sleep_ms(200)
  17. c3.set_reflect_led(c3.GREEN_ON)
  18. for i in range(0,50):
  19. print("reflect test,green led on:")
  20. print("R:",c3.get_result(c3.RESULT_REFLECT_R))
  21. print("G:",c3.get_result(c3.RESULT_REFLECT_G))
  22. print("B:",c3.get_result(c3.RESULT_REFLECT_B))
  23. time.sleep_ms(200)
  24. c3.set_reflect_led(c3.BLUE_ON)
  25. for i in range(0,50):
  26. print("reflect test,blue led on:")
  27. print("R:",c3.get_result(c3.RESULT_REFLECT_R))
  28. print("G:",c3.get_result(c3.RESULT_REFLECT_G))
  29. print("B:",c3.get_result(c3.RESULT_REFLECT_B))
  30. time.sleep_ms(200)
  31. # 颜色测试
  32. c3.set_mode(c3.MODE_COLOR)
  33. for i in range(0,50):
  34. print("color test:")
  35. print("color:",c3.get_result(c3.RESULT_COLOR))
  36. print("H:",c3.get_result(c3.RESULT_COLOR_H))
  37. print("S:",c3.get_result(c3.RESULT_COLOR_S))
  38. print("V:",c3.get_result(c3.RESULT_COLOR_V))
  39. print("R:",c3.get_result(c3.RESULT_COLOR_R))
  40. print("G:",c3.get_result(c3.RESULT_COLOR_G))
  41. print("B:",c3.get_result(c3.RESULT_COLOR_B))
  42. time.sleep_ms(200)
  43. # 设置范围测试
  44. # 环境光设置范围测试
  45. print("env set_extremum test")
  46. c3.set_mode(c3.MODE_ENV)
  47. c3.set_extremum(c3.MODE_ENV,c3.SET_MINIMUM,50)
  48. for i in range(0,50):
  49. print("env SET_MINIMUM = 50:")
  50. print(c3.get_result(c3.RESULT_ENV))
  51. time.sleep_ms(200)
  52. c3.set_extremum(c3.MODE_ENV,c3.RESET)
  53. for i in range(0,50):
  54. print("env SET_MINIMUM RESET:")
  55. print(c3.get_result(c3.RESULT_ENV))
  56. time.sleep_ms(200)
  57. c3.set_extremum(c3.MODE_ENV,c3.SET_MAXIMUM,30)
  58. for i in range(0,50):
  59. print("env SET_MAXIMUM = 30:")
  60. print(c3.get_result(c3.RESULT_ENV))
  61. time.sleep_ms(200)
  62. c3.set_extremum(c3.MODE_ENV,c3.RESET)
  63. for i in range(0,50):
  64. print("env SET_MINIMUM RESET:")
  65. print(c3.get_result(c3.RESULT_ENV))
  66. time.sleep_ms(200)
  67. # 反射光范围测试
  68. print("reflect set_extremum test")
  69. c3.set_mode(c3.MODE_REFLECT)
  70. c3.set_extremum(c3.MODE_REFLECT,c3.SET_MINIMUM,50)
  71. for i in range(0,50):
  72. print("reflect SET_MINIMUM = 50:")
  73. print("R:",c3.get_result(c3.RESULT_REFLECT_R))
  74. print("G:",c3.get_result(c3.RESULT_REFLECT_G))
  75. print("B:",c3.get_result(c3.RESULT_REFLECT_B))
  76. time.sleep_ms(200)
  77. c3.set_extremum(c3.MODE_REFLECT,c3.RESET)
  78. for i in range(0,50):
  79. print("reflect SET_MINIMUM RESET:")
  80. print("R:",c3.get_result(c3.RESULT_REFLECT_R))
  81. print("G:",c3.get_result(c3.RESULT_REFLECT_G))
  82. print("B:",c3.get_result(c3.RESULT_REFLECT_B))
  83. time.sleep_ms(200)
  84. c3.set_extremum(c3.MODE_REFLECT,c3.SET_MAXIMUM,30)
  85. for i in range(0,50):
  86. print("reflect SET_MAXIMUM = 30:")
  87. print("R:",c3.get_result(c3.RESULT_REFLECT_R))
  88. print("G:",c3.get_result(c3.RESULT_REFLECT_G))
  89. print("B:",c3.get_result(c3.RESULT_REFLECT_B))
  90. time.sleep_ms(200)
  91. c3.set_extremum(c3.MODE_REFLECT,c3.RESET)
  92. for i in range(0,50):
  93. print("reflect SET_MINIMUM RESET:")
  94. print("R:",c3.get_result(c3.RESULT_REFLECT_R))
  95. print("G:",c3.get_result(c3.RESULT_REFLECT_G))
  96. print("B:",c3.get_result(c3.RESULT_REFLECT_B))
  97. time.sleep_ms(200)