乐高 追光者

网友投稿 2019-07-24 12:30

https://cdn.china-scratch.com/timg/190726/1230164912-0.jpg

上次提出一个概念,通过颜色传感器控制“头”跟着光的移动而移动,做一个追光者--跟在你(GMX)的身后,像影子追着光。

在上一个的基础上,简单做了一些改进,一是减轻头部的重量,二是减少阻力臂,减少动力损耗,三是水平并置的双传感器距离拉远,增大差值反应灵敏。

https://cdn.china-scratch.com/timg/190726/12301CM9-1.jpg

通过大型马达控制头的上下,中型马达控制头部的左右旋转,组合控制头的全方位旋转。大型马达控制左视平面内的头部上下,中型马达控制在前视平面内旋转,还有一种方法可以采用中型马达在顶视平面内的的旋转(大家可以自己实现一下)。

https://cdn.china-scratch.com/timg/190726/12301I448-2.jpg

增加陀螺仪传感器,识别两个颜色传感器的位置,通过陀螺仪数值的正负判断哪个颜色传感器在上哪个在下,通过比较上下两个传感器数值大小,判断光源来自上方还是下方。上边传感器数值大下边小说明光源靠近上部,反之靠近下部。(此处有一个bug,如上图中,假如光从右上方射入,并离右下传感器较近,离左上传感器较远,会造成判断错误。)

https://cdn.china-scratch.com/timg/190726/12301K355-3.jpg

结构上的简单,需要通过相对复杂的程序去控制,程序分两个分支,上边的分支控制中型马达旋转,下边分支控制大型马达旋转。

https://cdn.china-scratch.com/timg/190726/12301IC6-4.jpg

https://cdn.china-scratch.com/timg/190726/12301TE8-5.jpg

1.上分支:左传感器测值传到参数m,右传感器测值传到参数n,比较m>n,即左边光值大,马达往左侧逆时针转,反之往右侧顺时针转,以此模拟正视平面内左右追光。

2.下分支:陀螺仪传感器测值,如果为正,即左侧传感器在上,右侧传感器在下,此时m>n,即光源从上方来,反之从下方来;如果陀螺仪测值为负,即右侧在上左侧在下,m>n,即光从下来,反之从上来。通过这个操作,可以控制头的上下,注意光源在侧上方的误差问题(在这里不做过多处理了)。

3.逻辑上的思路理顺后,需要调试的就是马达的功率和角度,因为方向的改变是需要通过小角度多次调整实现的,因此在每次循环里马达会小角度正负旋转,以此调整上下左右的微调。这个小片段角度的设计和测量,搭配功率设置,可以让动作更加平顺(结构上的稳定合理能更线性,我设计的比较简陋看着效果一般)。

https://cdn.china-scratch.com/timg/190726/12301Q032-6.jpg

https://cdn.china-scratch.com/timg/190726/12301VP4-7.jpg

That's all!

Thank you very much!

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com