给自己做一块开发板 #AnyBoard
遇到的问题
在我的一份清单中,记录了几十个diy项目,过去的几年里,我陆续的完成了一些。一般都是利用现成的arduino开发板通过杜邦线来连接外围模块。或者是用ok线直接通过焊接的方式连接。
这样做的优势是制作速度快,但是缺点也显而易见,体积庞大,很难装入盒子中用于实用。而且很容易因为线头脱落而损坏。
当然也可以根据需求像做产品一样重新设计一块电路板,但是layout,备料,焊接都是一些很烦人的活。对于diy来说,这样投入的人力成本有点高。
我相信很多人也遇到过同样的问题。
关于问题的思考
隔离在家期间,我整理了diy清单中的内容。发现常用的元素无外乎就是电机,灯光,传感器,显示屏,按键。。。。。。而任何制作无非就是这些元素的排列组合而已。有意思的是有一些完全不相关的元素其实有着相同的接口,比如说舵机和ws2812以及土壤湿度传感器的接口都是 - + s ;大部分的传感器接口是i2c;有gsensor的地方一般都会用到电池。这就意味着其实元素的排列组合方式是有限的。我尝试着做了10中排列组合,竟然可以覆盖多达50种diy制作。那么我完全可以制作10块电路板来完成50多个制作。而且制作出来的东西紧凑小巧。虽然仍旧是diy产品,但是基本可以用于实际生活。这是一件很划算的事。
然后我试图去搜索是否有相关产品,发现了m5stack,以及adafruit的feather系列。可以说是非常好的两个产品。但是因为各种各样的原因,我发现他们并不能完成我的50的制作,我应该也没有办法让他们单独为我做一些修改。
所以我决定自己设计一款开发板来满足我的需求。
新方案的描述
想到要为自己设计一套全新的开发板还是有一些激动的,仔细想了一下,有以下问题需要考虑:
1,硬件选用什么平台
2,软件开发使用什么方式
3,电路板的结构应该如何设计
硬件平台
硬件我基本没有犹豫,直接选择了esp32,理由如下:
- 支持使用arduinoIDE开发:对比其他的编译器,arduinoIDE非常容易上手,开发起来也非常方便。更重要的是arduino的社区做的非常好,有大量的开源驱动库可以使用,这意味着不必关心底层硬件的实现,可以专注上层逻辑开发。同时有大量的玩家开源了他们的arduino项目,遇到喜欢的可以跟着一起玩。
- 支持蓝牙以及wifi,比单纯的mcu更有想象空间。现在大量的iot应用,都离不开这俩的支持。
- 价格便宜,模组价格约为17rmb。这个价格对于一个240Mhz主频,4Mflash+8Mram的系统来说已经非常诱人了。
- 性能好:最高可达240Mhz主频,支持外扩至最大16MB flash以及8MB SRAM。如此的配置甚至可以让它运行一些简单的图形引擎 。
- 更多的想象力,目前已经可以运行micropython,lua等脚本语言的虚拟机。所以还可以基于上述脚本语言开发。
软件开发方式
第一选择:arduino
- 丰富的库支持:基本上能想到的都有了。这样只需要关注上层逻辑就可以了。
- 比起基于idf用c开发,arduino要方便很多。而且ide对于软件小白也更友好。
- 运行效率高。
第二选择:脚本语言(micropython)
- 调试方便,这是脚本两个字的精髓
- 对于sd卡读写,显示图片这些上层功能会更简单
- 支持多线程,真香
当然脚本致命的问题在于在esp32这种性能的cpu上跑还是有点低效,做不了实时性要求高的活。
对于脚本的选择,目前也有很多,但是对于diy来说,还是micropython比较好,因为社区维护的最好,库也最多。关于micropython有个有意思的事,adafruit fork了一个分支建立了circuitpython,circuitpython比micropython有着更强大的底层库,对diy来说这个优势非常明显。但是因为某些原因竟然不支持esp32,果断弃之。但是我还是在后面的结构设计中为此留了一个伏笔。
第三选择:IDF
也就是esp32官方推荐的开发方式,基于idf用c开发。很多嵌入式大神会倾向于这种方法,最高效,自由度最高。但是对软件的要求也最高。不是一般人能驾驭的。但是正因为很多大神使用这种方法,所以有一些有意思的项目都是基于这种方式开发的。
第四选择:makecode
图形化编程,小孩子编程才用的。但是本身是非常好的东西。
电路板的结构
因为是开发板,我考虑到所有应用都有重叠的部分,就是cpu。所以我把cpu和外围拆分了开来单独制作了一个核心板,使用的时候插在外围扩展板上就可以了。原本想做扩展板无限堆叠的,review了一下项目清单,似乎并不需要这么复杂,两层堆叠就可以搞定了。这一点似乎所有的开发板都是一样的套路。还有一个好处是,哪天我想用circuitopython的时候。换个cpu就可以了,外围照样用。
关于尺寸
扩展板的尺寸54mm*85.5mm,也就是信用卡的尺寸,这样携带比较方便
核心板的尺寸54mm*32mm,54mm的高度可以很好的匹配扩展板,32mm的宽度正好安装1.5寸的屏。
迷你扩展板可以采用32mm*85.5mm这种条状方式,用于一些宽度限制的手持设备。
另外一种尺寸和核心板一样,用于可穿戴设备。
连接方式
因为体积的限制,我抛弃了2.54mm排针的方式,使用了0.8mm间距的板对板连接器。
特点
anyboard是一种特殊的开发板。最大的特点是我事先想好了最终要完成的50个作品的形态,然后去设计的扩展板。在做完这几款扩展板以后,我几乎不在需要使用杜邦线或者飞线就可以完成制作。这一点有两个好处:
1,做出来的作品紧凑小巧,又稳定。
2,不必关心硬件,大大缩短制作周期。
3,因为降低了硬件的门槛,就像乐高一样,任何人不需要任何的技术背景,跟着说明书操作就完成这些开源硬件项目的制作。
模块清单
目前设计了一块核心模块(基于esp32),以及8种外围模块,每种外围模块可以用来做几种不同的应用。
gamebrd
grblbrd
wearablebrd
robotbrd
stickbrd
aibrd
controlbrd
matrix
给自己做一块开发板 #AnyBoard相关推荐
- stm32f103VCT6全新机器 做stm32开发板 原理图以及主要器件规格书
酷贝详细资料如下 一.硬件配置: 1.MCU STM32F103VCT6: 2.按键扫描IC TM1668: 3.NFC IC FM17522: 4.RF 433MHZ ST-24S04YA K43 ...
- 硬件即服务,云栖大会上一块开发板可让所有设备“万物互联”
阿里云IoT第一次推出"云端一体高效设备智能化服务"平台时,可能并没有想到仅仅四年后,这个世界是如此需要物联网的"加持".无法否认,在疫情之后,几乎所有人都在做 ...
- 树莓派能做Linux开发板,balenaFin:兼容树莓派计算模块的开发板,
balenaFin:兼容树莓派计算模块的开发板, balenaFin 是一款兼容树莓派计算模块的底板,给树莓派用于产品设计和研发提供解决方案.目前 balenaFin 支持树莓派 CM3 和 CM3+ ...
- 1.环境搭建--硬件环境搭建(画一块STM32开发板)
目录 前言 原理图绘制 --(最小系统) 电源电路 晶振电路 BOOT选择 调试接口 复位电路 单片机管脚引出 原理图绘制 --(扩展部分) 串口一键下载 外部按键 LED电路 EEPROM电路 ...
- 如何用100元成本DIY一块全志V853 AI 开发板
全志最新发布的V853芯片拥有1T的NPU算力,还有Arm+RISC-V+NPU三核异构和丰富的音视频接口,那么用V853 DIY一块小开发板需要多少钱呢? 答案是:100元 让我们跟着社区大佬[Gl ...
- c语言单片机教程,开发板选择
单片机的学习过程十分重视实践操作,仿真软件不过是纸上谈兵,我们需要有一个看得见摸得着的学习工具,那就是单片机开发板! 1.教程所用的开发板 我们知道,学习C语言首先选择的是用哪一个软件做上机实践,那么 ...
- NVIDIA嵌入式开发板Jetson TX1教程
开箱 Jetson TX1(现在已经出了TX2)是英伟达公司新出的GPU开发板,拥有世界上先进的嵌入式视觉计算系统,提供高性能.新技术和极佳的开发平台,之前还出过TK1,鉴于TK1比较小,而且性能不如 ...
- 全志T3开发板(4核ARM Cortex-A7)测评合集——从开发板到PLC
本次测试板卡是创龙科技旗下,一款基于全志科技T3处理器设计的4核ARM Cortex-A7高性能低功耗国产评估板,每核主频高达1.2GHz.评估板接口资源丰富,引出双路网口.双路CAN.双路USB.双 ...
- 跟涛哥一起学嵌入式 25:我接触过近50块嵌入式开发板,分享一下教训和总结...
最近老是有学员问我:涛哥,你的嵌入式教程针对哪款开发板鸭?到底使用哪款开发板学习?我的回答往往是:暂时不用开发板,学习嵌入式,不一定非得用开发板,在qemu仿真平台上学习就可以了.3年前我发布了互联网 ...
- 手把手教你如何使用Multisim对Digilent FPGA开发板进行编程
1.jpg (43.84 KB, 下载次数: 0) 下载附件 2017-6-1 20:03 上传 FPGA正在逐渐成为EECS专业的同学们在校期间学习掌握的一项必备技能.无论是在课程实验.竞赛作品.科 ...
最新文章
- 架构漫谈 - 数据治理核心思路及解决方案探讨
- 方立勋_30天掌握JavaWeb_response
- IOS(常用移动终端设备) push实现通知中心
- IIS6注册.net4.0
- Mybatis 一对多 简单映射配置
- 中国 AI 开发者真实现状:写代码这条路,会走多久?
- 图书馆用文本文件booklist.txt记录图书的书目,其中包括book1,book2,.....,book10.现在又要采购一批新书,编写程序将新的书目添加到目录中。
- 基于京东家电商品知识图谱的自动问答系统(二) -- IDEA搭建开发环境
- win、linux下tomcat内存的修改
- 联想拯救者y7000p 2021安装Ubuntu18.04记录
- 解决Adobe PhotoShop用户界面字体过小的问题
- java find 方法,findOne方法是findOne(Example
- 2021我的前端开发年度总结
- Mac系统下Carina初体验
- 3Dmax怎么渲染AO图?云渲染AO图是什么?
- 红米note7找android,红米Note 7
- 声网首发RTE行业专著《实时万象》,拉开RTE2022序幕
- 湖南工业大学电费数据抓取(完美校园版)
- Vue 防抖节流 详细介绍(面试常客、去繁从简、性能优化)
- 用百度富文本编辑器UMeditor实现对html文本的编辑功能,vue中使用UMeditor编辑器