首页 > 应用与分享 > 自制4G手机!电路代码全开源!
  • 自制4G手机!电路代码全开源!

  • 2023-05-09 13:48:54 阅读量:7046

本文作者:立创开源硬件平台 OSHWHub @flyn禁止商用,未经许可禁止转载点击看原文章



1、工程描述

自制4G手机,基于Air724UG模组,Lua开发语言设计。手机有7大功能,分别是——电话通信、短信发送、音乐播放、一键指定呼叫、开关机及定时休眠、游戏娱乐、U盘模拟。



  



2、功能描述


Ⅰ  电话通信

进入电话app界面,输入电话号码,按“*”键拨出,按“#”键退出。


短信发送

进入短信app界面,按右侧“↑”“↓”按键切换到号码框或短信框,在号码框输入电话号码,在短信框按“0-9”数字按键切换短信内容(消息列表存放在sd卡中的message.json文件里),按“*”号键发送,按“#”键退出


音乐播放

进入音乐app界面,按右侧“↑”“↓”按键切换mp3文件(文件保存在sd卡的music文件夹里),按“*”号键播放和停止,按“#”键停止并退出。


一键指定呼叫

在主界面,按“0-9”数字按键,直接进入拨号界面并设置好对应电话号码,电话号码列表存放在sd卡中的call list.json文件里,按“*”键拨出,按“#”键退出。


开关机及定时休眠

在关机状态,按住右侧电源按钮持续4秒手机开机,并显示开机动画。

进入主菜单后,按住右侧电源按钮持续2秒弹出关机确认界面,按“*”号键关机,按“#”键返回。

1分钟无按键操作,手机屏幕和按键灯熄灭,进入休眠状态以降低功耗。


游戏娱乐

进入游戏app界面,有一个小鸟游戏。用“*”号键控制小鸟上升,很简单的一个游戏,按“#”键退出。


U盘模拟

手机接入电脑后会模拟出一个U盘,指向板上的sd卡,可以用来存放文件。



3、设计图


  

原理(点击进入嘉创EDA编辑器打开)




4、硬件说明

硬件上使用Air724UG模块作为主控,所有外设都接在模块上。


  



主板采用4层板,阻容基本上是0402封装,整机外壳5X10cm,锂电池容量为1500mAH。板上预留了摄像头接口以及锂电池电量计芯片(未验证)。



  

  


手机正面是一块280X240的tft液晶屏和12颗按键。按键采用的是6x6x7.2贴片带灯,套了数字按键帽,按键上的灯统一由air724UG的一个pwm口控制。侧面是3颗侧贴的轻触按钮,实现“上”、“下”、“开关机”功能。


底部是一个Typec座和一个双色LED:

typec口用于电池充电以及程序烧入,并且可以连接到PC用于模拟U盘,模拟的U盘目录指向手机上的SD卡。
双色LED用于指示充电状态,红色表示充电,蓝色表示充满。
背面扬声器位置开孔以及4个M2.5的固定孔位置。




  

  

  

PCB和整机图片



5、软件说明


软件部分基于LuatOS-Air编写。 LuatOS-Air = Lua + AT,是合宙嵌入式操作系统LuatOS在蜂窝物联网模组上推出的开源的二次开发框架。

LuatOS-Air将传统的AT命令用Lua语言封装成API,开发者可以通过调用API轻松便捷的实现SOCKET、MQTT、OTA、GPIO、I2C、SPI等功能。框架如下:


  


紫光展锐8910平台的Cat.1模块底层core中跑的操作系统是FreeRTOS。 core在启动过程中,会创建一系列的task,例如音频、协议栈、串口等。

其中有一个task,用来加载Lua虚拟机,解析运行用户编写的Lua脚本,这个task,我们称之为Lua virtual task。 另外在Lua脚本中,利用Lua的协程特性封装了一个sys.taskInit接口,借用了task的概念,实际上并不是真正的task。

脚本中的所有应用,都运行在Lua virtual machine task中,属于单task应用。sdk框架如下:


  



本次工程代码用到了VOLTE高清通话、LVGL、浮点运算以及模拟U盘等功能,官方发布的core不满足需求,所以需要定制固件。


代码主要编写app应用层脚本,我将代码分为3个文件夹,分别为/main、/panel和/resources。


main文件夹部分是一些应用初始化以及UI加载等代码

panel文件夹部分是每个应用app界面代码

resources文件夹存放一些app图标、控件图片以及音频文件,尺寸较大的图片和文件存放在sd卡中。



IDE使用VSCode,下载luatIDE以及相应的debug插件,可以通过usb口进行下载调试。

UI基于LVGL库,LVGL 是一个开源的图形库,它提供了创建嵌入式 GUI 所需的一切,具有易于使用的图形元素、漂亮的视觉效果和低内存占用的特点。

基本上,大部分控制器(需要能够驱动显示屏)都适合运行 LVGL。最低要求是:


  


C语言版本的LVGL支持触摸屏、鼠标、键盘、编码器、按钮等多种输入设备,合闸官方提供的demo是基于触摸屏的设计,移植到本工程改为按键输入时找不到group相对应的api,不知道是不是lua 版本的 LVGL还未支持。

目前是为所有界面编写了按键响应函数,这导致控件配合的不是很好。

手机使用方法:开机动画结束后进入主界面,顶部显示手机卡状态、当前时间以及电池电量。中间app图标排成一排,当前选中的app在中间,按右侧“↑”“↓”按键切换app,按“*”键进入app界面(当前切换动画代码未编写,切换过程不太直观)。



6、软硬件调试


硬件调试

由于air724UG模块背面有焊盘类似BGA,在焊接时需要借助加热台。

①先在焊盘上涂抹锡膏,放上模块进行加热,所以PCB板背面的元件先不要焊接!

②焊好模块周边的元件以及usb口部分的元件,先烧入脚本进行测试模块背面焊盘是否焊接良好。

③背面焊盘主要是按键和摄像头以及lcd背光,摄像头预留暂时未写对应代码暂时不管,想用的可以用官方的demo测试。

④按键可以用线短接来模拟测试。

  



⑤主板与LCD板通过1.27间距的双排插座插针连接,这是为了检修以及安装方便。但是排针排座连接也增加了高度,为了参照按键的高度,我把LCD板上插针的黑色塑料部分拆了,剪短针长至4.5mm。

⑥注意焊好后再去掉塑料部分是很困难的,在拔的过程中极有可能导致液晶屏损坏,所以最好先焊好排针最后焊液晶屏。

⑦PCB板连接PC时需接上电池,否则TP4057可能工作不正常导致模块启不来。


软件调试

可以通过LuaTools工具进入脚本烧入。
手机侧面的第二个按钮是boot键,按住该键再重启即可进入boot模式。
板上接出重启按键,在裸板时可以协助调试。板上预留串口接口,可以接出使用(未使用过,使用usb调试很方便)。
LuaTools工具可以打印日志,想输出哪些信息在脚本里调用log.info()即可。

  

  


烧入脚本程序重启后会发现没有开机动画,进入主界面也没有背景等问题。这是因为sd卡里没有对应文件。

用usb接上PC,会在PC端弹出一个U盘,该U盘指向的就是手机上的sd卡,将附件提供的music文件、message.json、call list.json、wallpaper.png、wallpaper2.png和startup animation.gif放入U盘,再重启就可以了。

如果PC端有提示U盘但是打不开,可能是sd卡格式损坏,将U盘快速格式化一遍就行了。

  



7、总结和待实现功能


本工程实现了所要求的功能,但还有些小瑕疵:喇叭在播放一段时间后会出现杂音不清晰、主界面切换app图标时有时会出现某一项图标消失不显示、长时间播放音乐手机会有发烫现象。

后续等空闲时间的时候再改进吧,还有一些功能后续也会添加,比如录音、wifi定位、摄像头识别二维码、扫码支付、文件夹浏览等。(但是时间多久不定,勿cue)


更多详情及附件,可从原工程查看。

本文作者:立创开源硬件平台 OSHWHub 用户@flyn禁止商用,未经许可禁止转载


热门物料
型号
价格
CGA0603X5R226M160JT/贴片电容(MLCC) 0.1792
CGA0805X5R226M350MT/贴片电容(MLCC) 0.465
ADS1115IDGSR/模数转换芯片ADC 7.22
SN65LBC184DR/RS-485/RS-422芯片 3.75
SN75176BDR/RS-485/RS-422芯片 0.6904
ISO1050DUBR/CAN芯片 2.32
ADS1256IDBR/模数转换芯片ADC 44.45
AMC1200BDWVR/隔离放大器 4.12
TJA1051T/3/1J/CAN芯片 2.62
STM32H750VBT6/单片机(MCU/MPU/SOC) 17.76
您的浏览器版本过低(IE8及IE8以下的浏览器或者其他浏览器的兼容模式),存在严重安全漏洞,请切换浏览器为极速模式或者将IE浏览器升级到更高版本。 【查看详情】
推荐您下载并使用 立创商城APP 或者最新版 谷歌浏览器火狐浏览器360浏览器搜狗浏览器QQ浏览器 的极(高)速模式进行访问。
© 2022 深圳市立创电子商务有限公司 版权所有

提示

您确定删除此收货地址吗?

提示

您确定删除此收货地址吗?

成功提示

content

失败提示

content

微信咨询

关注公众号咨询客服

咨询客服
  • 在线客服热线

    0755-83865666

  • 服务时间

    工作日  8:30~20:30

    节假日  8:30~18:00

  • 服务投诉

QQ咨询
优惠券
芯媒体

立创商城旗下芯媒体

微信号:icsight

建议反馈
填问卷 立创用户体验问卷调查 立即参与
活动规则
活动规则
展开客服