Arduino 的一个组件,是用一个小芯片获得颜色信息的。
由一个白色led照射物体,然后光反射到芯片上。
这个颜色信息关键的获取地方是:
如果有光照射芯片,
在一段时间 t 内,一种颜色比如 r 会一直返回脉冲 rn ,
最后就有颜色的几个数值, rn gn 和 bn
再把它们 map 到 0-255 ,(map函数是:比如 0 - 2000 的范围,map 到 0 - 255,如果是1000 的话,map出来的就是 127左右,这样子) 就是 rgb 值了。
那么问题是:
map 要指定一个范围,
这个范围固定后,那么在反射光亮度不高,那么 map 出来的值就很小,可能就在 0-30 的样子,接近黑色。或者反射光太强了, map出来的值就太大,一直在 240以上,接近白光了。
这样这个取色就只能在一定的反射距离内,然后周围还不能太亮或者太暗。
就是这个范围怎么才能动态计算,像手机摄像机的亮度自适应一样。
求个思路~
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.