挑战DIY极限:自己动手打造一部手机

本文由 极客范 - 麻瓜围脖2011 翻译自 David A. Mellis。欢迎加入极客翻译小组,同我们一道翻译与分享。转载请参见文章末尾处的要求。

cellphone384

DIY手机就是自己制作一部能用的手机(虽然只有基本功能),它可以用来打电话,接电话以及发信息,存储姓名和电话号码,显示时间。它基于Arduino GSM Shield 硬件和软件打造,只不过是给它装一个完整的使用界面,包括显示屏、按钮、扬声器、麦克风等。手机硬件及软件的源文件可以在GitHub上的hardwaresoftware项目中找到,在GitHub上的还有一个问题列表,你可以提交bug报告或填写改进请求。.

手机屏

目前主要有两种DIY手机屏幕:一种采用旧的诺基亚手机那样的黑白LCD液晶屏,还有一种使用八字符的红色点阵LED。LCD液晶屏可以显示更多行内容,每行十四个字符,但随着时间的推移,显示的字符会出现断画的现象,LED点阵式的比较难用,但是显示效果还不错。

打造自己的手机

DIY手机是一个需要投入相当多精力的工程,但它并不一定需要你具有特定的电子类专业知识。你需要订购电路板和电子器件(总共大约200美元),还需要一些其他的电子工具。有差不多60个器件需要手工完成精密焊接,主要是贴片式焊接。整个DIY过程需要1到5小时,甚至可能达到10个小时。这取决于你的经验。编程,特别是调试手机会花费较多时间,同样这也取决于你的经验以及中间的出的差错。外壳的制作需要一些胶合板、单板以及激光切割机(或者你可以用自己的方式去制作电路板)。总之这是一个困难但总体来说可行的项目。

订购线路板

你可以从 OSH Park订购电路板。大约花费为60美元,总共会有三份电路板。

或者,你可以把Gerber文件传给一个制造商让他们来帮你制作,例如OSH ParkAdvanced CircuitsAP Circuits或许多其他制造商网站。每一次我订购电路板时,我会把我的Gerber文件保存到GitHub上,在其中建立一个目录且以日期命名。我最新的电路设计图可以在LCD variant和 LED matrix variant目录里找到。

目录中有几个不同的文件:

  • *.cmp文件:顶侧(器件侧)镀铜线路层(即板顶部用于实际的电子连接的铜的线路图)
  •  *.sol文件:底(焊锡)侧铜层(向上,线路板底部)
  • *.stc:顶层(器件侧)焊接掩模(绝缘)层(即铜线路板下面的绿色层)
  • *.sts:底层(焊接面)焊接掩模(绝缘)
  •  *.plc:上(器件侧)丝网(刻字)层,加上整体板尺寸(即白色文本在顶部的板,加上一线指示整个板的形状并没有单独的文件)
  •  *.pls:底(焊接面)丝网(图例层(白色文本的底部板)
  • *.drd:(excellon)钻孔文件(指定应该在电路板的哪个位置上钻孔)
  • *.dri:钻孔工具文件,通常不需要(以纯文本方式描述使用的钻头尺寸)

你需要上传这些文件(通常打包压缩成zip文件),有时需要指定哪个文件是做什么的。这是一个两层电路板板,尺寸为5.15”x 2.3”,电路板厚度为标准的0.62”,铜重量1盎司,焊接掩模应该不是问题。你需要双面焊接掩模和丝网印刷板。圆角线路板可能会按复杂形状线路板而加收费用,我认为这虽然值得但并不是必要的。.

ben189 yoav189

获取部件

制作手机的现成工具是没有的,但你可以从不同的网站订购部件。

电子器件

大多数的电子器件都可以从SparkFunDigi-Key网站订到。M10 GSM 模块你需要从Arduino store上订到。

材料清单:BOM.pdf (LCD器件),BOM.pdf (LED矩阵器件)

工具

组装手机时你将需要配置一套好的焊接工具:一个电烙铁烙铁(例如WES51),烙铁头要好使,细焊锡、熔焊灯芯、镊子等。为了对AVR微处理器编程,那么您需要一个程序烧写器(如AVRISP mkII)以及一个3.3V FTDI Cable线。你还需要一个mini-USB线来给电池充电。 使用激光切割外壳时,您将需要一个激光切割机和一个小的飞利浦螺起子。

SIM卡

手机应该能使用一个全尺寸的SIM卡,,SIM卡可从任何GSM提供商获取。我已经用T-mobile卡在美国测试成功,AT&T电话卡在印度、中国和欧洲也已经测试成功。

其他材料

对于需要激光切割的外壳,你需要准备如下材料:

  •  一张1/4 ” / 6毫米胶合板,craft plywood from Midwest Products这种可以在美国中西部的许多艺术供应商店可以买到。(避免使用Midwest Productsmicro-lite航空胶合板或者其他带黑胶粘合层的胶合板,因为它们会在激光切割机的高温下燃烧);
  • 一张木单面饰板,最好有粘合底布;
  • 六个M0,5/8″,盘头机螺丝(100 pack from McMaster-Carr);
  • 六个M0螺母(例如50 pack from McMaster-Carr

或者可以试着制作一个不一样的外壳(例如用3D打印机打印或有条件自己铣一个模具)。下面分别是LCD屏版的电路板以及LED点阵版的电路板图示:

8384518274_894c2713f3_m8383433747_e59ef7255b_m

9160323897_79ea9403cb_m9162546146_e33e20b15b_m

焊接电子器件

由于手机使用许多体积小、贴片式器件,可以用一个好的烙铁手工焊接它们。大多数器件都是直接焊接(因为他们的尺寸小),但有少数例外:

  • 电容:大(1000 uF)电容器的焊接要注意极性,如果你接错了方向可能会爆炸。可以用使用橙色条纹事先标识正确。
  • 器件的极性:其他带极性的器件包括超级电容器,发光二极管(注意有两个绿色的小点的一侧),ATmega1284P单片机(注意在角落里的圆圈标志),M10 GSM模块(角落里有个箭头标志),SIM卡插座。
  • 麦克风,二极管(注意淡灰色线一侧)。还有一些器件没有极性(可以任意方向焊接):如晶振(8 MHz)、扬声器、复位按钮、小电容、电阻。其他器件只需要一个方向对齐(但确保晶体管不能颠倒,按钮没有旋转90度)
  • 天线:当焊天线时,先从面向GSM模块的垫块开始焊。因为这里带电气信号,其他都只是在支撑结构(从下面稳定天线)。你甚至可以从天线顶部来加热焊接垫块,热量可以从两个通孔(小孔)散出去。
  • 焊接跳线:电路板底部有两个焊接跳线在,他们的标签分别是“Cell”和“uC”。焊接跳线中心点到标有“uC”的焊接点。(在线路板上此跳线从 FTDI头部通过RX和TX线到ATmega1284P模块,方便他们之间串行通信。相反如果你把中心垫焊接在“Cell”垫上,FTDI线将直接连接到GSM模块,这样你可以与计算机进行通讯)。
  • 扬声器:焊接扬声器是件挺不容易的事,因为它没有引脚。首先,将焊锡涂在印刷电路板的焊接点上。然后将扬声器安在印刷线路板上(和电路板上的焊接垫对齐)和从底部安装焊锡上。你可以添加焊锡或融化之前点在线路板上的焊锡。如果扬声器不发声,不要把扬声器拔下来(你可能会撕裂它下面的焊接点)。相反,尝试对从下面的洞其重新将焊锡点融化。
  • USB连接器:五个小引脚中只有外围的两个用到了,所以你不需要焊接那三个中心的引脚。(注意要焊上四个角,因为他们提供支撑结构的作用)。
  • ISP头:因为你只需要烧录一次引导程序,我特意不把管脚焊到ISP头(2×3)上。相反,可以在烧录引导程序的同时,把管脚插入你的ISP连接器,用手握着线路板(从线路板顶部)对着管脚。如果你做不到,你可以先把管脚焊入孔中,但你必须调整机壳来为它腾出空间。
  • 液晶屏(LCD):你只需要焊屏幕顶部八个脚,而不是底部的八脚。要把晶体焊好,需要从底部插入公头管脚(以便塑料部分在电路板下面)。首先先把它焊在电路板上,然后把显示屏放在上面(检查极性)。最后把管脚焊到显示屏上。

编译软件

手机的软件是一个Arduino程序,利用各种库和第三方硬件定义。你可以编译并与Arduino软件一起上传,但是一些初始设置是必需的:

  1. 下载并安装Arduino 1.0.4(经过测试的)或从Arduino 1.0.5软件页面Arduino software page上安装。
  2. 安装 Git version 版本控制软件.。使用方法见 Windows 或 Mac
  3. GitHub上签出手机的源代码。如:”git clone https://github.com/damellis/cellphone2.git“,然后执行 ”cd cellphone2″ 来改变源代码目录。
  4. 签出手机软件使用的其他库”git submodule init”和”git submodule update”
  5. 对于LED矩阵屏,签出LED点阵分支”git checkout led-matrix”。(LCD屏代码存储在默认的主分支)
  6. 运行Arduino系统,preferences对话框设置你的sketchbook文件夹到cellphone2目录(即你从github上检出的目录)
  7. preferences对话框,启用在编译和上传时显示详细信息(verbose)。(如果有任何差错的话,这将有助于调试)
  8. 重启Arduino软件。
  9. 选择“DIY手机”从工具>线路板菜单。
  10. 从工具> 烧写器菜单选择AVRISP mkII(或者你使用的烧写器)
  11. 把锂电池放入手机。
  12. 从工具菜单启动“烧录引导程序”(同时握着ISP头的针在对着线路板上相应的孔)。这可能需要几分钟。
  13. 连接3.3 v FTDI电缆到FTDI头(黑色线继续边贴上“B”,绿色的边贴上“G)
  14. sketchbook打开手机脚本。
  15. 从工具>串行端口菜单选择对应FTDI电缆的选项。
  16. 上传手机脚本。
  17. 屏幕应该打开并显示“正在连接”。
  18. SIM卡插入槽中。
  19. 手机连接到网络可能需要一段时间的。如果几分钟之后仍连接不上网络,可以试着重启调整板(按小重启按钮)。你可以在Arduino串行监视器上看到9600波特的调试信息。
  20. 一旦手机和网络连接成功,你会在屏幕上“已连接”和“正在缓存”在屏幕上。几秒后,屏幕变成一片空白。这表明手机已经成功启动现在已锁定屏幕。参见“使用手机”一节获得更多的信息。

cellphone_call240

使用手机

解锁手机

一旦手机成功启动后屏幕将被锁定成空白。按任意键解锁手机,日期和时间将出现在屏幕几秒钟(这是“解锁”屏幕)。在LED点阵晶体上,日期和时间将来回滚动在屏幕上。如果在这时你按下“解锁”键(左上角的按钮),电话将会解锁,如果使用液晶显示屏,屏幕的背光将打开。在液晶日期和时间将保持屏幕会看到软键的“锁”和“菜单”出现在屏幕上。而在LED点阵晶体上时间将继续显示不再滚动,这就是主屏幕。

锁定手机

在主屏幕你可以锁定手机,只要按下左边的软键按钮(左上角按钮)即可。这将关掉屏幕和背光,但电话还在开机状态,还能接电话和发信息。

调整对比度/亮度

在手机的“解锁”屏幕中你可以调整对比度(LCD液晶显示屏)或亮度(LED点阵显示屏),这可以通过使用向上和向下按钮(屏幕下方的4个按键组的中间两个按键)来实现。.

拨电话号码

你可以从主屏幕拨一个号码。只需要简单按下对应的号码的第一个数字键。你会被带到拨号屏幕,在这里您可以输入剩余的数字。按*键可以删除最后一个数字或按“back”回到主屏幕。接下来连续按#键一次或多次,您就可以输入#、*、或+。要打电话就按右键(“call”)。

使用电话簿(联系人列表)

在主屏幕下,按向下箭头进入电话本。使用上下箭头来导航到所需的条目。按右键(“okay”)进入一个菜单,你可以打电话、发送短信到该联系人,添加一个新的联系人到通讯录进行编辑或着删除联系人。

添加一个联系人

要添加一个联系人,首先从主屏幕进入联系人列表,按向下箭头。然后按正确的按钮进入联系人菜单(“call”、“text”、“add entry”等等);滚动(使用上下按键)到“add entry”菜单项按右键即可。现在你可以使用数字小键盘输入的名称(2是“abc”,三是“def”等;1是空格,*是退格,和#是切换)。一旦你进入联系人的名字,按向下箭头移动到联系人的电话号码字段(你也可以按向上箭头返回字段用于输入联系人的名字)。输入联系人的号码使用键盘(*再次退格,但#现在在*# +和之间循环)。当你进入了名字和电话号码后,按右键保存联系人信息(或按左按键取消)。

打电话给联系人

要打电话给一个在您列表中的联系人,只需要滚动到联系人,按右键弹出菜单(“call”、”text”等等),然后再次按右键打电话给联系人。

发短信给联系人

要发短信给联系人,只需滚动到联系人列表,按右键弹出菜单联系人。向下滚动到“text”并按右键。现在你可以使用数字小键盘输入你的信息。(比如联系人的名字,2是“abc”,3是“def”等;1是空格,*是退格,#是切换)。按右键来发送文本(或左键取消)

故障排除

自制手机涉及很多细节问题,也有很多问题使得手机不能正常工作。这里列举一些潜在的问题和可行的解决方法。

不能烧录引导程序到单片机

  • 微处理器是否带电?(电池放入了么,充电了吗?)
  • 微处理器是否焊接正确(即每条管脚是是否焊接到相应的焊点上和是否短路或脱焊)?特别是检查连接到ISP头、VCC以及接地的管脚是否正确。
  • ISP头的管脚是否牢固地固定在线路板相应的孔上?你可以试一试把管脚焊到ISP头上(线路板的顶部)。
  • 晶振焊接正确吗?(如果不正确的话引导装载程序第一步可能会成功,但第二个步可能会失败)。

不能编译手机程序

  • 你使用是Arduino 1.0.4或1.0.5系统么?
  • 你是否签出了cellphone2子库吗?(他们包含所需的库和线路板的定义)
  • Arduino的sketchbook目录是否设置为cellphone2?(否则Arduino软件无法找到库和线路板的定义)
  • “DIY Cellphone”是从工具>线路板菜单选取的吗?

不能上传手机程序

  • 是FTDI线是否连接正确(黑色线连接到贴着“B”的一端,绿色线连接到“G”的一段)?
  • 你是否从工具>串行端口的菜单选择正确的串口正确么?(试着拔掉FTDI电缆,看哪一项从菜单中消失,那一项就是对应的电缆项)
  • 是焊料跳线焊接正确(中央焊点连接到“UC“点上了么)?
  • 电路板上电了么?
  • FTDI头焊接正确吗?特别是临近的0.1超滤电容?或RX和TX微处理器?
  • 晶振焊接正确吗?
  • 引导装载程序烧录成功吗?(如果没有参考上面这个问题)

不能连接到通讯网络

  • 有SIM卡在插槽上吗?
  • 是SIM插座焊接正确吗?22欧姆电阻焊接正确么?GSM模块上相应的焊接点焊接正确吗?
  • 天线焊接正确吗?相应的焊点在GSM模块吗?
  • 0欧姆电阻是否焊接正确?(跟踪连接M10 GSM模块的天线)
  • 有接收吗?
  • SIM卡被另一部电话锁住了么?
  • AT&T SIM卡(可能还有其他运营商的SIM卡):你在AT&T网站上激活你的SIM卡了么?你需要一个印在M10 GSM模块上的IMEI号码。

其他器件不能工作(例如:显示屏、扬声器、麦克风、蜂鸣器)

  • 器件焊接正确么?
  • 连接器件部分焊接正确么 ?(例如 微处理器或GSM模块的管脚))焊接正确么?

串口调试

你可以通过计算机与GSM模块串口通讯进一步调试手机,使用微处理器作为代理。上传SerialProxy到手机上 (使用一个 3.3V FTDI 线缆或分支电路板)。打开串口监视器,把波特率设定为9600,行结束符设置成回车,几秒后你会看到:

READY

AT

OK

这意味着GSM准备接收AT命令(主要以“AT”打头的字符串文本)。GSM模块的数据手册中会有这个命令是详细介绍,这里有一些基本的AT命令:

AT命令

测试/同步命令。如果你在串口通讯监控器输入“AT”(以“回车”作为行结束符),你应该得到一个“OK”响应。

AT+CREG?

检查网络注册的状态(连接)。响应信息将是“+ CREG 0,N”的格式,N可以是:0(没有注册到网络)、1(注册到网络)、2(寻找网络)、3(网络注册否认)或5(注册、漫游)。

AT+ CPBS?

显示当前选中的电话簿。响应的信息例如:“+ CPBS:“SM”,50250”,“SM”指示的SIM卡是当前电话簿(其他选项包括“MC”为未接电话簿,“RC”为已接电话列表,“ME”是GSM模块电话簿)以及250条中的50个目在使用的联系人 。这个命令可以用于验证GSM模块能够与SIM卡的连接是否正确。

AT+ CPBS =“SM”

选择SIM卡的电话簿。你也可以用前面说的MC,RC,ME取代“SM”缩写。

AT+ CPBR = 1

阅读从当前选中的电话簿第一个条目。1可以换成其他你想读取的条目(电话本总的大小由AT+ CPBS 命令可以查出)

制作外壳

你可以采用激光切割的胶合板、单板饰面、以及一些小螺丝做一个简单但实用的外壳(详见上面的材料):

  1. 切割之前的情况,检查包装文件是否和电路板匹配。特别是我在大小和螺丝孔的位置上做了很多的调整,所以检查它们在PCB板和包装在外壳的孔是否在同一个位置上。(注意,外饰单板文件上的洞底应该比其他的孔大些,这是为了安上螺母、以及能把螺丝轻松的拧下来)
  2. 如果你在ISP头上焊上固定点,你需要在顶部块胶合板上抠出空间。相应DIY-Cellphone-Top图纸也要进行修改。
  3. 采用在GitHub上的damellis / cellphone2hw库Case/ folder中的DIY-Cellphone-Top-Veneer和DIY-Cellphone-Bottom-Veneer图纸文件来用激光切割胶合板(1/4”/ 6毫米)。SVG文件被创建到Inkscape里,然后生成hpgl文件,以便在CorelDraw绘图软件中导入。
  4. 激光表面使用DIY-Cellphone-Top-Veneer 和 DIY-Cellphone-Bottom-Veneer单板文件。切单板饰面时木前面向上(胶背面向下)
  5. 从顶部饰面单板块撕掉粘合底布然后贴在了外面的顶级胶合板片上。背部反复贴紧,,再把外部的饰面贴在胶合板上。
  6. 在上层每个按钮和顶部饰面单板之间有一点空空间。你可以在上层饰面板的背面防止间隔垫一个用于安放按钮的装置(放于饰面单板中间的一个个矩形曲线图样)。这样你不必降低单板下的按钮高度。
  7. 滑动电路板顶部和底部的外壳。为了安装GSM模块和电池连接器之间的电池线, 需要把电线弯成两段。胶合板碎片应该保持与电路板平行。
  8. 把六个螺丝拧进螺帽里。

设计文档

手机的设计文件和源代码可以在GitHub上找到:



原文链接: David A. Mellis 翻译: 极客范 - 麻瓜围脖2011

译文链接: http://www.geekfan.net/3829/

[ 转载请保留原文出处、译者和译文链接。]

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">