2024 年电赛F题——磁悬浮实验装置
1.环境配置:本项目基于hal库在keil软件上进行编写,与开源项目相比配置难度更低。详细配置教程网上有大量教程,本文不做详细介绍。2.对STM32的引脚配置可以查看资料包里的stm32cubeMX文件。代码文件可以打开资料包的keil工程查看、编写和烧录。
项目背景:2024 年电赛F题——磁悬浮实验装置的再次尝试。
项目成员:嵌入式小张同学、伟岸
项目简介:
本项目设计并制作了一套磁悬浮实验装置,由底座台和浮子构成,在实验装置启动后浮子悬浮。底座台未安装永磁体,完全使用线圈提供磁力。
本项目参考了多个开源作品,其中主要参考B站“小明背个锅”这位up主的设计,非常感谢大佬的开源才使得本项目能顺利完成。up主的作品在电赛前完成,所以有些部分并不满足电赛要求,与其对比我们唯一的亮点可能只有没有使用永磁体辅助悬浮(这一点真的很困难)。大家要是对该项目感兴趣可以搜索查看该up的作品,非常震撼。另外说明:该up使用VScode编写代码且使用LL库,对于作者和部分新手来说使用起来比较困难。本项目使用hal库开发和keil软件进行代码的编写,这对新手和未学习使用VScode的同学来说可能比较容易一些。
材料准备:八个带铁芯的小线圈,四个较大的带铁芯的线圈,一个STM32F103C8T6,三个霍尔传感器,LM324(四运放集成芯片),AT8236直流电机模块,电流感应放大器和其他(在立创文件中可查看)。
资料包介绍:资料包链接:通过网盘分享的文件:磁悬浮开源(1).zip
链接: https://pan.baidu.com/s/13Yyhmen4vWYe7XzgcKrzOQ?pwd=2005 提取码: 2005
资料包中包含了keil工程,stm32cubeMX文件和嘉立创文件。
硬件部分介绍:
1.硬件连接:底座分为线圈板和主控板。线圈板由四个大线圈和八个小线圈构成,其中四个大线圈采用并联方式连接(提供主要的浮力),八个小线圈先两两并联叠放(提供更大的浮力),随后X和Y方向的两组小线圈反向串联(反向串联的意思是流入线圈的电流是相反的,即第一组的线圈的电流是从线圈外向内流入,第二组的电流为从线圈内向线圈外流入),在有恒定电流流入时,两组线圈产生的磁场相反。
2.工作状态:在正常悬浮时:大线圈有恒定电流完全提供向上的磁力,小线圈由于同方向的线圈的产生的磁场始终相反,所以在正常控制的时候其单片机会检测霍尔传感器的数值去判断浮子的状态来控制电流流入方向的。举个例子:在某一个时刻浮子更加偏离X轴的正方向,霍尔传感器反馈数值将其给单片机,单片机控制电流流入方向将X轴正方向的线圈磁场调整为向上,由于硬件连接的原因X轴负方向的磁场将向下,此刻浮子受到的力会将其向X轴负方向推,若推的过多使其偏移到了X轴负方向,那么单片机会翻转控制电流流入方向引脚的电平,使X轴负方向的磁场向上,X轴正方向磁场向下,驱动浮子向中心点移动。在其偏离中心点的其他情况(如在Y方向的偏离)也类似。
疑惑解答:那就有一些疑惑了作者为什么要将同方向的小线圈反向串联呢?这里做一下解答:防止各位读者认为作者的操作是迷惑行为。我们所采用的主控是最基础的STM32芯片,stm32f103c8t6的外设资源非常有限,前期我们考虑之后设计了9路ADC采集(四个大线圈,三个霍尔传感器,两个方向的小线圈),这导致我们的定时器通道不足以给八个线圈(四个大线圈和四组小线圈)分别配置PWM通道。所以我们采取了同方向的小线圈反向串联的方法解决PWM通道不够的问题。我们采用了一个三通道单刀双掷模拟开关芯片,只需要为该芯片提供一路PWM波和一个普通的IO口,IO口去控制开关的引脚电平即可控制PWM信号流入线圈方向。这样四个大线圈使用四个PWM通道,四组小线圈使用2路PWM即可。减少了两个PWM通道的需求。
软件部分介绍:
1.环境配置:本项目基于hal库在keil软件上进行编写,与开源项目相比配置难度更低。详细配置教程网上有大量教程,本文不做详细介绍。
2.对STM32的引脚配置可以查看资料包里的stm32cubeMX文件。代码文件可以打开资料包的keil工程查看、编写和烧录。
效果展示:
磁悬浮
更多推荐







所有评论(0)