返回官网官方微博

麦步社区-论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: MAI 表盘
查看: 63552|回复: 40
打印 上一主题 下一主题

[表盘制作教程] 【教程-入门级】教你做属于自己的数字表盘,敲简单!

[复制链接]

2

主题

9

帖子

754

麦力

精华
2
阅读权限
30
在线时间
15 小时

跳转到指定楼层
楼主
发表于 2016-8-26 22:17:20 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 电气猫 于 2016-8-26 22:22 编辑

前言:麦步表盘感觉很少的说……主要是开发人员不够?不过逛了逛社区,发现好多人都想做,但苦于太难(其实不太难,个人认为是教程没做好),今天写一个教程,教大家做自己的属于自己的第一个表盘!无论做得怎样,当显示在自己手表的那一刻,还是相当有成就感的说!





第一步、下载工具:地址http://dev.maibu.cc/sdk/watch,帮助文档(可选)、ARM编译器(必须)、APP模拟器(按照你的系统位数决定32还是64,必须)、Demo(可选)、APP内存检测(可选)


==============科普一下(没兴趣了解每个东西是干嘛的可以跳过这段)==============


这个是编译环境,我们写好的代码是我们看到的C语言

而这个是将代码转化为机器语音的一个标准环境。需要安装





这个是官方做的一个模拟器

可以将做好的文件实际检测一下

但目前还不完善,不过这个教程里足够啦





这个里面包含了很多程序模板

本教程无需使用。










第二步、安装配置:实际上,需要安装的只有ARM编译器,模拟器不需要安装。
把这个装好,然后把模拟器解压好,最好安装的位置和解压的位置在一起,如右图:










第三步、配置:右键我的电脑-属性-高级系统设置-高级-环境变量-PATH-编辑



变量值最后增加ARM编译器和模拟器的的实际地址
比如我的是64位的,安装地址和解压地址都是D:\Program Files\所以在这个变量值上增加下面的部分
;D:\Program Files\GNU Tools ARM Embedded\4.7 2014q2\bin;D:\Program Files\VisualMWatch_W64\mbcc\bin


恭喜你,到这一步你已经把锅碗瓢盆准备好了,开始做饭吧。





第四步、选材:既然是新手,我们先去商城找一款比较喜欢的数字表表盘,这次就用个比较简单的藤蔓十字绣吧
选好之后,我们到这个帖子找找http://bbs.maibu.cc/thread-483-1-1.html或者在https://github.com/maibu/Maibu找到,这里我们就用最简单的藤蔓表盘,因为元素少、没有秒更新,省电,下载源码包,解压后如左图,然后把这些放到模拟器安装地址,右图




appinfo.json文件是一个指针文件,无需改动,c是源代码,resource里面是程序调用的一些文件,比如图片。
打开之后如下:
DATA就是日期用文字、TIME就是时间用的文字、VINES是背景。



第五步、加工素材:最近守望挺火的啊,做个死神表盘吧。截取大小要128*128,保存成单色BMP,注意要留一点空间给表面
然后加工一下字体,打开一个数字调用的图片,这里改个比较酷炫的手写字体吧,有点死神的这种风格。最好保留原的分辨率,有个比较简单的办法可以一次性输入10个数字然后用统一的框选出。
做好的素材如下



第六步、编程:程序这种东西三分做,七分调。既然用有模板了,那么我们只用调,但!也是要一步步调。这时我们打开Visual MWatch.exe然后把watchface_vines.c放进去。找到主程序段,将被屏蔽掉的模拟子函数还原回来。就是把红色框住的删掉就行,不然无法模拟。

模拟之后,就有初版的画面啦。然后红色的这块就是我们的各个元素的坐标。通过修改坐标来调整我们文字的位置。(小贴士:如果找不准位置,可以用鼠标指一下模拟的画面,下方可以看到坐标。)

多次调整好了之后,就有下面的效果啦,顺带在背景里再加点字,加两个点,一条杠(当然,这些都是要调整位置的,而且是反复调,大家要有耐心。)

测试满意了之后,把红色这段加回去,然后点击构建-打包或者直接Ctrl+P
然后把OUT.MAI拖到网页微信文件传输里(此方法最简单快捷,IOS安卓都可以)




等待安装……





Tata~~成功啦




实际效果会由于是墨水屏幕效果会好很多
当然,可以再反复调整到自己喜欢位置
按照此思路,各位可以用自己喜欢的字体
自己喜欢的背景来做(比如自己名字、宠物照片)
那么学会了之后,会不会说这个太简单还是不能上传呢?
不会!只要你有好创意,就可以申请上传到表盘商城!
相信我“真正的好设计工程师不是会写多少代码,而是有多好的创意!”
希望这个可以帮到各位小白!
也希望越来越多的朋友加入到开发者行列!




附件是死神表盘,如果大家喜欢,可以自己下载用哦,也可以直接改了用



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 1能量 +1 收起 理由
dualxu + 1 赞一个!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信 WeiboWeibo
收藏收藏8 分享分享 顶4 踩

1

主题

2

帖子

32

麦力

精华
0
阅读权限
10
在线时间
1 小时

41#
发表于 2019-1-7 16:35:01 | 只看该作者
请问大神,没有.\build\maibu_code,如何解决?
In file included from watchface_weather.c:51:0:
maibu_res.h:3:0: warning: "RES_BITMAP_WATCHFACE_WEATHER_BG" redefined [enabled by default]
In file included from .\SDK/maibu_sdk.h:120:0,
                 from watchface_weather.c:50:
.\SDK/maibu_res_bitmap_base_sdk.h:76:0: note: this is the location of the previous definition
watchface_weather.c: In function 'weather_web_recv_callback':
watchface_weather.c:410:22: warning: initialization makes pointer from integer without a cast [enabled by default]
watchface_weather.c: In function 'weather_time_change':
watchface_weather.c:447:23: warning: initialization makes pointer from integer without a cast [enabled by default]
watchface_weather.c: In function 'app_weather_watch_timer_callback':
watchface_weather.c:521:23: warning: initialization makes pointer from integer without a cast [enabled by default]
watchface_weather.c: In function 'weather_comm_result_callback':
watchface_weather.c:682:3: error: too few arguments to function 'maibu_comm_request_phone'
In file included from .\SDK/maibu_sdk.h:126:0,
                 from watchface_weather.c:50:
.\SDK/maibu_ble.h:135:17: note: declared here
watchface_weather.c: In function 'main':
watchface_weather.c:716:2: warning: passing argument 1 of 'maibu_comm_register_phone_callback' from incompatible pointer type [enabled by default]
In file included from .\SDK/maibu_sdk.h:126:0,
                 from watchface_weather.c:50:
.\SDK/maibu_ble.h:121:13: note: expected 'CBCommPhone' but argument is of type 'void (*)(enum ERequestPhone,  void *)'
watchface_weather.c:722:2: error: too few arguments to function 'maibu_comm_request_phone'
In file included from .\SDK/maibu_sdk.h:126:0,
                 from watchface_weather.c:50:
.\SDK/maibu_ble.h:135:17: note: declared here
arm-none-eabi-ld: cannot find .\*.o: Invalid argument
readelf: Error: '.\build\maibu_code': No such file

0

主题

68

帖子

-104

麦力
精华
0
阅读权限
0
在线时间
12 小时

40#
发表于 2018-12-17 15:48:10 | 只看该作者
顶上去!顶上去!

1

主题

2

帖子

42

麦力

精华
0
阅读权限
10
在线时间
1 小时

39#
发表于 2018-9-6 23:03:59 来自手机 | 只看该作者
苹果何时能控制音乐呢?
来自: 微社区

0

主题

1

帖子

22

麦力

精华
0
阅读权限
10
在线时间
0 小时

38#
发表于 2018-5-31 03:30:29 来自手机 | 只看该作者
DIY表盘没有记步功能,希望能够加上,这样才实用。
来自: 微社区

2

主题

50

帖子

602

麦力

精华
0
阅读权限
30
在线时间
34 小时

37#
发表于 2018-5-30 16:36:57 | 只看该作者
唉,要是能调试就好了

66

主题

915

帖子

1万

麦力

精华
8
阅读权限
80
在线时间
1040 小时

麦步极客实验室麦步增强版用户

36#
发表于 2018-5-30 16:25:22 | 只看该作者
把程序一部分注释掉再装到手表上,直到定位出问题所在,再慢慢改

2

主题

50

帖子

602

麦力

精华
0
阅读权限
30
在线时间
34 小时

35#
发表于 2018-5-30 10:46:40 | 只看该作者
唉,现在怕的就是模拟没问题,然后安装到手表上有问题,还找不着问题在哪,头疼的要命。

66

主题

915

帖子

1万

麦力

精华
8
阅读权限
80
在线时间
1040 小时

麦步极客实验室麦步增强版用户

34#
发表于 2018-5-30 07:34:55 | 只看该作者
一般用不了这么麻烦去单步调试,大多数是套路式的语句,比较复杂的地方,就把maibu_print_log粘到不同的地方看看得到的值是否是正常的。涉及读取内置资源和浮点数的,必须到手表上才能看出有没有毛病,有问题手表直接不显示或是反复重启挂掉了。处理字符串的语句也比较容易出问题,我做课程表的时候,手表就重置了很多次。

2

主题

50

帖子

602

麦力

精华
0
阅读权限
30
在线时间
34 小时

33#
发表于 2018-5-29 14:09:16 | 只看该作者
qs100371 发表于 2018-5-29 11:38
void maibu_print_log(char *log)
可在模拟器左下角的输出窗口显示调试信息,可用于显示中间变量的值。
...

ok,多谢,有没有办法单步运行,能快速了解执行步骤
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|麦步官方论坛 ( 粤ICP备12052190号  

GMT+8, 2024-11-22 23:46 , Processed in 0.097534 second(s), 27 queries .

Powered by Discuz! X3.2

© 2012-2021 Comsenz Inc.

快速回复 返回顶部 返回列表