废话少说直接上图
以下是几张侧面照
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++; } }
通过串口调试助手查看返回的数据可以比较方便地检测该函数的正确性。
打赏帖 | |
---|---|
分享一种检测按键状态的方法被打赏20分 | |
周末总结一下,STM32C0系列的开发经验被打赏50分 | |
【Cortex-M】Systick Timer使用被打赏10分 | |
分享汽车防盗系统的组成与分类(一)被打赏5分 | |
VOFA+波形显示+JYD-31蓝牙发送和解析不定长数据被打赏10分 | |
【换取手持数字示波器】-STM32F4PWM控制LED灯管亮度被打赏22分 | |
【换取手持数字示波器】STM32F4驱动RPR-0521RS照度、接近一体型传感器被打赏23分 | |
宏定义和const关键字定义被打赏5分 | |
【分享开发笔记,赚取电动螺丝刀】几个单片机I2S外设的BLCK时钟对比被打赏20分 | |
【功率监测与控制系统DIY活动成果贴】DIY功率计与LabVIEW数据采集被打赏100分 |