当前位置:   article > 正文

自制一个桌面宠物小狗(STM32hal库+ADC+IIC+DMA+PWM输出波)_stm32桌面小宠物

stm32桌面小宠物

前言:

基础所需:基础电路认识,C语言,STM32开发,STM32CUBEIDE或CUBEMX和Keil使用(重要),一点点艺术细胞、一点点耐心。
此小项目可以用于刚学完STM32hal库,用于巩固自己的以及和助于自己灵活运用hal库。
不一定要按照我的I/O口配置,我的因为刚开始DIY#D打印没有到,所以没有配置的很合理,分布不是很好,大家可以按照自己的3D打印区布置,让自己的更美观!

效果

演示视频

蓝牙+遥杆控制小狗

遥杆控制:

左摇杆负责控制小狗的前进后退左右转,右摇杆控制小狗的握手,跳舞,趴下,坐下

蓝牙控制

在这里插入图片描述

材料准备以及原理

舵机及其原理

这里用到的是0°到180°的舵机,额定工作电压为4.8~6V。
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/70e6835df7364386ae1ce36f2cc17bdb.jpeg
关于舵机工作原理以及PWM周期配置可以看舵机PWM原理

可冲放电电池

适合即可,配合充放电模块循环使用
**加粗样式**

充放电模块

在这里插入图片描述

双轴遥杆模块

在这里插入图片描述
简单原理赘述:(通过串口发送ADC数组得出结论)
在这里插入图片描述
实例:
在这里插入图片描述

蓝牙模块

我这里用的是HC-08(下图绿色),嘎嘎好用!
在这里插入图片描述
关于HC-08详细使用以及相关AT指令可以参考一下这位大佬的文章:蓝牙HC-08使用详细教程
这里如果使用printf重定义来发送串口数据,
在这里插入图片描述
需要:
在这里插入图片描述

STM主控芯片

F103系列的C8T6以及其他关于烧录以及TTL转串口的工具,电线若干。
在这里插入图片描述

相关软件APP使用

CUBEMX& Keil配置

一、RCC时钟树配置
在这里插入图片描述
在这里插入图片描述
二、定时器PWM输出配置
根据舵机PWM工作原理配置周期为20ms,频率为50HZ。
直接开启一个定时器,同时开启四个通道即可,简单粗暴!
通道一为左前脚,通道二为右前教,通道三为右后脚,通道四位左后脚。
详细引脚后面一起说!
在这里插入图片描述
在这里插入图片描述
三、配置串口
直接用我们最熟悉的9600吧。
在这里插入图片描述
在这里插入图片描述
记得开中断
四、ADC配置
开启四个通道
在这里插入图片描述
配置好通道
在这里插入图片描述

五、DMA配置
开启DMA搬运数据
在这里插入图片描述

六、IIC配置(软件IIC)
在这里插入图片描述
这里配置错了,需要在代码里面手动改为这样,或者刚开始直接配置成高速开漏输出即可。这里我配置错了,后面改回来的!
在这里插入图片描述

蓝牙助手

我用的是这个,因为他可以自己编制按键输出的内容,非常方便!
在这里插入图片描述
在这里插入图片描述

取模助手

在这里插入图片描述
关于使用和取模流程配置可以观看江科大的教学,一级好!
链接如下:江科大OLED屏幕快速入手
这个软件对图片大小有严格要求,所以还要通过Photoshop调整,下面是我自己调整后的样品:
在这里插入图片描述

软件开源

main.c:
在这里插入图片描述
Dog_PWM.c:(小狗姿态)
在这里插入图片描述
uart.c(由于我的个人习惯,我把串口中断接收写在了uart.c里面):
在这里插入图片描述
**硬件IIC屏幕驱动:(这里我用的是江科大标准库的驱动函数加以修改后成为了hal库)**原本下载路径可以在江科大视频下面自行下载,链接如下:链接如下:江科大OLED屏幕快速入手
江科大原本需要修改的地方代码:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

修改后的样子:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
可以自行添加其他表情:
在这里插入图片描述
具体效果可以看这位up主的:表情显示效果

修改后还有报错,应该是文字报错,应该是你的工程语言不兼容
解决方法:
在这里插入图片描述
在这里插入图片描述

全部配置后的I/O口

在这里插入图片描述

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号