MiniPhone - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版 Standard

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版 professional

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

专业版 MiniPhone

简介:基于Air724UG模组,Lua开发语言设计一款简单的成本低4G手机。希望每一个新的项目都能让自己有所成长。

开源协议: CC BY-NC-SA 4.0

(未经作者授权,禁止转载)

已参加:星火计划2023

创建时间: 2023-02-25 12:57:11
更新时间: 2024-01-23 17:28:05
描述
# 项目说明 这是一台简易4G手机,主控基于合宙`Air724UG`模组,`Lua`脚本二次开发。实现了通话、短信发送、播放音乐等功能。Air724UG 是合宙通信推出的超小封装 LTE Cat.1模块,是4G全网通模块,采用紫光展锐的UIS8910平台,支持标准AT和Lua脚本二次开发,本次项目使用lua二次开发将其直接作为主控,相对于常规的MCU+4G模块方案减少了成本和元器件,同时能更好的发挥其内部MCU性能。 视频链接:[https://www.bilibili.com/video/BV1194y1B7qQ/](https://www.bilibili.com/video/BV1194y1B7qQ/) # 开源协议 本工程依据“CC-BY-NC-SA 4.0”知识共享许可协议,请勿用于商用,转载时请标明出处。 # 项目相关功能 * `电话通信` 进入电话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月26日,原理设计结束,PCB打样。目前PCB分为两块,一块主板、一块lcd板。 3月30日,3D外壳设计完毕,在三维猴下单打样。在立创商城和淘宝购买元器件。 4月3日,3d外壳和元件陆续到货,编写测试代码,验证硬件部分。 4月7日,硬件部分验证完毕,开始设计软件部分。 4月19日,已实现所有要求的功能,整机测试。(使用8Ω1W的喇叭,发现声音不清晰,调高音量感觉有破音) 4月21日,修复一些bug,重新修改了开机动画。测试了另外购买的喇叭,发现声音依旧不太清晰,暂时先不改了,准备结项。 4月22日,完善资料和文档,结项。 # 项目介绍 ## 1.硬件 硬件上使用Air724UG模块作为主控,所有外设都接在模块上,主板采用4层板,阻容基本上是0402封装,整机外壳5X10cm,锂电池容量为1500mAH。**板上预留了摄像头接口以及锂电池电量计芯片**(未验证),硬件简易框图如下: ![硬件简易框图.png](//image.lceda.cn/pullimage/2sPBYThRSvh8JoMeUyR9Huem3yGKUtCp4QaqRXdz.png) 手机**正面**是一块280X240的tft液晶屏和12颗按键,按键采用的是6x6x7.2贴片带灯,套了数字按键帽,按键上的灯统一由air724UG的一个pwm口控制。**侧面**是3颗侧贴的轻触按钮,实现“上”、“下”、“开关机”功能。**底部**是一个Typec座和一个双色LED,typec口用于电池充电以及程序烧入,并且可以连接到PC用于模拟U盘,模拟的U盘目录指向手机上的SD卡。双色LED用于指示充电状态,红色表示充电,蓝色表示充满。**背面**扬声器位置开孔以及4个M2.5的固定孔位置。 ![结构介绍.png](//image.lceda.cn/pullimage/YyOM7qs9ecJcX0VXTby0CjUuKHf0HqzORJRy2f0l.png) ![结构介绍2.png](//image.lceda.cn/pullimage/jlhBERkmjddtNW9HPG1mylV5fmkZFGzJyonPwEGg.png) PCB和整机图片 ![裸板.png](//image.lceda.cn/pullimage/zOOu3kWwvtYOajuS0ak7inPTNmqTYNnmO0Qv2nkv.png) ![整机.png](//image.lceda.cn/pullimage/HMVzZMQn0Dl09XYrIUgzU86oMad0CxAiNfmMW1e8.png) ![3d分解图.png](//image.lceda.cn/pullimage/FzSnTglkXJhHaUiy398ZDJ5liaN8YCvUGKK8cH7b.png) ## 2.软件 软件部分基于LuatOS-Air编写,LuatOS-Air = Lua + AT,是合宙嵌入式操作系统LuatOS在蜂窝物联网模组上推出的开源的二次开发框架。LuatOS-Air将传统的AT命令用Lua语言封装成API,开发者可以通过调用API轻松便捷的实现SOCKET、MQTT、OTA、GPIO、I2C、SPI等功能。框架如下: ![luatos air框架.png](//image.lceda.cn/pullimage/3qJXQL2dmNBX5IJMJezpvQh8FkO0gqsTfTadZuhJ.png) 紫光展锐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框架如下: ![sdk架构.png](//image.lceda.cn/pullimage/uRGXvfjstVLEH9FQQNApEHVWJvkQHY2g3iomc6XD.png) 本次工程代码用到了VOLTE高清通话、LVGL、浮点运算以及模拟U盘等功能,官方发布的core不满足需求,所以需要定制固件。合宙官方提供了`固件定制系统`,针对用户不同功能使用场景,进行在线定制固件。满足用户功能定制化需求,同时也能最大化保留Lua运行和存储空间。固件定制链接如下:[http://erp.openluat.com/firm_customized](http://erp.openluat.com/firm_customized) 代码主要编写app应用层脚本,我将代码分为3个文件夹,分别为`/main`、`/panel`和`/resources`。main文件夹部分是一些应用初始化以及UI加载等代码,panel文件夹部分是每个应用app界面代码,resources文件夹存放一些app图标、控件图片以及音频文件,尺寸较大的图片和文件存放在sd卡中。 IDE使用VSCode,下载luatIDE以及相应的debug插件,可以通过usb口进行下载调试,具体教程可看`稀饭放姜`这位大佬的b站视频**Luat开发视频教程合集**和合宙官网([``https://doc.openluat.com/``](https://doc.openluat.com/))提供的资料,本次项目也是参考了官网的昆仑镜和iCool项目,代码在[https://gitee.com/openLuat/Luat_Lua_Air724U/tree/master](https://gitee.com/openLuat/Luat_Lua_Air724U/tree/master) **UI**基于LVGL库,LVGL 是一个开源的图形库,它提供了创建嵌入式 GUI 所需的一切,具有易于使用的图形元素、漂亮的视觉效果和低内存占用的特点。基本上,大部分控制器(需要能够驱动显示屏)都适合运行 LVGL。最低要求是: ![lvgl硬件要求.jpg](//image.lceda.cn/pullimage/1IBcZIAOhVleqPYQTlS9rW8o9hssvplqSuDtwPDt.png) C语言版本的LVGL支持触摸屏、鼠标、键盘、编码器、按钮等多种输入设备,合闸官方提供的demo是基于触摸屏的设计,移植到本工程改为按键输入时找不到group相对应的api,不知道是不是lua 版本的 LVGL还未支持。目前是为所有界面编写了按键响应函数,这导致控件配合的不是很好。 开机动画结束后进入主界面,顶部显示手机卡状态、当前时间以及电池电量。中间app图标排成一排,当前选中的app在中间,按右侧“↑”“↓”按键切换app,按“*”键进入app界面(**当前切换动画代码未编写,切换过程不太直观**),各app界面功能看工程视频。 ## 3.调试 ### 3.1硬件调试 由于air724UG模块背面有焊盘类似BGA,在焊接时需要借助加热台。先在焊盘上涂抹锡膏,放上模块进行加热,**所以PCB板背面的元件先不要焊接**!焊好模块周边的元件以及usb口部分的元件,先烧入脚本进行测试模块背面焊盘是否焊接良好。背面焊盘主要是按键和摄像头以及lcd背光,`摄像头预留暂时未写对应代码暂时不管,想用的可以用官方的demo测试。`按键可以用线短接来模拟测试。 ![模块背面焊盘.jpg](//image.lceda.cn/pullimage/C1vMcz3Rw0O1RTH81t4OjjODoSYHqRgStda4wbBw.png) 主板与LCD板通过1.27间距的双排插座插针连接,这是为了检修以及安装方便。但是排针排座连接也增加了高度,为了参照按键的高度,我把LCD板上插针的黑色塑料部分拆了,剪短针长至4.5mm。**注意焊好后再去掉塑料部分是很困难的,在拔的过程中极有可能导致液晶屏损坏,所以最好先焊好排针最后焊液晶屏。** PCB板连接PC时需接上电池,否则TP4057可能工作不正常导致模块启不来。 ### 3.2软件调试 可以通过LuaTools工具进入脚本烧入,具体烧入步骤可以参考`稀饭放姜`大佬的b站视频,手机侧面的第二个按钮是boot键,按住该键再重启即可进入boot模式。同时板上接出了一个重启按键,在裸板时可以协助调试。另外板上预留了串口接口,可以接出使用(**未使用过,使用usb调试很方便**)。LuaTools工具可以打印日志,想输出哪些信息在脚本里调用`log.info()`即可。 ![luatools主界面.jpg](//image.lceda.cn/pullimage/SipaijYJOm4UIMXrzrKISIcH8H0ClBCWti851mQg.png) ![luatoos项目管理界面.jpg](//image.lceda.cn/pullimage/hDPGCphgSoTBHd34ZdfUOKaFcfNbDrlGcUkdMxOk.png) 烧入脚本程序重启后会发现没有开机动画,进入主界面也没有背景等问题。这是因为**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盘快速格式化一遍就行了。 ![模拟u盘.jpg](//image.lceda.cn/pullimage/2dwCuRjoEUbBYkgowu3MPYLIfSqW1cwCbJU3lPFZ.png) ### 3.3附件说明 附件视频依次测试了上述介绍的功能,附件里的`sd压缩包`文件用来拷贝到sd卡根目录,`code压缩包`文件包含了脚本和定制的core。`3d外壳压缩包`文件包含了3d打印文件。luaTools下载地址:[https://doc.openluat.com/wiki/21?wiki_page_id=2070](https://doc.openluat.com/wiki/21?wiki_page_id=2070) ## 4.总结和待实现功能 之前做的一些关于4G模块的项目都是MCU+4G方案,初次了解到合宙的这种方案,感觉这是种趋势,在性能和成本上都要好于常规方案。配套的LuatOS框架也很大的提升了开发效率。`Lua作为一种脚本语言`,可以很容易的被C/C++ 代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,ini等文件格式,并且更容易理解和维护。 本工程实现了所要求的功能,但还有些**小瑕疵**:喇叭在播放一段时间后会出现杂音不清晰、主界面切换app图标时有时会出现某一项图标消失不显示、长时间播放音乐手机会有发烫现象。后续等空闲时间的时候再改进吧,还有一些功能后续也会添加,比如**录音**、**wifi定位**、**摄像头识别二维码**、**扫码支付**、**文件夹浏览**等。(但是时间多久不定,勿cue) # **以上是本工程全部内容,感谢查阅!**
设计图
原理图
1 /
PCB
1 /
未生成预览图,请在编辑器重新保存一次
工程成员
侵权投诉
相关工程
换一批
加载中...
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

support
  • 开源平台公众号

MP