1 前言
本文旨在帮助同学们认识并了解硬件,并帮助对机器人和对电子硬件感兴趣的小伙伴们入坑。
2 什么是硬件
高中的机器人比赛大都是以电控和机械为主,涉及嵌入式的内容基本上都是使用成品开发板和模块完成,所以很多小伙伴可能对电子硬件并不是很了解,笔者最开始也一样。从一个零基础的硬件小白到能够独立承担队伍的硬件工作后,笔者对于硬件的定义如下:硬件是机器人控制代码和现实世界之间的桥梁,也是与嵌入式开发紧密相关的版块。我们看到的电路板、传感器模块、开发板这些“看起来很电子的东西”,都可以归类为硬件。在机器人领域,嵌入式开发无疑占据了很大一部分内容;而嵌入式开发这个领域,控制代码的编写和硬件环境的搭建同样重要。
举个例子,我们想要制作一个能够用蓝牙控制的遥控平衡车,首先需要设计出接受蓝牙信号的模块,并将这个模块与一个主控芯片(例如经典的STM32系列芯片)连接起来;芯片在收到蓝牙控制信号并且解算出每个轮子应该怎样运动以后(芯片代码的编写就属于嵌入式的软件板块了),需要将这个信号传给轮子的电机让轮子转动;同时要实现平衡功能,还要使用一系列的传感器,例如编码器、陀螺仪等,这些传感器的信号也需要传到芯片中以辅助控制;同时,这些传感器、芯片、电机等等电子模块都需要供电,而它们对供电的要求可能也不尽相同……为了让控制代码能够以预期的效果运行起来,首先就需要搭建好稳定且高效的硬件环境。简而言之,硬件工作为软件工作保驾护航。
有同学可能会问,既然现在有这么多的成品模块,直接用不就好了吗,为什么还要学硬件重复造轮子呢?笔者认为,学习硬件的意义主要有两个,第一,在遇到硬件上的问题的时候可以很轻松地分析并找出问题,而不会卡壳很久;在设计软件代码的时候考虑一些硬件问题也可以让整个系统的稳定性都提高;第二,成品模块为了广泛适用,有很多冗余设计,为了精准对接需求,实现高度集成化,也为了在有些时候降低代码编写的难度,自己设计硬件也是十分有必要的。
3 硬件主要学习内容
3-1 电路知识
电子硬件是建立在电路知识的基础之上的,一个合格的硬件工程师首先需要掌握的就是电路知识。像是电路基础、模拟电路、数字电路等等课程都是基础中的基础,一定要认真学习,这些内容在自己设计电路、阅读各种数据手册和开源方案以及debug的时候都很有用。
学习资源:
- 南科大的相关课程及往期视频(看看电子系的培养方案里面都有啥电路有关的课程,冲它就对了)
- 其他学校的网课(清华大学、加州理工、MIT等)(YuTube与B站有很多这类资源)
- 各种视频博主和文章博主,例如B站的郭天祥老师、寒武纪魔道电子、爱上半导体、工科男孙老师 等up主,还有知乎、电子发烧友网、CSDN网等网站
- 大学教材(有耐心的同学建议读英文版的教材,对以后的学习和阅读英文论文都很有帮助)(很多教材在学习哦里都可以找到电子版,在各大群聊里问问就有了)
3-2 物理知识
电子硬件作为软件代码和现实世界的桥梁,必然需要物理知识作为支撑。换句话说,电路知识其实也是物理知识的一部分。对于电子硬件来讲,主要关注的物理知识是半导体物理、电磁波、光电科学等方面。学习这些知识对于理解元器件、解决电磁干扰与信号传输问题等都有帮助。
学习资源:
- 南科大相关课程及往期视频
- 优质科普视频博主,如3Blue1Brown、可汗学院 等
3-3 电路设计与元器件
前面学习的电路知识和物理知识都只是用来分析现成的电路系统的,如果想要实现一些特定的功能,就需要自己设计电路,将学习过的各种电路组装起来,达到自己想要的效果。而电路中必不可少的就是元器件了,除了经典的电容、电阻、电感、二极管,还有很多很多的元器件,例如三极管、场效应管、运算放大器等,甚至是很多集成芯片;同一种元器件也有很多不同的型号,每个公司生产的元器件的性能和价格也不尽相同。元器件的选型也是电路设计中很重要的一环。
学习资源:
- 各大开源论坛的开源方案(RM论坛、立创开源社区、CSDN等)
- 大型电子公司的官方设计方案与指导手册(德州仪器、英飞凌、安生美、恩智浦、……)(在这些公司的官网上即可找到)
- 搜索引擎(想要实现什么电路功能,就可以搜索关键词)
- 专业论文(万方,中国知网等)
- 各种元器件的数据手册(在元器件生产公司的官网、元器件商城如立创商城、云汉芯城、半导小芯app)
3-4 实践技能
硬件工作中需要用到很多实践技能,比如示波器、万用表、信号发生器、学生电源、热成像仪等仪器,还有电烙铁、热风枪等工具。加入以前没有接触过这些仪器,有条件的可以自己买来实践一下,也可以选择去一些实验室体验一下。这些仪器在工作中会发挥很重要的作用。这些技能大多不会在课程中教学,想要系统地学习可以在网上找一些教学(例如B站某up主示波器使用教程BV1ri4y1P7Fo)。不过,实践技能最重要的还是实践,当自己真正开始着手玩转硬件的时候,其实就已经开始实践了。
同时,我们也需要掌握一些相关软件的使用,比如绘制电路板所用的EDA软件(立创EDA、Altium Designer等)和电路仿真软件(MATLAB、Multisim、TINA-TI等),必要时还有一些数学分析软件(MATLAB、Methemetica、OriginLab等)
4 结语
硬件是一门很深的学问,它上接嵌入式,下通微电子,所以需要学习的东西除了上面提到的硬件本家的东西之外还需要掌握一些嵌入式软件代码、控制理论,甚至是一些微电子的内容。但是,技多不压身,多多学习总是好的,也希望大家在学习中找到自己感兴趣的方向!