基本信息
规则
项目进度
视频课程
内容介绍
软件 & 硬件
元器件
树莓派基金会推出的双核Arm Cortex M0+微控制器,133MHz时钟速率,264KB SRAM,支持C/C++、MicroPython编程
双路低电压轨到轨输出运算放大器
低成本CMOS、高速、轨到轨放大器, 2.7 V至5.5 V, −3 dB带宽:240 MHz (G = +1),压摆率:170 V/μs
重力感应传感器 - 3-Axis Orientation/Motion Detection Sensor
250MHz,精密,轨到轨I/O, CMOS运算放大器
WS2812B是一款智能控制LED光源,它将控制电路和RGB芯片集成到5050组件包中。它包括智能数字端口数据锁存器和用于放大驱动器的信号整形电路。它还包括一个内部精密振荡器和一个恒流5电压控制端口,以确保一致的像素点光颜色高度。这些可以添加到全彩面板、条状全彩软灯、led装饰照明和不规则视频室内外led屏幕。
OLED控制器 - 支持128*32、128*64 OLED显示屏
一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。
软件
MicroPython是一款编程语言兼容Python3的软件,用C写成的,能够运行在微控制器的硬件上并进行了相应的优化。
工具
针对初学者的Python IDE工具
平台
树莓派官方发布的基于自行设计芯片的邮票孔模块,双核Arm Cortex M0+,片内260KB RAM,板上有2MB Flash,售价仅4美元
电路图
物料清单
附件
-
PICO_Training_final.pdf
Pico训练板的原理图 - PDF格式
-
stepico1.0.pdf
STEP Pico原理图
本页包含平台所需完成的任务,活动时间,活动规则和电子森林项目提交使用说明。
购买本平台板卡所需完成的项目如下(任选其一完成即可,项目均为单人项目,不支持团队合作完成,完成项目必须用上所购板卡):
项目1 - 制作一个反应测试器
具体要求:随机点亮板上的一个LED,按下板上的一个按键,在显示屏上显示出从灯亮到按键之间的时间,这是心理学上的一个重要实验
实现方式:通过软件产生随机数,程序启动以后在随机数控制的时间下点亮板上的LED,被测试者按下按键以后,处理器计算从点亮灯到接收到按键之间的时间差,并将时间差通过USB显示在PC上,也可以将OLED用起来,在OLED上显示时间信息。
项目2 - 制作一个交通灯控制器
具体要求:仿真马路上的交通灯的工作状态切换,利用板上的红、黄、绿三种颜色的LED显示道路状态的切换,行人按键时,具有优先功能
实现方式:利用板上的3个不同颜色的LED模拟交通灯,程序会轮流切换三个灯的状态,并根据按键的输入(中断或查询机制)调整交通灯的切换
项目3 - 制作一个音乐播放器
具体要求:利用板上的蜂鸣器,播放一首音乐
实现方式:利用PWM生成不同频率,持续时间不同的音调,驱动蜂鸣器播放音乐,程序中制作一个标准的音符库,播放音乐的时候通过查找表的方式把该音符对应的频率的信号播放出来
项目4 - 制作一个电压表
具体要求:利用板上的电位计调节电压从0-3.3V之间变化,在OLED显示屏上显示电压值,可以以数字的方式,也可以以图形的方式来显示
实现方式:调节电位计产生0-3.3V之间变化的电压,树莓派Pico内部的ADC对该电压进行采集,得到0-4095之间的数值,经过计算以后对应到相应的电压值,再通过OLED显示屏显示出来
项目5 - 制作一个水平仪
具体要求:利用板上的姿态传感器,在OLED屏上通过小球滚动的方式显示板子的倾斜度,板子水平的时候小球处于OLED显示器的中心位置
实现方式:通过I2C总线访问板上的姿态传感器MMA7660的信息(可以以查询或中断的方式),经过数据处理以后判断板子的运动状态,在OLED屏幕上绘制一个能够滚动的小球,根据得到的数据调整小球的位置
项目6 - 制作一个节日彩灯
具体要求:利用板上的12个彩色LED灯,实现不同的显示效果,可以用姿态传感器来控制,也可以用按键来控制
实现方式:板上有12个排列成圆圈的彩色LED灯WS2812B,通过编程可以实现各种炫酷的展示效果,再搭配上蜂鸣器,可以做出声光具备的作品
项目7 - 制作一个定时报警的时钟
具体要求:制作一个时钟,可以通过板上的12个彩色LED灯来指示时间,并通过蜂鸣器在整点以播放音乐的方式报时,板上的按键可以设置时间
实现方式:程序通过定时器计数的方式来生成时、分、秒信号,并根据这些信号来改变12个彩色LED灯的亮灭,产生PWM信号驱动蜂鸣器播放定时长度的音乐。
活动流程及时间安排
-
购买:活动参与者需先从硬禾学堂购买板卡(任选其一或多)参加活动,从活动上线日—2023/3/15前均可购买,购买即参加。
-
发货:于2023/1/3开始发货,受疫情影响,请填写一定能收到货的地址。
- 直播&答疑:待同学们收到板卡之后,硬禾官方将采用每个板卡2场直播的方式教大家上手,并有技术交流群一起讨论学习,直播前将在群内通知。
-
活动时间:从收到板卡日起,活动参与者需于2023/3/15 24:00前实现规定的项目,并按照规则将项目报告上传到电子森林,逾期提交者无效。
-
审核时间:硬禾学堂将于2023/4/10前审核完毕并邮件告知审核通过者。
-
返款时间:审核结束之后,将于2023/4/30前完成返款(原路退回)。
活动福利:
-
在硬禾学堂购买板卡且项目通过审核的同学,将退还购买板卡金额,板卡不回收,优秀的项目将给予一定的奖励,并在硬禾学堂微信公众号上展示
-
审核通过的项目均可获得活动证书和硬禾专属纪念章,拥有的纪念章越多,可兑换的奖品越丰厚
-
优秀的同学硬禾将给予带薪实习面试的机会(应届毕业生/研究生均可,需在硬禾持续工作6个月以上)
-
向知名企业内推实习机会(上海、苏州、深圳、北京)
以下内容包含2023年寒假在家一起练材料提交说明以及电子森林项目网站使用说明(请认真查阅)。
“2023年寒假在家一起练”材料提交及方式
一、完成项目之后在电子森林项目网站需提交以下材料
上传之前请先使用手机号注册电子森林账号:https://www.eetree.cn/,项目标题请命名为:用/基于xxx实现/完成/设计/制作xxx
1. 所参加活动板卡的3-5分钟短视频(要求横屏且1080p,放于“视频代码”处)
- 简短的自我介绍
- 硬件介绍
- 项目设计思路
- 项目实现功能(重要的代码介绍和实物功能展示)
注:视频太短(仅几十秒),视频无板卡演示效果,拍摄不清晰,镜头太晃均不合格。
2. 项目总结报告(放于项目的“描述”处)
- 项目描述(项目介绍、设计思路、框图和软件流程图(若是FPGA平台,请截取FPGA资源占用报告放在项目中)、简单的硬件介绍、实现的功能及图片展示、主要代码片段及说明、遇到的主要难题及解决方法、未来的计划或建议等,需达到除代码之外的约1500字左右)
项目案例参考:https://www.eetree.cn/project/detail/167,https://www.eetree.cn/project/detail/498
- 可编译下载的代码(放在项目的附件,用于验证)
注:项目的附件中没有上传源代码均被退回,抄袭的项目不予退款。
二、项目提交后需提交以下材料到training@eetree.cn 邮箱,以作项目关联和顺利返款
邮件请命名:2023寒假在家练+购买板卡的简称+真实姓名(例:2023寒假在家练+树莓派板卡+姓名)
1. 电子森林注册昵称(不是用户名)
2. 下单时所留姓名和电话
订单查看方式:请关注“硬禾学堂”公众号,移动端点击底部“硬禾学堂”,进入后点击“我的”,即可查看全部订单信息。
3. 订单号和付款截图
在全部订单信息中点击对应订单即可复制订单号(在“微信支付”中可截图付款凭证):

注:如不参与退款,也需邮件发送订单信息。
电子森林项目网站使用说明
2. 请注意每编辑完成一个页面一定要点击底部“保存”
3. “基本信息”页
- 标题请按照规则填写
- 封面图一定要更换成适合本人项目的图,不要用默认的
- 视频请先上传到B站/优酷/腾讯,然后在“视频代码”处粘贴iframe格式代码
- 类型选择“分享类”
- 标签请填写3-5个描述你所做项目的关键词,其中一个要包括“2023寒假在家练”标签
- 在“高校”处选择个人学校
- 在“团队介绍”和“团队成员”处添加个人姓名和学校/公司
注:寒/暑假练项目均为个人项目,团队合作完成者仅退一人款
- 在“描述”中编辑项目总结报告
- 图片的上传请点击右上角的“上传”
- 代码的插入请使用插入工具
- 注意格式整洁,正文字号建议用12pt,标题建议用14pt,并加粗显示,正文首行不要缩进两字符
- 描述下面的“规则”、“参与推广”、“支付协议”则无需填写’
4. “进度”页和“软硬件”
- 在“进度”页中可添加个人的每一个阶段项目进程

- 在“软硬件”页中可选择使用的软件和工具,若没有则无需填写
- 在附件处一定要添加可下载的代码文件,若是文件太大, 可上传到百度网盘上,并在“描述”中粘贴链接
- 编辑完成后一定要点击“保存”
5. 其他页
- “视频课程”、“应用案例”和“商品”页若没有则无需填写
6. 点击“预览”,并“发布”项目
- 本人先点击“预览”查看自己的项目,若没有问题之后再点击“发布”
- 发布之后若查出存在问题,可点击“取消审核”再次修改。若在项目通过之后发现存在问题,依旧可再次修改项目,直到项目完善

支持ICE40UP5K FPGA核心模块 更新发布于 2021年11月15日
硬禾学堂推出一款跟Pico兼容的FPGA核心模块,基于Lattice的FPGA ICE40UP5K。
该核心模块主要特性:
- 基于ICE50UP5K FPGA
- 板上有RGB三色灯
- 板上有2个高速比较器,用于Sigma Delta ADC,可以支持2路模拟信号的采集,采样率达到10KHz/8bits
- 25个数字IO,用于外设的连接
- 支持RISC-V软核
采用FPGA来驱动本学习板的好处:
- 对比FPGA数字逻辑实现和MCU指令实现之间的差异
- 对比RISC-V软核+数字逻辑和单纯MCU指令实现之间的差异
- 获得更高的实时性
可以实现的趣味项目 更新发布于 2021年12月09日
项目1 - 制作一个反应测试器
功能:随机点亮板上的一个LED,按下板上的一个按键,在显示屏上显示出从灯亮到按键之间的时间,这是心理学上的一个重要实验
实现方式:通过软件产生随机数,程序启动以后在随机数控制的时间下点亮板上的LED,被测试者按下按键以后,处理器计算从点亮灯到接收到按键之间的时间差,并将时间差通过USB显示在PC上,也可以将OLED用起来,在OLED上显示时间信息。
关键知识点:LED的显示、按键的输入响应、随机数的产生和应用、数值计算
项目2 - 制作一个交通灯控制器
功能:仿真马路上的交通灯的工作状态切换,利用板上的红、黄、绿三种颜色的LED显示道路状态的切换,行人按键时,具有优先功能
实现方式:利用板上的3个不同颜色的LED模拟交通灯,程序会轮流切换三个灯的状态,并根据按键的输入(中断或查询机制)调整交通灯的切换
建议:做该实验前让学生到户外观察交通灯的实际状态切换,描述下来,然后用程序来实现,学习过FPGA的同学可以对比用MCU和FPGA实现的方式的不同。
关键知识点:中断和查询的概念、状态的切换
项目3 - 制作一个音乐播放器
功能:利用板上的蜂鸣器,播放一首音乐
实现方式:利用PWM生成不同频率,持续时间不同的音调,驱动蜂鸣器播放音乐,程序中制作一个标准的音符库,播放音乐的时候通过查找表的方式把该音符对应的频率的信号播放出来
关键知识点:PWM的工作原理、查找表的构建、蜂鸣器的工作原理和使用方法
项目4 - 制作一个电压表
功能:利用板上的电位计调节电压从0-3.3V之间变化,在OLED显示屏上显示电压值,可以以数字的方式,也可以以图形的方式来显示
实现方式:调节电位计产生0-3.3V之间变化的电压,树莓派Pico内部的ADC对该电压进行采集,得到0-4095之间的数值,经过计算以后对应到相应的电压值,再通过OLED显示屏显示出来
关键知识点:ADC的使用、OLED的使用
项目5 - 制作一个水平仪
功能:利用板上的姿态传感器,在OLED屏上通过小球滚动的方式显示板子的倾斜度,板子水平的时候小球处于OLED显示器的中心位置
实现方式:通过I2C总线访问板上的姿态传感器MMA7660的信息(可以以查询或中断的方式),经过数据处理以后判断板子的运动状态,在OLED屏幕上绘制一个能够滚动的小球,根据得到的数据调整小球的位置
关键知识点:I2C总线的使用、SPI总线的使用、姿态传感器的使用、数据处理、图形化界面的设计和控制
项目6 - 制作一个节日彩灯
功能:利用板上的12个彩色LED灯,实现不同的显示效果,可以用姿态传感器来控制,也可以用按键来控制
实现方式:板上有12个排列成圆圈的彩色LED灯WS2812B,通过编程可以实现各种炫酷的展示效果,再搭配上蜂鸣器,可以做出声光具备的作品
关键知识点:WS2812B的使用和控制编程
项目7 - 制作一个定时报警的时钟
功能:制作一个时钟,可以通过板上的12个彩色LED灯来指示时间,并通过蜂鸣器在整点以播放音乐的方式报时,板上的按键可以设置时间
实现方式:程序通过定时器计数的方式来生成时、分、秒信号,并根据这些信号来改变12个彩色LED灯的亮灭,产生PWM信号驱动蜂鸣器播放定时长度的音乐。
关键知识点:这是一个比较综合的项目,可以将板上的多个器件使用起来,重要的技能时如何多线程多任务的情况下能够协调工作。
团队介绍
-
苏州硬禾信息科技有限公司