@kalimov
2015-01-08T22:07:31.000000Z
字数 5251
阅读 1035
IcosaLEDron: A Multi LED Smart Ball by Afritlabs
原文出处:http://www.instructables.com/id/IcosaLEDron-A-Multi-LED-Smart-Ball/?ALLSTEPS
原作:Afritlabs
何谓“一灯二十面相”?此乃一可编程、可充电二十面具备三色LED球形也。于其内,特设有ATMEGA328P开发版,可与Arduino兼容,使之易于编程显示不同效果。围绕周围均衡配置二十颗WS2812BLED和一个三轴加速计,一灯二十面相就成为个靠不同方向加速感应而发光的球形平台。在设置好机械惯性传感器后,我们就打算做个关于这种传感器的作品。
无论何种转法,底部载有的程序感知球的变化,就能点亮对应的顶部LED。当加速计感知到自由落体时,它将点亮所有LED,发出彩虹般闪烁光芒。当动作静止时,它将进入休眠状态,等同于关了电源那样。它因开源可编程而生,诚邀诸君共商此平台发展大计。一灯二十面相可为一骰子,掷出随机数字灯光面。或为记忆游戏道具,转出设备设定好的纹样。
抛一灯二十面相为砖,吾等希望鼓励创客及程序员自编之、自创之、共享代码之,以共建自乐社群矣。
欲得现成物,便往霆黛店。https://www.tindie.com/stores/Afritlabs/
建造LED精灵球伊始,3D打印部件是能简化实现创意的步骤。以此,我们得以在一天当中生成几个初步概念、修改并重复设计。纵览设计过程,一灯二十面相背景原理始终如一——包在塑料几何框架里的电子原件被驱动,控制均匀分布在橡胶球形外壳的对应LED发光。
在最终定型为易于展开和组装型号之前,测试了几个设计。一灯二十面相应能直接打印成型,直接组装折叠起来。尽管体型细小如一垒球,也不能让人恼火于组装过程。通过几次改进后的嵌套和上进装置,一灯二十面相在组装完成后会比较结实。
于此处能下载打印设计文档。http://www.thingiverse.com/thing:528059
它包括用ABS或PLA打印出来的刚性塑料配件,及半透明热塑橡胶材料打印的橡胶外壳。这两部分稍后将用强力胶粘在一起。
不用支撑结构,所有部件都能平整打印出来。热塑橡胶材料对于一些打印机可能不太给力,要做到作品那样,可以尝试用透明橡胶铸模成型。
要快速成型,3D打印变得越来越普及了。只要具备一些计算机建模技能,就能将虚拟或复杂结构物品精确塑料成型。3D打印其中一个优越之处是日益促进线上分享优质模型。已经有一些网站出现了, 例如Thingiverse、Youmagine等,提供了用户免费分享模型下载的场所,从艺术模型到实用装置一应俱全。
电路设计是建立电子装置的第一步,下面有一系列免费或低成本电路图设计工具。
如果你做了个面包实验板版本的Arduino兼容开发板,那你该对电路图有个很好直观印象。不然,就从观察一些开源微控制板范例做起。所有Arduino开发板都是开源的,电路图也能入手。同时,要检查一下Atmel处理器和板子上用到的其它元件的技术参数。芯片商手上经常会有有用技术参数和文档。而在设计过程中选择元件也是考虑的一环。不要害怕去使用贴片机——他们能以一系列DIY方法轻易把元件焊到板子上。(虽然精密间距的球型封装有点稀少)理论来说,当电路图完整时,你能选到所有合适元件。这意味着你能和商贩那样区别出每包元件每个部分。在范例当中,我们用一块ATMEGA328P和一个MMA8652集成3轴加速计根据电路图做了个电路板。这块PCB板也内建了聚合物锂电池充电口,还有一个六针连接接口,用于通过AVR类连接进行编程。
acc_ledR6.2.sch 497 KB
acc_ledR6.2.brd 126 KB
在电路板设计完成后,是时候开始布局了。这一步当中,你要关注的是每个元件在板子上的走向,通过电气连接形成回路。重要的参数例如开发板大小、开发板层数和最小间距要首先确定好。一半来说,成本随着层数增加而增加,而最小间距则减少。对于一个初学者制作来说,一块双层开发板不贵,对于简单Arduino开发板来说也足够了。
至于更高端的工具,能自动安装和布线的那种,则将这个过程加快了。虽然Eagle自动布线器工作良好,但我还是会手动安放元件。因为这些电路是低频电路,安装元件就不那么严格要求了。(于是一块面包开发板版本的通常够使。)但是,在手动元件放置当中,最好还是将相关元件放在一起。例如,大部分Atmel微控制器会用到晶振,将晶振放在微控制器相关的引脚附近就比较好,这样就能减少连接孔洞跨距。
在放置和布线后,做一次设计规范检查。至少在这步检查所有独立电子信号能在制版的最小范围内分离。设计规范文档能制作出来,或在生产商那里也能下载。
如果电路板通过设计规范检查,那就该将文件发到生产商那边了。市面上有许多商家,制板变得比以往简单低廉了。
组装电路板需要以下部件:
在制作少量原型时,手工将元件组装到板子上是最好的方法。要做到这一点,将焊锡膏用手或蜡纸涂上去。另一个选择是用一根锋利探针将焊锡膏分别涂在PCB板上每个焊盘里。这笔用蜡纸慢,但一次加工一块板子时就够了。然后,用镊子把每个元件安置到位。用光学显微镜会有所帮助,但不用显微镜也能完成。
在把所有元件放好后,回流焊锡。最简单的办法是用电平底锅或一个加热盘。有不少DIY回流焊路也能胜任这项工作,而用电平底锅的方法应该是最简单的办法。这块板在一个Oster电平底锅上进行回流焊。将板子放上平底锅,将温度调到华氏400度(摄氏204度左右)等待约5分钟后,关了平底锅。从平底锅取出前,让板子降温几分钟。这个办法需要焊接在表面的大多数元件提供了大约相当的温度。
这时,你会得到一块随时可编程的电路板了。
作为一块ATMEGA328P微控制器,它能通过Arduino集成开发环境进行编程。这里讨论的方法是用Arduino Mega 1280。首先,将Arduino Mega连到六阵脚编程接口。这个范例用的是个从Sparkfun得到的弹簧引脚接口。重设连接到53引脚,价格MOSI接到51,MISO借道0,SCK接到52。Vcc连到5伏正极,GND接到Arduino板上的接地端。Arduino编程范例代码在Arduino集成开发环境1.06里进入预装载阶段。在程序的注释里也列出了这些连接方法。在把Mega板和弹簧引脚接口连上。要把Arduino Mega作为编程选项,在开发环境中选择“Arduino as ISP”,在“Tools/Programmer”菜单下。这时,你可以直接选择“File”菜单下“Upload using programmer”进行上载代码,热键为Ctro+Shift+U。另一种方法是载入Arduino引导程序。这个制作中的PCB板以8MHz频率及3.3伏工作电压运行,所以选择“Tools/Board”菜单下“Arduino Pro or Pro Mini (3.3V, 8MHz) w/Atmega328”作为合适的引导程序。要烧写引导程序,选择“Tools”菜单下的“Burn bootloader”。
收集需要的零件来组装一灯二十面相,包括3D打印零件和上一步组装好的电路板,同样还有其他硬件和胶水。
有些零件需要粘在一起来保证耐久性,保护球体内零件不受撞击影响。建议使用强力胶,既便宜又能牢固粘紧塑料。在使用时避免在家具商使用,容易搞成一团糟。
一灯二十面相的弹性外援需要粘贴在硬塑料 二十面体网上,将两层贴在一起。将硬网状塑料放置在坚固平面上操作。将胶水以连续滴状画三角形,调整框架上的软外壳网,将其按到胶水表面。多余的胶水会渗出,应被去除。将类似书本或盒子平摊放在部件的上方几分钟就能让它粘得更紧。
在上一步的胶水滴好之后,将部件翻过来。将LED胶合定位——注意每个LED芯片背面的接线方向箭头,他们需要指向上面,正对着另一个的下方。用第一步说的三角形标注法进行操作。将胶水滴在每个正方形切口的上部和底部,然后将LED板按到切口,将发光一面朝向外面,对着外层外壳。在焊接导线之前静置几分钟固定。
将一颗M2六角螺母按进二十面体网状结构边上的第一个支撑位中央插槽里。这也是最后封装螺丝将要穿过的地方。
这步当中将把微控制板、电池和LED接上。这需要上一部装好的两片LED框架、3D打印电路板底盘及电池、完整微控制板和聚合物锂电池。同时还会用到六针脚排针、电烙铁和一些其他硬件。
(1) 将合适的六阵脚排针韩接到指定的开发版洞洞上,确定其角度向上,远离微控制器表面的元件。
(2) 将电路板旋紧到3D打印底盘上。首先按下两枚M2六角螺母到地盘一边的六角凹槽内。然后将微控制板元件朝上,排针朝向底盘平面上指示灯装好。调整板上两个螺丝孔的位置,对齐对应底盘上的位置,用4毫米M2螺丝固定,并在背面辅以六角螺母。
(3) 将电池滑入底部的电池座里,小心操作,不要刮到任何裸露的螺丝头。之前用特定长度的螺丝就能避免这类麻烦。电池会很贴合地就位。
(4) 将电池连到电路板上。虽然在这个装置的后期版本中有个插头存在,但在这里电池还是直接焊在电路板上。因为这样,这里会去除连接在电池引脚的插头。分别切开每条导线,这样就不会导致电池短路或损坏。将红线焊在正极,即标着V+的洞上,将黑线焊接在电路板接地端,即有两个洞的地方。小心不要让两条裸露导线或电路板上的其他零件接触在一起。
将所有LED按每个背后的箭头指定方向接线。在这里,你需要切出两种不同长度的导线——短的约半英寸(1.3厘米左右),长的2英寸(约5.5厘米)。接线前在LED引脚处挂上些焊锡会好一些,而用镊子固定导线也是办法。从第一个LED开始,将短线焊接到同一行当中的第三个LED,而用长线桥接到邻近的LED,方向如所示那样向下。继续焊接,同行LED用短线,隔行用长线。要注意在第十和第十一个LED之间需要用到长线,避免电路板和电池底板互相接触。
准备将LED连到电路板上。这里会用到一段长3英寸(约7.6厘米)的导线。当一灯二十面相还是展开的时候,将这先导线焊接到第一个LED。用黑色记号笔在每条导线标注上5V、GND和DIN,然后就留待韩接到微控制器上。
将电路板和电池座接到一灯二十面相的网状结构上。注意两个用作连接底盘的直立楔子是要装到框架上的。首先螺接底盘背面,正对着排针下面中央,直立插入两枚4毫米螺丝。将网状结构折叠起来,这样底盘前端的组装螺丝东就能对正网状结构边上的直立物,然后用另外两枚4毫米螺丝固定好。一半的灯组成型,电路板在上面,电池在下面,两者都在里面。
将导线接在第三步所说的第一个LED上面,横越微控制器板。在灯组一半就位后,将对应的第一个LED导线韩接到电路板上的三个节点,LED5V的接到板子上的+V,LED的DIN引脚接到板子上的数据引脚,GND到接地端。这样,一灯二十面相就能根据动作做出灯光响应。
一灯二十面相渐趋成型,唯余内角从内咬合边角盖子未完。先准备盖子,将一颗落幕顶入两边的六角槽内,在16毫米螺丝上安放一块垫片,稍微从内穿过每个盖子。将其紧紧按到球上,你会注意到四个内部卡笋都咬合了。同时你也能通过前盖版对电路板和后盖板进行操作。将其合上,把后盖滑上,螺接久违,并卡紧内部卡笋。将螺丝上紧固定边角,但注意不要扎到电池。垫片会通过弹性外缘,停留在刚性塑料边上,将螺丝头保持在外壳之外。对其他边都如法炮制。前盖板现在可以盖上了,用6毫米螺丝在外面把它上紧。
电路板上设有聚合物锂电池充放口,用USB转串口的FTDI线就能对设备充电和编程。六阵脚那端皆在电路板的接口上。FTDI线的黑线接在接口接地口标注那端。用FTDI线,就能通过Arduino开发环境和电路板进行交互对话。
恭喜,你已成功装好一灯二十面相!任何反馈,无任欢迎。如有自制多LED灯精灵球,盼闻佳音。