2017电子设计攻略_控制类

2023-11-07

2017年电子设计大赛准备攻略(控制类)

                                  Author: 靳皓屹   中北大学

1.  组队

      组队是一件非常重要的事情。在组队之前,一定要想清楚:

    (1)三个人中间是否有一位核心成员(具有决断力,能够定好团队的方向);

(2)分工问题;个人认为最合理的分工是这样的:硬件+驱动+APP,之后会详细的谈这个问题;

(3)指导老师,指导老师是否能够帮到你;

2.  分工问题详解:

      硬件负责人:负责搭建机械结构,电路设计制作,以及配合驱动负责人调好底层驱动程序;

    驱动负责人:负责各个模块基础函数的编写,并帮助APP负责人解除程序bug,团队的中枢,需要有较为深的单片机功底;

    APP负责人: 负责根据题目要求编写相应的应用,需要有清醒的头脑,和扎实的编程功底,并且要学会一些基础的算法,比如PID;

   

    下面我以一个简单的小题目为例,去阐述一下三个人如何去配合:

    题目:制作一个温度报警仪,当温度高于20度时,蜂鸣器响起,用户必须按下按键来解除报警;低于20度时蜂鸣器不响。

   

    拿到这个题目,一看其实很简单,一个人就能完成;但是在电子设计大赛时,要求会很多,会有很多的逻辑,驱动方面要求也会很高,另外机械结构要求就更高了。就当这是一个电赛题,三个人应该如何应对?

     

      三个人一起商讨一个整体方案:

    我们采用STM32单片机,DS18B20作为测温模块,自己制作蜂鸣器报警模块(无源的),自己制作按键模块。循环检测温度,如果大于20度,则蜂鸣器响起,开始检测按键是否按下与温度是否降下,如果降下来或者按了按键,蜂鸣器停止报警。

   

    硬件负责人:开始制作硬件模块,蜂鸣器模块,按键模块,留好排针,并可以通过自己的电平测试(就是加上相应的电平来看看是否可以工作)。

   

    驱动负责人:开始编写各个模块驱动,温度模块,按键模块,蜂鸣器模块,写到什么程度?

            温度模块:封装出一个 floatget_temp();  只要调用这个函数,就能得到温度值;

        按键模块:封装一个  int get_key();   调用这个函数就能够得到按键值;

              蜂鸣器模块: 封装一个 void beep(intx);  当beep(1)时,蜂鸣器就能响。反之不响;

 

     APP负责人:将上述驱动看成一个黑盒(就是假设上面的函数已经OK),然后按照题目逻辑写主函数;

   

    当硬件同学完成硬件制作后,把模块交给驱动同学,测试一下如果没有问题,然后把APP同学的主函数添加到驱动同学的工程当中,看看能不能行,如果不能的话继续debug,这个时候三个人可以齐心协力,商量问题出在谁身上。

     

3. 赛前准备:

   (1)项目篇

       入门的话非小车莫属了。做一个循迹小车,最好按照上述的方法合作完成,不要死坑一个人,时间长了被坑的那个人效率会很低

          

之后就是去做往年的电赛题,建议做平衡类的,比方说倒立摆和自平衡小车,别的题目意义不是太大;

          

      平衡类的题目主要是PID算法的调优。怎么调,我们以前是暴力求解法,说白了就是瞎试,但是这样不是很科学,我电赛之后一直没搞这方面也没总结,这方面最好找你们的指导老师,看看他们有没有高招,至少,不要一直试参数

          

   (2)准备篇:

           硬件负责人: 学习CAD制图,单片机,PCB制作,一些传感器的基本原理,学着自己去制作一些传感器和模块,稍后我会列举;

           驱动同学:   学习单片机,每个知识点都要搞清楚,比方说GPIO,中断,定时器,PWM,I2C,SPI,串口;还有一些模块:

           显示屏,蓝牙,NRF2401,直流电机,步进电机,舵机,航模用的无刷电机,这些都要搞清楚,都要亲手去驱动一遍;

           APP负责人:  学习单片机,经常做一些程序逻辑训练,学一些自动控制原理(PID算法的调优);

          

   (3)模块篇:

           直流电机驱动器(LN298),步进电机驱动器(专业驱动器),电调(无刷电机);

           OLED显示屏,触摸屏等等(显示)

           蓝牙模块,NRF2401;

           蜂鸣器模块;

           编码器,精密电阻器(测转角);

           MPU6050(自带库DMP,测角度,加速度,角加速度)

           光耦模块(用于保护);

          

           上述模块是一些常用的,大家电赛之前准备好足量的,还有驱动程序都要搞好。

           还有就是要设计一个人机交互界面,通用模板,不管什么项目都可以用。

     

     

     

     

     

     

     

     

     

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2017电子设计攻略_控制类 的相关文章

随机推荐

  • 【蓝桥杯每日刷题】——分巧克力

    一 题目 儿童节那天有 K 位小朋友到小明家做客 小明拿出了珍藏的巧克力招待小朋友们 小明一共有 N 块巧克力 其中第 i 块是 Hi Wi 的方格组成的长方形 为了公平起见 小明需要从这 N 块巧克力中切出 K 块巧克力分给小朋友们 切出
  • Gitlab+P3C-PMD(Aliyun)标准化你团队的代码

    1 背景简介 项目越来越大 团队越来越大 代码越来越来多 然后就是各种五花八门的代码格式 代码规范 要做到代码规范我们可以采取代码交叉检视 IDEA Eclipse安装插件自检 以及代码管理服务端做校验 且不说各种方法的利弊 本文直接采用服
  • ctf中MD5绕过详细总结及例题[BJDCTF2020]Easy MD5

    一 首先是MD5 函数的作用 MD5 函数的作用是计算字符串的MD5散列 返回值 如果成功则返回已计算的 MD5 散列 如果失败则返回 FALSE 二 PHP 弱类型比较绕过 代码
  • QT数据库操作学习笔记1

    一 SQL模型的类 模型 视图结构 进行数据和界面的分离 模型 视图结构分为三部分 1 模型 model 与数据源通信 并为其他部件提供接口 与底层的数据打交道 2 视图 view 从模型中获取用来引用数据条目的模型索引 与显示打交道 3
  • 香港 单双线的区别?

    现在很多香港服务器商推出的主机产品 除了有操作系统之分外 还有单线香港服务器 双线香港服务器以及多线香港服务器的区分 但是 对于很多新手站长来说 并不清楚他们之间到底有什么差异 这里就来简单的解释下 其实 之所以有这么多线路 主要还是由于国
  • OpenCV中图像的缩放与旋转讲解及实战演示(附Python源码)

    需要源码请点赞关注收藏后评论区留言私信 几何变换是指改变图像的几何结构 例如大小 角度和形状等 让图像呈现出缩放 翻转 映射和透视效果 这些几何变换操作都涉及复杂 精密的计算 OpenCV将这些计算过程封装成非常灵活的方法 开发者只需修改一
  • 计算机格式字体颜色,电脑怎么设置不同的字体颜色样式

    电脑的字体可以随意设置颜色 根据自己喜好选择好看舒服的颜色 不过可能很多人不知道在哪里设置 下面由学习啦小编为你整理了电脑怎么设置系统字体颜色的相关方法 希望对你有帮助 电脑设置系统字体颜色的方法 右键点击桌面空白处 选择 个性化 进入 个
  • bugku 一段Base64

    题目是一大段base64 先解一下 看来一下不知道是什么类型的 百度一下发现 参考 那就用Converter这个工具 连续三次unescape 刚开始把输出的内容全部复制到输入 发现不对 要不字母和括号去掉 String fromCharC
  • 趣味程序(绘制圆与y=x^2与歌星大赛)

    实现y x 2与圆的图形叠加显示 程序图 运行结果 歌星大赛 程序截图
  • pycharm pip 安装第三方库出错的终极解决方案

    大家都知道 pip 在安装第三方库的时候是十分方便的 在 Windows 平台上 一条命令就可以将依赖关系都搞定 pip install requests 但还是有几个小问题 1 有时候会提示权限不够 当初没有留下那个权限不足的截图 但是根
  • 2021中国华录杯·算法大赛活动进行中,超多奖励等你来拿

    话不多说 期待你的参与
  • oracle redo 移动位置,Oracle数据文件移动方法 - 转

    6 2 参考资料 Oracle数据库移动方法 这里所指 数据库移动 是将Oracle数据文件 系统数据文件或用户数据文件 控制文件 重做日志移动至新的存储路径 并修改Oracle相关配置 使之可以重新正常启动 这种应用常见于系统扩容后的Or
  • Gradle学习笔记 Gradle命令行

    执行多个任务 安装好Gradle之后 就可以使用Gradle命令行了 首先我们先新建一个文件夹gradle learn 然后在其中新建一个build gradle 这是Gradle的项目构建文件 task compile doLast pr
  • MySql InnoDB行锁——“三剑客”

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 行锁 三剑客 前言 一 行锁三剑客是什么 二 记录锁 Record Locks 三 间隙锁 Gap Locks 四 临键锁 Next Key Locks 总结 前言 行锁在
  • 蓝桥杯 Python 组省赛夺奖班-6 二分法

    一 分巧克力 题目 思路 首先确定一下巧克力边长d的上界 这里可以想像把所有巧克力全部融化 平均每个人能分到 sum k 面积的巧克力 高度不考虑 那么d的上界为int math sqrt sum k 暴力 直接从d的上界开始到1判断是否可
  • shell脚本一键部署LAMP架构

    一 部署LAMP基本架构 1 L linux A apache M mysql P php 2 稳定版本 mysql5 1 php5 3 apache2 2 3 安装顺序 apache gt mysql gt php 4 将所需的压缩包 h
  • Linux设置静态IP

    Linux设置静态IP 使用ip addr查看ip 如下所示就是动态IP 1 什么是静态IP 静态ip就是固定的ip 需要手动设置 静态IP地址 又称固定IP地址 是长期分配给一台计算机或网络设备使用的 IP 地址 一般来说 一般是特殊的服
  • 【计算机视觉】双目测距(五)--匹配算法对比

    原文 http www cnblogs com polly333 p 5130375 html 三种匹配算法比较 BM算法 该算法代码 view plaincopy to clipboardprint CvStereoBMState BMS
  • 解决报错:Vue移动端项目中鼠标无动作时,滚动条自动下滑,拉取数据

    背景 在鼠标慢慢滚动 滚动到某一处位置的时候 滚动条自动触发 拼命往下走 正常应该是滑动到摸个位置时候 加载下一页的数据 Video 2022 09 16 155954 这个问题困扰了我两天 特此记录 用的Vant组件库的van list来
  • 2017电子设计攻略_控制类

    2017年电子设计大赛准备攻略 控制类 Author 靳皓屹 中北大学 1 组队 组队是一件非常重要的事情 在组队之前 一定要想清楚 1 三个人中间是否有一位核心成员 具有决断力 能够定好团队的方向 2 分工问题 个人认为最合理的分工是这样