废话少说直接上图
以下是几张侧面照
1、打开小车的三脚开关,将boot0调节至on,使小车处于run状态,按一次左上角的按键,即可发现小车可以直立在地上了
2、在安卓上安装软件,打开软件(小车此时应该还在地上立着呢),按菜单键,连接蓝牙,即可实现对前后的控制(我目前只做到这一步哈哈)。和电脑连接也是同理,之后可以直接用电脑的串口调试助手给小车发送指令~
3、有一个问题哈,就是蓝牙连接后,有时候会出现不能实时控制的情况,即操控按钮,小车仍然保持直立。当然,我还没看代码,之后看看代码再研究下~
下面给出小车保持直立时的视频
今天主要做了2件事:
1、编码器计数值实验
在中断处理函数中添加如下代码:
printf("%d,%d\r\n",Encoder_Left,Encoder_Right); //编码器值采集实验
即发送编码器的值。下载程序后,打开serialchart.exe,推一下小车,小车开始震荡,小车震荡过程中的左右编码器返回波形图如下所示:
由图知,直立情况下左右轮转速近似相等(编码器值相等),同时没有外界扰动时会趋近于0。
2、系统时间的获得
为了使得小车可以在系统运行后的固定时间内做动作,需要记录系统运行的时间,在这里做了一个获得系统开机时间的函数,最小单位是5ms。
(1)首先在main.c中定义 _5microsecond=0,second=0,minute=0,hour=0这4个无符号整形变量,然后在main.h中用extern声明。
(2)函数定义在show.c中,实现过程如下:
void systime_Get(void) { _5microsecond++; if( (_5microsecond) == 200 ) { _5microsecond = 0; second++; } if( (second) == 60 ) { second = 0; minute++; } if( (minute) == 60 ) { minute = 0; hour++; } }
通过串口调试助手查看返回的数据可以比较方便地检测该函数的正确性。
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图四被打赏50分 | |
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 |