文档章节

玩转树莓派-RaspBerry,3D打印个御用外壳

openthings
 openthings
发布于 2015/03/17 09:28
字数 795
阅读 1534
收藏 3

网上已经有很多种外壳出售,可以直接购买。

但你也许不满意与别人雷同,想要做出自己的创意,或者是要满足一些特殊的需求。

那么用先进的3D打印技术,将很容易实现这一点。

即使没有3D打印机,也没有关系,您可以使用OpenSCAD来设计一个,然后到某宝上找个3D打印店发送过去,做好了的东东过几天就快递到手了。

如果有3D打印机,没有那么多时间去设计,嗯,到Thingiverse上下一个就可以了。为了便于修改,推荐下载OpenSCAD格式的模型(在搜索框输入OpenSCAD即可)。

嗯,其实我们也可以完全自己去全新设计一个,上图:

下面附上原始代码,有兴趣的朋友可以拷下来自己研究修改,如果发现问题或者有新的创意,也欢迎共享出来,一起完善。

//RaspBerry B+外壳
//注意:树莓派其它版本有所不同,需要修改,否则装不进去哟!
//Author:openthings@163.com.
//copyright 2015-2025.

/*Changelog:
2015-03-05:初步模型。
2015-03-14:修改USB和HDMI的位置,底侧的厚度。
*/

//常量定义
bthick=0.1;    //盒壁厚度
bwidth=5.8;    //内径净宽
bhight=2.5;    //内径净高

blong_inter=11.0;        //内径净长
//外径长度=底厚+内径+挡格+盖子厚度
blong=bthick+blong_inter+bthick*4;


//======================================
//盒子体,采用挖空切割方式造型。
difference() {
    //外盒
    translate([0,0,0])
    {    color([0.8,0.8,0.8])
        cube([blong,bwidth+bthick*4,
            bhight+bthick*3+0.05]);
    }
    //内盒,挖空。
    translate([bthick*2,bthick*2,bthick])
    {    color([0.2,0.8,0.8])
        cube([blong-bthick*5,bwidth,bhight+1]);
    }

    //放置盖子的凹槽。
    translate([bthick,bthick,bhight+0.05])
    {    color([0.5,0.5,0.5])
        cube([blong_inter+bthick*3,
            bwidth+bthick*2,bthick*5]);
    }

    //通风孔。
    //右侧
    translate([0,bwidth+bthick*2,0])
    rotate([90,0,0])
    for (i=[0:12],j=[0:3])
    {    color([0.8,0.2,0.2])
        translate([1.1+i*0.5,0.5+j*0.5,-0.3])
        cylinder(h = 0.4, r = 0.15,$fn=36);
    }
    //左侧
    rotate([90,0,0])
    for (i=[0:12],j=[0:1])
    {    color([0.8,0.2,0.2])
        translate([1.1+i*0.5,1.6+j*0.5,-0.3])
        cylinder(h = 0.4, r = 0.15,$fn=36);
    }

    //MicroUSB接口
    translate([1.0,-0.1,0.5])
    {    color([0.2,0.8,0.8])
        cube([1,0.8,0.35]);
    }
    //HDMI接口
    translate([2.8,-0.1,0.5])
    {    color([0.2,0.8,0.8])
        cube([1.6,0.6,0.6]);
    }
    //音频接口
    translate([5.4,-0.1,0.3])
    {    color([0.2,0.8,0.8])
        cube([0.8,0.6,0.8]);
    }


    //接线面板================
    translate([blong-0.3,0.1,0]){
    translate([bthick*2,bthick*2,bthick*2])
    {    color([0.6,0.3,0.8])
        cube([bthick+1,bwidth-bthick*2,
                bhight-bthick*5]);
    }

    //网线口。
    translate([-0.1,0.65,0.4])
    {    color([1,0.8,0.8])
        cube([1.0,1.2,1.2]);
    }
    //USB接口,挖空。
    translate([-0.1,2.4,0.4])
    {    color([1,0.8,0.8])
        cube([0.8,1.45,1.6]);
    }
    translate([-0.1,4.15,0.4])
    {    color([1,0.8,0.8])
        cube([0.8,1.45,1.6]);
    }

  }
}

//底部加强,在内部形成边角挡格。
//上部
translate([bthick*2,bthick*2,bhight-bthick+0.05])
{    color([0.2,0.5,0.2])
    cube([bthick,bwidth,bthick]);
}
//底部
translate([bthick*2,bthick*2,bthick])
{    color([0.2,0.5,0.2])
    cube([bthick,bwidth,bthick]);
}

//底部,USB接口垫片
translate([bthick*2,bthick*2,bthick])
{    color([0.2,0.5,0.2])
    cube([2.2,bthick*5,bthick*2]);
}

//======================================
//盖子,单独打印。嵌入盒子内部,注意留公差。
translate([0,-6.2,0]){
//translate([bthick,bthick+0.05,
//    bhight+bthick+0.05]){ 
    difference() {
    //盖子,挖空。
    {    color([0.5,0.6,0.6])
        cube([blong_inter+bthick*3-0.04,
            bwidth+bthick*2-0.04,bthick*1.5]);
    }
    //屏幕区域,挖空。
    translate([1.1,bthick*4-0.04,-0.1])
    {    color([0.5,0.6,0.6])
        cube([6.8,5.2,bthick+0.2]);
    }
    //面板,装饰圆孔。
    //rotate([90,0,0])
    for (i=[0:7],j=[0:15])
    {    color([0.8,0.2,0.2])
        translate([8.5+i*0.3,0.65+j*0.3,-0.2])
        cylinder(h = 0.6, r = 0.1,$fn=36);
    }

      }

    translate([0,0.0,bthick])
    {    color([0.8,0.6,0.6])
        cube([0.1,bwidth+bthick*2-0.04,
            bthick*1.5]);
    }
    translate([blong_inter+bthick*2-0.04,0,bthick])
    {    color([0.8,0.6,0.6])
        cube([0.1,bwidth+bthick*2-0.04,
                bthick*1.5]);
    }

    translate([0,0,bthick])
    {    color([0.8,0.6,0.6])
        cube([blong_inter+bthick*3-0.04,0.1,
            bthick*1.5]);
    }
    translate([0,bwidth+bthick-0.04,bthick])
    {    color([0.8,0.6,0.6])
        cube([blong_inter+bthick*3-0.04,0.1,
            bthick*1.5]);
    }

}



© 著作权归作者所有

openthings
粉丝 324
博文 1140
码字总数 689435
作品 1
东城
架构师
私信 提问
第1讲:树莓派购买指南【子豪兄的零基础树莓派教程】

本文介绍了树莓派主板及其外接设备的购买指南。 帮助新手用最少的钱实现全部功能并快速上手。 Bilibili视频教程 文字版、源代码、更新、勘误,请看本教程Github代码仓库: https://github.c...

子豪兄
2018/10/20
0
0
只需一枚树莓派,轻松造个游戏机

编者注:本项目来自Makezine,原作者为David Beauchamp。Makezine给出的项目难度评级为:简单。 你怀恋小时候玩过的小霸王和街机游戏吗?使用RetroPie软件、树莓派和USB游戏控制器,不到一个...

吴攀
2015/12/21
0
0
树莓派笔记02—树莓派硬件环境准备

在开始玩转树莓派之前,我们需要了解下树莓派的硬件配置以及所需要的配件。跟电脑PC机类似,树莓派也需要必要的输入输出设备才能工作。 1. 树莓派3B+ 2018年3月14日,树莓派基金会正式发布新...

TonyCode
2018/08/03
0
0
树莓派使用入门:树莓派上的模拟器和原生 Linux 游戏

树莓派是一个很棒的游戏平台。在我们的系列文章的第九篇中学习如何开始使用树莓派。 回到我们关于树莓派入门系列文章的第五篇,我提到 Minecraft 是一种教孩子们使用游戏平台进行编程的方法。...

作者: Anderson Silva
04/04
0
0
炸裂!小小树莓派要搭上 Google 的人工智能了

2017 年 1 月 23 日,树莓派(Raspberry Pi)在博客上发出了一则公告,表示 Google 在 2017 年将“非常有范儿地来到”树莓派社区,为“创造者(Maker)”们带来一系列智能工具,其中将包含人...

两味真火
2017/01/25
7.9K
9

没有更多内容

加载失败,请刷新页面

加载更多

Kylin构建Cube过程详解

1 前言 在使用Kylin的时候,最重要的一步就是创建cube的模型定义,即指定度量和维度以及一些附加信息,然后对cube进行build,当然我们也可以根据原始表中的某一个string字段(这个字段的格式...

大数据技术进阶
5分钟前
1
0
Git保存密码

保存密码 $ git config --global credential.helper store 参数 --global 设置全局,如果用 --local 则只设置当前库 要注意保存时是用明文保存的,所以不要在公用电脑使用...

编程老陆
6分钟前
1
0
ofcms 说明文档

一、模板说明 项目概述 java 版CMS系统、基于java技术研发的内容管理系统、功能:栏目模板自定义、内容模型自定义、多个站点管理、在线模板页面编辑等功能、代码完全开源、MIT授权协议。 技术...

kuchawyz
13分钟前
2
0
理解CSS相对定位和固定定位

本文转载于:专业的前端网站➦理解CSS相对定位和固定定位 前面的话   一般地,说起定位元素是指position不为static的元素,包括relative、absolute和fixed。前面已经详细介绍过absolute绝对...

前端老手
24分钟前
2
0
iOS Xcode升级包地址(感谢大神)

下载地址:DeviceSupport

_____1____
38分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部