**这是本文档旧的修订版!**
硬禾学堂2022暑期实战培训
简介:
为加深同学们对书本理论知识的理解,电子类专业的高校都开设了一些以自己动手体验为主的实习课程,比如电子工艺实习、到企业去做1-2周的生产实践等,但疫情导致很多原定的实习课程无法开展,而书本课程内容与迅速发展的产业严重脱节,也使得学生的动手能力离企业对同学们的要求越来越远。
基于过去多年的实战培训经验,结合当今产业最新的产品和平台的需求趋势,硬禾学堂开发了一系列适合高校同学动手DIY的学习套件,并通过多次活动积累了丰富的参考项目、代码资源,为同学们的入门学习和进一步的创新设计提供了坚实的基础。
为配合多所高校电子工艺实习的安排和目前电子行业的需掌握的主流技能,硬禾将在2022年暑期推出四门实战训练课程,每门课程为期一个月(4周),主要包括以下内容:
- 电子工艺实习 - 掌握规范化的PCB设计和焊接技术;
- 嵌入式系统入门 - 通过易学、日趋主流的MicroPython编程,入门嵌入式系统及其在物联网中的应用;
- 嵌入式系统应用 - 具有C编程基础同学的同学通过自己变成DIY一个简易示波器,并掌握测试测量的基本原理和使用技巧;
- 基于FPGA的数字系统训练 - 使用Verilog编程体验FPGA的灵活应用,并从底层深刻理解数字系统的构成。
电子工艺实习:
#### 培训前准备:
课程大致进度:
- 第1周:资料查找及方案设计(前2天)、PCB设计(后三天)
- 第2周:FPGA基础知识及编程, PCB焊接,并用FPGA编程驱动焊接好的PCB板
- 第3周:FPGA数字系统编程 - PWM、DDS、SPI、OLED、ADC
- 第4周:Python编程及应用 - 科学计算、数据分析、可视化
- 第5周:基于MicroPython的嵌入式系统学习(Pico学习板)
- 第6周:设计一个FPGA + MCU + 模拟输入/输出 + WiFi + 电源的小系统板
- 第7周:Verilog编程 + MicroPython编程 + 上位机编程 + 焊接调试
- 第8周:系统调试、测试及项目报告
讲师
- 苏公雨(PCB、综合)
- Daniel(FPGA基础)
- 吴志军(FPGA系统)
- 齐伟(Python)
- 陈强(MicroPython嵌入式)
实训项目安排
项目1 - 驱动64个LED:
- 熟悉矩阵式驱动控制电路设计及控制方式
- 熟悉PCB的设计流程以及操作技巧
- 用于焊接训练用
- 用于FPGA编程控制
- 用于RP2040编程控制
实战培训项目: 点亮64个LED
项目2 - 高速数据采集
- 技术指标分析及方案设计
- 模拟电路设计方法、要点及仿真(增益调整、频带控制)
- 电源设计 - 几种不同的变换方式比较以及在工程中的实际应用
- WiFi连接/物联网构成
- MCU + FPGA + ADC + 模拟信号链路 + Matlab的分工协调
- 上位机工具,尤其是开源工具的使用,比如Matlab、LabView、SerialPlot、QT编程等
实战培训项目: 高速数据采集
课程大纲
时间 | 上午(9:30-11:30) | 下午(2:00 - 5:00) | |
---|---|---|---|
第1周(PCB设计) | 星期一 | 开营及实战训练介绍 | 学员查找资料(英文阅读),写综述报告(现场布置题目,基于Wiki系统,用Markdown的格式) |
星期二 | 电子产业链的介绍及电子产品的基本构成 | 资料查找(英文阅读)、项目方案确定 - 第一个项目设计 | |
星期三 | PCB设计及KiCad6介绍 | 用KiCad6设计原理图 | |
星期四 | 用KiCad6进行PCB布局 | 自己完成项目的元器件布局 | |
星期五 | 用KiCad6进行PCB布线 | 自己完成项目的PCB布线,并提交Gerber文件去制板 | |
第2周(FPGA基础) | 星期一 | 什么是FPGA、能做什么、如何设计 | 小脚丫FPGA设计流程体验/WebIDE介绍 |
星期二 | Verilog语法规范及在FPGA上实现组合逻辑 | 学员自己完成数码管显示操作 | |
星期三 | 在FPGA上实现时序逻辑 | 学员自己完成呼吸灯、流水灯、计数器等操作 | |
星期四 | 在FPGA上实现状态机 | 学员自己实现交通灯的功能 | |
星期五 | 焊接基本技巧 | 学员完成自绘电路板的焊接,并用小脚丫FPGA编程测试 | |
第3周(FPGA系统) | 星期一 | PWM原理、设计及应用 | 学员设计PWM信号,并用硬件助手进行观察波形 |
星期二 | DDS生成任意波形 | 学员自己根据教程实现方波、三角波、正弦波,并使用硬件助手进行观察 | |
星期三 | 常用的串行总线及比较 - SPI、I2C、UART | UART总线的逻辑编程及应用、用硬件助手观察波形 | |
星期四 | 通过UART同PC连接进行数据传输 | 学员通过UART向PC传输数据,并通过PC控制FPGA内部逻辑 | |
星期五 | 模拟/数字转换的方式 | 学员自己编程将电位计的电压信号采集下来并用LED显示出来,同时发给上位机通过串口助手显示采集到的信息或波形 | |
第4周(Python编程) | 星期一 | Python语言特点、应用及开发环境 | Python的数据类型和控制流程 |
星期二 | Python的数据结构和I/O操作 | 学员实例完成 | |
星期三 | 基于对象的编程和线程 | 学员实例完成 | |
星期四 | Python在科学计算中的应用 | 学员实例完成 | |
星期五 | Python在数据分析中的应用 | 学员实例完成 | |
第5周(嵌入式系统) | 星期一 | 嵌入式系统基本概念以及RP2040的开发使用环境 | 学员根据网上例程完成LED等的显示、蜂鸣器的音乐播放等 |
星期二 | 嵌入式系统中的线程和中断的使用 | 学员根据网上教程完成交通灯的控制 | |
星期三 | SPI总线驱动OLED显示 | 学员根据网上资料实现OLED上的图形化编程 | |
星期四 | 嵌入式系统中的数据采集及ADC的应用 | 学员在OLED上显示采集到的波形 - 音频 | |
星期五 | WiFi的连接及物联网应用 | 学员根据网上资料实现Web Server功能 | |
第6周(综合项目电路设计) | 星期一 | 综合性项目的任务布置 - 功能、性能等要求 | 学员自己查阅资料设计一个简易的数据采集系统 - 基于给定的器件 |
星期二 | 原理图符号库和封装库的构建 | 学员自己绘制系统的原理图 | |
星期三 | 原理图点评 | 学员修正原理图并开始PCB布局 | |
星期四 | 学员的PCB布局点评 | 学员修正PCB布局并开始布线 | |
星期五 | 学员的PCB布线点评 | 学员修正好PCB布线并提交制板 | |
第7周(综合项目编程设计) | 星期一 | Verilog或MicroPython编程 | Verilog或MicroPython编程 |
星期二 | Verilog或MicroPython编程 | Verilog或MicroPython编程 | |
星期三 | Verilog或MicroPython编程 | Verilog或MicroPython编程 | |
星期四 | 焊接调试 | 系统调试 - 答疑 | |
星期五 | 上位机波形显示、控制程序的编写 | 系统调试 - 答疑 | |
第八周(系统调试、报告、综合测试) | 星期一 | 论文撰写要求及方法 | 系统测试/论文撰写 |
星期二 | 系统测试/论文撰写 | 系统测试/论文撰写 | |
星期三 | 系统测试/论文撰写 | 系统测试/论文撰写 | |
星期四 | 系统测试/论文撰写 | 系统测试/论文撰写 | |
星期五 | 综合知识测试 | 项目总结 |