千呼万唤始出来——uFUN开发板2.0开箱评测
前言
今年3月,我参与了面包板社区组织的第一批uFUN开发板评测活动,并有幸能获得试用机会,那是我第一次了解到uFUN这个项目及背后的故事,4月份,uFUN 2.0版本来了,收到了张工送的一块样板,后来又收到一块量产板,非常感谢。其实开发板很早就收到了,也玩了一段时间,早就计划着写一篇开箱评测,正好最近面包板正在开展新版uFUN的评测活动,我也来参与一下,写写停停,终于写完了,以下内容仅仅是我个人的观点,有错误的地方欢迎各位朋友指正、互相交流学习!
uFun是什么
uFun是由@张进东 张工组织发起的一个开源的学习板,设计初衷是为了帮助学生更好的理解电子知识和开发技巧,同时又能对学生毕业找工作有很明显的帮助。张工于2014年10月提出这个想法,并发到了博客上,不久就得到了全国各地几十位小伙伴的支持和响应,大家天南海北,筹钱献力,多位在职工程师,利用业余时间共同设计了这块学习板,经过几次的设计验证,还有一些厂商的支持,400套学习板诞生了。
uFUN不是一本死板的“教科书”,虽然只有4*6cm大小,但却包含SD卡槽、三轴加速度计、触摸按键、蜂鸣器、RGB LED、串口芯片、低通滤波电路、双T陷波滤波器等,方便携带,开发简单,只需要一根普通的安卓MicroUSB数据线即可完成你的设计。
板载资源简介
和1.0版本一样,2.0版本同样采用四层板设计,沉金工艺,蓝色油墨,由于取消了Mini-PCIE座,所以整体厚度小了不少,大小还是保持4*6cm不变。
大点的芯片座子主要放在了正面,阻容主要分布在了背面,各元器件的封装也都是选了小封装,如大部分0402封装的阻容,贴片的超级电容等。别看板子只有小小的4*6cm,但是板子资源还是相当丰富的,下面我们一起来看一下吧!
- 主控MCU:主控MCU还是采用的STM32F103RCT6,LQFP64封装,STM32系列大容量产品,256KB Flash + 48kB SRAM,内存空间足够使用了,主频72MHz,外设丰富,51个可用IO,8个16位定时器,3路SPI,2路串口,1路SDIO等等。对于新手入门32位ARM单片机是一个很好的选择,学习资料非常多,学习过程中遇到的问题基本都能在网上找到答案。
- 串口芯片:CH340,板子自带了USB-TTL转换芯片,对于没有调试器的朋友,可以方便的通过串口1来下载程序,同时,也是程序调试的好帮手。
- 传感器:LIS3DH,ST公司的MEMS传感器,三轴加速度计,支持IIC或者SPI协议,本板子采用的是IIC协议接口。
- 触摸按键:TTP224N,4通道触摸芯片,上下左右4个触摸按键直接画在了板子上,可以做出很多好玩的东西,和上位机通信,可以作为游戏手柄,来玩贪吃蛇、俄罗斯方块、2048、FlappyBird等小游戏,也可以结合显示屏直接使用触摸按键来控制。
- TF卡座:采用的是自弹式TF卡槽,内部直接连接了STM32的SDIO接口,可以直接通过官方固件库来驱动。
- RGB灯:通过控制3路PWM波,从而调出各种颜色,RGB驱动电路由原来的低电平点亮改为了高电平点亮。实际使用发现Green和Blue LED的控制引脚反了
- 光敏电阻:取消了反贴的LED,而改为了贴片光敏电阻,配合AD采集,可以作为心率传感器来使用。
- 蜂鸣器:相比于第一版的蜂鸣器,采用了更小了封装,有着更小的体积。
- RTC电池:使用的是贴片超级电容,相比于贴片电池座+纽扣电池的方式,体积要小的多。
- Micro-USB接口:USB使用了和普通安卓手机一样的USB接口,而不是Mini-USB,之前看有朋友在试用过程中,不小心把座子直接从板子上拔掉了,所以大家在拔USB线的时候,温柔一点,如果焊盘被拔掉了,那就真玩不了。
- 外部IO:通过2.0mm间距40P排针,引出未使用的GPIO,并不是常见的2.54mm间距的,所以如果想连接一些外部模块,还需要2mm转2.54mm的排线才行。
新版本更新的地方
1.0版本的评测文章可以参考之前发的一篇文章:小巧而不失精致,简单而不失内涵——uFun开发板开箱爆照
相比于第一版,uFUN的改动不算太大,不过优化了很多细节:
- 扩展接口的修改。和上一版相比,最大的一个修改就是修改扩展接口Mini-PCIe为2.0mm间距双排排针插座,受板子面积影响,并不是标准2.54mm间距的,当然如果手里没2.0mm间距的排线可能不是很方便,我也是当时又从淘宝买了一些。当然也可以方便的和扩展板进行连接,uFUN配套的扩展板已经设计完成了。
- 拨码开关和电源开关。针对第一版中发现拨码开关接触不良,去掉拨码开关选择BOOT的功能,而改为排针跳线方式,去掉了电源开关。
- 晶振飞线问题。CH340和STM32的时钟信号12M晶振,由原来的无源晶体改为有源晶体,更正了1.0版本的时钟飞线问题。
- 光敏电阻。去掉了原来触摸按键中间背面的反贴红色光LED灯,替换为贴片的光敏电阻,配合AD电压采集,可以用于实现心率传感器的功能。
- 触摸按键对地静态电容的调整。由原来的50pF改为了22pF,提高了一定的灵敏度。
蜂鸣器封装改为更小的。由原来的HY-8540无源蜂鸣器改为MLT-5020 5*5*2mm超小超薄封装的无源蜂鸣器。
B10和B11网络标号反了的问题。旧版本原理图中PB10和PB11的网络标号反了,导致UART3_TX和UART3_RX也反了,所以当时我画的扩展板也不得不进行割线+飞线补救,不过好在影响不大。
- 布局优化。新规划了布局并进行了许多细节优化,让UFUN更漂亮、更好用,背面4个大件整齐竖着排列。
第一批的5块样板中,使用的是2.0mm间距的双排排针,而量产时采用的是2.0mm的牛角插座,相比于裸露的排针,母座多了外面的胶壳保护,在使用过程中可以避免排针划伤皮肤,这一点细节考虑的还是很周到的。
官网上线啦
uFUN项目不仅在硬件上进行了更新,而且最近上线了官方网站,地址:www.myufun.com,支持手机和PC访问,方便开发者交流,目前只有主页的资料下载是有效的,其他功能还有待完善。
RT-Thread板级支持包
网友lhxzui已经为uFUN开发板制作了支持RT-Thread的BSP包,大家在下载RT-Thread官方仓库之后可以在rt-thread\bsp\stm32\stm32f103-yf-ufun
目录下找到,目前RT-Thread官方还没有把这个两个BSP包合并到master分支,所以现在clone下来的RT-Thread仓库还只有stm32f103-yf-ufun
这一个BSP包,大家可以到的个人Github进行下载:
- RT-Thread仓库:
https://github.com/RT-Thread/rt-thread
- uFUN开发板1.0板级支持包:
https://github.com/lhxzui/rt-thread/tree/lhxzui_rtt/bsp/stm32/stm32f103-yf-ufunvera
- uFUN开发板2.0板级支持包:
https://github.com/lhxzui/rt-thread/tree/lhxzui_rtt/bsp/stm32/stm32f103-yf-ufunverb
BSP包括MDK4、MDK5、IAR工程,并且支持GCC开发环境,目前对外设的支持还只有串口1,RGB-B LED,部分GPIO的支持,板载传感器等支持还有待完善。
配套的扩展板
据官方透露,目前已经设计完成两种扩展板:
- Arduino转接板:配合uFUN,通过下载STM32duino-bootloader固件,可以把uFUN作为Arduino来使用。
- 简易标量网络分析扩展板:基于DDS芯片 AD9850,和对数放大器芯片AD8307,可以用来做信号发生器 和 简易标量网络分析。
以上两块扩展板都会在10月底前完成。
Arduino扩展板图片:
一些好玩的项目
基于1.0版本的小项目:
- uFUN作为游戏手柄来玩贪吃蛇游戏:用uFun开发板做游戏手柄
- uFUN移植FreeRTOS:移植FreeRTOS到uFun
- uFUN和扩展板的联网时钟:基于uFUN开发板和扩展板的联网校准时钟
- uFUN实现RGB调色器:基于uFUN开发板的RGB调色器实现
- uFUN实现心率采集:基于uFUN开发板的心率计
基于2.0版本的小项目:
- uFUN作为Arduino来使用:千呼万唤始出来--ufun学习板秒变arduino板教程出炉
- uFUN加载卷积神经网络模型:ufun 上加载一个 Keras 训练导出的卷积神经网络模型,模型小巧,但是用来跑经典的手写体识别也有 90+% 的精度。实在是膜拜
总结
总的来看,这次uFUN的更新,修正了一些瑕疵,设计了配套的扩展板,上线了官方网站,可以说,uFUN又走了一大步,希望大家能多多支持。
资料下载
历史精选文章:
- 基于uFUN开发板和扩展板的联网校准时钟
- 基于uFUN开发板的RGB调色板
- 基于uFUN开发板的心率计(一)DMA方式获取传感器数据
- 基于uFUN开发板的心率计(二)动态阈值算法获取心率值
- 基于uFUN开发板的心率计(三)Qt上位机的实现
- 【UFUN开发板评测】小巧而不失精致,简单而不失内涵——uFun开发板开箱爆照
- 如何使用串口来给STM32下载程序
- STM32串口打印输出乱码的解决办法
- 欢迎大家关注我的个人博客:
www.wangchaochao.top
- 或微信扫码关注我的公众号
千呼万唤始出来——uFUN开发板2.0开箱评测的更多相关文章
- 【UFUN开发板评测】小巧而不失精致,简单而不失内涵——uFun开发板开箱爆照
关于uFun学习板--"满满的爱和正能量" uFun是由@张进东 张工组织发起的一个开源的学习板,设计初衷是为了帮助学生更好的理解电子知识和开发技巧,同时又能对学生毕业找工作有很明 ...
- 基于uFUN开发板和扩展板的联网校准时钟
项目概述 上周在uFUN试用群里看到管理员说试用活动快结束了,要抓紧完成评测总结,看大家的评测总结也都写了,我也不能落后啊!正好最近做的扩展板到手了,于是赶紧进行调试,做了一个不用校准的时钟,时钟这种 ...
- 基于uFUN开发板的RGB调色板
前言 使用uFUN开发板配合Qt上位机,实现任意颜色的混合,Qt上位机下发RGB数值,范围0-255,uFUN开发板进行解析,然后输出不同占空比的PWM,从而实现通过RGB三原色调制出任意颜色. Qt ...
- 基于uFUN开发板的心率计(三)Qt上位机的实现
前言 上两周利用周末的时间,分别写了基于uFUN开发板的心率计(一)DMA方式获取传感器数据和基于uFUN开发板的心率计(二)动态阈值算法获取心率值,介绍了AD采集传感器数据和数据的滤波处理获取心率值 ...
- 基于uFUN开发板的心率计(二)动态阈值算法获取心率值
前言 上一篇文章:基于uFUN开发板的心率计(一)DMA方式获取传感器数据,介绍了如何获取PulseSensor心率传感器的电压值,并对硬件电路进行了计算分析.心率计,重要的是要获取到心率值,本篇文章 ...
- 基于uFUN开发板的心率计(一)DMA方式获取传感器数据
前言 从3月8号收到板子,到今天算起来,uFUN到手也有两周的时间了,最近利用下班后的时间,做了个心率计,从单片机程序到上位机开发,到现在为止完成的差不多了,实现很简单,uFUN开发板外加一个Puls ...
- AC6102开发板USB3.0测试和使用说明
AC6102开发板USB3.0测试和使用说明 概述 AC6102上集成了一颗Cypress 推出的高性能USB3.0传输芯片CYUSB3014,Cypress称之为EZ-USBFX3.该芯片性能强劲, ...
- 基于麒麟座开发板2.0的MQTT实现例程
链接--->https://sanwen8.cn/p/649shZ1.html OneNET现已全面适配标准MQTT协议,相信这一功能的增加会**便于开发者进行设备的接入. OneNET提供了M ...
- 【ST开发板评测】Nucleo-F411RE开箱报告
前言 面包板又举办开发板试用活动了,很荣幸能获得一块ST官方的Nucleo-F411RE开发板,感谢面包板社区和ST意法半导体的赞助,这是我第一次试用官方的开发板,收到板子后查了一些关于ST官方开发板 ...
随机推荐
- 2019-10-9:渗透测试,基础学习the-backdoor-factory-master(后门工厂)初接触
该文章仅供学习,利用方法来自网络文章,仅供参考 the-backdoor-factory-master(后门工制造厂)原理:可执行二进制文件中有大量的00,这些00是不包含数据的,将这些数据替换成pa ...
- Tensorflow的基本使用
基本使用 使用 TensorFlow, 你必须明白 TensorFlow: • 使用图 (graph) 来表示计算任务. • 在被称之为 会话(Session)的上下文 (context) 中执行图. ...
- Spring Boot整合Elasticsearch启动报错
如果你遇见下面的错误,很可能是你的springboot和es版本关系不对应 ERROR 14600 --- [ main] .d.e.r.s.AbstractElasticsearchReposito ...
- python面试题(实时更新)
1.以下代码输出为: list1 = {':2} list2 = list1 list1['] = 5 sum = list1['] print(sum) 解析:10 b = a: 赋值引用,a 和 ...
- python check excel 文件
Use pip install openpyxl first Every simple example import openpyxl # 打开excel文件,获取工作簿对象 wb = openpyx ...
- 【JZOJ2019.10.07】模拟赛C组
\(T1\) 题目描述&大意 贝西牛在每个点左右撞来撞去,不能出去 的情况下能活动(达到)的空间总共有多少? 思路 部分过程为: 反正就是能撞的撞 代码:
- 不止面试-JVM垃圾回收面试题详解
第一部分:面试题 本次分享我们将尝试回答以下问题: GC 是什么? 为什么要有 GC? 简单说一下java的垃圾回收机制. JVM的常见垃圾回收算法有哪些? 为什么要使用分代回收机制? 如何判断一个对 ...
- luogu P2417 课程
题目描述 n个学生去p个课堂,每一个学生都有自己的课堂,并且每个学生只能去一个课堂,题目要求能够安排每一个课堂都有人吗? 输入格式 第一行是测试数据的个数, 每组测试数据的开始分别是p和n, 接着p行 ...
- git log详细使用参数
1. 可以看到fileName相关的commit记录 git log filename 2. 可以显示每次提交的diff git log -p filename 3. 只看某次提交中的某个文件变化,可 ...
- [TimLinux] JavaScript 获取元素节点的5种方法
1. getElementById document.getElementById("id_value") # 返回值为Node对象,没有元素时,返回 == undefined值( ...