记一次Linux服务器上查杀木马经历

开篇前言 Linux服务器一直给我们的印象是安全、稳定、可靠,性能卓越。由于一来Linux本身的安全机制,Linux上的病毒、木马较少,二则由于宣称Linux是最安全的操作系统,导致很多人对Linux的安全性有个误解:以为它永远不会感染病毒、木马;以为它没有安全漏洞。所以很多Linux服务器都是裸奔的。其实在这次事件之前,我对Linux的安全性方面的认识、重视程度也是有所不足的。系统的安全性是相对而言的,没有绝对的安全,风险无处不在。 案例描述 我们在云端(中信国际电讯CPC)的一台Linux 应用服务器时不时出现网络中断情况,最开始反馈到系统管理员和网络管理员哪里,以为是网络方面的问题。在监控系统后,发现在一些时间段出现高流量的情况,分析发现这台Linux服务器只安装了Tomcat应用程序,没有任何其它应用程序。产生如此大的流量很不正常,而且出现网络中断的时刻,就是系统产生高流量的时刻。当然这些都是我后来才了解到的一些情况,我没有这台服务器的权限,系统管理员找我看看能分析出啥问题,所以将root账号权限给了我。 案例分析 我连接到服务器后,运行ifconfig命令,检查网卡的发送、接收数据情况,如下所示,网卡eth0累计发送了12.3TB的数据。这明显不太正常,显然有应用程序一直在往外发包。我特意对比了另外一台正常的服务器后,验证了这个事实。 那么是那个应用程序在一直往外发送包呢? 我首先检查了Linux系统日志,发现了一些错误、告警信息。但是作用不大。于是在服务器上安装了NetHogs应用程序,实时监控Linux进程的网络带宽占用情况。 监控过程确实发现了一些异常情况的进程: 1:/home/WDPM/Development/WebServer/apache-tomcat-7.0.61/cmys 一直在往外发包 2:/usr/bin/bsd-port/agent 一直在往外发包。 3:./cmys一直在往外发包 4:不时出现下面大量异常进程 [root@LNX17 /]# ps -ef | grep getty root 2012 1 0 May22 tty2 00:00:00 /sbin/mingetty /dev/tty2 root 2014 1 0 May22 tty3 00:00:00 /sbin/mingetty /dev/tty3 root 2018 1 0 May22 tty4 00:00:00 /sbin/mingetty /dev/tty4 root 2020 1 0 May22… Continue reading 记一次Linux服务器上查杀木马经历

危险的文件夹上传框

分享一篇老文章。前些年在 ASRC 上的看了一篇文章「Html5新功能上的ui-redressing」后,写的一些改进方案。 文件对话框 文件上传对话框是一直以来就存在的网页控件。 到了 HTML5 时代,增加了更多的功能,例如支持文件多选。Chrome 甚至还支持「上传文件夹」这一私有特征: <input type=”file” webkitdirectory /> 在给用户方便的同时,其安全隐患也逐渐出现。用户平时在下载时,理所当然的弹出的是保存对话框,因此常常不仔细看就做出了选择。 这极有可能被攻击者所利用。一些恶意网站在用户点击下载时,故意弹出一个上传对话框。只要用户一疏忽,就把选中的文件夹给上传了! 下载对话框 上传对话框 当然,仅仅依靠默认的上传,这种攻击方式仍有较大难度。因为整个文件夹可能非常大,上传需要很久的时间。 如果用户等了半天也没看见下载进度,或许就会刷新重试,甚至放弃了。 选择即授权 然而,HTML5 带来了一个新的规范 —— File API,允许脚本访问文件。 但由于沙箱限制,脚本无法访问任何一个本地文件,除非用户主动授权。如何授权?最常见的,就是「上传对话框」了。 事实上,如今的上传对话框,早已不是从前「选择哪个文件」的功能,而是「允许脚本访问哪个文件」的权限申请!只不过界面上没有提示罢了。 例如,一个传统的文件上传控件。当用户选中文件后,即可通过 File API 读取文件内容: <input id=”dialog” type=”file” /> <script> dialog.onchange = function(e) { var reader = new FileReader(); reader.onload = function() { console.log(this.result); }; reader.readAsText(this.files[0]); }; </script> 或许你已注意到,File… Continue reading 危险的文件夹上传框

甲骨文:不行,你不能看我们的源代码!

【伯乐在线导读】:是人写的软件,都不可避免有漏洞。而发现漏洞的,并不只是软件开发商,也有独立第三方机构或个人。所以,业界不少知名公司有对外的漏洞悬赏计划,比如:Facebook 、谷歌、Twitter、微软、Paypal。 咦,为啥小编没听过甲骨文的漏洞悬赏计划呢?各位接着往下看。 8月10日,甲骨文 CSO(首席安全官)Mary Ann Davidson 在企业博客上发布一篇文章,怒斥客户通过逆向工程看源码找漏洞的行为。这篇文章在 Reddit 引发大量讨(tu)论(cao),本文末尾摘录的 3 条。该文因争议太大,后来被删,不过有 谷歌快照 & 时光机存档了。 下面是伯乐在线翻译组黄小非的全文翻译。 Mary Ann Davidson No, You Really Can’t | 不行,就是不让你看 我最近已经写了很多东西了。其中一些是和我姐姐一起,使用笔名Maddi Davidson写的凶案悬疑小说。最近,我们一直在写一些较短的凶杀故事,尝试用一些新主意来“杀死”故事中的被害者(诚实地说,在现实中我真会去想怎么把这些凶杀情节实践到那些连车距都保持不好的白痴司机身上)。 对于我来说,写悬疑小说真的比我写其他类型的东西要有趣得多。最近我发现,企图通过逆向工程来挑我们毛病的客户人数显著地增加了(诶,大大叹口气吧)。所以你也就不难理解为什么我近来大量给客户写信,都是以这样的内容来开头:“Hi~, Howizt,你好”(译注:看似很友好客套),可是结尾却变成了:“请您遵循许可证协议,不要再对我们进行逆向工程看源码了。” 我能理解,在我们生活的世界上,几乎每天都有人在说数据出了问题,然后还会有超级无敌多的匿名入侵记录,这一定是敌对分子搞破坏造成的。所以,在系统安全技术方面人们总是想再往前多走一步。不过,在你整装待发准备多走这一步之前,你要知道,其实客户已经标定了关键系统,对敏感数据进行了加密,该打的补丁都打上了,而且也配备了各种配套产品,并且还用了工具来锁定配置确保其不会被篡改——总而言之,在你尝试挖掘 0-day 大漏洞之前,系统在常规情况下已经非常安全了。事实上,如果该做的常规措施都做到了,大部分的数据隐患都可以被消除,这个事实听上去一点儿也不性感吧,但事实就是这样,通常情况下那些用 0-day 级别漏洞来产生的“无敌高级持续性系统威胁“的案例并非真的存在!所以无论是你自己去打理服务器,还是说你的云服务供应商帮你去鼓捣,把基本的安全实践工作做好非常必要(,其余的事情你就不用去考虑了)。 纵使认为供应商都应该是业界良心(会对他们的开发软件产品的方式负责),你还是有很多东西需要确认,而不能只用漏洞扫描工具一扫了之。客户能做的事情可多着呢,额滴神啊(千万别说你不知道该做什么),客户可以询问供应商,问问他们采用了哪些安全认证规程,或者查查看他们的产品有没有行业认证(例如像 Good Housekeeping 质量担保图印,或者 FIPS-140 认证这样的计算机信息安全通用标准认证)。大多数供应商,至少是我知道的最大的那几个供应商,目前会采用相当完备的安全规程(我之所以知道这些信息,是因为我们在技术大会上会相互交换技术资料并作比较)。作为客户,在安全方面孜孜不倦当然是好事,不过如果客户总是想着:“嘿,我认为我应该帮供应商做点儿什么,所以让我来看看他们的源代码有什么漏洞没有”,这样就不是什么好事了。即使是面对如下的情况,这也不是什么好事: 漏洞扫描工具报警:客户其实没有能力去分析被报警的部分是否是在安全控制范围之内的,更何况这种报警往往还都是“虚假警报“(false positive) 即使发现问题,客户也没有能力去自己给问题开发补丁程序——因为只有供应商才有能力开发补丁程序 客户在使用静态工具分析源代码时,实际上很可能已经触犯了许可证协议条例(条例规定不能对源代码进行任何操作) 我来开门见山地说吧:我认为很多时候说”客户使用逆向工程技术”这句话其实并不准确,因为真正的逆向工程操作是由客户聘用的顾问来做的,这些顾问运行一下逆向工具,逆向出一堆代码,用打印机打印出一大坨,往客户面前一撂,接下来客户就会把这一大坨送给我们。我现在已经注意到,给我们送来的所谓漏洞扫描报告根本就不是“证明这里或者那里有问题”的清晰报告,不管是采用动态分析还是静态分析,漏洞扫描报告完全不体现漏洞存在的真正证据。通常情况下,这些报告就跟一缕蒸汽一样(扑朔迷离又没有价值)。 没事儿找事。(是的,我打算一直这么说:没事找事。) 这就是为什么我们要求客户举报每一个所谓”问题“时,都必须填写服务申请(而不是仅仅把漏洞报告扔给我们就完事儿了),同时还要提供概念性的证据(确实有一些工具能做到这一点)。 通过我们自己的分析,如果我们真的认定扫描报告的结果只可能来自于逆向工程(我们至少遇到过一次以上这种案例,因为报告上“很聪明地”写了:“通过对Oracle XXXXXX 软件的静态分析……”),那么我们就会立刻给“有罪”的客户写信,并同时给为“有罪客户”提供咨询的“有罪顾问”另去一封信件,提醒他们已经触犯了Oracle许可证协议中禁止使用逆向工程的条款,所以不要再这么做了。(用正规的法律语言来说,Oracle许可证协议上的条款是这么写的:“用户不得进行逆向工程,反汇编,反编译,以及任何从程序中获得源代码的尝试”,我们在给客户的警告信中就会引用这个条款)。哦,我们还会要求客户/顾问销毁从逆向工程得来的结果,并要求他们确认他们执行了销毁。 为什么我要强调确认销毁呢?最主要的原因是,我要把这个事情做得板上钉钉。我可不想为了“你们触犯了许可协议”,“不我没有”,“有的,就就是有”,“不,我们没有”这种来回扯皮的话浪费时间。我宁愿花更多我自己的时间,以及团队的时间,去帮助提升开发代码的质量,而不是和人们去讨论用户许可证协议细节问题 现在我需要重申一下,我在这里并不是要用许可证协议来打压用户。我其实更想说的是,“我不让你去分析代码,是因为我自己会去分析。分析代码是我的工作,我们很擅长我们的工作。我们能切实对代码进行分析,并弄清楚真正的情况是什么,而第三方咨询机构或者其他工具软件则做不到。无论在何种级别上,这些工具软件找出来的所谓‘漏洞’几乎 100% 都是‘误报’。所以不要再浪费你的时间了,那些工具里面的小绿人报警帮不了你任何忙。” 我不是要逃避我对客户应尽的运维责任,我仅仅是想避免那些痛苦、烦躁又让双方都非常不爽的过程。 基于上述原因,我想解释一下 Oracle 实施用户许可证条款(尤其是关于逆向工程的条款)的目的,其实这个目的非常符合逻辑也非常符合直觉,那就是:“我们告诉你我们的底线在哪儿,一旦你越过了,我们就对你不客气。”  附注:我在日常与人交谈时偶尔会用到 stare decisis(译注:拉丁文,意思是“照章办事”)这种法律专业词汇(不过我的狗完全不懂拉丁语,它只明白夏威夷语),不过我毕竟不是律师(译注:作者的意思是,他的观点并不能代表Oracle对这些问题的官方司法解释)。所以,当你有什么疑问的时候,参照… Continue reading 甲骨文:不行,你不能看我们的源代码!

亮瞎眼的特斯拉线圈

之前发过一篇用于产生电弧的马克思发生器, 那个玩意儿跟特斯拉线圈相比,就是小巫见大巫了。 尼古拉·特斯拉是一百多年前的一位发明家,他发明了交流电、无线电,制造过小型的地震,搞过巨型的人造闪电。总之他的传奇故事很多,据说是被奸商爱迪生打压以至于默默无闻,著名的电动汽车特斯拉就是为了纪念这个疯狂的科学家。 有传闻说特斯拉玩的闪电,可见范围达到几百英里,不知道真假。我等凡夫俗子,顶多利用特斯拉原理来产生个小型闪电就好了。   Step 1: 准备和注意事项 我们的目标是做一个1000w的中型特斯拉线圈,放电距离超过120cm,特斯拉线圈的放电距离和功率成正比。 主要材料及大概成本: 1:高压变压器 1000W 输入220V 输出 10KV 2:大量无极电容 如用0.047uf 1000v~(1600v-)的cbb电容需要准备100只左右,有大容量的高压电容请自己换算 3:直径13厘米长1米的聚氯乙烯管(壁厚0.6-1厘米),pvc管材也将就,厚0.8厘米的绝缘板材(不能是木头!最好塑料)大约2.5平米,厚0.5厘米的绝缘板材(非木!)大约1.5平米,这些都可在家庭装饰城(就是那些买涂料,板材,工具等的那种大市场里)买到 4:导线,多芯铜导线,1000v50A大约6米;10kv1A导线3米 5:耐压漆包线 内径0.5mm 900米长 6:直径0.8厘米的铜管(壁厚1mm以上)长8米,直径3厘米厚>1mm长1米的铜管可在汽车配件或五金等地买到 7:电手钻,螺丝刀,手锯,钳子等工具,普通螺丝,塑料螺丝,环氧树脂胶,钢尺等 8:用于燃气热水器的排气管(金属制作,可弯曲,直径在10厘米以上)制作后期计算得到长度. Step 2: 电路原理图 等等,你特么是在逗我吗?我们是在做一个极其高大上的“雷公电母”设备,它的原理图怎么可能这么简单。 所以感慨一下科学的伟大吧,小小一张图就可以让你拥有神一般的力量……   Step 3: 装配示意图 当然,从原理图到真正的装备,还有很多路要走,这个就是装配的示意图。 Step 4: 一些相关的计算公式 1. 电弧长度: 电弧长度 L(单位:英寸); 变压器功率 P (单位 瓦特); L=1.7*sqrt(P) 2. 电容阵容量: 变压器输出电压(交流)E(单位 伏特); 变压器输出电流 I(单位 毫安);… Continue reading 亮瞎眼的特斯拉线圈

DIY修炼:舵机知识扫盲

DIYer: Tod E. Kurt GEEK指数: ★★★☆☆ 1 简介 舵机控制的机器人 ● 我猜你肯定在机器人和电动玩具中见到过这个小东西,至少也听到过它转起来时那与众不同的“吱吱吱”的叫声。对,它就是遥控舵机,常用在机器人技术、电影效果制作和木偶控制当中,不过让人大跌眼镜的是,它竟是为控制玩具汽车和飞机才设计的。 ● 舵机的旋转不像普通电机那样只是古板的转圈圈,它可以根据你的指令旋转到0至180度之间的任意角度然后精准的停下来。如果你想让某个东西按你的想法运动,舵机可是个不错的选择,它控制方便、最易实现,而且种类繁多,总能有一款适合你呦。 ● 用不着太复杂的改动,舵机就可摇身一变成为一个高性能的、数字控制的、并且可调速的齿轮电机。在这篇文章中,我会介绍舵机使用的的一些基础知识以及怎样制作一个连续运转舵机。   2 舵机的结构和原理 A.标准舵机图解 ● 遥控舵机(或简称舵机)是个糅合了多项技术的科技结晶体,它由直流电机、减速齿轮组、传感器和控制电路组成,是一套自动控制装置,神马叫自动控制呢?所谓自动控制就是用一个闭环反馈控制回路不断校正输出的偏差,使系统的输出保持恒定。我们在生活中常见的恒温加热系统就是自动控制装置的一个范例,其利用温度传感器检测温度,将温度作为反馈量,利用加热元件提输出,当温度低于设定值时,加热器启动,温度达到设定值时,加热器关闭,这样不就使温度始终保持恒定了吗。 B.闭环反馈控制 ● 对于舵机而言呢,位置检测器是它的输入传感器,舵机转动的位置一变,位置检测器的电阻值就会跟着变。通过控制电路读取该电阻值的大小,就能根据阻值适当调整电机的速度和方向,使电机向指定角度旋转。图A显示的是一个标准舵机的部件分解图。图B显示的是舵机闭环反馈控制的工作过程。 3   选择舵机 C.大扭力/微型/标准舵机 ● 舵机的形状和大小多到让人眼花缭乱,但大致可以如图C所示分类。最右边身材不错的是常见的标准舵机,中间两个小不点是体积最小的微型舵机,左边的魁梧的那个是体积最大的大扭力舵机。它们都是同样的三线控制,因此你可以根据需求换个大个的或小个的。 ● 除了大小和重量,舵机还有两个主要的性能指标:扭力和转速,这两个指标由齿轮组和电机所决定。扭力,通俗讲就是舵机有多大的劲儿。在5V的电压下,标准舵机的扭力是5.5千克/厘米(75盎司/英寸),转速很容易理解,就是指从一个位置转到另一个位置要多长时间。在5V电压下,舵机标准转度是0.2秒移动60度。总之,和我们人一样,舵机的个子越大,转的就越慢但也越有劲儿。 ● 赶快想好你要做的东西,让我们开始动手吧。确定做什么之后,选择哪种大小的舵机(标准型、微型、绞盘型)就是小case了,你可以绅士般的从中选个最便宜的。在这个项目中,我选的就是微型系列的HexTronik公司生产的HXT500型舵机,额定数值是扭力0.8千克,转速0.10秒,只花不到4美元就搞定了。 4 舵机的支架和连接装置   D.多种舵盘 ● 想在你的项目中用上舵机,就要满足两个条件:一是需要个能把舵机固定到基座上的支架,二是得有个能将驱动轴和物体连在一起的连接装置。支架一般舵机上就有,而且带有拧螺丝用的安装孔。如果你仅仅是测试的话,用点儿热熔胶或者双面泡沫胶带就能轻松的固定住舵机。 ● 怎样连接驱动轴呢,你会发现舵机都附带了一些有孔的小东西,这就是舵盘,它可以套在驱动轴,臂上打上了些小孔。你只要用连接棒或者线把物体连到孔上,就可以将舵机的旋转运动变成物体的直线运动了,当然了,选用不同的舵盘或固定孔就能产生不同的运动啦。 ● 图示的是几种不同的舵盘。前面4个白色的是舵机附带的舵盘,右边四个是用激光切割机切割塑料得到的DIY舵盘。最右边的2个是舵盘和支架的组合,如果你想实现两个舵机的组合运动,把这个舵盘的支架固定到另一个舵机的支架上就OK了。 E.普通舵盘设计 F.其他舵盘 ● 制作普通舵盘对于童鞋们来说是比较容易的,先用矢量作图软件画一个多边形,这个多边形的半径和顶点数都要和舵机驱动轴匹配,这样它就能连接到驱动轴上了,其他种类的也是这样画出来的。 5   如何控制舵机 G.3线接口 ● 像图所示那样,舵机有一个三线的接口。黑色(或棕色)的线是接地线,红线接+5V电压,黄线(或是白色或橙色)接控制信号端。 H.控制信号… Continue reading DIY修炼:舵机知识扫盲

【神级DIY】自制无线控制“甲壳虫”机器人

【导读】拥有一个自己会跑会跳的机器人是许多人小时候的一个梦想,如今这个梦想你可以实现了!此次电子元件技术网带来大师级别的DIY,自己动手就能做的机器人,做一个送给家里的小朋友绝对自信心爆棚啊! 话不多说,直接上图。 Solidworks 出图纸和模拟图 机器人身体 机器人头部 机器人漂亮的大腿   甲壳虫机器人3D模拟图 camworks 出刀路 甲壳虫”机器人3D 模拟图    加工及组装 在自己DIY的数控铣床上进行加工,用的6061 的进口铝板, 3mm厚度  购买的经典型号舵机MG995,开始组装。  “甲壳虫”机器人造型很漂亮吧!  舵机板和布线已经完成   机器人安装完成 功率强劲的8000mah动力电池 机器人安好后摆个POSE 复位后的状态 机器人站起来了 机器人PS手柄和遥控装置 【神级DIY】自制无线控制“甲壳虫”机器人,首发于极客范 – GeekFan.net。

DIY:制作曲面感光元件的针孔相机

我们曾介绍不少自制针孔相机,而通常都是使用已经提供好的纸模来制作。而来自加拿大的摄影师 Matt Bechberger,则分享了一个非常完整的针孔相机制作指引,包括了数学上及物理学上的讲解,相机通过弯曲胶卷曝光的办法,令胶卷可以均匀曝光,极大地消除了画面的暗角!很好玩哦~。如果你也想自制一台如此认真的针孔相机,可以来参考参考! 基础概念 针孔相机其实是最原始的相机,光线在物体身上反射出来,然后透过相机上的小孔,聚焦于相机内的底片上,而任何可以遮挡着针孔的东西都可成为快门,手动控制曝光时间。就是这么简单。 数学计算 制作方面,首先你要制造出一个好的针孔,在互联网上都可以买得到,又或你能够自制一个。建议材料是一般的铝罐皮,越薄越好。然后使用小锤及针,轻轻地戳一个洞,在戳的时候最后在底先垫一块橡皮擦,以防止变形。完成后再用砂纸把铝片磨平,并且用显微镜或平板素描器之类 (如果有),去检视针孔的圆度及质素。如果你选用一些硬质金属,则可能要特地使用电钻之类了。 然后你要找出针孔的直径,知道后就可以计算出所需焦距﹐也就是针孔与底片之间的距离。 算式如下︰焦距 = (针孔直径 / 0.03679)^2 例如 针孔0.3mm 焦距 = (0.3mm / 0.03679)^2 = 66.49mm 接下来要计算的就是「视角」(viewing angle),即是光线进入的最大角度,这取决于针孔的直径与物料的厚度。 这个需要动用直角三角形的公式,要用上计数机。d 就是针孔直径,而 t 就是物料厚度,简化版公式如下︰ 视角 = tan^-1( (d/2)/(t/2) ) x 2 例如︰ 视角 = tan^-1( (0.3/2)/(0.0762/2) ) x 2 = 75.74 x 2 = 151.5 度 视角的重要性,在于让你判断光线能否恰当覆盖到底片,如果覆盖不足的话,就会出现黑角及黑边。例如上图般,底片的对角线不应长于成像圈的直径。而成像圈的直径算式如下︰ 成像圈直径 (mm) =… Continue reading DIY:制作曲面感光元件的针孔相机

DIY:拆了收录机,做个机器人

我(原作者)是那种会留下所有损坏的电子设备的人,因为我有可能会在某天用到这些东西。我有一张坏了的CD,一个磁带盒和一个别人送我的收音机,它会随机地保持关机状态。事实证明,这不过是因为收音机的某个焊点坏了。把收音机拆开后我才意识到,由于我们已经有了手机,这些年我们已经很少用到它了。如果我再把它组装回来,也不过是放在架子上落灰。 我决定把它身上多余的东西拆掉,用剩下的关键部位组装出一种功能不变但外表新颖的东西。这样起码还能将它作为架子上的装饰品。如果你也喜欢利用废品做机器人,那么你可能会喜欢这样的尝试。这个机器人能够播放CD、磁带,能听收音机,还能通过音频输入线与你的手机相连。 第一步:工具准备 要说出具体需要的工具还真有点困难,以下是必备工具。 1、达美电磨 2、电钻 3、机械螺丝 4、刀具 5、锉刀 6、中心冲头 7、热熔枪 8、钳子 9、螺丝刀 10、卡尺 11、一台3D打印机在定制支架时非常有用,如果你没有的话,你可以用聚氯乙烯这种材料,使用时将其热熔即可。 拆解 要想得到拼接机器人,你必须先将东西都拆开。你可以看到图中的受害者:一台美国无线电公司产的立体声音响。拆开后,我惊讶地发现里面非常空。我把这些东西拆开后,将它们都拼接到了一起,幸运的是这些东西都还能正常工作。这是一个看上去很好玩的立体声音响。当然,这些还不够,如果要做好机器人,我还需要找一些能当支架的废品。 重新组合 要做一个能站立的机器人,必不可少的一部分是它的双脚。我将一张硬盘劈成了两半给它做脚,用大型激光打印机的一些零件给它做了双腿。我发现最难的地方在于,如何将两个不相干的东西结合到一起。我需要一种能支撑这些零件重量的东西,我可不希望我将它拿起来的时候它就散架了。 我的解决办法是将零件对齐,给它们钻孔并用螺丝将其连接起来。对于一些没法钻孔并用螺丝连接的地方,我会先测量尺寸,并用3D打印机定制一些支架。 接着干 另外一个挑战在于如何连接这些扬声器。我想将它们变成机器人的肩膀,但不知道该怎么讲它们连接起来。在切开塑料的时候,我发现收音机外壳上的网很适合做肩膀。由于它们会阻碍其它零件,因此我用3D打印机定制了一些支架,让它们能够上下翻折。 快好了 到目前为止,头是最有挑战性的一部分。我希望机器人的外表在具有复古风格的同时,还能让人在看到它的第一眼就知道它的功能与声音有关。我发现一盒旧磁带的大小与电脑散热片的大小差不多。散热片也可以用来做机器人的头,因为它大部分地方是空的,能够轻易地在里面接线从而给它焊电灯泡。酷酷的机器人怎么可以不亮呢?另外,感谢我的女朋友在此过程中伸出援手。 一些收尾工作 搜寻过废物箱之后,我找到一个废弃的相机电路和一圈花线,并将它们装饰到机器人的头上,给它增加复古感。卷线很容易,只要将它绕在螺栓或者螺丝起子上就行。 整个过程用时比我想象的要长。总共用了50个多小时,不过整个过程很有趣。我还会对这个机器人做一些改进,比如给它身上加一些灯和可移动零件,并给这些灯加上控制开关。我还想知道如何能将机器人的嘴变得能够显示音量大小,并让它根据所播放的声音眨眼。如果你知道,请跟我联系或者在评论中告知我。能变废为宝是一件很棒的事,我会做更多这类大小的机器人。 DIY:拆了收录机,做个机器人,首发于极客范 – GeekFan.net。

极客DIY:轻松使用树莓派控制灯

最近笔者正在研究微控制器和基于物联网的设备安全。因此,我开始考虑建立一个小型家庭系统化系统,虽然目前还没完成,但我想先在文章中分享一下我如何使用树莓派2及一些其他电子元件来控制房间的灯光。当然,我在这里不会介绍树莓派的初始设置,因为你可以在网上发现各种各样的教程。 注意事项 在我们继续实验之前,我想有必要提醒一下关于实验中“电流”的危险性。一旦出现任何状况,最糟糕的情况就是死掉或者烧了你的房子。所以,请不要试图完成任何文中提到但是你不理解事情,或者你可以在制作的时候寻求一些有经验的电工的帮助。 好啦,让我们开始DIY吧! 实验准备 硬件需求 1、树莓派2(或者任何5V输出功率的型号,均可) 2、USB无线软件狗 3、8路继电器 4、一些Female-Female跳线(40 PCS FEMALE TO FEMALE JUMPER WIRES) 5、灯头电线 (以上硬件,某宝均有销售) 其他要求 1、了解基本Python语言或者其他任何语言(我会用到Python) 2、对Linux系统有基本了解 3、专心致志 流程要求 首先,用ssh链接到树莓派上,并安装“apache”和“php5”: 你会需要安装python的GPIO库来控制树莓派的GPIO插脚: 了解元件 现在,在我们继续制作之前,你需要了解一下我们将使用到的电子元件。 1、继电器 继电器是一种使用非常低的电压输入控制高压电的电气设备。由一个线圈缠绕的金属杆和两个小型金属节点构成的闭合电路。其中一个节点是固定的,其他的都是可移动的。无论何时,当电流通过线圈的时候,它会产生一个磁场,吸引可移动节点向静态节点运动,形成电路。通过给线圈供应小额电压,我们就能完成高压电路的轮回。同时,静态节点并非在物理上与线圈有联系,因此一旦有地方出错,微控制器驱动的线圈也很少出现故障。 试验中,我使用一个8路继电器,可以同时控制8个设备。你可以选择自己的继电器或者继电板,但是请确保你在继电器的额定电压之内处理,以避免任何事故的发生。 2、跳线 跳线就是我们链接树莓派GPIO插脚与继电器的简单连接电线。 3、树莓派2 我们使用树莓派2作为一个微控制器来操纵继电器。它有40个GPIO(通用输入/输出)插脚。你可以看到下面这些插脚的布局,我们将使用这些接口为继电器加电和控制开关。 连接电路 电路非常简单。我们将连接GPIO插脚到继电板上。首先连接继电器板上的“GND”与树莓派上的任意“GND”。然后链接继电器的“IND1”到GPIO PIN 17,我们会把GPIO PIN 17作为一个控制第一继电器的输出。最后,将继电器的“VCC”连接到树莓派的“5V”GPIO插脚。让我们简单直接设置一下: 现在我们到了最为棘手的部分,我们要将继电器连接到接通主电路供电的灯头上。但是,我想先给你介绍一个如何通过直流屏电源开启及关闭灯光的简单操作。 我们通常连接两根电线到灯泡上,来提供电流供给。其中一根电线是“中性”电线,另一根则是实际带着电流的“负极”电线,同样的这里也有一个控制整个电路的开关。因此,当开关(闭合)连接到流经灯泡的电流和负极电线时,电路便完整了。灯泡从而亮了起来。当开关(断开),破坏了电路和灯泡的电流,因此灯泡不亮。这里有一个小的电路图来解释具体情况: 当我们在试验中,我们需要“负极电线”通过我们的继电器来打破电路,从而使用继电器开关的控制流经的电流。因此,当继电器打开,在闭合电路中灯泡也应该亮起来,反之亦然。请参考一下完整的电路: 控制脚本 现在,终于到了软件的部分。我编写了一个简单的python脚本来控制继电器开关,使用了GPIO PIN 17和一个PHP代码可以在任何移动终端上面来运行python脚本。你可以从我的Github(和CSS)上找到这段代码。 注意:你将会需要添加“www-data”用户到sudoers文件。 注意+:PHP代码只是为了测试,我们不建议在公共环境中运行。 不久我将完成这个设置,希望回来更新一个新的帖子。请在那时之前,自己动手试一下这个控制灯,但是一定要注意安全。 视频展示:demo1 : demo2:   参考… Continue reading 极客DIY:轻松使用树莓派控制灯

自主机器人:你的私人WALL·E

DIYer: Kris Magri 制作时间: 2-3周 制作难度: ★★★★☆ GEEK指数: ★★★★★ 看最终效果视频 Makey是我编程实现的一个自主机器人(自主者,非遥控也),能够识别并规避障碍。她拥有全封闭的底盘并使用差速转向(原文为“tank steering”,坦克的驾驶方式),这种转向方式使用两台分开控制的电动机分别驱动两个主动轮(一机一轮) 控制信号来自其自身携带的Arduino微型控制器(在国内用单片机如PIC、AVR,或者Arm处理器都可以很好地替代),另外有一个舵机用于Makey头部的转动。Makey的头部装有一个超声波探头,她会持续的左右摇头,以得到不同方向上的距离信息,并进行存储和处理 通过对Arduino的编程,Makey可是实现诸如寻路的功能,仅需要少量硬件上的修改,Makey即可参加机器人界热门的Mini-Sumo(迷你相扑)比赛.   1 工具和材料 ● (使用的工具与零部件列表这里没翻,毕竟相当一部分东西买原版都不太现实也没有必要–国内的家伙事儿差不多的也能土法上马,有兴趣的童鞋请参考原文) ● 想得到关于这个项目的图示、图纸、代码,请移步 资料下载 2   制作机身 ● 机身由两片铝合金薄板制成,涉及的加工方法有切割、钻孔和折弯。你可以一次一片的加工,或者两片一起做以减少占用加工设备的机时。成品见2.5 ● 猛击 资料下载 下载图纸并全尺寸打印。剪下底板(base)切割图,用双面胶将切割图均匀平整的贴在铝合金薄板上 ● 注意:切割金属时务必佩戴防护眼镜 2.1 切割   ● 用带锯机把铝合金片切成图纸的形状,切割的边缘一定要在线外 ● 提示:切割内角时,先切出一个大概的弧形曲线,然后从两个方向直线进刀以得到直角 2.2 打孔 ● 用冲子和小锤子在图上有十字线的17处冲出定位孔,为下一步的钻孔做准备。另外要在图上长方形的孔的四个角上冲透 ● 按照图上标十字线处的尺寸钻孔,要首先取下贴上去的图纸(不过别扔了),用钻头对准前面留下的冲痕开钻可以使钻孔更精确 ● 把金属牢固的夹在废木头板上或者随便什么垫子上,这样可以得到更平滑的孔而不会导致薄金属板在钻孔处扭曲变形 ● 为了掏成方形孔而钻圆形孔时,你可能需要调整钻孔的直径以使圆孔边缘与长方形的边相切 2.3 挖槽 ● 用冲剪完成对长方形孔的加工,如果你愿意的话可以把前面揭下来的图再贴回去,以便容易知道长方形的边界在哪。最后把边缘磨平   ●… Continue reading 自主机器人:你的私人WALL·E

牛人自制加特林水枪,让你度过丧心病狂的夏天

(该项目来源于instractables,原文链接在这里,作者:projectsugru。该项目各步骤主要展示Sugru凝胶(或者是某特种粘土,本文统一译为Sugru凝胶)的应用,对加特林水枪的制作过程没有记录,但文后给出了各零件的图纸,相信DIY达人还是能搞定的。) 夏季的疯狂离不开水枪,我们要做一支史无前例的、帅到没边的加特林水枪,废话略,开始吧。   Step 1: 制作活塞 本步骤器件清单 PVC管一段,特种粘接剂(两种颜色,名为Sugru,以下称Sugru凝胶),锯子、夹具、锤子、雕刻工具和一杯肥皂水。 步骤: 1、用夹具夹住PVC管,锯下需要的长度(我用了2.5cm长); 2、将肥皂水涂在工作台面上(防止Sugru凝胶粘在台面上); 3、打开两小包同色Sugru凝胶并混合,把Sugru凝胶填充进刚切下的管子里,要完全塞满; 4、放置24小时让Sugru凝胶固化; 5、Sugru凝胶凝固后,将这段管子纵向置于夹具中,把PVC管切开小口(注意不要切到里面的Sugru凝胶); 6、用锤子敲击这段管子,直到把外面的PVC管敲破,得到一段圆柱形Sugru凝胶; 7、用雕刻工具加工圆柱凝胶两端,去掉部分材料,这有助于让活塞更湿软; 8、在这小段Sugru凝胶圆柱中部,沿周向雕刻环形凹槽; 9、打开第3包Sugru凝胶,滚成细长条并填充在上一步做成的凹槽上,注意让环状填充物的周长略大于Sugru凝胶圆柱,并放置24小时; 10、固化后,就得到一段活塞了,可以把它浸入肥皂水中。   Step 2: 做Sugru凝胶注射器   本步骤器件清单 Sugru凝胶一小包、壁纸刀、可弯曲的塑料管/软管、金属杆(或适合把Sugru凝胶推入管子的东西)、X2金属连接件、螺丝刀。 步骤: 1、用壁纸刀切下一段塑料管子(我们切了4cm长); 2、打开一小包Sugru凝胶,用手指捏成条状(享受这种感觉吧); 3、继续将Sugru凝胶滚成细长条; 4、用金属杆把Sugru凝胶推入塑料管子,从管子的两端推Sugru凝胶,确保Sugru凝胶塞满管子正中,两端留出1cm的空管子,静置24小时; 5、固化后,在Sugru凝胶中心钻通孔,孔径按你的需要确定即可; 6、在这段塑料管子外套上金属连接件。 Ok,Sugru凝胶注射装置就搞定了。   Step 3: Sugru凝胶绝缘开关 本步骤器件清单 Sugru凝胶一小包,漆包线,电烙铁和焊丝。 步骤: 1、用蓝色交联剂将用到的漆包线固定在恰当位置。 2、预热电烙铁,把两条线焊在合适的位置,确保焊点牢固。 3、取少许Sugru凝胶涂在焊点上,抹平,塑形。 4、放置24小时固化。   Step 4: 用Sugru凝胶连接和密封几段管子   本步骤器件清单 Sugru凝胶一小包,各种需要的管子(粗管、细管、渐缩管)。 步骤 1、摊开并排好所需零件。 2、用渐缩管连接管子。… Continue reading 牛人自制加特林水枪,让你度过丧心病狂的夏天

自制拉风电动滑板,回头率太高有点不习惯

创意是参照了@动力老男孩的一篇文章,最初的想法是DIY一个可穿戴的动力轮,像鞋子一样穿在脚上,不用的时候可以自动折叠收在小腿和膝盖处,用的时候可以伸张成轮子电力驱动快速前进,有点像哪吒的风火轮,主要是受《变形金刚》和《钢铁侠》两部电影毒害太深。后来发现水平极其有限,买了很多零件设备却做不出个所以然,东西都搁置在一边大半年。有天在网上看到动力老男孩的视频是把活力板改装成动力滑板,觉得我所有的材料都有了,就是差一块活力板了,于是速上某宝买了一块。然后就是水到渠成了。 废话不多说,下面上图,有的细节就省掉了 铝合金活力板,6寸皮带轮,皮带,120W有刷电机,控制器,安装支架,万向轮4寸 电池,遥控车手柄,铝盒。这些材料都是网上淘的,如下图: 1,活力板直接卸掉原来的轮座。 2,前轮用4寸的万向轮代替,万向轮的安装孔距(75*45)与活力板(65*35)的不一致,需要自己重新开孔对位,有点麻烦,不过也就是几分钟的事情,开孔搞定。 3,后轮找不到合适的支架,直接买了铝合金自己开孔加工的,这个花了两三天时间,因为要同时考虑电机、后轮、皮带和齿轮的重合,肯定要在一条线上面了,不然跑着跑着皮带跑偏掉链子了。电机架是用50*50的角铝做的,后轮支架用的是40*80*40的槽铝与铝排用螺丝铆合,图纸如下。图纸设计好后加工就容易了,手钻定好位,直接开孔就好,把握好力度不要打偏了就行。 电机架 后轮结构 4,duang,后轮和电机的安装就搞定了 机械结构主要工程完工,下面搞控制器。 5,控制器、电池和保护板都是网上买的,根据要求设计尺寸,然后点焊成2并7串,钴酸锂电池29.4V,刚刚配24V的电机,加上均衡充保护板,与控制器一起安装在铝盒里面,然后外接了航空接头和充电口。具体步骤省略,九芯航空接头是为了方便控制手柄接入,引出控制器的速度控制,开关,电量显示,刹车一共9条线,有三条是GND可以共用,其实七芯就可以了。 6,为了降低成本,没有使用无线控制,本人对无线控制接收也是一无所知,所以使用传统的有线手柄。控制手柄纯手工打造了,将玩具枪里面的扳机改造了一下,在扳机上加上两颗钕铁硼磁石,在两颗磁铁活动范围中心位置固定霍尔元件。原理跟电动车手把是一样的,转把里有一个感应磁力线大小的线性霍尔元件,手柄里还有两块磁铁,扳机转动磁铁也跟着转动,霍尔感应到磁力信号 就给控制器发出信号,从而控制电机转速。刹车也是改动了扳机,扳机往前推的时候触碰到一个非自锁开关,就能刹车,松开后开关会复位。另外在玩具枪上加上一个拨动开关控制总电源。电量显示还没想好怎么接,先预留着。 7,续航里程8~12km,最大速度18km/h,总重6kg,比网上销售的400RMB左右的铅酸滑板车行程要远,毕竟是锂电池的,动力比起铅酸也有力一些,另外楼主75kg,里程跟使用者体重也有关系吧。总成本在400元左右,忽略某些零件的邮费成本,因为某些零件比邮费还便宜,有兴趣的朋友自己DIY一台吧。 开出去还是挺拉风的,回头率高了有点不习惯。不过要说明的是由于前轮的直径只有100mm,所以如果路不是很平整的话最好不使用,一个是会颠簸的厉害,另外如果前轮被阻了因为重心比较高很容易摔跤的。玩过滑板的都知道,所以最好在柏油路或者在水泥路面上使用,另外要求路上车少人少最好。 元件清单 序号 物料名称 规格 数量 1 面板 21*85 1 2 后轮 138*24皮带轮 1 3 槽铝 40*80*4*80 1 4 铝板 100*40*4 2 5 轴承 8*100mm 1 6 后轮皮带调节器 通用 1 7 后轮槽铝螺丝 M6*8内六角 4 8 后轮架螺丝 M5*10内六角 8 9 后轮架铆合螺母… Continue reading 自制拉风电动滑板,回头率太高有点不习惯