基本信息
规则
项目进度
视频课程
案例
内容介绍
软件 & 硬件
元器件
重力感应传感器 - 3-Axis Orientation/Motion Detection Sensor
低电压R-R输出的运算放大器
双路低电压轨到轨输出运算放大器
红外遥控器的预放大电路
高速红外发射二极管, 940 nm, GaAlAs, MQW
硅PIN光电管
NC7WZ16 是安森美半导体的 TinyLogic® 超高速系列双逆变器。该器件使用先进的 CMOS 工艺制造,可实现超高速和高输出驱动,同时可在非常宽的 VCC 运行范围内保持低静态功耗。该器件规定运行范围为 1.65 至 5.5V VCC。当 VCC 为 0V 时,输入和输出为高阻抗。输入耐压达 5.5V,而无论 VCC 运行电压任何。
软件
MicroPython是一款编程语言兼容Python3的软件,用C写成的,能够运行在微控制器的硬件上并进行了相应的优化。
C 编程是一种通用的、过程式的、命令式的计算机编程语言,由贝尔电话实验室的 Dennis M. Ritchie 于 1972 年开发,用于开发 UNIX 操作系统。
工具
开源、免费、跨平台的PCB设计工具
平台
树莓派官方发布的基于自行设计芯片的邮票孔模块,双核Arm Cortex M0+,片内260KB RAM,板上有2MB Flash,售价仅4美元
基于Lattice的iCE40UP5K FPGA,支持DAPLink下载并UART通信,管脚兼容树莓派PICO的定义,并有开源的RISC-V软核可以移植使用,可以使用树莓派Pico扩展板和嵌入式系统学习模块。
电路图
物料清单
附件
-
PICO_EXT_Gerber.zip
树莓派PICO扩展板的Gerber文件
-
UP5K_PICO_EXT.pdf
“暑期一起练”活动规则
项目要求:
- 7月31日前完成活动的报名(直接下单购买板卡即可),本次活动套件数量有限,先到先得;
- 7月31日前争取让所有参加活动的同学收到套件;
- 9月10日晚12点前参加项目的同学要完成规定的项目并上传到电子森林项目网站(https://www.eetree.cn/explore/project);
- 9月25日前电子森林完成每个项目的验证、审核;
- 9月30日前对符合要求的同学退款,对于优秀的项目给予奖励。
需要提交的材料:
-
5分钟短视频(介绍自己的项目并展示成果),可以发布在B站或腾讯视频上,内嵌到电子森林发布的自己的项目页面中,以视频的方式展示自己完成的项目 -
至少2000字的项目总结报告,根据提供的格式要求认真填写; -
提交可以验证的二进制代码,由电子森林的工程师来验证其功能是否符合要求; -
提交项目中用到的源代码,放在附件,开源发布在项目页面中; -
在9月10日晚12点前请发送以下内容到training@eetree.cn邮箱,以作项目关联和顺利返款:电子森林注册昵称、下单时的姓名和电话、订单号和付款截图
总计3个项目,任选其中一个项目完成并按照要求开源、分享在电子森林的项目平台
项目1 - 制作一个音频参数测试仪
-
通过PICO内部的ADC采集板上麦克风的音频信号
-
通过按键或光电旋转编码器能够左右、上下移动波形;左右、上下缩放波形,按键或旋转编码器的功能可以自己定义
-
通过ADC采集音频信号的电压峰峰值,并能够将音频信号的电压峰峰值显示在LCD屏幕上
-
对采集到的波形进行FFT变换,得到被测信号的频谱并在LCD上显示出来,并对单频信号显示其频率值
项目2 - 设计一个带有背景音乐的数码相框
-
将多张照片保存在SD卡中,能够在240*240的LCD屏幕上以至少3种不同的切换模式轮流播放照片,模式的切换由按键控制
-
播放照片的同时,播放背景音乐,通过蜂鸣器或耳机插孔输出
-
利用姿态传感器,旋转板卡,照片可以自动旋转,保证无论板卡是什么方向,照片的方向都是正的
项目3 - 设计/移植一款游戏
-
设计或移植一款经典的游戏,通过LCD屏显示,通过按键和旋转编码器控制
-
在游戏中要通过蜂鸣器播放背景音乐
以上项目不限用MicroPython或C/C++语言编写。
第1次直播授课介绍了项目的背景以及板卡要支持的主要功能 更新发布于 2021年02月14日
作为KiCad设计PCB的第一节课程,主要介绍了KiCad的优势、主要功能,并通过一个现有的项目介绍了KiCad的原理图绘制和PCB布局布线功能中的主要菜单、功能。
在课程中介绍了树莓派PICO扩展板的设计需求,要支持的主要功能。
第2次直播 - 介绍了KiCad中元器件库的几种构建方式 更新发布于 2021年02月15日
本课程重点强调“方法论”,具体的操作可以参考网上的 教程,比如今天在本进度中应用的B站上“稀饭放姜”关于原理图符号绘制的视频教程,PCB的封装可以在另外B站上的另一个视频中观看,操作方式基本相似。
今天下午的直播,介绍了元器件库的集中构建方式要点:
- KiCad的元器件库管理方式是原理图符号Symbol和PCB封装Footprint分开的方式,它们之间的映射关系为多对多
- KiCad自带丰富的元器件库 - 原理图符号、封装以及3D模型,常用的器件基本上都能够找到
- 在KiCad中找不到的元器件可以从现有的经过验证的开源项目中提取
- 可以从Ultralibrarian、SnapEDA、SamasSys等网站上直接下载
- 建议项目中用到的所有元器件都来自自己的库,即便KiCad的标准库中有该器件,也应该先复制在自己的库中,在做设计的时候可以从自己的库中调用。
Pimoroni公司设计的PICO扩展板的PCB板,用KiCad画的,提供源文件,PICO、SD卡等元器件的库就可以从该源文件中提取为自己再用
通过提到的方式就可以获得本项目中所有的元器件的原理图符号
将项目中用到的器件的封装都准备完毕(实际的线路中有的器件是多个,现在仅以一个为例)
将项目中用到的器件的3D模型也都配置齐全(实际的线路中有的器件是多个,现在仅以一个为例)
第3次直播 - 原理图的绘制 更新发布于 2021年02月16日
今天下午2点开始第三次直播 - PICO扩展板原理图的绘制
具体的操作就不再讲了,作为工程师,稍稍操作一下就能够无师自通,当然也可以看今天引用的B站“稀饭放姜”的视频教程。
今天主要强调的是我个人总结出来的一些体会,如何能够相对高效(我个人认为的)地、准确地、规范地绘制一个原理图,主要强调的要点如下:
- 在昨天的课程基础上完成本项目中主要元器件的原理图符号、PCB封装的准备工作,对照数据手册、你手头能够查到的参考设计,确保它们都是正确的;
- 打开原理图编辑器Eeschema,设置好“图纸”的环境 - 纸张大小、主要的信息,尤其是日期、版本号等;
- 将要用到的“大件”一件件摆放出来,按照它们之间的逻辑关系、信号流程大致摆放到合适的位置;
- 将这些“大件”进行批注(annote),也就是给它们每个器件有一个编号,并映射它们好的封装(假设所有器件的PCB封装库都已完善好,如果缺少哪个,就把哪个弄好);
- 打开PCBNew,在PCBNew里面根据原理图的信息把所有的器件都加载进来,这时候你会发现有一个大的显示屏,或双屏显示会非常有帮助 - 桌面上同时能够摆放原理图和PCB两个窗口,所以我建议画PCB的工程师至少要有一个27寸以上,最好是4K分辨率的显示器;
- 当今的MCU/FPGA很多管脚都是灵活配置使用的,在确保其核心功能(比如有的管脚只能用于某种功能,有的管脚在用作某一功能的时候,会影响其它管脚的使用)的基础上,可以根据布线的要求进行灵活配置,某种意义上,走线方便的连接最终的PCB的性能也会更容易保障。原理图的设计过程影响到后面的PCB布局布线,那前期的原理图设计工作自然也要听听后面PCB布局布线的功能怎么讲,这是一个互动的过程。想象一下你从苏州到上海,有多种线路、多个出、入口都可以走,你要根据实际情况选择相对更合适的连接关系;
- 无论怎样连接,要保证正确的电路设计和电气特性,这是前提,因此阅读数据手册、参照现有的参考设计是在原理图绘制的过程中必不可少的环节,第3个桌面窗口就是给数据手册/参考设计留的,这时候你会发现4K的显示器会多么的有帮助;
- 摆放完“大件”的位置,再把小件根据电路的要求摆放到位,比如电阻、电容,尤其是去耦的电容,将这些所有的元器件相互连接起来
- 如果摆放合理,所有的信号线都能够用“连线”直接连接,而避免仅使用net name“遥控”的方式,因为这种“遥控”的方式有非常大的潜在风险,有的问题你自己也看不出来,其他人阅读你的原理图(多数情况是PDF格式)可能会崩溃,自然解读起来就会有出入,就象高考的作文,阅卷的老师看着你乱七八糟的字体,心烦。。。无心细读一样;
- 当然对于有的信号线,即便用连线直接连接好了,也最好再连线上明确标记上net name,这是为了加强阅读性,尤其是你在PCB布线的时候,对于一些关键的信号线有个明确的辨识是非常有必要的;
- 为方便后期的调试,对于第一次设计的板子,最好在一些关键信号上加上“测试点”,调试过板子的工程师都知道这玩意有多重要
- 连线结束,别忘了进行电器规则检查 - 俗称的ERC检查,让机器帮你扫查一遍,很多时候机器比你更靠谱,要将机器列出的任何一个告警“warning”都消灭掉,不留任何侥幸的后患;
- 对于关键器件的关键信息,比如某个电容的耐压值、某个电阻的功率、某个匹配电阻摆放的位置等,最好在原理图上清晰地标注出来,以便参考你设计的其他人或健忘的你自己日后参考;
- 整个过程都是在和PCBNew的交互中完成的,因此你的器件标注、封装分配自然也都做完了;
- 最后一个环节 - 产生bom,虽然你知道自己的设计中用了哪些器件,生成一个xls文件格式的bom,这时候就应该开始备料了。
参考资料:
- Digilent/NI的PMOD模块电路图
- Digilent的PMOD模块设计资料汇总
- Pimoroni的VGA参考设计原理图:
完成原理图绘制,并初步的元器件布局 更新发布于 2021年02月17日
注意:本页面中的原理图和PCB版图和最终的不一致,这只是中间的一个版本。请参考基本信息中的最终PDF的版本。
由于客观原因,定于今天的直播 - PCB布局推迟一天,明天再讲。
今天完成了原理图的设计以及简单的布局工作,做了一些简单的修订:
- LCD模块的原理图做了调整,显示更加只管
- 增加了一个环境光传感器BH1750,共用I2C总线连接
- 增加了麦克风的音频输入电路,采用1片双运放LMV358
- 增加了蜂鸣器的驱动输出,采用一片单运放的LMV321,性能同LMV358
- SD卡采用了4-bits的连接
原理图
元器件布局
PCB元器件布局后的3D效果
第4次直播 - PCB的布局操作 更新发布于 2021年02月18日
讲述了PCB的布局基本要领:
在完成原理图设计以后映射好封装
第5次直播 - PCB的布线及Gerber文件的生成提交 更新发布于 2021年02月19日
今天的直播课程讲述PCB的布线规则,并通过PICO扩展板的布线操作实际演示一下流程中关键的一些要点:
PCB布线要处理的主要问题:
- 遵守规则 - 性价比带来的限制
- 供电 - 宽度/长度/位置
- 降低互扰 - 垂直、短走线
操作步骤:
- 了解制造厂商的制造规范 - 线宽、线间距过孔的要求、层数要求
- 嘉立创 - www.sz-jlc.com
- 捷配 - www.jiepei.com
- 设定层数并定义各层的功能
- 设计布线规则
- 定义不同net的走线宽度
- 铺地/电源
- 关键信号的走线 - 电源(去耦)、时钟、差分信号、敏感的模拟信号
- 其它信号的走线
- DRC检查
- 调整丝印
- 生成Gerber
最终完成的设计3D效果图
PCB板上补充了新的功能,准备Pi Day的活动 更新发布于 2021年03月01日
基于当前行业里工程师们的测试,在第一个版本的基础上做了一些调整,将PICO能够支持的功能尽可能都用上,并计划于3月14日的Pi Day上做一个线上/线下结合的活动。
新版本的原理图如下:
how2electronics.com上的一些与PICO相关的案例 更新发布于 2021年03月13日
- Raspberry Pi Pico Getting Started Tutorial with MicroPython
- Interfacing SSD1306 OLED Display with Raspberry Pi Pico
- How to use I2C Pins in Raspberry Pi Pico | I2C Scanner Code
- How to use ADC in Raspberry Pi Pico | ADC Example Code
- Read Temperature Sensor Value from Raspberry Pi Pico
- How to use I2C Pins in Raspberry Pi Pico | I2C Scanner Code
- Interfacing DHT11 Temperature Humidity Sensor with Raspberry Pi Pico
3月14日Pi Day在西交利物浦大学国际信息港举办活动以及活动过程中发现的硬件中需要改进的地方 更新发布于 2021年03月14日
今天Pi Day活动,几个重要的进展及发现:
- 目前网上的MicroPython库还不太完善,能够找到的MMA7660A的传感器库有问题,能够扫描到I2C的器件,但无法读取到传感器的信息,经过漂移菌的努力,重新写了MMA7660A的程序,能够成功读取传感器的数据;
- PWM产生波形 - MicroPython存在U16的局限(需要更进一步地尝试如何正确配置和调用),无法实现设定频率范围的模拟波形的输出,C编程可以支持对PWM参数的灵活配置,能够产生1KHz的三角波。但发现PWM输出级的运放会导致输出电压饱和,因此在新的版本中需要将该AMP去掉,直接通过RC滤波器来输出信号;
- PWM产生驱动蜂鸣器的电压经过10:1的衰减后导致蜂鸣器的音量较低,如果采用蜂鸣器,需要将蜂鸣器前面的衰减电路去掉,如果使用扬声器,可以保留前面的衰减电路;
- 3PIN跳线的方向与原理图中的放置方式正好相反,会导致对原理图规范不太熟悉的用户误判,在后面的版本中需要做一下调整,并做丝印标注;
- 可以考虑将PCB适当放大一些,以对重要的元器件做丝印标注,增加可读性,目前的空间为95x58mm, 可以考虑放大到95 x 70mm
- 光电旋转编码器换成表面贴装的封装以降低总体的高度
- RUN的按键放置位置调整一下,不被跳线阻挡
- 由于板上的Flash已经有2MB,可以去掉SD卡槽
- 电位计的位置做一下调整,以方便使用
“暑期一起练”直播安排 更新发布于 2021年07月25日
下面是3次直播的时间安排及内容:
日期 |
内容 |
主讲人 | 直播前准备 |
2021年8月2日7 - 8:30PM | 邹俊健 | 熟悉树莓派PICO的技术资料,配置与树莓派PICO相关的编程环境 | |
2021年8月4日7- 8:30PM | 苏公雨 | 观看前期与该平台相关的案例以及视频教程 | |
时间待定 |
直播答疑 | 周德舜 |
补充了三节Digikey教学视频 更新发布于 2021年08月12日
补充了三节Digikey教学视频,由Shawn Hymel制作,关于树莓派PICO以及如何使用MicroPython点灯、通过I2C连接传感器以及编程IO。参见“视频教程”中的链接。
KiCad介绍、下载、环境配置、简单示例, 项目介绍
KiCad介绍、软件的下载资源、设计环境的配置、简单示例操作,树莓派PICO扩展板项目的介绍
原理图符号、封装库的构建
介绍KiCad工具的原理图符号和封装库的关系、下载资源以及构建方式
树莓派PICO扩展板的原理图设计
基于PDF的原理图文件,带领大家一步一步完成树莓派PICO扩展板的原理图设计,并讲解原理图设计过程中的要点。
PCB设计的布局原则及树莓派PICO扩展板的实际操作
介绍PCB设计中元器件布局的基本原则,并以树莓派PICO扩展板为例进行实际操作,完成版上所有元器件的布局。
PCB设计中的布线、检查、Gerber生成、打板
PCB设计中的DRC设置、布线规则、Gerber的构成以及打板需要注意的事项
Digikey教学视频 - 树莓派PICO的介绍及如何用MicroPython点灯
树莓派Pico是树莓派的第一个微控制器板,基于他们定制的RP2040芯片。它使用双核Arm Cortex-M0+,能够运行多种语言。在本系列中,我们将研究MicroPython,它是Raspberry Pi官方支持的语言之一。
Digikey教学视频 - 树莓派PICO如何用MicroPython控制I2C传感器
在本教程中,我们将使用I2C模块读取博世BME280温度、压力和湿度传感器。
Digikey教学视频 - 树莓派PICO用MicroPython编程PIO
PIO代表“可编程输入/输出”,它是添加到Raspberry Pi RP2040微控制器的一个独特的外围设备。它就像一组微小的、有限的处理器,允许我们构建复杂的通信协议,如CAN、USB、以太网等,通过独立于主CPU进行比特操作。
2021暑假练树莓派PICO直播1:树莓派PICO使用及基于MicroPython简单案例
树莓派PICO的使用及基于MicroPython的简单案例
2021暑假练树莓派PICO直播2:平台电路的设计、项目需求以及相关参考资源
平台电路的设计、项目需求以及相关参考资源
2021暑假一起练-用树莓派PICO设计电子相册
利用树莓派PICO扩展板实现了电子相册和音乐播放功能,过程中发现了PICO以及micropython的一些特性。
987518529
Raspberry Pi Pico C/C++语言开发环境搭建
使用 Pico 开发,既可以使用 Python,也可以使用 C/C++,它们都需要安装相应的 SDK 和相关的支持软件。下面就来分享一下 Windows操作系统下的 C/C++开发环境的搭建。
想成为大佬的咸鱼
2021暑假一起练-基于树莓派PICO带有背景音乐的数码相框
基于树莓派PICO和电子森林的扩展板,实现了一个带有背景音乐的数码相框。主要完成蜂鸣器播放音乐、姿态传感器数据读取、TF卡文件读取、LCD显示屏现实图片和温度的读取与显示等。
student
可旋钮控制的简易初级示波器(使用MicroPython)
经过略加学习进行的pico的尝试,制作的简易示波器,其中对于旋钮的控制方法大概是此次一起学习的人当中第一个实现的,可一起参考学习
老滑稽
2021暑假一起练:树莓派PICO扩展功能板上的贪吃蛇小游戏
基于2021暑假练平台2:树莓派PICO的扩展功能板(含pico模块),选用MicroPython为编程语言,实现了对经典贪吃蛇小游戏的复刻。
Puff-shroom
Pico的征途——水平仪
本篇重点在于利用pico及拓展板,借助重力传感器和LCD屏幕,把实时的姿态的变化显示在屏幕上,从而达成水平仪的效果。
ICISTRUE
暑期一起练之使用树莓派PICO的扩展功能板实现采集音频参数
暑期一起练 树莓派PICO 扩展板 音频采集 FFT 波形 麦克风
aramy
树莓派pico及拓展板的功能体验
本次项目是在树莓派pico及拓展版的硬件支持下进行的功能实现和体验,支持的功能如下:LCD屏幕显示、光电编码器、SD卡读写器、麦克风、电位计、蜂鸣器、姿态传感器、光传感器。
1234567888888
通过显示屏实现呼吸灯的对外表现
本项目是通过苏老师提供的Pico的扩展板实现Pico的对外展示。通过了解本案例,你可以学到呼吸灯的基本使用方法,并学会使用显示屏的基本操作。
TiankuoJiao
基于树莓派PICO的带有背景音乐的数码相框
本项目是基于电子森林平台提供的树莓派PICO扩展板,完成了带有背景音乐的数码相框的设计。主要内容包括sd卡的读取、mma7660姿态传感器的使用、st7789显示、利用蜂鸣器播放音乐、按键中断等。
Haoami
Seeed Studio为树莓派PICO提供的外设及案例
Seeed Studio为PICO提供的一些外设 - 按键、编码器、传感器,提供了PICO的使用教程以及针对这些外设的案例。
用树莓派pico制作温度显示器
由于Pico有三个模数转换器,还有一个内部用于板载温度传感器的转换器,外设部分又有显示屏,所以想到用显示屏显示芯片的温度。
姜宇航
树莓派PICO和其扩展板(硬禾学堂研制)体验与研究
进行了如下探究,但尚未完善: 使用micropython编程,进行了几个外设的控制。使用板载PWM输出来连接ADC引脚输入检测信号,在显示屏上读出;使用姿态传感器控制显示内容的位置。
sslzykk
Shark:基于树莓派PICO移植游戏-贪吃蛇
使用MicroPython进行移植贪吃蛇游戏,游戏控制为MMA7660三轴姿态传感器,光电旋转编码器旋转控制贪吃蛇前进速度
shark_xin
第一次接触树莓派-Pico
2021年1月底的时候,树莓派基金会发布了首款微控制器级产品:树莓派PICO。它功能强劲,价格便宜,受到了广大网友们的欢迎。为了更好的玩转Pico实现诸多创意充分实现它的性能配套扩展板是不可或缺的。
想成为大佬的咸鱼
2021暑假一起练-使用pico扩展板编写小游戏
使用raspberry pi pico扩展板+micropython编写贪吃蛇小游戏
james
Pico Pi MicroPytho开发集成环境搭建
使用树莓派基金会官方推荐的编译器Thonny,对pico快速进行开发。
想成为大佬的咸鱼
2021暑假一起练-用树莓派pico设计一款游戏
用树莓派pico设计一款游戏,移植一款经典的游戏,通过LCD屏显示,通过按键和旋转编码器控制
安先生
Pico的FPGA拓展板——Dino小游戏的制作
Micropython环境下通过pico利用LCD屏实现Dino小游戏
桃饱会员
2021暑假一起练-用树莓派pico做了一个带有背景音乐的数码相框
基于树莓派pico及其扩展板制作一个数码相框,能够播放背景音乐,有不同的切图模式以及能够跟随板子的旋转来调整照片显示方向。
Irving
漂移菌为Pi Day写的PICO驱动ST7789 SPI屏的教程
树莓派技术大神漂移菌为3月14日的Pi Day活动撰写的教程 - 如何使用240 * 240 的TFT LCD屏。
2021暑期一起练 用 树莓派PICO 完成项目一 音频测量
该作品是“暑期一起练”树莓派PICO活动的项目一的参赛作品。 用树莓派PICO去采集麦克风的音频信号,并进行波形,频谱显示。同时可以进行波形的上下左右移动,以及缩放。
唐承乾
2021暑假一起练-用树莓派 pico 移植经典游戏--贪吃蛇
2021暑假一起练-用树莓派 pico 移植经典游戏--贪吃蛇
shayebuhui
2021暑假一起练-用树莓派pico设计一款贪吃蛇
通过MicroPython及Machine库、random库,及之前已分享的st7789、buzzer_music库在树莓派上运行贪吃蛇游戏并利用蜂鸣器播放游戏音乐。
Boo
STEP PICO多功能扩展开发板(带STEP PICO模块)
240*240 彩色LCD、光电旋转编码器、SD卡、姿态传感器、MicPhone音频放大、蜂鸣器输出、DDS/PWM信号生成、ADC数据采集
团队介绍
-
苏州硬禾信息科技有限公司 - 专注于基于FPGA和嵌入式系统学习平台的开发和生态系统的建设,在过去5年里成功推出的小脚丫FPGA学习平台被全国上百所高校采用于数字电路教学实践中,并一直积极推动开源、免费PCB设计工具KiCad在高校学生及硬件工程师中的应用。
团队成员
-
苏公雨
与非网/硬禾学堂创始人,电子创客爱好者,15年硬件研发、设计背景。
-
王安然
资深硬件设计工程师、硬禾学堂FPGA/PCB讲师