技术宅的结界

 找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 294|回复: 3
收起左侧

【STM32】3D打印一个可以正好嵌入ILI9341(带XPT2046触控)屏幕模块和STM32最小开发板的盒子

[复制链接]

1010

主题

2246

帖子

5万

积分

用户组: 管理员

一只技术宅

UID
1
精华
200
威望
265 点
宅币
16897 个
贡献
33722 次
宅之契约
0 份
在线时间
1608 小时
注册时间
2014-1-26
发表于 2018-11-21 07:23:54 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有帐号?立即注册→加入我们

x
一开始只打算做个裸的,先把控制触屏的功能实现了。为了不让它接触不良,我把杜邦线都焊上去了,却发现:

QQ图片20181121043117.jpg

这些杜邦线里面有一根里面似乎断了……

这我就郁闷了。每次要调试的时候都要先插上线,然后拿着它做测试,拿着的话免不了扭动它的那些线,然后运气不好的话这些线就会被扭断。
为了防止它总是进行不必要的活动,我决定给它做个外壳,以便于固定住它。

首先我用尺子量了它的各项尺寸,然后用maya建模。先把开发板和屏幕模块的模型做了,以便于用作参考来做它的盒子。

908E2A954D45FBFD833B3CC48E2F24B2.jpg
大致如下:
  1. STM32板子:53mm x 23mm
  2. 屏幕模块:50mm x 86mm
  3. 屏幕:50mm x 69mm
  4. 孔(中心)的位置:测边距3mm 上边距4.7mm 下边距7.9mm
  5. 内径:3.5mm
  6. SD卡的位置:距离上边从25mm开始到53mm结束,深度16.5mm,距离侧边1mm
复制代码
front.png

ba.png

我的设想是把盒子做成上下两块可以合起来的那种,然后互相顶住里面的板子和屏幕模块等。

ol.png

top.png

然后我就开始建模了——从一个立方体开始拉伸它的尺寸,然后各种挤出——这是最常用的建模操作,通过挤出来获得更多的面,再用焊接来合并一些多余的顶点和边。

moderingu.png

其实我第一次建模的时候,忘了给屏幕的排线留出空间——我选择直接用钳子把不要的部分掰掉。
其实切片软件(我用的是Makerbot)对模型文件的要求挺苛刻的,模型不能有BUG。你不能简单地把两个立方体嵌在一起就导出obj、stl了,这样会让切片软件分不清哪里是内哪里是外。
而且导出OBJ后,你还要用记事本等文本编辑器打开你导出的obj文件,看有没有哪个face同时连接了超过4个的顶点。

20181121053851.png

如图所示,一个f表示一个face(面),一个面最多连接4个顶点,超过了的话,我用的这个切片软件显示的模型就会“镂空”。因为它不知道obj的face的顶点是按照什么顺序排列的——有三角形表、三角形扇、三角形带等。事实上,很多切片软件都不能处理这个。
所以你需要检查几乎所有的面,然后用多切割工具手动连接各个顶点,保证每个多边形的边数不大于4。

mcut.png

这其实相当耗时,不过做起来也简单,就是连接各个顶点而已。可以交给刚学Maya建模、对Maya的操作感兴趣的人去做。(然后我就忽悠我的同学去帮我连接顶点了——毕竟对方也想多练习练习Maya的操作)

连接了所有的顶点后,你依然要检查有没有隐藏的BUG,比如夹在两条边的缝隙里面的面。我经常在挤出多边形后,再用焊接去掉多余顶点的时候,发现焊不上。这其实是有隐藏的多边形在里面碍事。而且这些隐藏的多边形还会妨碍切片软件,我的切片软件会因此减慢导出x3g文件的速度,并且让导出的x3g文件变大。实际打印的时候,我就看那个喷头原地懵哔,然后颤抖……不过片刻后它又恢复到正常的工作里了。

ul.png
(图上为隐藏面。它原先是面积为零的面,它右边那个钝角相连的边在被我揪出来以前,wobingb我在试图用多切割工具将左面的顶点与这条边上的顶点相连时)

其实这有一个很“作弊”的方法可以快速找出BUG。按3键看它的平滑预览,找到黑色的面,然后将其除去。

3func.png

这虽然看起来很魔性,犹如高温熔化的塑料,传达着慵懒与无力带来的对自己的无能的负罪感——但我把它的黑面一点点去掉了,所以没有问题。

mo.png

经过一番折腾后,我把盒子的两个部分都建模好了。然后我把它用切片软件切片后拿去3D打印,结果却并不理想——尺寸缩水了。要是再大1mm或许就能把屏幕放上去了。
而且因为模型BUG,四根包含了螺丝孔的柱子都没有被打印出来——这些柱子我是用Maya建模工具里面的“布尔”->“差集”去排除掉4个圆柱体来做的,但那些顶点并没有连接到就近的顶点,换句话说就是螺丝孔附近的多边形是个边数非常多的BUG多边形——Maya能正常显示,但导出obj后切片软件却不能正常显示,这也是我当时意识到需要用多切割工具来好好处理这些边的原因。

8D8037C31C550BBC7C66F65268B86918.jpg

随后我修复了模型中的所有BUG,稍微放大了一下模型,并且重试打印,这次终于成功了,屏幕也可以被完美地放下去。
但我发现我给STM32开发板留出来的空间并不够,它的BOOT0、BOOT1的跳线针的位置其实很高,并且后面的排线其实挺粗的,合上盖子就会很压迫这些线。
后面我干脆把它的跳线针焊下来掰成U字形,再焊回去,“钦定”了跳线。

IMG_1113.jpg

IMG_1119.jpg

这样确实可以很吻合地放进去了,合上盒子的时候它还会发出令人感到非常舒适的“咔”的声音,严丝合缝。并且螺丝孔的位置也是对的。但排线还是非常压迫的。我干脆换成细铜丝,就不压迫了。
此外我手上的20mm螺丝其实长度非常捉鸡,很微妙地从出口伸出1mm,根本不够拧上螺母。

IMG_1138.png

IMG_1158.jpg

顺手用Maya的Arnold渲染器渲染一下场景。说起来,Arnold渲染器是一个纯CPU的渲染器,它能让你真切体会到牙膏十分不够用。渲染的时候,鼠标都动不了。打开任务管理器,看到8个CPU逻辑核心都被用到100%。
它要是用GPU的话,做个基于三角形面片模型的光线追踪,或许能渲染得更快一些吧……然而我这个画面渲染了好久(没计时。一桶杯面的时间吧。)

case_bottom.png

case_top.png

rendered.png

(真好看啊……)

但当我想制作第二个这种玩意儿的时候,我再也不想把BOOT0和BOOT1的跳线针焊下来了——太麻烦了,而且它用的焊锡似乎熔点略高,我的焊锡糊上去后它依然纹丝不动。
于是我决定继续修改模型,让它足够高,能容下完整的STM32最小开发板。
此外,我还调整了USB口的位置,并且给USB口也做了个柱子,它能抵住USB口使其像那个SD卡的口一样稳固。
我还重新调整了排线位置处的那个“墙”,这样下次打印我就不用费尽拿钳子掰了。

IMG_1129.png

usb_port.png

橙色的3D打印耗材真好看。这东西做好以后,它甚至让我想到了上个世纪90年代流行的各种小型游戏机。

IMG_1118.png

确实很好看,四四方方的,SWD口接出4个颜色的线,蓝色是接地,橙色是电源,黄色是数据,绿色是时钟。
对于STM32板子的固定,我在外壳的地方加了个卡槽,上部的盒子拦住板子不让它前后滑动,而下部的盒子则抵住板子不让它上下活动。这样板子就被完美地固定好了。

usbp.png

写了个程序,让屏幕显示东西。因为不知道显示什么比较好,就干脆让它卵显示了(颜色用“彩虹色”计算,然后坐标随机画2x2点,检测到触控的时候在触控位置画彩虹色的4x4点,以及以时钟值作为x和y画“流星”)

5C384577A9757A7902FD653CCBBA9B4F.gif

现在它已经能被我很稳固地放置在一个便于观察的地方了。调试的时候就可以不用那么麻烦了。

91ED7951896C5D8F669AD5D5BFF18DA3.gif

这东西能干啥呢?暂时不知道。它的盒子里依然有空间可以放别的东西,比如电池等。它有个SD卡插槽,有个触屏,然后STM32自己有温度传感器等。以及,它可以充当一个USB设备来运行。感觉可以当作“原型机”被用于做各种别的东西(最直观的就是游戏机了吧)
经过多次测试,我终于浪费完了我的所有橙色耗材。新买的备用耗材是黑色的,然后屏幕在没开机的时候也是黑色的——怎么想都觉得应该不会很好看吧……

IMG_1139.png

来了……本当丑爆。而且我买的这个黑色耗材很差,它拉丝。我是打印完了后再用打火机上上下下烤了一遍才稍微平整点的。
不过和橙色的做对比的话,橙色那个其实USB口并不是十分严丝合缝。黑色这个USB口被我微调后,很稳。

最后渲染一下USB口和SW调试口。感觉像一个工厂的入口一样,里面藏着秘密兵器。我感觉我可以把这个模型拿去做成游戏地图了。

usb_port (2).png

swd_port.png

顺便放出OBJ文件。做了好久的模型感觉好累……
case_front.zip (13.55 KB, 下载次数: 0, 售价: 10 个宅币)

0

主题

3

帖子

27

积分

用户组: 初·技术宅

UID
4330
精华
0
威望
0 点
宅币
24 个
贡献
0 次
宅之契约
0 份
在线时间
2 小时
注册时间
2018-9-29
发表于 2018-11-22 01:01:35 | 显示全部楼层
本帖最后由 青山彦樹 于 2018-11-22 01:05 编辑

目睹全程以后,发现3DCG这课必须要学啊,真tnd有用!

1

主题

9

帖子

234

积分

用户组: 中·技术宅

UID
4533
精华
0
威望
22 点
宅币
131 个
贡献
50 次
宅之契约
0 份
在线时间
3 小时
注册时间
2018-12-5
发表于 2018-12-5 18:13:48 | 显示全部楼层
看了楼主的过程,各种修补模型……maya还是不适合拿来做工业模型呢!

楼主要不试试SolidWorks?我平时做模型没有修补点之类的步骤,都是直接导出的

1010

主题

2246

帖子

5万

积分

用户组: 管理员

一只技术宅

UID
1
精华
200
威望
265 点
宅币
16897 个
贡献
33722 次
宅之契约
0 份
在线时间
1608 小时
注册时间
2014-1-26
 楼主| 发表于 2018-12-5 20:05:43 | 显示全部楼层
tomwillow 发表于 2018-12-5 18:13
看了楼主的过程,各种修补模型……maya还是不适合拿来做工业模型呢!

楼主要不试试SolidWorks?我平时做模 ...

确实,不过我也有办法临时解决多边形连接的顶点过多的问题。我写了一个工具可以用于把一个复杂的obj模型里面的多边形转换为多个三角形组成的图形,这样的话再丢给切片软件就没问题了。

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|技术宅的结界 ( 滇ICP备16008837号|网站地图

GMT+8, 2018-12-15 10:04 , Processed in 0.120364 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表