DIY cellphone – Arduino 手机

看 the ben heck show,ben用了两期视频的时间,做了一个功能机,虽然只能打电话,但也很厉害了,如果我能把这个project也搞成,对我编程方面也会有很大提高。

《Ben Heck’s DIY Cell Phone Part 1》

用到的内容:


接线图:


过程:


学习各模块

首先我先单独研究了需要用到的所有模块,SSD1306 OLED屏幕,4*4 keypad matrix,GSM模块,还有锂电池充电,最后还学了UART通信

然后把所有部件都组装在面包板上,在github里下载了 Ben heck show里的源码,开始研究系统部分

研究系统代码

刚开始下载来的代码一直读不懂,因为我对c语言做比较完整的系统没有经验,突然有天开了窍,把400多行代码打印出来,一页一页的读,发现其实并不是很难。然后一个部分慢慢的把整个系统都调试好了

中间熟悉了ASCII和decimal的转换,还有arduino和GSM模块用AT命令进行通信也研究了好久,这个过程示波器帮助很大,debug的时候非常方便。

之后就是优化代码,因为ben用的硬件和我不是很一样,而且最初写的系统bug很多,所以我开始补bug

调试的最后部分增加了一些新的功能,比如自动息屏、息屏后进入省电模式、来电震动、还更改了开机启动时的adafruit的logo,换成了自己的开机画面等

因为代码比较多,中间有好几次把修改好bug后保存的文件名搞混了,还有一次直接退回了最初的一个版本,新加的功能都不见了,又重新敲了一次。所以以后要写比较大的系统,或者功能比较多的代码时,最好用github管理版本,每次修好bug或添加了新的功能后都commit一次,写上更改信息,然后标上新的版本号,push到github里,方便管理,以前做网站开发时比较懒,不习惯用,现在写c要重新开始使用了。

最后调试好后的代码放在了github里 https://github.com/hardihuang/DIY-cellphone

焊接

然后从面包板上取下所有硬件,用细导线焊接在一起,做到越小越好

壳子建模打印

最后用了一下午,在Fusion里设计了壳子,3d打印出来安装上了

最后的意外收获

在面包板上测试时,使用准备的一块3.7v锂电池供电,系统一直欠压无法正常工作,尤其是有电话打进来和通话中时,总是自动重启,arduino pro mini上又没有升压模块。ben在节目中用的GSM模块自带锂电池接口和充电模块,可以直接通过AT命令获取电量信息,充电状态等,所以决定这个手机就不要电池了,等以后有能力解决了再研究(作为一款手机,没有电池是一件很尴尬的事),系统里的电池图标也是写死的,还在手机右边留出了两个电源接口,准备外部供电,另两个是个arduino上传程序用的

等安装上了壳子,打算再试下,把锂电池充满电,竟然可以正常使用了,待机了一晚上,第二天早上还可以正常通话,所以就直接把电池和充电模块粘在了壳子背后,又加了一个开关机开关,怀疑是面板板上的导线接触不良导致模块用电过大时不稳定,况且线也太长。

至此,DIY cellphone项目算是正式完成了!

厚度还算可以,等以后有精力了,再重新打印个壳子,把电池和充电板放在里面,然后就是重新在ps里设计一个键盘贴纸,自己画的有点丑…

 

“DIY cellphone – Arduino 手机”的一个回复

发表回复