站内搜索
发作品签到
专业版

平衡小车

工程标签

4.1k
0
0
9

简介

基于STM32C8T6的平衡车代码设计,使用CubeMX和FreeRTOS的一个项目

简介:基于STM32C8T6的平衡车代码设计,使用CubeMX和FreeRTOS的一个项目

开源协议

GPL 3.0

创建时间:2024-09-07 14:33:07更新时间:2024-12-20 17:20:40

描述

2024/12/20更

今天突然发现这块板子也适配一个我以前大一点轮子的底盘,参考的时候可以关注一下购买的底盘孔洞尺寸。

项目介绍

项目是基于STM32F103C8T6的平衡车设计,使用的是STM32CubeMx生成的HAL库相关和FreeRTOS相关,主要是为了学习FreeRTOS相关。

开源代码链接

https://github.com/snqx-lqh/Stm32BalanceCar

实物展示

轮子使用的是如下图,是MG310的电机,小型的

硬件设计

具体设计可以看开源文件。使用的是立创EDA绘制的

整体框架

主要是分成5个主要的任务。

control_task:这个任务主要是实现直立车的控制,MPU6050中断引脚触发STM32单片机的外部中断,然后使用任务通知通知控制任务执行对应的控制任务。

ui_task:这个任务主要是实现屏幕的显示,ADC读取相关,超声波模块数据的获取和显示。ADC读取使用的是DMA+多通道实现,超声波实现使用的是定时器输入捕获

ble_task:这个任务主要是实现蓝牙数据的读取,这里可以通过蓝牙收发控制小车。这里实现是串口接收到数据放入队列,然后任务读取队列中的数据并进行处理。

nrf_task:这个任务主要是实现nrf24l01的读取,这里可以通过nrf收发控制小车。该部分现在未作处理,可自行添加处理。

esp_task:这个任务主要是实现esp01的读取,这里可以通过wifi tcp收发控制小车。目前只实现了配置为AP模式控制。

其他说明

  • 由于同时使用了I2C1的引脚和SPI1重映射的引脚,发现会有冲突,所以最后只有I2C使用了硬件,SPI使用的是软件SPI

  • 屏幕和MPU6050使用的是同一个IIC总线,所以可能会存在一个使用IIC的时候被打断另外一个也想使用IIC,所以这里使用了互斥锁,使得一个在要使用IIC的时候会等另外一个器件协议总线使用完。

  • 蓝牙和wifi都是使用的串口,但是串口配置收发DMA的话,只能收,DMA发送只能发送一次,还没解决这个问题。

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
暂无数据
克隆工程
添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航