OpenHarmony开源社区
直播中

efans_87896504

3年用户 248经验值
擅长:嵌入式技术,控制/MCU
私信 关注

【小河狸创客格物开发板试用体验】小河狸格物开发板体验之旅2

扫地机

本帖最后由 efans_87896504 于 2022-11-15 13:14 编辑

       前面体验了智能衣架的案例,小朋友接着体验了自动扫地机,这个对他来说好像也没啥难度。不得不说,小河狸的开发课程手册还是挺不错的,对小朋友来说,上手挺容易。       看着小车能够动起来,小朋友很开心,不过还是有点遗憾,小车不能左右转向,那么我们能不能自己改造一下,让他能够自由转向呢?答案肯定是可以的。不过,小朋友不想立马把自己的自动扫地机拆掉,毕竟自己辛苦搭建的,还没来得及炫耀就立马拆了,岂不是对不起自己。于是,就考虑用旧玩具的材料重新搭建一个小车。
       说干就干,要想转动,小车必须有个转向装置,可惜找了半天,只找到几个齿轮,好像不足以搭建一个比较好用的转向装置。将就着用吧,经过一番拼接,小车算是完成了。

       接下来,编写程序让小车动起来。经过和小朋友商量,决定先用A、B键进行手动控制,具体方案如下:
       1、A键控制180度舵机来控制方向,当按键按下时,依次按照左->中->右->中->左的顺序来回切换。

       2、B键控制360度舵机前进,后退(没有设计停止功能,开弓没有回头箭,一旦开车就不能停下来了)。
       B键控制前进后退倒是很容易,毕竟只有两种情况,每次按下时状态取反,设置方向转动即可。A键控制方向的逻辑就不太容易了,经过多次实验,采用以下方法方法控制:
      


       注:设置0代表左转时的状态,2代表右转时的状态,回正的剧中状态有两个,-1和1。-1代表从右向左移动,1代表从左向右移动。
       设想的很美好,实际操作起来就有点问题了。图形可视化工具拖拖拽拽,完成了循环处理。结果发现,有问题。
本来想写成这样,结果没有跳出继续的预制语句,所以不能实现预定效果,会继续执行下面的如果语句。
      

       最后,只能在右侧代码编辑区域手动添加continue语句,或者通过嵌套多重如果否则语句来实现。

        下面看看效果。




转向小车

更多回帖

发帖
×
20
完善资料,
赚取积分