各位工程师朋友,大家好!我是电子风清扬,本期“来实战”项目《宠物自动喂食器》的执行官。先做一个简单的自我介绍,我是一名怀揣着梦想的新一代嵌入式软件工程师,目前从事物联网设备的开发。一路自学过来,走过很多的弯路,也曾经无数次迷茫过,找不到学习的方向。我很了解一个电子初学者在刚刚开始时的艰辛,不知道学什么,怎么去学,不知道实际工作中需要具备什么能力。希望可以通过本次的项目来帮助更多的新人了解什么是真正的实战项目,需要具备哪些能力,帮助更多的电子初学者找到学习的方向,更顺利的进入这个行业,为电子行业做出一份自己的贡献。
1、为什么很多电子初学者不会做项目?
初始阶段掌握的技术还太少,没有形成完整的知识体系,也并没有见过真正的项目(涉及到保密问题,很多项目并不会开源)。仅有的技术完全限制了自己的想象力,一旦遇到自己不会的技术就会想尽办法回避,不愿意去学习。久而久之造成了恶性循环,思路越来越窄,越来越迷茫,最后走上了从入门到放弃的道路。
2、为什么说单片机只是一个工具?
在一个项目中,它只是代替人来处理各种电信号,处理数据,完成对电路控制。它只是项目中的一部分,想完成一个完整的项目仅有单片机是远远不够的。
3、真正的工程代码应该是什么样的?
模块化、层次分明、面向对象、良好的数据结构、清晰的业务逻辑、可维护性。
4、项目的开发流程,以及人员分工?
·实现哪些功能:确定需求
·需要哪些器件:元器件选型
·如何控制器件:电路设计
·如何实现需求:编程(数据结构、业务逻辑)
·方案可行吗?:软硬件结合
·产品可以投产么?:现场测试,老化
书归正传,开始介绍本次的项目。本次的项目希望打造一款宠物自动喂食器,解放铲屎官。项目计划按以下功能点来进行:
1、具备定时定量喂食功能(每周喂食曲线,每天喂食的时段,每个时段的百分比可调节),实现不同阶段的喂食需求。
4、对料仓中的喂料量进行监测,在料仓中饲料量不足时提醒铲屎官及时补充。
5、对水仓中的水量进行监测,在水仓中饲喂量不足时提示铲屎官及时补充。
6、警戒线的阈值可调。
7、良好的人机交互界面设计。
此外,我们项目需要用到的电源有3.3V、5V、12V,所以我们采用19V(15V-24V)笔记本充电电源供电以及电池组成的UPS系统进行供电。将设计两个LM2596模块,一个5V,一个12V。查询数据手册,我们得到Demo电路图如下:
……
第二个步骤给大家带来本次项目的嵌入式软件平台的建设思路,本次的嵌入式软件平台分为四层。
1、MyLib:底层驱动代码—>硬件抽象层
本次平台MyLib层,从两个角度出发,一个是个人角度,一个是公司角度。
个人:
·个人技术以及研发经验的积累;
·减少重复性劳动,已经开发好的模块进行重复调用;
·加快个人的研发进度;
·提升自我的编程能力以及研发境界;
公司:
·平台化代码,集中全公司研发力量;
·实现公司业务代码的积累,研发技术的积累;
全网第一份手动移植TouchGFX视频教程,不使用CubeMX!!!
在本次的项目中GUI采用了最新的TouchGFX,放弃了已经使用多年的emwin。一个原因是因为TouchGFX以后的使用是免费的了,而且界面华丽酷炫;另一个原因也是对自己的一个挑战,在资料非常稀少的情况下能否挑战成功。本期视频我将介绍移植过程中的重点以及注意事项,带领大家感受一下TouchGFX的威力。
很庆幸又一次坚持了下来,期间无数次想过放弃,最终还是靠着意志力坚持了下来。当成功的那一刻,我发觉自己又成长了。其实能力的提升就是在这一次次的挑战中,查阅资料、仔细分析原因、查找解决方案。在这个过程中锻炼自己的学习能力,不断完善自己的知识体系。而当你完成了一次次的挑战后,那么你将不再惧怕接触新鲜的事物,离成为大佬又近了一步。