废话少说直接上图
以下是几张侧面照
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网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |