开学啦,做了个手机,呃,或者说是个闹钟
本帖最后由 zyzand 于 2014-8-29 12:42 编辑本人初中毕业生一个,明天就要上高一,听说高中还是不让带手机(虽然还是有好多带的),所以突发奇想,为何不用Arduino做一个呢?于是......
思路非常简单,但还是遇到了好多问题,谢谢各位热心网友的帮助。由于时间不多了,还要准备一些住校的东西,所以本帖只是展示思路,不能提供教程!有兴趣的朋友可以自己做一个。非常抱歉{:soso_e149:}
一星期左右的成果如下:
表:
面包板上的:
用到的GSM模块:SIM900A
成果:
电话中...
时间状态
特写
背面
效果
按键板
按键板背面
安上按键板
打开电池盖
打电话
打电话2
现在表的里面已经是乱七八糟,不便于拆开,拆开后就安不上了。
后面的灯光按键是复位(为什么呢?因为有时会死机{:soso_e110:} )
闹铃开关是总电源。关闭时只有时钟模块运行,几乎不耗电
打电话或接电话要用按键板(可以藏到电池盖里)
供电用的手机电池,通过电池盖下面的线可以充电和升级。
CPU用的Arduino pro mini,内存太小了,所已发短信的功能装不下了{:soso_e109:}
显示屏用的0.96寸的OLED,i2c通信,与时钟级联(OLED的库很大,会用掉60%的内存,所以不建议使用)
明天,也就是2014年的8月30号,是个伟大日子——我正式成为一名高中生啦{:soso_e104:}
各位大仙,三年之后见!{:soso_e139:}
很好,赞一个。
其实,pro mini内存不小了,就是arduino的库太占地了,有点蛋疼。
:)继续坚持,前途未可限量。 确实不够用,我觉得是arduino的库占用了太多的空间,所以不够了。oled的库启示也挺占地方,我自己阉割了库,能省1k多,还可以继续割。 神马学校不能带手机啊?
隔壁五岁的小女孩上幼儿园都带着手机呢 本帖最后由 zyzand 于 2014-8-29 12:51 编辑
老胖熊 发表于 2014-8-29 12:40 static/image/common/back.gif
确实不够用,我觉得是arduino的库占用了太多的空间,所以不够了。oled的库启示也挺占地方,我自己阉割了库, ...
可否分享一下你的OLED库?把什么割下去了?能否说明一下它的初始化界面在哪设置? 小朋友好厉害,继续加油啊!! zyzand 发表于 2014-8-29 12:47 static/image/common/back.gif
可否分享一下你的OLED库?把什么割下去了?能否说明一下它的初始化界面在哪设置?
你用的i2c,我用的spi,所以不好直接分享。思路在下面。
首先,把初始化图片割了,这个就1k,然后裁减了一些函数,不需要的基本都干掉,自己加了中文字符表和显示函数,英文字符表切了一部分,还可以继续切。
我没研究它的初始化和操作过程,得好好看看手册才行。其实如果把这些弄明白,完全可以抛开库,在程序里直接操作。那样才能作到最小化,不过就不是arduino的风格了。 zyzand 发表于 2014-8-29 12:47 static/image/common/back.gif
可否分享一下你的OLED库?把什么割下去了?能否说明一下它的初始化界面在哪设置?
初始化界面是一张图片,12864的屏要占1k内存,在库文件的开头,不知道你用的哪个库,我用的是Adafruit_SSD1306,引用了Adafruit_GFX。
cpp文件里有这样开头的一段:
// the memory buffer for the LCD
static uint8_t buffer = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0x80, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xF8, 0xE0, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80,
。。。。。。
这里就是那张初始化图片,别的库也类似。如果你想替换你自己的初始化界面,就把你的图片放在这里,当然需要做转换处理,软件有很多,很容易找到。
字符表在GFX,显示中文的代码我也写在GFX里了。
其他模块的库都被我干掉了,只有这个oled的,看起来有些复杂,我还没搞明白,所以只好暂时保留。好像一共省了差不多3k吧,原来程序编译完是23多少,现在是20多少。 楼主好屌啊!初中就玩arduino了,我们这些大学的学长,12年上了大一才接触到arduino的,
你好幸福啊!
页:
[1]