先16K*16位的RAM芯片构成128K*32位dsp芯片的存储器.需要 的片选. 逻辑图怎么画

【图文】习题课3章_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
&&计算机组成原理
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢硕士/研究生
&&&&&&DOC文档下载
游客快捷下载
会员登录下载
下载资源需要20元
邮箱/手机号:
您支付成功后,系统会自动为您创建此邮箱/手机号的账号,密码跟您输入的邮箱/手机号一致,以方便您下次登录下载和查看订单。
支付方式:
已注册用户请登录:
当日自动登录&&
&&合作网站一键登录:
1、本站资源不支持迅雷下载,请使用浏览器直接下载(不支持QQ浏览器);
2、文档下载后都不会有金锄头文库的水印,预览文档经过压缩,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、所有文档都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的,可以点击右侧栏的客服对话;
下载须知 | 常见问题汇总
计算机组成原理习题答案3
第3章习题参考答案1第3章习题参考答案1、设有一个具有20位地址和32位字长的存储器,问1该存储器能存储多少字节的信息2如果存储器由512K8位SRAM芯片组成,需要多少片3需要多少位地址作芯片选择解1该存储器能存储字节4M320??2需要片K3用512K?8位的芯片构成字长为32位的存储器,则需要每4片为一组进行字长的位数扩展,然后再由2组进行存储器容量的扩展。所以只需一位最高位地址进行芯片选择。2、已知某64位机主存采用半导体存储器,其地址码为26位,若使用4M8位的DRAM芯片组成该机所允许的最大主存空间,并选用内存条结构形式,问;1若每个内存条为16M64位,共需几个内存条2每个内存条内共有多少DRAM芯片3主存共需多少DRAM芯片CPU如何选择各内存条解1共需内存条条4612??M2每个内存条内共有个芯片32861??3主存共需多少个RAM芯片,共有4个内存条,18426故CPU选择内存条用最高两位地址A24和A25通过24译码器实现;其余的24根地址线用于内存条内部单元的选择。3、用16K8位的DRAM芯片构成64K32位存储器,要求1画出该存储器的组成逻辑框图。2设存储器读/写周期为05ΜS,CPU在1ΜS内至少要访问一次。试问采用哪种刷新方式比较合理两次刷新的最大时间间隔是多少对全部存储单元刷新一遍所需的实际刷新时间是多少解1用16K8位的DRAM芯片构成64K32位存储器,需要用个芯片,其中每4片为一组构成16K32位进行字长位??K第3章习题参考答案2数扩展一组内的4个芯片只有数据信号线不互连分别接D0?D7、D8?D15、D16?D23和D24?D31,其余同名引脚互连,需要低14位地址A0?A13作为模块内各个芯片的内部单元地址分成行、列地址两次由A0?A6引脚输入;然后再由4组进行存储器容量扩展,用高两位地址A14、A15通过24译码器实现4组中选择一组。画出逻辑框图如下。CPUD0?D31RAS0RAS1RAS2RAS3A0?A13A14A15A0?A6A0?A6A0?A6A0?A6WEWE24译码RASD0?7D8?15D16?23D24?31D0?7D8?15D16?23D24?31D0?7D8?15D16?23D24?31D0?7D8?15D16?23D24?31WEWEWERASRASRAS2设刷新周期为2MS,并设16K?8位的DRAM结构是128?128?8存储阵列,则对所有单元全部刷新一遍需要128次每次刷新一行,共128行若采用集中式刷新,则每2MS中的最后128?05?S64?S为集中刷新时间,不能进行正常读写,即存在64?S的死时间若采用分散式刷新,则每1?S只能访问一次主存,而题目要求CPU在1ΜS内至少要访问一次,也就是说访问主存的时间间隔越短越好,故此方法也不是最适合的比较适合采用异步式刷新采用异步刷新方式,则两次刷新操作的最大时间间隔为,可取SMS??S;对全部存储单元刷新一遍所需的实际刷新时间为155?S?1281984MS;采用这种方式,每155?S中有05?S用于刷新,其余的时间用于访存大部分时间中1?S可以访问两次内存。4、有一个1024K32位的存储器,由128K8位的DRAM芯片构成。问1总共需要多少DRAM芯片2设计此存储体组成框图。3采用异步刷新方式,如单元刷新间隔不超过8MS,则刷新信号周期是多少解第3章习题参考答案31需要片,每4片为一组,共需8组3281204??K2设计此存储体组成框图如下所示。CPUD0?D31RAS0A0?A16A17A18A0?A8WEWE38译码RASD0?7D8?15D16?23D24?31D0?7D8?15D16?23D24?31D0?7D8?15D16?23D24?31D0?7D8?15D16?23D24?31WEWEWECPUA0?A16WED0?7D8?15D16?23D24?31D0?7D8?15D16?23D24?31D0?7D8?15D16?23D24?31D0?7D8?15D16?23D24?31A19RAS0RAS1RAS2RAS3RAS4RAS5RAS6RAS7RAS1RAS2RAS3RAS4RAS5RAS6RAS7WE3设该128K?8位的DRAM芯片的存储阵列为512?256?8结构,则如果选择一个行地址进行刷新,刷新地址为A0?A8,那么该行上的2048个存储元同时进行刷新,要求单元刷新间隔不超过8MS,即要在8MS内进行512次刷新操作。采用异步刷新方式时需要每隔进行一次,可取刷新信号周期为SMS??S。5、要求用256KL6位SRAM芯片设计1024K32位的存储器。SRAM芯片有两个控制端当CS有效时,该片选中。当W/R=1时执行读操作,当W/R0时执行写操作。解,共需8片,分为4组,每组2片片1625304??K即所设计的存储器单元数为1M,字长为32,故地址长度为20位(A19A0),第3章习题参考答案4所用芯片存储单元数为256K,字长为16位,故占用的地址长度为18位(A17A0)。由此可用字长位数扩展与字单元数扩展相结合的方法组成组成整个存储器字长位数扩展同一组中2个芯片的数据线,一个与数据总线的D15D0相连,一个与D31D16相连;其余信号线公用地址线、片选信号、读写信号同名引脚互连字单元数扩展4组RAM芯片,使用一片24译码器,各组除片选信号外,其余信号线公用。其存储器结构如图所示256K?16CPUA0?A17D0?D15A18W/R24译码D16?31A1K?1?D3K?1K?16D0?15CSY0CSCSCSY1Y2Y3A0?A17D0?D15W/RW/R6、用32K8位的E2PROM芯片组成128K16位的只读存储器,试问1数据寄存器多少位2地址寄存器多少位3共需多少个E2PROM芯片4画出此存储器组成框图。解1系统16位数据,所以数据寄存器16位2系统地址128K=217,所以地址寄存器17位3共需,分为4组,每组2片片83168??K4组成框图如下第3章习题参考答案532K?8CPUA0?A14D0?7A15W/R24译码AK?832K?832K?832K?832K?832K?8D0?7CSY0CSCSCSY1Y2Y3A0?A14D0?D7D8?15数据寄存器地址寄存器D8?15W/RW/R7.某机器中,已知配有一个地址空间为0000H?3FFFH的ROM区域。现在再用一个RAM芯片8K8形成40KL6位的RAM区域,起始地为6000H。假设RAM芯片有和信号控制端。CPU的地址总线为A15?A0,数据总线为D15?D0,CSWE控制信号为读/写,访存,要求RMREQ1画出地址译码方案。2将ROM与RAM同CPU连接。解1由于RAM芯片的容量是8K8,要构成40K16的RAM区域,共需要,分为5组,每组2片;8K213,故低位地址为13位片108640??KA12A0每组的2片位并联,进行字长的位扩展有5组RAM芯片,故用于组间选择的译码器使用38译码器,用高3位地址A15A13作译码器的选择输入信号地址分配情况各芯片组各组地址区间A15A14A13138的有效输出IYROM0000H?3FFFH0000第3章习题参考答案RAM16000H?7FFFH0113RAM28000H?9FFFH1004YRAM3A000H?BFFFH1015RAM4C000H?DFFFH1106RAM5E000H?FFFFH1117Y注RAM1?RAM5各由2片8K?8芯片组成,进行字长位扩展各芯片组内部的单元地址是A12A0由全0到全12ROM、RAM与CPU的连接如图8K?8CPUA0?A12D8?15A15R/W38译码A148K?88K?88K?88K?88K?88K?88K?8CSY0CSCSCSY2Y4Y6A0?A12D0?D7D0?7D0?7WEA0?A12WEA13MREQE8K?88K?8D8?15CSCSCSCSCSCSROM16K?8OEY1Y3Y5Y78、设存储器容量为64M,字长为64位,模块数M8,分别用顺序和交叉方式进行组织。存储周期T=100NS,数据总线宽度为64位,总线传送周期,?50NS。求顺序存储器和交叉存储器的带宽各是多少第3章习题参考答案7解顺序存储器和交叉存储器连续读出M8个字的信息总量都是Q64位8512位顺序存储器和交叉存储器连续读出8个字所需的时间分别是T1MTST2TM1Τ100NS750NS450NS45107S顺序存储器和交叉存储器的带宽分别是W1Q/T07位/SW2Q/T38107位/S9、CPU执行一段程序时,CACHE完成存取的次数为2420次,主存完成存取的次数为80次,已知CACHE存储周期为40NS,主存存储周期为240NS,求CACHE/主存系统的效率和平均访问时间。解CACHE的命中率896024???MCNH主存慢于CACHE的倍率60CTRCACHE/主存系统的效率?????HRE平均访问时间NSETCA482010、已知CACHE存储周期40NS,主存存储周期200NS,CACHE/主存系统平均访问时间为50NS,求CACHE的
本文(计算机组成原理习题答案3)为本站会员(笛音)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“”【网址:】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
分享当前资源【计算机组成原理习题答案3】到朋友圈,您即可以免费下载此资源!
微信扫一扫分享到朋友圈
操作提示:任选上面一个二维码,打开微信,点击“发现”使用“扫一扫”,即可将选择的网页分享到朋友圈
您可能感兴趣的------------------------------------------------------------------------------------------------------
元price_share
&|&川公网安备 12号&|&经营许可证(蜀ICP备号-1)(C) by Sichuan Goldhoe Inc. All Rights Reserved.
&strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>一、&/span>&/strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>本站提供全自助服务,购买后点击下载按钮可以下载到你电脑或手机(系统不会发送文档到您的邮箱),请注意查看下载存放位置;&/span>&/p>&p>&strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>二、&/span>&/strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>本站具有防盗链功能,所以不要使用迅雷、旋风、网际快车等第三方辅助下载工具(不支持&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>QQ浏览器&/span>),否则下载下来的文件只是网页或乱码;&/span>&br/>&/p>&p>&strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>三、&/span>&/strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>由于网络原因、下载知识欠缺、本地电脑&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>或&/span>手机阻止下载等问题无法解决时,需要提供以下&/span>&span style=&font-family: 微软雅黑, &Microsoft YaHei&; color: rgb(255, 0, 0);&>任意一条信息&/span>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>给我们,我们才能更及时地为你服务:&/span>&br/>&/p>&p>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>3.1、如果是注册的会员,请告诉我们你的会员账号;&/span>&/p>&p>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>3.2、如果是游客下载的,请告诉我们你下载时填写的手机或者邮箱;&/span>&/p>&p>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>3.3、如果是微信或QQ快捷登陆的,请告诉我们你的微信或QQ昵称;&/span>&/p>&p>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>3.4、如果这些你仍然无法确定,请告诉我们你的付款单号(我们可以通过单号反过来查询你的账号和下载记录)&/span>&a href=&http://www.jinchutou.com/i-93.html& target=&_blank& style=&text-decoration: color: rgb(255, 192, 0); font-family: 微软雅黑, &Microsoft YaHei&;&>&span style=&color: rgb(255, 192, 0); font-family: 微软雅黑, &Microsoft YaHei&;&>看看什么是单号?&/span>&/a>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>;&/span>&/p>&p>&strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>四、&/span>&/strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>需要下载哪份文档,请发送文档网址,而不是截图,更不要直接把标题给我们;&/span>&br/>&/p>&p>&strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>五、&/span>&/strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>其它下载常见问题详见:&/span>&a href=&http://www.jinchutou.com/info-0-23-1.html& target=&_blank& style=&font-family: 微软雅黑, &Microsoft YaHei&;&>http://www.jinchutou.com/info-0-23-1.html&/a>&br/>&/p>&p>&br/>&/p>" />
?&/span>&span id=&_baidu_bookmark_start_4& style=&display: line-height: 0&>?&/span>&p>&span style=&font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>& & 鉴于本网发布稿件来源广泛、数量较多, 系统审核过程只针对存在明显违法有害内容(如色情、暴力、反动、危害社会治安及公共安全等公安部门明文规定的违法内容)进行处理,难以逐一核准作者身份及核验所发布的内容是否存在侵权事宜, 如果著作权人发现本网已转载或摘编了其拥有著作权的作品或对稿酬有疑议, 请及时与本网联系删除。&/span>&/p>&p>&strong style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 white-space: background-color: rgb(255, 255, 255);&>& & 侵权处理办法参考版权提示一文:&/strong>&a href=&http://www.jinchutou.com/h-59.html& target=&_blank& textvalue=&http://www.jinchutou.com/h-59.html&>http://www.jinchutou.com/h-59.html&/a>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>&&/span>&/p>&p>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>1、如涉及内容过多,需要发送邮箱,请电子邮箱到,我们会及时处理;&/span>&/p>&p>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>2、系统一旦删除后,文档肯定是不能下载了的,但展示页面缓存需要一段时间才能清空,请耐心等待2-6小时;&/span>&/p>&p>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>3、请版权所有人(单位)提供最起码的证明(证明版权所有人),以便我们尽快查处上传人;&/span>&/p>&p>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>4、请文明对话,友好处理;&/span>&/p>&p>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>5、为了杜绝以前再有类似的侵权事情,可以为我们提供相应的关键字,便于管理人员添加到系统后能有效排除和抵制与您(贵单位)相关版权作品上传;&/span>&/p>&span id=&_baidu_bookmark_end_5& style=&display: line-height: 0&>?&/span>&span id=&_baidu_bookmark_end_3& style=&display: line-height: 0&>?&/span>" />
&span style=&color: rgb(85, 85, 85); font-family: 微软雅黑; background-color: rgb(255, 255, 255);&>& & 为了维护合法,安定的网络环境,本着开放包容的心态共建共享金锄头文库平台,请各位上传人本着自律和责任心共享发布有价值的文档;本站客服对于上传人服务前,有以下几点可提前参阅:&/span>&/p>&p>&span style=&color: rgb(85, 85, 85); font-family: 微软雅黑; background-color: rgb(255, 255, 255);&>1、本站上传会员收益见:&a href=&http://www.jinchutou.com/h-36.html& target=&_blank&>http://www.jinchutou.com/h-36.html&/a> &/span>&/p>&p>2、本站不会为任何刚注册的上传会员特批解除上传限制,普通会员每天可以上传50份,值班经值会审核其上传内容,请自行观察自己上传的文档哪些在“临时转换中”(审核通过),哪些在审核拒绝中,连续坚持几天都没有任何文档被拒的情况下,根据文档质量和发布分类是否正常等考量合格后值班经理会特批升级会员等级,相应的权益也同时上升。&/p>&p>3、上传人本着友好、合作、共建、共享的原则,请耐心仔细的查看《&a href=&http://www.jinchutou.com/i-143.html& target=&_blank&>违禁作品内容处理规则》;&/a>&a href=&http://www.jinchutou.com/i-143.html& target=&_blank&>http://www.jinchutou.com/i-143.html&/a>&/p>&p>4、上传人可以观注本站公告,查看其它被公示永久封禁的原因&a href=&http://www.jinchutou.com/news-1.html& target=&_blank&>http://www.jinchutou.com/news-1.html&/a>&/p>&p>5、其它问题可以参阅上传常见问题指引:&a href=&http://www.jinchutou.com/info-0-25-1.html& target=&_blank&>http://www.jinchutou.com/info-0-25-1.html&/a>&/p>" />打印虎原创 | 打印虎原创教程 | 打印虎 3D打印模型大全 STL文件打包免费下载
模型,三维模型搜索,三维模型,打印虎,3D打印机,3D建模,免费下载">
3D打印模型大全 免费下载
近年来,全国各大城市雾霾的问题越来越严重,已经显著影响到大家的健康,到了必须引起重视的时刻了。为了让家人对PM2.5的情况有个了解,心中有数,虎哥专门研究了一下PM2.5检测器。研究之后,发现目前PM2.5检测器完全可以自己动手制作。虎哥作为一个DIY爱好者,自然心痒难耐,要自己动手搞一搞了。
经过一段时间的摸索,我总算完成了DIY PM2.5检测器的设计和制作。独乐乐不如众乐乐,为了让朋友们有一个健康的生活环境,以最便宜的价格获得一个PM2.5检测器,也为了让大家在制作过程中学习到一点单片机软硬件设计,以及一点点外观结构设计知识,我决定把PM2.5检测器的全部原始资料开源,作为2017年新春的礼物送给大家。源代码包下载链接在文章的末尾处,不想看文章的朋友可以直接把滚动条拉到最后下载。
在Arduino UNO上实现创意
在介绍设计细节之前,我们还是先说一下PM2.5检测器的设计需求。首先,我们需要的是一个PM2.5检测器。因此,具有测量PM2.5数值的功能,并且测试数值相对准确,是我们这个设计的第一项需求。第二,我希望设计一个结构简单、易于理解、易于制作、面向教学的PM2.5检测器。因此,“简易”这个条件可以算是另一项需求了。仔细想想,大概也就是这两项设计需求。在满足这些要求的前提下,我们的设计就要开始了。
电路方面,为了让整个设计简单易学,我采用了Arduino UNO作为电路设计基础。在第一节和第二节中,我会首先使用Arduino UNO对这个项目进行原始设计和测试,当测试通过之后,我会再进行PCB电路板的设计(第三节),以及外壳的设计(第四节)。这也就决定了,这个项目的MCU,将使用Arduino UNO的核心元器件ATMega328P。
作为一个PM2.5检测器,必然需要有PM2.5的检测模块。在这个项目中,我采用了国产的攀藤G7作为PM2.5检测模块。这个模块尺寸比较小,测量精度似乎也还可以。有了PM2.5检测模块,还需要一个显示屏输出信息。因为我们并没有太多信息需要展示出来,因此我选择的简单的1602LCD,这个屏幕可以显示16列2行字母或数字信息,足够用了。
总体来说,这个项目的结构非常简单,如图所示。
在面包板上搭建电路的话,需要如下元器件:
Arduino UNO
1602LCD(需要单排针引脚)
攀藤G7传感器
1/4W直插色环电阻
1.27mm到2.54mm转接板
1.27mm 2x5pin
2.54mm 2x5pin
导线(杜邦线)
上图给出了一个示意图。右上角的2*5针接口代表了攀藤G7的输出接口。攀藤G7的实际上是这个样子的:
这里有一个需要注意的问题:攀藤G7的接口,并不是2.54mm的接口,而是更小的1.27mm接口。为了用杜邦线接上这个接口,我们需要一个转接板:
这样的转接板,我们不使用中间的2.0mm的部分,只使用1.27mm以及2.54mm的部分。焊接上两个2x5pin的母头之后,攀藤G7就可以用杜邦线连接了。
按照上面的介绍,就可以搭建面包板试验环境了。如果稍懂一些数字电路知识的话,可以看出这个连接非常简单,其中包括了电源和地的连接,以及数据线的连接。对于LCD1602来说,我们连接了所有的数据线,至单片机的GPIO端口。之后我们会在软件中通过操作这些端口电平高低的方式,把内容输出到LCD1602上。对于攀藤G7来说,我们只连接了它的串口输出,至单片机的串口输入(RXD,端口0),这样,我们就可以接收到从攀藤G7串口输出的所有内容了。
更具体的细节信息,可以参考Arduino UNO的设计文档,以及ATMega328P、攀藤G7、LCD1602的说明书(数据手册)。在这些资料中,详细说明了模块每一个引脚的功能。详细介绍需要大量的篇幅,有兴趣的朋友可以找说明书以及介绍单片机编程的书籍来深入学习,我们这里就略过了。攀藤G7以及LCD1602这两个说明书,包含在了PM2.5源代码包中,文章末尾处有下载链接,可以下载。
Arduino软件刷入
如果你按照上一节的方式,连接好了电路板,就可以使用Arduino提供的软件环境,给Arduino UNO刷入软件了。我们提供的软件源代码,可以在PM2.5源代码包中的PM2.5目录下找到,文件名是pm2.5.ino,可以用Arduino打开。我用的是Arduino 1.6.13版,如果最新的1.8.x版使用有问题的话,可以下载这个旧版本使用。
软件刷入非常简单,把Arduino主板插入电脑的USB端口之后,Windows会自动安装驱动(如果是正版Windows)。如果驱动安装有问题,可以百度查询Arduino驱动安装的方法。驱动安装完成之后,在Windows设备管理器中可以看到:
你的COM端口号数字可能与我不同,没有关系,等一会刷入的时候,在Arduino软件中可以选择这个端口号。
然后是安装、启动Arduino。当然,如果你还没有下载Arduino的话,要先下载。如何下载、安装Arduino这里就不讲了,如果有需要可以百度。因为Arduino安装包尺寸比较大,源代码包里面也不包含Arduino安装包。
启动Arduino之后,可以看到这样一个界面。
在这个界面上,点击菜单“文件”-“打开…”,并找到源代码包中的pm2.5.ino文件,打开这个文件。观察窗口的右下角,如果显示的是Arduino/Genuino Uno,以及刚才在设备管理器中看到的COM端口号,那就可以按下向右的箭头,开始刷入软件了。否则,要先通过菜单“工具”-“开发板”以及“工具”-“端口”进行调整。
按下箭头之后等一会,一般需要一分钟左右,可以看到Arduino UNO主板上的一些LED闪烁,再之后,就可以看到Arduino软件显示“上传成功”。
如果这里有失败信息,最常见的问题是你的USB线接触不良,或者使用的Arduino版本不对导致的。检查一下再重试吧。
这里需要特别提示一点,由于Arduino UNO刷入固件的时候,需要用RXD端口,因此这时候RXD端口不能与攀藤G7连接。要把连接Arduino UNO以及攀藤G7的数据线(上面示意图中的蓝色线)拔下之后,才能正确刷入软件。刷入完成之后,再连接上,这时应该可以看到显示屏上的输出信息了!
下面,给对软件开发有兴趣的朋友,简单解释一下软件的结构,方便大家对软件的学习和改造。如果对C语言还不了解,或者对软件开发不感兴趣,可以略过这一段。首先是开头的数据引脚的定义。可以看到,从数据引脚2到13,全部使用上了。其中引脚2到12连接到了攀藤G7,引脚13对应的是Arduino板子上的LED灯,与输入的攀藤G7或者输出的LCD1602并没有连接。
下面的5个函数,包括WriteLCM, WriteDataLCM, WriteCommandLCM, DisplayOneChar, DisplayListChar,都是用于输出内容到LCD1602的。具体的写入协议,请查看其它相关的教程,或者LCD1602的数据手册,这里就不细讲了。这一组函数的对外接口,是DisplayListChar,用于将一个字符串显示在屏幕上。其他4个函数,都为DisplayListChar服务。
再下面是setup函数。Setup函数是Arduino的入口函数,负责初始化运行环境。在这个函数中,可以看到对所有数据引脚进行了初始化操作,然后使用一系列WriteCommandLCM调用,初始化了LCD1602。如果想知道这一系列调用起到了什么作用,可以查看数据手册,在数据手册中找到详细的解释。在setup函数的最后,还初始化了串口,等会我们要从串口中读取数据。
最后一个函数是loop函数。Loop函数也是Arduino的入口函数,负责执行程序循环。在这个函数中的内容,会被Arduino反复调用,直到单片机断电为止。对于我们的程序来说,这里面的内容,就是从串行口读入数据,然后显示在LCD1602上。这个过程循环往复,就完成了PM2.5检测器的功能。从代码来看,也不复杂。显示采用一系列Serial类的函数,完成从串行口读取数据的工作。读入的数据是什么格式?这个问题又得去问数据手册了。这次,攀藤G7的数据手册,会解释这个问题。拿到PM2.5的测量数据,我们在数组dispbuf中组成了一个字符串,然后通过刚才提到的DisplayListChar函数,显示在屏幕上。这样,我们就完成了这个单片机上所需的所有软件功能了。
PCB电路板的设计和制作
做完了以上两节的工作,实际上PM2.5检测器(的核心功能)已经运行起来了。只是工作在面包板上,不仅不够美观,也非常不可靠。很容易碰到某一根线,整个系统就不工作了。为了让家人也能放心使用,我决定要做一个PCB板,解决这些问题。
想做一个独立的PCB电路板,首先一个问题就是,是不是整张Arduino电路板都要复制过来呢?如果仔细观察就会发现,Arduino电路板还是很复杂的,如果整张Arduino电路板都要复制过来,那些贴片元件,特别是USB转串口模块的ATMega16U2芯片,是极难手工焊接的。如果用了这样的方案,就只能请代工厂完成焊接工作,不能自己手工DIY了。
经过研究之后,我发现实际上Arduino电路板上,只有少数几个元器件是工作所必须的,而这些元器件,都可以采用直插元件,这样就大大方便了我们的后续焊接工作,让没有什么焊接经验的同学也可以参与到其中了。
经过简化之后的Arduino电路图,如下所示。
简单说明一下。MCU部分,只保留了晶振和晶振匹配电容C2/C3,以及一个给电源稳压的电容C1。LCD1602的V0引脚,通过一个1.5K电阻接地,可以得到最好的对比度效果。另外整个系统的电源,我设计为使用常见的Micro USB接口提供。这样,每天早上起床之后,或者晚上给手机充电之前,可以使用手机充电器连接PM2.5检测器看一下当天的PM2.5值,就不需要再配其他的电源了。从电路设计图上也可以看到,这个口虽然是USB口,但只使用了USB口上提供的+5V电源,并没有USB通讯功能,所以也就不需要USB通讯相关的芯片、软件了。
电路板上一共只有9个独立元器件,需要焊接:
28pin窄DIP插座(用于插入ATMega328P)
2.54mm 1*16排针(用于连接LCD1602)
1.27mm 2*5排母(用于连接攀藤G7)
1/4W直插色环电阻
100nF(104)
直插无源晶振
1*5排针(用于连接USB转DIP转接座)
这样的设计,让即使是初次拿起电烙铁的同学,也完全可以顺利完成焊接,希望能让大家提高兴趣,深入学习了解电子知识。
整个电子设计,使用EAGLE软件完成。国内使用EAGLE软件的朋友相对比较少,但这个软件在国外开源社区非常流行,对于双面、80cm?以内的PCB电路板设计,可以使用免费版完成。我们这个PM2.5检测器,完全符合条件,大家可以直接使用免费版本进行研究和修改。掌握这个软件,还可以帮我们更好的与国际接轨,学习参考国外开源社区的优良设计。(特别提示,Arduino系列电路板,都是使用这个软件完成的设计。想玩转Arduino的朋友,一定要掌握这个软件哦~)
电路板的原始设计文件,也包含在了源代码包中,可以在pcb目录下找到。其中pmpcb.sch和pmpcb.brd文件是原始设计文件,可以直接在EAGLE软件中打开。Gerbers目录下的所有文件,是用于生产的导出后文件。电路板设计完成之后,可以拿到代工厂进行打样。一般一两周之后,我们就可以拿到打样之后的结果啦~
把PCB板上的所有的零件都焊接好,再做好以下几点:
把LCD1602显示屏焊接在单排针上面。这个焊接需要比较注意,要把两层PCB板的对应孔位置对齐,如果歪得太多,安装外壳是螺丝很难穿过去。关键点在于,用电烙铁焊接第一个点和第二个点的时候,要特别注意对齐。焊完三个点以上,如果不借助专门的工具,就很难再调整了。
把USB转DIP转接座焊在单排针上面。与上面第一条情况类似,不重复了。
安装MCU ATMega328P。这里可能需要IC起拔器。这个工具不贵,建议买一个。如果没有这个工具,从IC座上取下芯片可能会比较困难。
安装攀藤G7。这个模块没有安装孔位,如果只是简单插上这个模块,模块和PCB板中间会有一个小缝,而且整体晃动时模块会拍打在电路板上。因此我在模块和PCB板中间贴了一片2cm直径,1mm厚度的双面胶。如下图。
贴上这个双面胶之后,所有问题都解决了。
全部焊接完成之后,整个作品已经可以工作,接近完成了:
这样,在上面的表格之外,完成到这步还需要的元器件包括:
MCU ATMega328P
USB转DIP转接座
2cm直径1mm厚度双面胶
外观设计与安装
最后,让我们给PM2.5检测器增加一个外壳,这样用起来就更加可靠了。这个外壳,我设计使用亚克力板作为前面和后面两面的面板,其他部分使用标准零件连接。这样,我们只需要找到能切割亚克力板的商家,进行一次切割就可以了。
前面和后面的面板,我使用QCAD软件(免费软件)进行设计。设计完成之后,保存为dxf文件,就可以发送给亚克力切割商家了。这个文件也保存在我们的源代码包中,下载后在frame目录下可以看到。使用QCAD打开这个文件如下图所示。
在这里,我们就不详细介绍QCAD的用法了。有兴趣改造目前设计的朋友,可以百度相关的教程。打印虎也曾经写过一个QCAD使用的教程,,可以供大家参考。这个dxf文件实际上只有2D的设计。切割时,要跟商家说好,用4mm厚度的亚克力板进行切割。这个厚度数据是不包含在dxf文件中的。
切割完成之后,我们要先把背板和支撑板安装在一起:
下面,使用M3*8塑料螺丝、螺母以及2.5mm塑料柱,加固PCB电路板USB接口部分。这样,就不怕插拔力量太大对USB接口造成损坏了:
最后只要把前面板、中间的PCB电路板以及后面板组装到一起,就可以了:
总结一下,这一步中需要的零件包括:
M3*16螺丝、螺母、垫片
M3*8塑料螺丝
M3*15塑料螺丝
M3*10双通尼龙柱
M3*15双通尼龙柱
M3尼龙螺帽
2.5mm白色塑料柱
到此为止,全部工作就完成了。是不是特别有成就感呢?
以上所有工作完成之后,你就获得了一个与文章开始处第一张图一样的PM2.5检测器了。当然,所有读到这里的朋友,肯定都有非凡的聪明才智,一定想到了很多可以继续改进的主意。如果你有进一步的改进,也欢迎你开源给后面的朋友,加打印虎QQ,我帮你加到这篇文章中。当然,如果想购买文章中提到的整套零件,也欢迎加我QQ。
文章结尾处,我们做一个小广告。最近宁波爱用推出了最新的迷你3D打印机,相比于目前市面上的机型,这个3D打印机特别小巧灵活,使用注塑外壳,可以达到很不错的精度。还使用了磁性柔性打印平面,让打印时更容易附着,打印完成后更容易取下。而且,最重要的是,这个3D打印机特别便宜,可以点击了解详情。
最后,当然不能忘记的是开源包的下载!点击,可以下载到所有的相关资料。祝大家玩得愉快。
本条目发布于。属于分类。作者是。
第一节、Salai主板介绍
随着3D打印机,特别是面向DIY爱好者的RepRap Prusa i3 3D打印机被越来越多的朋友所了解和熟悉,玩3D打印机的朋友们对现有3D打印机设计的改进也越来越深入,同时对3D打印机的核心部件3D打印机主板的要求也越来越高了。
经典的RepRap Prusa i3 3D打印机的主板,通常采用Melzi或者Arduino Mega 2560 + RAMPS这两种方案之一。在这两种方案中,Melzi方案为全合一的形式,单片PCB板,可靠性高;Arduino Mega 2560 + RAMPS方案采用多块PCB板插接的形式,由1片Arduino 2560,1片RAMPS以及4片步进电机驱动板组成,灵活性高。经过打印虎深入评测对比,我们认为Melzi更适合一般的3D打印机玩家的需求,因此在我们之前的各种对3D打印机的介绍文章中,绝大部分都是以Melzi主板为例的。
虽然我们很喜欢Melzi主板,但它也存在诸多限制,影响我们对3D打印机的深入研究和开发。比如,Melzi主板不能支持双挤出头,这让希望用水溶性耗材作为支撑的朋友就不能选择Melzi主板了;另外Melzi主板采用的CPU主频、内存容量都比较低,这样Melzi主板就只能支持12864 LCD液晶屏,而不能支持更高级的彩色触摸屏。为了解决这些问题,让广大3D打印机爱好者有一块更好用的3D打印机主板,打印虎在Melzi主板的基础上研发了Salai主板,解决了目前Melzi主板的一系列问题,提供给3D打印机DIY爱好者一个更好的选择。
很多朋友都知道,Melzi主板最开始是基于Arduino Leonardo进行的设计改进,而Leonardo就是我们熟知的列奥纳多·达·芬奇,所以Melzi主板的设计者选择了达·芬奇最钟爱的学生Francesco Melzi,弗朗西斯科·梅尔兹作为主板的名字。作为Melzi的改进型,我们选择了达·芬奇的另一名学生,Gian Giacomo Caprotti,吉安·贾科莫·卡普罗蒂,又名Salai(萨莱),作为第二代主板的名字。
达·芬奇《萨莱头像》
Salai主板的主要技术参数包括:
处理器:AT91SAM3X8E,32位ARM核心,512K FLASH ROM,96K SRAM,84MHz主频,可以提供高达80KHz的均匀步进电机步频信号
用户界面采用3.5英寸全彩TFT触摸屏
支持双挤出头,提供5个独立的32细分DRV8825步进电机驱动,直接提供高达2A的步进电机脉冲电流输出
提供3个独立的大功率MOSFET驱动,用于双挤出头加热以及热床加热
支持XYZ结构,CoreXY结构以及三角洲结构3D打印机
支持多种自动调平模式,不论使用哪种机械结构,都有合适的自动调平解决方案
提供Micro SD卡(TF卡)接口以及U盘扩展模块,脱机打印G-code文件
支持机械及光电限位开关,提供更准确的步进电机定位
支持热电偶,提供更精确的温度测量值
支持断电续打,打印完成自动关机
支持引出步进电机信号线,可以外接更大的步进电机驱动模块,驱动更大的步进电机
主要电气连接使用螺丝端子,不需要压线或者焊接
外形尺寸:210mm x 81mm x 17mm,安装孔与Melzi兼容
重量:106g
2016年8月,打印虎大幅更新了第一版Salai的设计,推出了第二版Salai主板v2.0,在原有设计的基础上,增加了限位开关、热敏电阻以及步进电机的接口引出,将步进电机驱动芯片换位了32细分的DRV8825,并重进规划了断电续打模块、Wifi模块以及热电偶支持的方式。整块主板功能更多性能更强使用更方便。
上图为一片Salai主板,可以看到在这片主板的设计中,各个接口的位置、形式都尽量保持与Melzi一致。
上图为工作状态的Salai主板+TFT屏幕
虽然Salai主板继承了很多Melzi主板的特性,但这两块主板之间的差别还是不小的,我们专门列了一个表格,对比Salai和Melzi之间的差别:
AT91SAM3X8E
ATmega 1284P
彩色3.5寸TFT触摸屏
单色12864 LCD屏
步进电机驱动
DRV8825,32细分
A4988,16细分
挤出头支持
自动调平支持
支持(支持中文文件名)
光电限位开关支持
需要对主板进行调整
热电偶支持
断电续打支持
从以上表格可以看出,打印虎推出的下一代3D打印机主板Salai,主板采用了32位ARM体系结构,CPU运行速度是传统8位主板的5倍,可以有效提高3D打印的质量,同时支持双挤出头,自带3.5英寸的TFT全彩触摸屏,配合大幅改进的Repetier-firmware固件,拥有丰富的操作功能和良好的用户界面。这个产品的固件不仅功能丰富,还是开源的,可以满足深入学习的需求!产品不光性能高、颜值高,核心代码开源,价格还特别低,有兴趣的朋友,可以到打印虎的,看看更详细的信息,这里就不多说了。
第二节、安装USB驱动程序
上一节我们介绍了Salai主板的基础特性,下面我们详细讲解拿到一片Salai主板之后如何安装使用。首先,要把Salai主板与电脑连接起来,为下一步刷固件(调整参数)做准备。连接Salai主板与电脑非常简单,只要两步即可完成。第一步是使用排线连接Salai主板与3.5寸TFT触摸屏:
注意两根10pin排线要JP1对JP1,JP2对JP2,两根线之间不要混淆。
第二步就是连接Salai主板与电脑之间的USB线了。连线之后,主板上的两个LED应该亮起(下图红框内),同时3.5寸TFT触摸屏上应该显示正确的信息:
由于这时候我们还没有连接3D打印机的热敏电阻,因此3.5寸TFT触摸屏上会报告当前温度为“损坏”。不用担心,等会我们连接好热敏电阻之后,这里就会显示为正常的当前温度值了。
虽然连接好USB线之后,Salai主板就得到供电开始运行了,但实际上这时电脑只起到一个供电的作用,在驱动程序安装之前,还不能和Salai主板交换数据。通常Windows会提示“未能成功安装设备驱动程序”,如下图所示。为了让电脑与Salai主板通讯,我们需要先给它安装驱动程序。
Salai主板的驱动程序,已经包含在Arduino安装包内,我们只要下载Arduino并安装驱动即可。由于Arduino官方提供的安装包,不包含SAM核心组件,在下载完成之后还需要单独安装,比较麻烦,因此打印虎重新封装了最新的Arduino 1.6.11版本,同时包含了Arduino主程序以及SAM核心组件,给大家提供了方便。打印虎打包的Arduino 1.6.11版本可以从这里下载(,)。
下载之后直接执行安装包文件就可以开始安装过程了,如下图所示:
直接按下安装,就会开始安装Arduino 1.6.11的过程。由于需要安装的文件数量很多,这个过程的用时会比较久,要等一会才能完成。
全部完成之后,按下关闭就可以了。这时候,桌面上会出现Arduino 1.6.11的图标。
双击这个图标即可启动Arduino 1.6.11了。但我们这里的目标,并不是使用Arduino 1.6.11(下一节会使用这个工具刷固件),而是安装驱动程序。因此我们先打开设备管理器。
打开设备管理器最简单的方法,是在“我的电脑”上单击鼠标右键,选择菜单项“管理”,并在打开的“计算机管理”窗口的左侧选择“设备管理器”。如下图所示:
这时,我们可以看到在“端口(COM和LPT)”这个类别中,会出现一个“未知设备”。这个未知设备就是我们的Salai主板了。鼠标双击这个“未知设备”,并在弹出的窗口中,点击“重新安装驱动程序”按钮。
在打开的更新驱动程序软件窗口中,单击“浏览计算机以查找驱动程序软件”这一项。
在编辑框中填上我们刚才安装Arduino 1.6.11的路径,再点下一步按钮。
这时候会提示用户是否安装“Arduino USB Driver”,当然选择“安装”。
安装完成之后,回到设备管理器,可以看到我们的Salai主板已经驱动起来了。由于Salai与Arduino Due在驱动上是完全兼容的,所以从电脑上我们看起来是一个Arduino Due设备。之后的COM3表示这个设备当前在COM3串口上,在不同的电脑上,这个情况也有可能会改变,不管COM口的编号是多少,都是正确的结果。
到此为止,Salai主板的驱动程序已经成功安装完成,下面我们就可以和主板进行通讯了。下一节,我们会首先介绍如何给主板刷固件,以配合我们的3D打印机的参数。然后,我们还会介绍如何与上位机软件Repetier-host配合使用Salai主板。
第三节、给Salai主板刷固件
Salai主板的一大特点,就是它使用了RepRap 3D打印机最常用的固件Repetier-firmware,这种固件运行稳定,同时兼容性特别好,可以和多种上位机软件配合使用。特别是在配合Repetier-host时,可以发挥出完整的功能,具有极佳的兼容性(毕竟是同一家公司开发的)。而且,为了保证广大3D打印机玩家的进一步改造需求,打印虎保持了所用固件的开源。大家可以直接获得固件的源代码,并在源代码的基础上进一步修改获得自己希望的功能。
将随Salai主板附送的源代码包zip文件解压之后,可以得到这样一个Repetier文件夹,包含了一组源代码文件,如下图所示。
这组文件全部是Repetier-firmware的源代码文件,用C++语言写成。如果需要对这些文件进行较多的修改,可以安装一个文本编辑器,比如notepad++,打开这些文件并进行编辑。下面我们可以看到,直接使用Arduino软件也可以进行修改,但比较不方便。
启动Arduino 1.6.11软件,可以看到初始窗口:
在这个窗口中,选择菜单“文件”-“打开”,并将路径切换到刚才解压得到的Repetier目录,在目录中选择Repetier.ino文件,如下图所示:
这里需要注意一点,因为Windows会隐藏已知的文件扩展名,所以在有些电脑上,Repetier.ino文件会显示为Repetier,“.ino”部分被隐藏了。不论扩展名是否隐藏,打开操作本身没有变化。
按下“打开”按钮之后,我们会得到一个新的Arduino窗口,里面就是整个Repetier工程了。如下图:
在将固件刷入Salai主板之前,我们必须按照自己的3D打印机配置,修改固件里面的配置值。Repetier-firmware所有的配置值,都保存在Configuration.h文件中。为了打开Configuration.h文件,我们要先点击文件名标题栏最右侧的向下小三角,然后在弹出的菜单中选择Configuration.h文件:
在Configuration.h文件中,我们要修改的主要配置项目包括:
挤出头的数量;
3D打印机是否有热床;
限位开关的种类;
步进电机的方向;
步进电机的分辨率;
热敏电阻的参数;
3D打印机的长宽高参数;
除了以上几项,还有稍微不太常用的
3D打印机的运行速度参数;
3D打印机的运行加速度参数;
下面我们逐一搞定这些配置项目。首先是挤出头的数量。找到配置文件中的这一行:
#define NUM_EXTRUDER 1
(小窍门:可以用Ctrl+F打开“寻找”对话框,并输入这一行,就可以迅速跳到正确的位置上,不需要一行一行看了)
这一行配置了挤出头的数量。1代表一个挤出头,2代表两个挤出头。
第二项,是3D打印机是否有热床。找到配置文件中的这一行:
#define HAVE_HEATED_BED true
可以看到,缺省设置是为有热床的3D打印机准备的。如果你的3D打印机没有热床,可以把这一行最后的true改为false,告诉固件这台3D打印机不包含热床。
第三项,是限位开关的种类,常用的限位开关有两种接法,一种是常通的,一种是常断的。如果我们连接了限位开关的C(也就是COM)以及NC接口,如下图所示,则是“常通”接法。这种接法在限位开关未触发的时候,是处于短路状态,触发之后变为断路。
反之,如果连接了C以及NO接口,如下图所示,则是“常断”接法。这种接法在限位开发未触发的时候,是处于断路状态,触发之后变为短路。
如果是第一种接法,也就是“常通”的接法,那么Configuration.h文件中应该设置为
#define ENDSTOP_X_MIN_INVERTING false
#define ENDSTOP_Y_MIN_INVERTING false
#define ENDSTOP_Z_MIN_INVERTING false
这也是初始的设置。
如果是第二种接法,也就是“常闭”的接法,那么上面三行中所有的false都应该改为true:
#define ENDSTOP_X_MIN_INVERTING true
#define ENDSTOP_Y_MIN_INVERTING true
#define ENDSTOP_Z_MIN_INVERTING true
第四项,是步进电机的方向。步进电机的方向,通常在第一次配置的时候不能很好的确定,因此可以先保持原样刷固件,如果发现运行方向与预期不一致,可以在第二轮中进行调整。在Configuration.h文件中,步进电机方向的设置为:
#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false
这三行确定了XYZ的方向。可选值为true和false。如果发现步进电机的运行方向是反的,可以将false改为true,或者反之将true改为false。
另外,在将步进电机加热之后(要首先确定热敏电阻设置是正确的,否则有可能会过热),还可以观察挤出头步进电机的方向。如果挤出头的方向反了,可以调整
#define EXT0_INVERSE true
#define EXT1_INVERSE true
这两行。其中EXT0对应挤出头1,EXT1对应挤出头2。
第五项是步进电机的分辨率。步进电机的分辨率是一个比较麻烦的问题,需要进行一定的计算。具体的计算方法,我们这里就不详细介绍了,对比不清楚的朋友,可以参考另外一篇文章,专门介绍了步进电机的分辨率计算。我们这里只介绍如何在配置文件中修改步进电机分辨率:
#define XAXIS_STEPS_PER_MM 80
#define YAXIS_STEPS_PER_MM 80
#define ZAXIS_STEPS_PER_MM 800
#define EXT0_STEPS_PER_MM 101
#define EXT1_STEPS_PER_MM 101
以上五行,分别对应了XYZ轴以及两个挤出头步进电机的分辨率。将它们修改为正确的值即可。
下面,第六项是热敏电阻的参数。我们见过的国内绝大多数3D打印机,都采用了R0=100K, beta=3950的热敏电阻。如果你也使用了同样的热敏电阻,那么就不用修改配置文件了。如果很不幸你的热敏电阻与此不同,那么你需要修改这些项目:
#define GENERIC_THERM1_R0 100000
#define GENERIC_THERM1_BETA 3950
很明显,这两行分别对应了热敏电阻的R0值和beta值,修改为你使用的元器件的实际值就可以了。
最后,第七项是3D打印机的长宽高参数。这项参数非常直观,只要直接按照自己3D打印机的实际数值(以毫米为单位)设置即可:
#define X_MAX_LENGTH 200
#define Y_MAX_LENGTH 200
#define Z_MAX_LENGTH 180
如果你的3D打印机比较特殊,可以使用更快的运行速度,或者必须使用更慢的运行速度,则需要调整这些配置项:
#define MAX_FEEDRATE_X 200
#define MAX_FEEDRATE_Y 200
#define MAX_FEEDRATE_Z 2
#define HOMING_FEEDRATE_X 40
#define HOMING_FEEDRATE_Y 40
#define HOMING_FEEDRATE_Z 2
前面三项,MAX_FEEDRATE,指的是3D打印机的最大速度。所有超过这个速度的G-code指定运动动作,全部会降低到这个速度值之后才被执行。
后面三项,HOMING_FEEDRATE,指的是3D打印机的归零速度。可以看出,在XYZ结构的3D打印机配置中,Z轴的速度一般都设定的很低。这是因为Z轴通常使用了丝杆结构,而丝杆结构不能支持比较高的运动速度。
除了速度之外,加速度参数也会对机械运动产生较大影响。
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_X 3000
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Y 3000
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Z 3000
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_X 4000
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Y 4000
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Z 4000
对于XYZ结构的3D打印机来说,如果某一个轴比较重,步进电机达不到这个加速度,就会产生失步的现象。如果调试过程中发现失步现象,可以将这里的加速度值调低试试,可能会有明显的效果。前面三项MAX_ACCELERATION,指的是打印过程中的最大加速度值;后面三项MAX_TRAVEL_ACCELERATION,指的不喷丝只是运动挤出头XYZ值时的最大加速度值。
将以上所有内容都修改完成之后,就可以刷固件了。正式开始刷之前,我们还要在Arduino环境中选择正在使用的主板类型以及端口号。这些只要使用菜单项“工具”下面的“开发板”以及“端口”就可以了。开发板选择为Salai AT91SAM3X8E(通常是开发板菜单的最后一项),端口选择为设备所在的实际端口,如图:
开发板以及端口都选择好之后,只要按下Arduino窗口工具栏上的向右箭头按钮,就可以开始刷固件过程了。
这个过程需要持续一段时间,完成后,在下方的日志窗口中,我们会看到这样的内容:
这就说明刷固件过程成功完成了。
需要注意的是,固件刷好之后,我们配置在固件中的各个参数值,却不一定能立即起作用。这是由于Repetier-firmware会把一部分配置参数值保存在EEPROM之中,而在每次主板启动时,自动从EEPROM中读取这些参数值。我们建议的方式,是在每次刷完固件之后,使用触摸屏上的菜单界面“配置”-“将EEPROM恢复出厂设置”,这样可以保证当前的EEPROM中的值,与刚刚刷入的固件配置文件的设置值完全一致。如果你不满足于此,想深入理解EEPROM,了解如何处理EEPROM中的参数值,可以参考我们这篇教程的第七节内容。
第四节、给Salai主板刷三角洲固件以及自动调平的使用
上一节中我们介绍了给Salai主板刷固件的方法,其中举例使用的是XYZ结构的3D打印机。除了XYZ结构的3D打印机之外, Salai主板Repetier固件也完全支持三角洲3D打印机。下面我们就介绍一下如何对三角洲3D打印机进行配置。
与配置XYZ结构的3D打印机一样,配置三角洲3D打印机固件也同样需要使用Arduino环境。由于上一节已经详细介绍了Arduino环境的使用,因此这一节中就不再重复了。这一节中,我们只关注于固件配置文件Configuration.h的修改。修改完成后,使用与上一节同样的方法,就可以将配置好的固件刷入主板了。
为了方便大家,我们把为三角洲机型已经修改了初始值的配置文件,保存为Configuration_Delta.h文件。大家可以从这个文件开始修改。修改完成后,刷固件之前,可以把Configuration.h文件删除,把Configuration_Delta.h改名为Configuration.h文件,这样刚刚修改的内容,加上我们准备好的基础配置,就变成了Configuration.h文件。
对于三角洲3D打印机来说,在固件文件中,我们要修改的主要配置项目包括:
3D打印机类型(三角洲);
3D打印机是否有热床;
限位开关的设置;
步进电机的方向;
步进电机的分辨率;
热敏电阻的参数;
3D打印机的高度参数;
三角洲3D打印机半径相关参数;
与XYZ结构的3D打印机配置类似,还有稍微不太常用的
3D打印机的运行速度参数;
3D打印机的运行加速度参数;
下面我们逐一搞定这些配置项目。首先是3D打印机类型。找到配置文件中的这一行:
#define DRIVE_SYSTEM 0
将其中的数值0改为3。其中0代表XYZ结构的3D打印机,3代表三角洲结构的3D打印机。
第二项,是3D打印机是否有热床。找到配置文件中的这一行:
#define HAVE_HEATED_BED false
可以看到,缺省设置是为没有热床的三角洲3D打印机准备的。如果你的3D打印机有热床,可以把这一行最后的false改为true,告诉固件这台3D打印机不包含热床。
第三项,是限位开关的设置。由于三角洲3D打印机的限位开关都是高位限位开关,因此我们首先把原定义的低位限位开关改为高位限位开关,找到并修改以下六行:
#define MIN_HARDWARE_ENDSTOP_X false
#define MIN_HARDWARE_ENDSTOP_Y false
#define MIN_HARDWARE_ENDSTOP_Z false
#define MAX_HARDWARE_ENDSTOP_X true
#define MAX_HARDWARE_ENDSTOP_Y true
#define MAX_HARDWARE_ENDSTOP_Z true
这样,就关闭了三个低位限位开关,打开了三个高位限位开关。
上一节中,我们已经详细说明了限位开关连接的两种方式,“常通”接法以及“常断”接法。这里我们就不再重复给图片了。对于三角洲3D打印机来说,除了XYZ三个限位开关之外(三个限位以及不对应于XYZ三个空间正交轴,而是对应于三角洲3D打印机的三个立柱),还通常具有第四个限位开关,用于自动调平。这样的情况下,如果是第一种接法,也就是“常通”的接法,那么固件配置文件中应该设置为
#define ENDSTOP_X_MAX_INVERTING false
#define ENDSTOP_Y_MAX_INVERTING false
#define ENDSTOP_Z_MAX_INVERTING false
#define Z_PROBE_ON_HIGH 1
如果是第二种接法,也就是“常闭”的接法,那么上面几行中所有的false都应该改为true,同时1都应该改为0。
#define ENDSTOP_X_MAX_INVERTING true
#define ENDSTOP_Y_MAX_INVERTING true
#define ENDSTOP_Z_MAX_INVERTING true
#define Z_PROBE_ON_HIGH 0
第四项,是步进电机的方向。步进电机的方向,与上一节讲到的方式一样,可以先保持原样刷固件,如果发现运行方向与预期不一致,可以在第二轮中进行调整。在固件配置文件中,步进电机方向的设置为:
#define INVERT_X_DIR true
#define INVERT_Y_DIR true
#define INVERT_Z_DIR true
这三行确定了XYZ的方向。可选值为true和false。如果发现步进电机的运行方向是反的,可以将false改为true,或者反之将true改为false。
另外,在将步进电机加热之后(要首先确定热敏电阻设置是正确的,否则有可能会过热),还可以观察挤出头步进电机的方向。如果挤出头的方向反了,可以调整
#define EXT0_INVERSE true
第五项是步进电机的分辨率。步进电机的分辨率是一个比较麻烦的问题,需要进行一定的计算。具体的计算方法,我们这里就不详细介绍了,对比不清楚的朋友,可以参考另外一篇文章,专门介绍了步进电机的分辨率计算。我们这里只介绍如何在配置文件中修改步进电机分辨率:
#define BELT_PITCH 2
#define PULLEY_TEETH 16
#define STEPS_PER_ROTATION 200
#define EXT0_STEPS_PER_MM 101
其中,BELT_PITCH指的是同步带每一个齿之间的距离,通常是2mm。PULLEY_TEETH指的是同步轮的齿数,16齿或者20齿的同步轮比较常见。然后,是步进电机一圈的步数STEPS_PER_ROTATION。对于1.8度步进角的步进电机来说,一圈200步。对于0.9度步进角的步进电机来说,要把这里改为400。最后,EXT0_STEPS_PER_MM指的是挤出头步进电机的分辨率。
下面第六项是热敏电阻的参数。仍然与上面一节相同,与热敏电阻相关的固件配置项目,包括:
#define GENERIC_THERM1_R0 100000
#define GENERIC_THERM1_BETA 3950
很明显,这两行分别对应了热敏电阻的R0值和beta值,修改为你使用的元器件的实际值就可以了。
第七项是3D打印机的高度参数。与上一节的XYZ结构的3D打印机不同,三角洲3D打印机只能设置Z轴的高度,而XY轴的运动范围是由下面马上要讲到的第七项参数设置的。
#define Z_MAX_LENGTH 180
将这一项直接改为3D打印机的实际运行高度。因为下面还要进行自动调平,这里的设置比实际值小10mm左右最合适。
最后第八项是三角洲并联臂3D打印机所特有的配置项,如下图所示:
#define DELTA_DIAGONAL_ROD 217 // mm
#define PRINTER_RADIUS 100
#define DELTA_MAX_RADIUS 80
DELTA_DIAGONAL_ROD指的是并联臂的长度。市面上最常见的并联臂长度是217mm。PRINTER_RADIUS指的是在3D打印机喷头对准热床中心时并联臂在水平方向的长度。217mm的并联臂,对应的水平方向长度正好是100mm。最后一个参数DELTA_MAX_RADIUS指的是打印平面的最大可使用半径。虽然打印平面一般是100mm半径,但由于挤出头效应器(Effector)以及上面的风扇会占用一定的空间,受此限制,通常这个半径设置在80mm会比较合理。
第九项和第十项是步进电机的速度和加速度。三角洲类型3D打印机的一大特点就是速度快。特别是Z轴的移动,XYZ类型的3D打印机一般使用丝杆,因此速度会非常慢。而三角洲类型3D打印机的Z轴移动速度,由于使用了同步带传动,因此可以获得与XY轴完全一样的速度。如果我们还保持原来的3D打印机速度,就太浪费了。我们可以修改以下配置项(修改为XYZ三个轴都使用同样的数值):
#define MAX_FEEDRATE_Z 200
#define HOMING_FEEDRATE_Z 40
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Z 3000
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Z 4000
这些值的具体含义,可以参考上一节的解释,这里就不再重复了。
到此为止,所有相关的参数都已经修改完成了。如果你有一些使用三角洲类型3D打印机的经验,就会知道我们上面设置的并联臂长度、水平方向半径以及3D打印机高度等数值,都不会太准确。能精确到毫米,已经是非常不容易了。但即使精确到毫米的程度,如果直接使用的话,最终打印效果仍然会不够理想,因为在打印第一层的时候,喷头与热床之间的距离需要非常精确地保持一个很小的数值,比如0.3mm。可以想象,完全通过手工测量和计算,很难达到这样的精度。
为了解决这个问题,常见的三角洲3D打印机都附带了自动调平的设施,而固件也已经支持了自动调平。下面就让我们来使用自动调平功能,最终校准我们对三角洲3D打印机的各项设置值。
在固件中找到这样两行:
#define FEATURE_Z_PROBE false
#define FEATURE_AUTOLEVEL false
将其中的false改为true,即打开了三角洲固件的Z轴高度测试以及自动调平两项功能。重刷固件,并且清理EEPROM的值(参考上一节),我们就可以开始了。
Repetier-firmware自带的自动调平功能非常简单易用。只要在菜单上选择“配置”-“常规配置”-“自动调平测试”,即可开始自动调平过程。在这个过程中,要保持警惕。如果发现挤出头部分撞机了,或者其他问题,要立即切断电源并分析问题。切不可在无人情况下执行这个动作。如果一切顺利,这个过程完成之后你的3D打印机就已经完成了调平。再次进入这个菜单,可以发现“自动调平变换”已经变为了“开”。
在执行了自动调平功能之后,也许你会发现Z轴的高度值还不是非常合适。这时候,我们可以再调整一下Z轴的高度值。在Repetier-host里面,使用菜单“配置”-“固件配置”,在打开的对话框中,找到Z max length一项,微微增加一点(每次尝试1mm左右的改变量即可),把Z轴归零之后降到底部(Z=0)观察,逐渐逼近真实的Z轴高度。
完成Z轴高度调整后,喷嘴和打印平面之间,应该留有一条能透光的细缝,就是我们期待的最佳高度了。
第五节,硬件的连接
如果你还没有把Salai主板安装到3D打印机上,那现在就应该进行安装了。下图给出了各个接口的作用。懂英文的朋友,直接看主板上印刷的文字,也可以直接理解。
3.5寸TFT触摸屏的接口比较简单,连接的时候注意主板和显示屏上的JP1连JP1,JP2连JP2,不要交换反接。USB接口、SD卡接口以及断电续打接口比较简单,都带有防呆设计,不会接反,这里就不详细介绍了。下面主要介绍连接中可能会有问题的接口。
每个接头的背面,都有具体每根线代表的意义。电源以及风扇分正负极,千万不要把正负极接反哦。热床、挤出头加热管实际上是一个纯电阻,不分正负极,但如果使用红黑双色导线的话,还是建议把黑线接在-,红线接在+。养成好习惯可以减少出错的几率。
XYZ以及E1/E2步进电机接口,从左到右应该连接步进电机的B-, B+, A+, A-四条线。下图是一种常见的步进电机线的颜色,在这种情况下,正确的连线应该是从左到右蓝黄红绿。
对于另一种常见的步进电机线的颜色来说,正确的连线应该是从左到右蓝红黑绿。
几个限位开关接口,包括XYZ以及自动调平限位开关,主板上都已经配备了相关的上拉电阻和电容器,因此只要简单地直接接上开关就可以用了。理论上,应该把开关的COM端(公共端)连接-,将另一端NC或者NO连接S(可以看主板背面的印刷)。但实际上无论怎么连接都可以正常工作的。
热敏电阻没有正负极,两根导线也不区分颜色,可以随意连接。
LED灯条接口带有防呆设计,但不一定与你的实际情况相符,这里要注意正负极。
如果你的3D打印机使用的不是热敏电阻,而是热电偶,那么你需要外接热电偶模块。热电偶模块的+, -, S三根线要与主板上的TC1/TC2接口对应连接好,如图。
除了以上介绍的最常用的接口以外,Salai 2.0还增加了很多其他接口,提供给有高级定制需求的用户使用:
首先是WIFI云服务模块接口。这个接口实际上比较常用,放在这里是因为比较容易画图。把WIFI模块插入这个接口之后,3D打印机就具备了联网的能力,用户可以远程监控、操作3D打印机的运行。
SD卡延长外接以及USB延长外接,是比较简单的两个接口。有些用户设计的3D打印机,不太方便使用主板上已经固定好的SD卡接口或USB接口。这种情况下,可以使用外接模块,让机器设计更加灵活。
下面是XYZ限位开关旁边的3pin限位开关连接。有些用户直接购买了带电路板的限位开关,这时就需要主板上提供包括电源在内的3pin接口。比如下图的机械限位开关和光电限位开关,都可以直接插在主板提供的3pin接口上。注意红色线对应+,黑色线对应-,蓝色线对应S,不要插反。在限位开关的3pin接口旁边,提供了3.3V/5V切换跳线。这个跳线决定了给限位开关模块供电的电压。使用时,先尝试使用3.3V电压,对于一些不能用3.3V电压的光电限位开关,可以切换为5V电压。
类似地,在主板左侧还有一组开关接口。包括了自动调平限位开关,以及断丝检测光电开关连接。对于这组接口,也是同样地可以进行3.3V/5V供电切换。
Salai 2.0主板,为了允许用户外接更强大的步进电机控制板,引出了所有步进电机的四根信号线。它们分别是ENABLE使能信号,DIR方向信号,STEP步进信号以及GND地线。对于有一些电子方面技术能力的用户,可以外接这些信号线。
最后,Salai 2.0主板还提供了4个舵机接口。在一些自动调平方案中,需要使用舵机,这时候就可以使用这些接口了。
Salai主板的没一个步进电机驱动芯片旁边,都有一个微调电位器(上图红框中)。这个电位器负责控制步进电机驱动芯片的参考电压,进而控制主板输出的步进电机脉冲电流大小。对于Salai 2.0来说,由于采用了DRV8825步进电机驱动芯片,因此参考电压的计算公式为:
Vref = I_TripMax * 0.5
如果你希望输出1.0A的驱动电流,则步进电机驱动芯片的参考电压应该设置为0.5V。具体的测量方法也很简单,使用万用表的电压档,黑色表笔接地(电源接口的右侧接线柱,或者USB接口的外壳,都是接地的),红色表笔接触微调电位器的顶盖,就可以测出当前的参考电压了。
如果你采用的是普通42步进电机,没有特殊的需求,可以保持出厂的设置0.5V,这个值对于大多数普通42步进电机都是合适的。
如果你用的是上一版的Salai主板,由于采用了A4988步进电机驱动芯片,上面的公式要改为(系数变为0.8):
Vref = I_TripMax * 0.8
第六节、Repetier-host的安装和测试
把所有这些接口都连好,就可以开始联机测试了。当然在测试之前,要先把Repetier-host软件安装好。还没有下载Repetier-host的朋友,从这里可以下载Repetier-host软件最新版1.6.2版(,)。
下载完成之后,双击开始安装的过程。第一个界面是选择语言。很遗憾这里面没有中文,只能是凑合用英文了。(安装完成后,软件主界面大部分都有中文)。
之后一路Next下去,直到选择安装模块的页面。
在这个界面下,我们建议红框内的两项,一项是Repetier-Server,另一项是Skeinforge Slicer,都不要选中。因为这两项都没有包含在安装包中,如果选中的话,会临时从互联网上下载,安装速度就很慢了。
特别值得一提的是Repetier-Server,这个3D打印机私有云服务器还是挺好用的,希望了解这个软件的朋友,可以参考打印虎的另一篇教程文章。
继续再按几次Next,完成整个安装过程。最后安装完成的同时,Repetier-host也同时启动起来了,如下图(第一次启动会同时载入一个演示用的模型文件,第二次开始就不再自动载入了):
第一次启动Repetier-host之后,需要先对3D打印机进行设置。按下主窗口右上角“打印机设置”按钮,可以打开打印机设置对话框,如下图所示。最新版本的Repetier-host,绝大多数选项已经非常适合直接使用,只有很少的地方还需要调整。首先,是“连接”选项卡里面的通讯端口及波特率。通讯端口保持Auto通常是可以的,如果发现有问题,可以改为3D打印机实际的通讯串行口,比如COM3。波特率一定要保持初始的115200,否则会不能正常使用。
然后,另一个需要调整的地方是“挤出头”选项卡。如下图。这里最关键的选项,一个是挤出头的数目,另一个是挤出头的喷嘴直径。很显然,这两个选项都必须根据实际的情况进行修改,才能让3D打印机正常工作。
以上所有的配置项都调整好之后,就可以按下窗口左上角的“连接”按钮,连接3D打印机了。
如果一切正常的话,“连接”按钮将会变为绿色。这时候,将右侧的窗口切换到“手动控制”选项卡,就可以进行各个步进电机、限位开关以及热床挤出头的加热测试了。
这些基础的测试项目,我们已经在中做了详细的介绍,这里就不再重复了。这里我们介绍一个比较常见问题的解决,就是挤出头温度偏移的问题。当我们给挤出头设定一个温度(比如200度)进行加热的时候,有些情况下会发现挤出头温度稳定下来之后会有一个偏移,一直高几度或者低几度。这个问题通常是由于固件中初始设置的PID值是个通用值,并非最适合你的挤出头加热棒、加热铝块使用。我们可以使用固件提供的自动PID测试功能进行PID校准,经过校准之后这个问题很可能就可以解决了。
具体的方法很简单,首先在Repetier-host中打开日志记录窗口。点击工具栏的“是否记录”按钮,下方的日志记录窗口就会显示出来了。注意为了看到所有的日志内容,我们要把“记录命令”和“记录应答”两个选项打开,点击蓝色小灯让它亮起。
然后在Repetier-host的手动控制界面上,输入
M303 S200 P0 X
这行命令中,S200代表目标温度为200度,P0代表测试第一个挤出头,X代表测试完成后自动将PID参数值保存到EEPROM中。如图:
这行命令发送之后,在屏幕最下方的日志窗口内会看到
Info:PID Autotune start
这样自动PID测试功能就开始运行了。下图左侧箭头所指的五次温度起伏,就是整个自动PID测试的过程。当温度升降循环五次之后,系统就会自动找到最合适的PID参数值,并且将其存储在EEPROM之中了。
Info:PID Autotune finished ! Place the Kp, Ki and Kd constants in the Configuration.h or EEPROM
整个过程完成后,会在日志区看到以上的内容。Kp, Ki和Kd就是PID三参数的值。没有记下也没关系,这些值已经存储在EEPROM中,不会轻易丢失了。
如右侧箭头所指的位置所示,当我们再次对挤出头进行加温时,就会看到温度曲线平滑流畅,并且温度可以非常好地稳定在指定温度的位置处了。
第五节、EEPROM的使用和清除
固件的设置,是一个比较有趣的话题,很多玩3D打印机的朋友,在遇到设置相关的问题时都会犯迷糊。实际上,对于某一项特定的设置,比如说X轴的步进电机分辨率,在3D打印机主板上,有三个不同的位置(也是三种不同的存储器)保存了这项内容,而它们的值还有可能不同。让我们先来了解一下这些保存设置内容的位置,以方便大家的理解。
首先,是固件配置文件(configuration.h)中的设置值。配置文件中的值,会跟随固件一起编译,之后在刷机过程中,保存在了3D打印机的静态存储区(Flash ROM)中。除了刷机之外,静态存储区的内容不会发生变动,可以认为是只读的。每次开机的时候,都是一样的值在等待着我们。
第二份设置值,保存在电可擦写静态存储区(EEPROM)。EEPROM的读写代价,比静态存储区要小。因此,3D打印机允许在刷机之后,修改设置值,而这些修改之后的设置值,就存储在EEPROM之中。每次开机,程序会先检查EEPROM,如果EEPROM中是空白的,则将静态存储区的第一份设置值复制到EEPROM之中。而如果EEPROM中已经有保存好的设置值,则程序会直接使用EEPROM中的值。有些朋友在玩3D打印机过程中可能会有这样的经验,就是明明修改了固件配置文件中的设置值,但刷机之后竟然没有发生变化。这种情况,往往就是EEPROM在捣鬼了。我们完全可以使用G-code M502 M500两条指令(指令的具体含义可以参考下面),重写EEPROM,解决这样的问题。
第三份设置,保存在内存(RAM)中。实际用户使用的值,就是内存中的值。由于内存只在加电情况下能够保持其中的内容,因此每次开机时,3D打印机会根据上面描述的逻辑,重建内存中的设置值。如果某条指令修改的是内存中的设置值,那么这也代表着这次修改是一个临时修改,下次开机这个值就会消失了。
总的来说,三份固件设置,使用的优先级是
内存 & EEPROM & 配置文件
但设置的持久性,就要反过来了。明确了解这些,特别有助于我们解决一些与设置相关的问题,也给我们使用Repetier-host提供了参考。在Repetier-host中,我们可以通过菜单项“配置”-“固件配置”,看到当前EEPROM中的各项设置值。如下图:
在这里,可以直接修改设置值,并立即起作用。比如说X轴的步进电机分辨率,就可以直接在X-axis steps per mm后面进行修改。这显然比修改Configuration.h更方便。同时也如前面所述,这种修改的持久性要小于在Configuration.h中的修改。在用户清除EEPROM之后,这项改动就消失了,会恢复为之前刷机时在Configuration.h中设置的值。
在了解如何查看当前EEPROM的值之后,我们还希望知道如何清除EEPROM的值,让刚刚刷机时在Configuration.h中设置的值起作用。这个动作在Repetier-host中不太容易,没有一个按钮或者菜单项可以直接完成,而是要在“手动控制”面板上输入两条G-code指令来完成这个动作。首先输入M502,按下“发送”。再输入M500,再按下“发送”,这样就完成了对EEPROM的清除重置操作。如下图所示(图中是已经完成两条命令输入后的状态)
图中的三个红框,分别是G-code输入和发送功能,M502的执行结果,以及M500的执行结果。看到这样的执行结果,说明EEPROM已经恢复到Configuration.h中设置的状态了。当然想看到这些内容,“记录命令”以及“记录应答”这两个开关一定要处于“开”的位置。
如果想对G-code有更多的了解,可以参考打印虎的原创文章。
另一种更简单的清除EEPROM值的方法,前面已经提到过了,就是使用触摸屏上的菜单“配置”-“将EEPROM恢复出厂设置”,这样就可以了。相比上面使用Repetier-host的方法,更加简便易行。
第六节、结束语
到此为止,与Salai主板相关的部分就介绍完了。如果对Repetier-host的使用还存在问题,大家可以参考我们之前写的教程,里面详细介绍了Repetier-host的使用方法。
如果你看了我们的文章,对Salai主板很感兴趣,可以到我们的,产品页面的底部,是打印虎淘宝店的连接,购买主板可以到打印虎淘宝店完成。
另外,Salai主板原生配置了3.5寸彩色TFT触摸屏,使用这个屏幕,用户可以完全脱离电脑,直接操作3D打印机。对于这个触摸屏界面的使用,我们这篇文章就不介绍了,另一篇文章对触摸屏界面进行了详细的介绍,有需要的朋友可以跳到这篇文章,了解详情。
打印虎作为国内最专业的3D打印机软件、硬件研发厂商,提供3D打印机软件、硬件研发定制服务。无论您是3D打印机DIY玩家,或者是3D打印机的生产企业,都欢迎来打印虎选购产品,洽谈合作。我们会用专业的态度加精湛的技术帮助你解决3D打印机研发中的困难,提供最优质产品和服务。希望能够得到广大用户的认同和选择。我们的可以从打印虎网站获得。祝大家玩机愉快,每天都有好心情。
本条目发布于。属于分类。作者是。
近日,打印虎的技术研发工程师,给Salai主板添加了Wifi云服务功能。配合Wifi模块,打印虎Salai 3D打印机主板就可以连接互联网,直接接收用户在网上发出的指令,进行3D打印动作。使用了Salai主板的3D打印机用户不再需要使用USB线连接或者通过SD卡倒gcode数据,而是可以直接在打印虎云服务网页上进行操作,远程控制自己的3D打印机。
使用打印虎Wifi云服务,让配备Salai主板的3D打印机变成智能化设备。这进一步方便了用户对3D打印机的操作,让用户体验得到了显著提升。
一、Wifi模块安装说明
Wifi模块外观如图所示。
Wifi模块在Salai主板上的安装位置。将Wifi模块的2*4pin排针插入。注意插入Wifi模块应该在断电情况下进行。
Wifi模块安装在Salai主板上的状态。请注意Wifi模块上天线的方向,应该朝向USB接口一侧。
给3D打印机加电,应该可以看到Wifi模块上的红色LED亮起,这说明电源已经接通。在Salai主板触摸屏上,选择“帮助”菜单,在屏幕上应该可以看到Wifi模块的ID信息(也就是后面需要使用的3D打印机序列号)。如果ID信息显示为“无”,说明Wifi模块和主板通讯出现故障。如果这个页面没有出现ID这一行,说明你的3D打印机主板固件版本太旧了,需要进行Salai主板固件更新(详见下一节)。
二、Salai主板参数设置与固件更新
刚刚插上Wifi模块的Salai主板,还没有设定本地Wifi网络的SSID和密码,因此,还不能连上云服务。我们需要将本地Wifi网络的SSID和密码设定告诉Salai主板。
打开Salai主板固件的Configuration.h文件(可以用常见的文本编辑器打开,比如Notepad++等),修改以下两行的内容:
#define WIFI_SSID “ssid”
#define WIFI_PASSWORD “password”
其中,ssid应该被替换为本地Wifi网络的SSID,两侧的引号保留。password应该被替换为本地Wifi网络的密码,也同样保留两侧引号。
修改完成之后,参考的内容,重新刷一次固件,这时Salai主板应该就可以和打印虎云服务连接起来了。
三、在打印虎云服务上注册3D打印机
打开浏览器,进入打印虎云服务页面
点击页面上的“用QQ账号登录”按钮。如果是首次登录,会要求用户填写Email邮箱地址:
填写完成之后,我们会进入到控制台首页。这时候可以看到,控制台上空空如也,需要我们把自己的3D打印机添加到这里:
把刚才在Salai触摸屏上看到的打印机序列号,填写在这里。按下确定按钮。
看到下面的界面,意味着你的3D打印机已经添加到打印虎云服务之中,可以开始使用了!
四、使用打印虎3D打印云服务
在打印虎3D打印云服务控制台上,点击“前往打印机”之后,我们就进入了一台3D打印机的主控制界面:
在这个界面上,我们可以在左上角看到3D打印机序列号以及连接状态信息,在拥有多台云服务3D打印机的情况下,这有助于帮助我们搞清楚正在操作的是哪一台机器。
下面是三个主要的功能区。我们正在使用的,是“打印”功能区。在这个功能区,我们可以上传、浏览、打印gcode文件。与在本地电脑上直接操作gcode文件基本一致。
按下“上传G代码”按钮之后,浏览器会弹出文件选择对话框。在文件选择对话框中,选择gcode文件,并按下“打开”按钮。这时,gcode文件开始上传到打印虎云服务。
上传完成后,“已存储的G代码”区域,将会显示出一行信息,代表刚刚上传的gcode文件。在这行信息的最左侧,有“打印”按钮,按下后即可开始打印。在最右侧,有“删除”按钮,按下后将删除这个gcode文件。
“控制”功能区,提供了一组手动控制3D打印机的功能。这一组功能,为我们初期手动调试3D打印机,使用一段时间之后的热床调平等需求提供了帮助。
最后是“控制台”功能区。这里提供了所有发送和接收到的gcode信息。对于核心玩家来说,有了这些信息,可以深入调试机器,有任何问题都可以解决了。
五、结束语
这篇文章介绍了打印虎Salai主板Wifi云服务的使用方法。看到这里,如果你已经购买了Wifi云服务模块,可以开始动手试用了!如果你还没有购买,是不是已经动心了呢?各位打印虎的朋友们可以到查看产品详情,产品页面的底部,是打印虎淘宝店的连接,购买主板可以到打印虎淘宝店完成。
打印虎作为国内最专业的3D打印机软件、硬件研发厂商,提供3D打印机软件、硬件研发定制服务。无论您是3D打印机DIY玩家,或者是3D打印机的生产企业,都欢迎来打印虎选购产品,洽谈合作。我们会用专业的态度加精湛的技术帮助你解决3D打印机研发中的困难,提供最优质产品和服务。希望能够得到广大用户的认同和选择。我们的联系方式可以从打印虎网站获得。祝大家玩机愉快,每天都有好心情。
本条目发布于。属于分类。作者是。
第一节,介绍
我们在前面介绍了有关3D打印机的历史和发展,以及入门级的RepRap Prusa i3 打印机的制作教程,感兴趣的小伙伴请前往。
熟悉3D打印机的小伙伴们应该都听说过kossel (三角洲)并联臂打印机,kossel打印机因为其结构简单、成本低廉、打印速度快,深受DIY玩家们的喜爱,由于其结构关系,机器调平往往成为入门小伙伴难以逾越的一道门槛。
小编曾信心满满的做过一台kossel,但由于调不平搁置了半年。 因此我们在新一代主板 Salai主板上集成了这一功能,从固件底层支持并联臂式打印机自动调平,想了解更多的小伙伴请前往,稍后我们将发布调平软件的相关教程,支持自动调平精度最高可达0.01mm,一键式操作。
在小编接触过的好多款并联臂式打印机中,很多都是将主板安置在打印机内,而且用的是很小的按键屏幕。我们的salai主板自带3.5英寸TFT全彩触摸屏,所以从美观和实用的角度出发,本篇教程指导小伙伴们做一款3D打印机控制器,控制器外壳采用亚克力,方便小伙伴们DIY。同时,为了避免复杂的电磁干扰,我们采用信电分离的接口方式,也方便控制器与其他类型打印机连接。希望本篇教程可以给予小伙伴们一些基础的、简便的组装思路。
第二节,组装
首先看看整体装配完成的图片
OK, 我们开始组装吧!
一、切割亚克力板
按照小编的设计,切好的亚克力一共有7块 图纸下载()。
在控制器的组装中需要亚克力部件中的6块。
剩下1块安装在三角洲机器上。
二、打沉头孔
紧接着就有点难度了,小编使用的是M3X14的内六角沉头螺丝,为了美观需要在前面板、上面板、左侧板和右侧板上用6mm的钻头钻出深度为2.5mm的沉头孔。
所需的孔位在下图已高亮标出,请小伙伴们操作时注意安全。
三、打螺纹孔
上面板,下面板以及将要安装在三角洲机器上的接口板需要攻丝处理,螺纹的大小为M3。亚克力板脆,小伙伴们也可以借助电钻快速攻螺纹。
四、安装主板
取出一块下面板,主板距底部亚克力板8mm,小编在这里采用的是单通螺纹柱固定主板,五枚垫在主板与亚克力板中间,另外五枚拧在螺柱上。
五、安装串口接头及开关电源
取出上面板、开关电源以及串口接头,小编在这里使用了1mm和2.5mm厚的尼龙垫片,串口接头与上面板的距离为3mm,允许±0.5mm的误差,垫片垫高串口接头针脚一侧,串口接头与开关电源安装在亚克力板的同一侧,亚克力板的方向注意依照图示对位。
六、安装显示屏
取出前面板以及显示屏幕,这里的尼龙垫片垫在亚克力板与显示屏之间,螺柱起紧固作用,也可用普通螺母替代。
七、后面板上的安装
取出散热风扇,同样地,这里需要打4个2.5mm左右深的沉头孔。
当然,这步也可以忽略,可直接取四枚较长点的螺丝拧在风扇上。
取出后面板,电源开关、航空接口以及散热风扇,这里的散热风扇安装需要四枚垫片垫在风扇与亚克力板之间,电源开关和航空接口安装在亚克力板的外侧,散热风扇安装在内侧。
八、电路连接
各个电气件的接线如下图所示:
电路部分的各处端口接线如上图,线色及对应序号已标出,黄绿为信号线不分正负,红黑为电输出,请对应位置接好,注意区分。
小编在这里使用了2pin以及4pin的接线端子,大家平时走线也可以使用端子,很方便的说。
控制器的散热风扇直接接开关电源12V输出。
开关电源的供电电压为220V,请小伙伴们注意安全!
十、最后的组装
我们这里需要把左右侧板上对应的螺丝以及四方螺母给装上。
ok!搞定了,有需要的伙伴可以下载这整个模型(),最后祝小伙伴们玩的开心!
十一、零件清单
最后,小编给出零件清单以及安装的各个配合关系,方便小伙伴们快速查找,最后祝小伙伴们玩的开心!
本条目发布于。属于分类。作者是。
第一节,让我们开始吧
小编一直想好好写一篇kossel的教程,由于各种原因从去年冬天一直拖到今年夏天。通过近两周的努力才完成这篇文章,希望这篇教程能够给予大家一些帮助,我们首先简单介绍一下kossel 3D打印机。
Kossel 3D打印机是RepRap(replicating rapid prototyper)开源打印机中delta(三角洲)并联臂架构中的最新开源机型,由Johann设计。
RepRap的核心部件是热塑性塑料挤出机,产品基于Arduino平台以及其它用于控制步进电机的板卡。RepRap被视为一个完整的复制系统,而不是 简单的一块硬件。为此,该系统包括CAD的3D建模系统和CAM软件和驱动程序的形式,把RepRap用户的设计转换成一组指令,通过RepRap的硬件,转变成物理物体。RepRaps的打印出的物体材料是来自与ABS,PLA聚乳酸,以及其它一些类似性质的材料。
因此,基于开源软件和便宜而实用的标准件,Kossel delta型3d打印机性价比非常高,具有速度快、静音、三臂并联结构、扩展性强、便宜的特点,三臂机型的还有一个优势就是可以随意加大框架尺寸。这点其他结构的打印机是很难做到的。所以建议新手第一台装机务必要从三臂机型开始,以后升级很方便。
在制作的筹备中,小编尽量选用市场上能买到的材料,既满足diy的乐趣,又要兼顾机器的精度和稳定,所以文中出现的很多套件是小编建议小伙伴们直接购买现有的,同时我们也提供相应的模型和资料下载以满足有需要的小伙伴。
第二节,组装
我们先看一下主要零件
一、安装底框架
1.1 首先完成电机的装配
将同步带轮插入电机轴上,拧紧紧固螺母。
将电机安装到下角件上,下角件STL模型下载(),拧紧对应螺丝。
1.2 完成一个下角件组的组装
如图所示,将螺丝和螺母预装配到底框的下角件上。
请注意:将方形螺母拧上螺丝即可,不要拧紧。
重复步骤,将三个下角件组装起来,就像这样:
1.3 完成底框的组装:
将两根铝型材对准方形螺母插入并对齐:
请检查是否安装到位!
确认铝型材安装到位后拧紧螺丝:
重复步骤,组装三组这样的框架。
1.4 组装下部框架
将三组组装好的组件铝型材的槽对准方形螺丝插入:
请检查框架及铝型材是否安装到位!
拧紧图中标记出的螺丝:
将组装好的框架放置在一个平整的平面上,检查是否平整以及各处的配合是否安装对位。
二、安装顶部框架
2.1 完成一个上角件的组装
如图,将全部M4x10螺丝及方形螺母预安装到上角件上。上角件STL模型下载()
重复步骤,完成组装三组顶框上角件。
2.2 完成顶框的组装
和底框下角件一样,将铝型材插入,安装到位。
拧紧图中标记位置的螺丝:
重复步骤,完成三组顶框部件的组装。
和底框一样,将铝型材安装到位不留缝隙,
拧紧图中标记位置的螺丝,注意检查整体框架的平整性。
三、安装惰轮
这里要完成一组同步带惰轮的组装:
同样地,在其它两个上角件上完成组装:
三、立柱铝型材的安装
取出3根600mm长度铝型材以及组装完成的底框。
将铝型材插入下角件中:
从底部观察,铝型材必须插到与下角件底面齐平,然后拧紧图中标记出的螺丝:
重复步骤,将三根铝型材安装到底框上:
四、安装滑车套件
按照图示组装滑车,滑车套件STL模型下载(),请注意滑车内部两枚M3螺母的安装:
将滑车从三根600mm铝型材的顶部滑入,调节滑车一侧的螺丝直至滑轮不会摇晃:
五、安装限位开关座
限位开关座()的结构如图所示:
将限位滑块从上至下滑入,拧紧蘑菇头M4螺丝,装入微动开关,拧紧两枚M2.5螺丝:
重复上一步骤,完成另外两组限位的安装:
限位开关的走线如图,
这里,我们将两根引线从安装的槽口穿上去,将线插入到铝型材的中心孔,
紧接着从下角件预留的孔中引出导线:
六、组装主框架
将组装好的顶框插入立柱铝型材中,使立柱铝型材凸出5mm左右:
注意,绿色箭头指示面朝上,向下安装:
这里需要安装三枚M4x25螺丝,如图插入螺丝,底部套入螺母,轻轻拧紧M4螺母,不要太紧,防止顶部框架被拉高。
重复步骤,完成另外两枚螺丝的安装:
七、安装同步带
这里需要三根130mm长的同步带和若干扎带,
我们先将同步带的一端按照如图所示,

我要回帖

更多关于 16位ad转换芯片 的文章

 

随机推荐