小河狸创客
本帖最后由 efans_87896504 于 2022-11-15 13:14 编辑
前面体验了智能衣架的案例,小朋友接着体验了自动扫地机,这个对他来说好像也没啥难度。不得不说,小河狸的开发课程手册还是挺不错的,对小朋友来说,上手挺容易。 看着小车能够动起来,小朋友很开心,不过还是有点遗憾,小车不能左右转向,那么我们能不能自己改造一下,让他能够自由转向呢?答案肯定是可以的。不过,小朋友不想立马把自己的自动扫地机拆掉,毕竟自己辛苦搭建的,还没来得及炫耀就立马拆了,岂不是对不起自己。于是,就考虑用旧玩具的材料重新搭建一个小车。
说干就干,要想转动,小车必须有个转向装置,可惜找了半天,只找到几个齿轮,好像不足以搭建一个比较好用的转向装置。将就着用吧,经过一番拼接,小车算是完成了。
接下来,编写程序让小车动起来。经过和小朋友商量,决定先用A、B键进行手动控制,具体方案如下:
1、A键控制180度舵机来控制方向,当按键按下时,依次按照左->中->右->中->左的顺序来回切换。
2、B键控制360度舵机前进,后退(没有设计停止功能,开弓没有回头箭,一旦开车就不能停下来了)。
B键控制前进后退倒是很容易,毕竟只有两种情况,每次按下时状态取反,设置方向转动即可。A键控制方向的逻辑就不太容易了,经过多次实验,采用以下方法方法控制:
注:设置0代表左转时的状态,2代表右转时的状态,回正的剧中状态有两个,-1和1。-1代表从右向左移动,1代表从左向右移动。
设想的很美好,实际操作起来就有点问题了。图形可视化工具拖拖拽拽,完成了循环处理。结果发现,有问题。
本来想写成这样,结果没有跳出继续的预制语句,所以不能实现预定效果,会继续执行下面的如果语句。
最后,只能在右侧代码编辑区域手动添加continue语句,或者通过嵌套多重如果否则语句来实现。
下面看看效果。
更多回帖