遇到的问题

在我的一份清单中,记录了几十个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相关推荐

  1. stm32f103VCT6全新机器 做stm32开发板 原理图以及主要器件规格书

    酷贝详细资料如下 一.硬件配置: 1.MCU STM32F103VCT6: 2.按键扫描IC TM1668: 3.NFC IC FM17522: 4.RF 433MHZ  ST-24S04YA K43 ...

  2. 硬件即服务,云栖大会上一块开发板可让所有设备“万物互联”

    阿里云IoT第一次推出"云端一体高效设备智能化服务"平台时,可能并没有想到仅仅四年后,这个世界是如此需要物联网的"加持".无法否认,在疫情之后,几乎所有人都在做 ...

  3. 树莓派能做Linux开发板,balenaFin:兼容树莓派计算模块的开发板,

    balenaFin:兼容树莓派计算模块的开发板, balenaFin 是一款兼容树莓派计算模块的底板,给树莓派用于产品设计和研发提供解决方案.目前 balenaFin 支持树莓派 CM3 和 CM3+ ...

  4. 1.环境搭建--硬件环境搭建(画一块STM32开发板)

    目录 前言 原理图绘制  --(最小系统) 电源电路 晶振电路 BOOT选择 调试接口 复位电路 单片机管脚引出 原理图绘制  --(扩展部分) 串口一键下载 外部按键 LED电路 EEPROM电路 ...

  5. 如何用100元成本DIY一块全志V853 AI 开发板

    全志最新发布的V853芯片拥有1T的NPU算力,还有Arm+RISC-V+NPU三核异构和丰富的音视频接口,那么用V853 DIY一块小开发板需要多少钱呢? 答案是:100元 让我们跟着社区大佬[Gl ...

  6. c语言单片机教程,开发板选择

    单片机的学习过程十分重视实践操作,仿真软件不过是纸上谈兵,我们需要有一个看得见摸得着的学习工具,那就是单片机开发板! 1.教程所用的开发板 我们知道,学习C语言首先选择的是用哪一个软件做上机实践,那么 ...

  7. NVIDIA嵌入式开发板Jetson TX1教程

    开箱 Jetson TX1(现在已经出了TX2)是英伟达公司新出的GPU开发板,拥有世界上先进的嵌入式视觉计算系统,提供高性能.新技术和极佳的开发平台,之前还出过TK1,鉴于TK1比较小,而且性能不如 ...

  8. 全志T3开发板(4核ARM Cortex-A7)测评合集——从开发板到PLC

    本次测试板卡是创龙科技旗下,一款基于全志科技T3处理器设计的4核ARM Cortex-A7高性能低功耗国产评估板,每核主频高达1.2GHz.评估板接口资源丰富,引出双路网口.双路CAN.双路USB.双 ...

  9. 跟涛哥一起学嵌入式 25:我接触过近50块嵌入式开发板,分享一下教训和总结...

    最近老是有学员问我:涛哥,你的嵌入式教程针对哪款开发板鸭?到底使用哪款开发板学习?我的回答往往是:暂时不用开发板,学习嵌入式,不一定非得用开发板,在qemu仿真平台上学习就可以了.3年前我发布了互联网 ...

  10. 手把手教你如何使用Multisim对Digilent FPGA开发板进行编程

    1.jpg (43.84 KB, 下载次数: 0) 下载附件 2017-6-1 20:03 上传 FPGA正在逐渐成为EECS专业的同学们在校期间学习掌握的一项必备技能.无论是在课程实验.竞赛作品.科 ...

最新文章

  1. 架构漫谈 - 数据治理核心思路及解决方案探讨
  2. 方立勋_30天掌握JavaWeb_response
  3. IOS(常用移动终端设备) push实现通知中心
  4. IIS6注册.net4.0
  5. Mybatis 一对多 简单映射配置
  6. 中国 AI 开发者真实现状:写代码这条路,会走多久?
  7. 图书馆用文本文件booklist.txt记录图书的书目,其中包括book1,book2,.....,book10.现在又要采购一批新书,编写程序将新的书目添加到目录中。
  8. 基于京东家电商品知识图谱的自动问答系统(二) -- IDEA搭建开发环境
  9. win、linux下tomcat内存的修改
  10. 联想拯救者y7000p 2021安装Ubuntu18.04记录
  11. 解决Adobe PhotoShop用户界面字体过小的问题
  12. java find 方法,findOne方法是findOne(Example
  13. 2021我的前端开发年度总结
  14. Mac系统下Carina初体验
  15. 3Dmax怎么渲染AO图?云渲染AO图是什么?
  16. 红米note7找android,红米Note 7
  17. 声网首发RTE行业专著《实时万象》,拉开RTE2022序幕
  18. 湖南工业大学电费数据抓取(完美校园版)
  19. Vue 防抖节流 详细介绍(面试常客、去繁从简、性能优化)
  20. 用百度富文本编辑器UMeditor实现对html文本的编辑功能,vue中使用UMeditor编辑器

热门文章

  1. 23个可以免费学习编程的网站
  2. 换把人体工学椅,缓解久坐写代码的老腰吧~
  3. 面试中问到fiddler的那些问题
  4. JAVA获取CKplayer真是地址_[Java教程]使用CKplayer插件在网页中嵌入视频的方法(常用笔记2)...
  5. 国庆节未休假的你,领到了三倍的工资吗?
  6. 屌丝程序猿的中国合伙人之路
  7. 5.信道带宽、信道容量、香农公式
  8. OpenGL Assimp的骨骼动画
  9. 看英文看的头疼的一次
  10. Pytorch 基于ResNet-18的服饰识别(使用Fashion-MNIST数据集)