自从我的《爱上单片机》一书问世,“爱上”一词就在电子制作的圈子里小火了一把。随后又出现了《爱上制作》、《爱上Arduino》,还有一大堆类似名字的出版物。虽然每一本的内容都很精彩,但总这么爱来爱去的,是不是有点审美疲劳呢?本来这篇文章是想取名《爱上DB1》的,可是再这样爱下去,大家都变成花心大萝卜了,所以我必须在取名上有所创新。既然要创新,干脆就叫《创新DB1》好了。没错,“D”、“B”、“1”,就是两个字母和一个数字的正常发音,是不是要比Arduino这一个名字好记多了?
为什么要提Arduino呢?有人把Arduino叫电子积木,我今天要介绍给大家的新朋友也是电子积木,叫DB1。
每一位电子爱好者都有一段不同寻常的经历,我们聪明、热情、对世界充满好奇。不论是音响还是电视机,我们总想拆开看看,弄个明白。虽然有时会遭到家长的阻挠,但这并不能阻止我们对电子DIY的热爱。在我们心中始终有一个梦想,那就是制作出各种电子小作品,让我们的生活变得更方便、更智能。为此我们学习电子制作的过程和单片机技术,学习电路设计和程序开发。就为了终有一天可以开发出属于我们自己的作品。那我们要怎样开发和制作呢?目前我们有以下几种载体的选择:开发板、面包板、洞洞板、自制PCB和Arduino。
先来说说开发板。开发板不用我说,大家都很清楚,许多单片机爱好者都是通过开发板入门的(通过《爱上单片机》入门的读者除外)。开发板又叫学习板、实验板,就是把单片机和许多功能电路制作在一块PCB上,用于初学者的学习实践。开发板上的元器件都是焊接好的,学习者只能硬性的记忆电路原理图,不能对电路做修改和创新。这样的学习也只能学到一半的知识和经验。而且开发板上的大部分元器件是固定的,一旦实验完成就要被闲置在一边了。所以我个人不推荐初学者用开发板入门,我们应该更灵活可变的学习平台。
面包板是一个好的平台,它可以将元器件直接插在上面,简单、快速。通过它来学习单片机,即能了解单片机的电路原理,又能自己设计前所未有的电路,尝试创新。这对学习是非常有利的。我正是看到了面包板的这一优势发,才在《爱上单片机》一书中采用这样的学习方法。从读者的意见反馈上看,这样的解决方法是方便有效的。只可惜面包的体积比较大,还仅能用直插元器件。正常的情况下,仅一块40脚单片机就占据了较大的空间,更别说还要接一些外围电路和模块。看来面包板是实验的好工具,但不能用它来直接制作成品。
那成品要用什么制作呢?目前我们有洞洞板和自制PCB两种选择。洞洞板又叫万能实验板,是在一片PCB上呈阵列形式地放置着许多孔洞和焊盘。其实就等于对面包板结构的一种继承。洞洞板因为自身是PCB材质,坚固耐用。但制作很复杂,不仅要焊接元器件,还要连接繁多的飞线。我还曾研发过一款LEAF系列叶式结构洞洞板,就是把洞洞板的焊盘做得像叶子一样,可以很方便地在焊盘之间走线。虽然这样可提高效率,但总体上看还是麻烦的。而且动手焊接还有一定的危险,不适合小爱好者的入门。
这么看来,自制PCB应该是不错的选择。一些爱好者会花钱找工厂定做PCB,一次下来至少也有200元。万一做错了,又花同样的价钱重新制作。所以不少大学生大部分会选择土法自制PCB,最常见的方法是热转印法。但工序很复杂,要设计、打印、切板、打磨、转印、配济、腐蚀、清洗、钻孔、盖油、测试、焊接,耗时又费力。
Arduino是一款从国外流行到国内的单片机开发板。Arduino与其他开发板不同的是,它上面没有集成功能电路,而是留出单片机接口,通过外接功能模块和在面包板上搭建电路的方式完成制作。电路制作灵活、快速,而且相关的功能模块也很丰富。从这个方面看来,Arduino是一款理想的开发平台,简单、快速、无用焊接、接口丰富。《无线电》杂志也发现了Arduino的方便之处,曾在前几期文章中重点介绍Arduino的开发与应用。可能就在我这篇文章的旁边,就有一个基于Arduino的小制作呢。
Arduino虽然流行,但静下来考虑,Arduino目前的样子并不是最好的设计。据我了解,Arduino板最慢慢的出现时的目的是为帮助科研人员完成某一项研究任务。任务完成后,设计者就将其开源放到网上,随后就被电子爱好者直接拿来使用了。也就是说Arduino最初的设计并不是为了电子爱好者对广泛意义的电子diy而开发的。所以它在设计时很少考虑、甚至没有考虑到自身的结构设计,也很少考虑到单片机接口的排列与众多现有功能模块的兼容性。这种前期设计的缺失,导致使用者在连接功能模块时只能用导线连接。
最后一点,Arduino板的价格相比来说较高,就算是购买国产较次质量的,也有60~100元,还不包含别的功能组件。在价格问题上,虽然Arduino是开源的,不需要支付版权费用。但是Arduino板上集成了复杂的电源稳压和下载电路,这些电路一般只有在下载程序的时候使用,平时是用不到的。也就是说,如果你用Arduino制作一款成品,它上面有一部分是浪费的,而你必须为此“埋单”。在笔者看来,Arduino作为免焊接的开发平台,应该尽可能做到防尘、绝缘和防短路的设计。可是我们大家可以看到Arduino板外观,所有元器件都在外面。若不小心有导线或金属碎屑掉在上面,很可能导致失灵甚至损坏。
综合来看,我个人觉得Arduino缺少必要的设计,可奇怪的是Arduino很少进行自我优化和改进,虽然有一些国内的Arduino开发的公司曾对它进行了技术和设计上的改进,但似乎他们生怕别人以为他们的改进版不是Arduino,所以不敢有重大创新和颠覆性的措施。同时,其他公司也没有想过建立比Arduino更好的新平台,因为那需要花时间和金钱去研发和推广,还不如拿现成的产品来销售,所以市场上一直少有与Arduino类似的新平台推出。
。正是因为如此,对我而言,设计新的电子制作基础开发平台的想法呼之欲出。也许是以一种无知者无畏的态度,我们在基础开发平台这个层面上大胆创新,开发出DB1电子积木。
DB1电子积木是一款全新概念的单片机开发平台。你可以说它是在单片机最小系统板上加了一块面包板,也可以说它是在面包板下面隐藏了一块单片机。总之,它是一个综合体,把开发板和面包板的优势结合起来。这种结合,不是简单的组合,而是做了很多的设计。
从DB1的照片上我们能够正常的看到,DB1的外观上没有任何电路,所有元器件都隐藏在面包板的下面。单片机接口在面包板的两侧,每一侧有34个接口,通过导线可以很方便地将单片机I/O接口连到面包板上。DB1集成的是增强型51单片机,共有60KB的编程空间和44个多功能I/O接口。你可以用这些I/O接口直接驱动LED点阵屏,或者用ADC接口读取模拟数据量。除了I/O接口外,我们还引出了较多的5V、3V电源和GND,以提供外接元器件的电源。我们为DB1设计了看似混乱的接口定义,其实是经过深思熟虑的。因为我们希望常用的功能模块可以省略连接线,直接插在接口上面。于是,我们找来了各种可能会插到DB1上的功能模块,研究它们的接口定义和摆放位置。有哪些模块是重要的,哪些是要同时使用的,最终确定了现在的接口定义。DB1的设计使得它有很强的设计感,外观精致小巧,没有一点元器件在外,整个模块浑然一体。强大的功能可让你尽情发挥创意。
DB1的最大创新是将电路连接与结构设计融为一体,设计外观的同时也是在制作电路,这是一种概念的创新。我们在用普通面包板制作电路时,直插式单片机占据了很大的空间,还有一些不为用户所用的外围电路。这么多东西虽然重要,但却是不必让用户看到的。DB1把它们都隐藏起来,留出全部的空间插接用户关注的东西。插接出来的样子就是成品的样子。下面就让我和大家一起DIY几款实用小制作,一展DB1的魅力。
首先我们从最简单的开始制作吧。炫彩LED夜灯,就是使用2个按键控制1个彩色LED灯的亮度和颜色。你可以把它放在床头,选择比较适合的亮度和颜色来装点出浪漫气氛。制作所需的组件非常少,DB1主模块1个,三基色共阳LED灯1个,微动开关2个。制作的步骤非常格外的简单,不需要导线,只要将微动开关和LED插到DB1对应的排孔即可。制作完成后,插上USB电源,按左键可开关LED灯,同时可选择3挡亮度。按右键可选择8种单色和3挡渐变色效果。能够说是制作简单、功能强大的一件作品。你可以在《无线电》官网上找到这个制作的HEX写入文件和源程序文件,把HEX文件下载到DB1主模块中就能够正常的使用了。
19187左键控制LED开关和亮度,右键选择LED灯颜色。颜色有粉、红、橙、黄、绿、青、蓝、紫、白和自动渐变色。
第二件制作是数码管时钟,可以显示小时和分钟,不需要时钟芯片,用单片机产生时间。这回我们用到了面包板连接线,所以会略微复杂一点。但组件依然很少,只需要DB1主模块1个,4位共阳数码管1个,微动开关2个,面包板连接线个微动开关用来设置时间。在同样这个硬件电路上,不但可以制作时钟,只要改一下程序,就可以把它变成计时器或者计数器。你可以在《无线电》官网上找到这个制作的HEX写入文件和源程序文件,这个制作的程序是开源的,并有“时钟程序”、“正计时器”、“倒计时器”等开源程序供你参考。源程序中还有详细的注解,语句简单、易理解。你可以按你的想法修改源程序,比如加上日期显示什么的,让它变得更实用、更酷。
只要插上DYS8100时钟模块再改一下程序,就能做出高精度的时间和温度显示时钟。
4×4彩色立方是用4个三基色LED灯制作的彩色点阵,我还特意为它设计了一个方形的有机玻璃外壳。可以显示出很漂亮的色彩。因为篇幅关系,我们下一期再介绍它的详细制作的过程。而且它是开放源程序的,你们可以任何修改显示的效果,发挥你的制作创意。敬请期待,我们下期再见喽!