问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

自制桌面宠物小狗:基于STM32的遥控与蓝牙控制项目

创作时间:
作者:
@小白创作中心

自制桌面宠物小狗:基于STM32的遥控与蓝牙控制项目

引用
CSDN
1.
https://blog.csdn.net/2302_80169672/article/details/140219781

本文将介绍如何制作一个可爱的桌面宠物小狗,通过STM32微控制器实现遥控和蓝牙控制功能。项目涉及ADC、IIC、DMA和PWM等技术,适合有一定基础的STM32开发者参考学习。

前言

制作这个项目需要具备以下基础知识:

  • 基础电路认识
  • C语言编程
  • STM32开发经验
  • STM32CUBEIDE或CUBEMX和Keil使用经验
  • 一点点艺术细胞和耐心

这个小项目非常适合刚学完STM32hal库的开发者,可以帮助巩固和灵活运用hal库知识。在I/O口配置方面,建议根据自己的3D打印区域进行合理布局,以使最终作品更加美观。

效果展示

演示视频

蓝牙+遥杆控制小狗

遥杆控制

  • 左摇杆负责控制小狗的前进、后退和左右转向
  • 右摇杆控制小狗的握手、跳舞、趴下和坐下等动作

蓝牙控制

通过蓝牙模块实现远程控制功能

材料准备及原理说明

舵机及其原理

使用0°到180°的舵机,额定工作电压为4.8~6V。关于舵机的工作原理和PWM周期配置,可以参考相关资料。

可冲放电电池

选择适合的电池配合充放电模块循环使用

充放电模块

双轴遥杆模块

简单原理赘述:通过串口发送ADC数组得出结论

蓝牙模块

使用HC-08蓝牙模块,支持AT指令控制。如果使用printf重定义来发送串口数据,需要进行相应的配置。

STM主控芯片

使用STM32F103系列的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口

(具体内容略)

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号