专栏首页UDM Lab从烧板跑路到快速原型—咸鱼创客的日常

从烧板跑路到快速原型—咸鱼创客的日常

大家好初次见面我是WranM,UDM资深摸鱼成员,自动化专业混子。在朋友们的大力支持(无情催促)下,安排了这么一篇水作,谢谢大家的支持_(:з」∠)_

回忆从初中开始的划水maker历程,诸如用五块一把的烙铁从废旧电器上抠元件,到小五金店找大爷讨要铜线绕感应线圈,再到大学从学校实验室里前辈们的废旧电子作品里拆出可堪一用的零件搭出自己的竞赛机器人。都深入贯彻了这一思想:物尽其用,能跑就行。下面就以有点年头的一个小项目为例展示一下如何在短时间内完成一个“能跑”的作品。

这个小作品是以我惯用的一套快速原型开发工作流程来完成的,这一篇也由此作为脉络展示,供大家参考交流。

1.功能梳理和技术选型

这个作品是一位不愿透露姓名的设计师朋友设计的,总之呢是一个飞碟造型会发光会旋转的助眠小闹钟,可以说是构思精巧造型可爱。具体功能就是通过类似发条的旋转结构对闹钟进行定时,打开夜灯及香薰等助眠功能并在系统规定时间内关闭,在用户所设定时间前一个小时光线逐渐增量模拟日出效果最终达到最大值并振动复位。

模型渲染图

简单的确认需求之后就是主要功能整理,产品拆分之后就是大概以下几个点:主/被动旋转结构时间数显 rgb环显示 可控香薰拍击监测。主要功能清晰化后我们就能简单的列出大概需要的模块以及粗略的结构设计。在短时间的开发中,我们只能从手中已有的模块组合出具有相对完整的原型。那么有效运用手头现有工具和有限的模块是非常重要的。

选型部分模块合影(凑数)

完成选型之后就是进一步的机电规划,将这一系列功能模块塞到这个只有十厘米直径的小飞碟里。

2.机电规划并落实设计

完成了选型确定模块后开始建立关键模块的草模,以便在有限且狭窄的外壳空间内规划好各模块的位置布局,我选择使用Fusion 360作为简单零件的建模工具。不仅如此,它还结合了Eagle pcb 由此也可以进行高度配合且易用的机电一体化设计。希望了解的朋友也可以移步我们公众号的相关文章看一看。在此类应用中最简单的流程就是测量模块-绘制草图-建立模型。

sg90舵机模型

灯环模型

完成了一系列简单的草模之后就可以参照已完成的外壳模型,在外壳制作之前尝试把这些模型调整到合适的位置并在外壳模型上添加模块固定的孔位及支撑结构(或直接热熔胶解决

相信我 我是工程师

外壳模块分离图

完事之后就可以去打印啦,先用xiaowu同学的老年功勋打印机打出第一版模型,把模块连上线尝试用蓝丁胶(强烈推荐,居家必备)稍微固定确认一下结构能否完整安装到位并避免相互碰撞干扰。对模块或者外壳做进一步调整。

第一版模型

确认完毕并使用调整好的模型打印出第二版外壳

昂贵的软胶打印

3.电子部分组合

我们在前面提到了几大功能模块,在制作中需要进行每个模块的测试和调整并最终组合在一起。

主/被动旋转结构

旋转结构采用一个180度sg90舵机完成相应功能,它在非使能状态下可以手动转动机构并通过一个简单的小操作回读当前的电位,不需要增加外部结构来达成相应的目的,我们都知道舵机的原理是通过内部安装的电位计值与外部控制信号对照从而进行对于电机的调节控制。

于是我们在这里将舵机拆开,注意电位器的引脚,使用万用表测量相应的电压值,确认后用飞线引出正确相应的输出脚接入Arduino的Analog口做读取。

测量电位计引脚

这样我们就可以简单的获得电位计值从而检测用户旋转的角度。

时间数显

通常的做法是采用DS3231加四位数码管作为显示单元,DS3231是一款常用的时间模块,自带温补,有效提高精度。

ds3231时间管理模块

而四位数码管也是小创作中常常遇到的一种显示模块,在使用和选型中需要注意共阴和共阳两种规格,以此选择驱动芯片和相关接线,在平常的测试和制作中也可以采用已集成的数码管模块。相关的控制也不再赘述,比较简单。

四位数码管模块

RGB环显示

这里采用的是WS2812灯环,有16位可控的集成了WS2812芯片的5050RGB灯珠。

24位WS2812灯环

WS2812芯片及5050RGB灯珠广泛运用在RGBLED相关产品中,比如我们常见的招牌广告发光字和马路边边的夜间亮化。在控制上WS2812只需要一根信号线就能在30帧下完成控制512个像素点的功能。同样的在Arduino中也有简单易用的库可以使用,可以给你的作品快速增加花里胡哨的光彩。在装置艺术中可以见到大量的关于可编程RGB灯带的运用。

《Crystal framework》by TeamLab

拍击监测

对于拍击这种简单的交互形式,主要有两种路线,接触式按钮开关和相关的运动传感器如压电式振动传感器或历史悠久的倾斜开关或者更早的水银开关。在这次的设计中采用的是带电位计调节灵敏度的sw18010震动传感器模块,简单的输出数字量即0/1。在调试中我们将输出口连接到nano的数字引脚便可以进行调试。可以非常容易地在串口绘图器中观察到波形。

模块测试环节

电力系统

通常我们在小尺寸模型或电子产品的原型开发中采用18650锂电池或定制化的锂聚合物电池,多数情况下我们需要在定制pcb板中对模块或元件进行电力管理。而在这个作品中只使用了一块3.7V锂聚合物电池采用升压模块拉到7V接入Arduino中以直接推动舵机及灯环。充电则是使用了一块5V1A的microUSB充电模块,只需焊接四个引脚就能完成充电放电一体操作。

5V1A锂电充电模块

4.最终编程与组装

搞定了这些部分我们便可以将电路完整的组合在一起看看效果并开始写入代码了,先不急着全部组装,上电并写一个测试程序检查所有功能块都能运作,并且注意外露的引脚或触点不会短路。随时准备断开电源,避免短接或正负极反接以及各种失误引起的烧毁,在初学Maker们学习的道路之下都是无辜的元件残骸。

点亮灯环测试代码

确认模块功能正常后我们开始编写代码,完整地进行一遍预设的流程,在调试过程中也要多跑几遍来检查代码运行中的错误和模块的运行情况,尤其是拆装困难的结构,避免开发人员的心态爆炸,影响项目进度。

进一步测试功能

确认流程正常工作且接线无误后将模块固定到设计好的位置上再进行焊接连线,这样线路就不会有冗余在其中像热带雨林一样错综复杂互相纠缠了。还有特殊的一点是在可动部件的连线需要注意走线的位置,通常我们会使用扎带将线路固定在关节上,结构卡死线路扯断可不是说着玩的。

合上舱盖 拧上螺丝固定可动部件,这次24H快速开发就结束啦。可以看看这个粗糙小飞碟的测试效果,很明显的,细节做的并不好,指示灯和内部布线影响了整体的光效。

憨憨展示

要规避这些问题,在我们的结构设计和模型绘制环节就需要多进行思考和推敲,在此之前,修炼建模水平,熟悉各类模块和电学知识都是非常重要的。再次强调一下:三思而后行,很多时候开发中的障碍不是技术原因而是方向错误,多思考,少冲。

在此类模块化小制作中,我们尽量遵循功能模块化,结构模块化,代码模块化的原则。将不同的功能分块完成制作,代码部分也将功能写入子程序中,保持主循环体的整洁,方便调试寻找错误。而硬件部分也一样,分别组装,分别测试,这样在系统组装过程中可以进行快速地更换和升级。

电子产业的快速发展,让这些小制作的开发都成为了像搭建乐高一样简单的过程,电子模块,代码模块,通过逻辑思考和设计连接在一起。经过精心从思考之渠灌溉培育最终从杂物堆里开出一朵不那么茁壮但是灿烂的花。


其实此类小制作并不复杂,关键的是好玩的想法和齐全的装备,我们精心整了一套为交互装置而生的套件,不仅品类丰富,价格合理,还有周到的指导和教学,欢迎了解一下哦

本文分享自微信公众号 - UDM的神仙们(gh_87e0295f05b5),作者:WranM

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-11-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 从processing到Touchdesigner小教程

    想必很多同学对processing都比较熟悉了,可以通过processing可以制作各种炫酷视觉效果以及交互。但是在面对较为复杂项目时候,特别是有较多的...

    UDM Lab
  • 如何用sublime优雅的编写processing

    由于最近需要调试电机,通过串口通信一行一行的发数字有点太不优雅,所以最好的交互方法是有一个图形化的上位机,直接用鼠标拖动。所以就想用processing撸一个简...

    UDM Lab
  • 从"前端"Processing 到"后端"Python

    最近的一些小项目,需要在一些processing上面接入一些额外的硬件,比如摄像头的识别定位,激光雷达,手势控制,当然这些processing也是有一些自带的库...

    UDM Lab
  • Spring@Enable模块装配

    首先要说一下版本相关,Spring Framework3.1开始引入了@Enable注解。

    田维常
  • Android工程模块化平台的设计

    首先自我介绍一下:我叫张涛,目前就职于饿了么移动技术部。可能有些朋友认识我,我之前也会在我博客【开源实验室】写一些Android相关的技术点。

    用户1740424
  • Android工程模块化平台的设计

    用户1907613
  • ABP框架 - 模块系统

    我思故我在
  • 同步模块模式

    同步模块模式SMD是请求发出后,无论模块是否存在,立即执行后续的逻辑,实现模块开发中对模块的立即引用,模块化是将复杂的系统分解为高内聚、低耦合模块,同步模块模式...

    WindrunnerMax
  • Python|常用的几个模块

    首先我们先来了解一下什么是python模块?为了方便编写可维护的代码,我们会把很多函数进行分组,分别放到不同的文件里,这样的话,每个文件包含的代码就会相对较少一...

    数据山谷
  • 聊一聊ABP vNext的模块化系统

    在 Abp vNext 框架里面,模块系统是整个框架的基石,了解了模块系统以后,对于剩下的设计就很好理解了。

    心莱科技雪雁

扫码关注云+社区

领取腾讯云代金券