极客DIY:使用Arduino制作一块开源手表

简介:

1 – 引言

首先让我们看下这个项目要考虑到的问题:

1.)使用100%Arduino兼容性硬件
2.)保证存储器足够大可以装下大量的稍后会扩展的新内容
3.)电量最少够1天用
4.)BLE既是中枢设备又是外围设备
5.)体积足够小

接下来的几页都是如何建造一个开源的手表!(这个版本是最初版本,所以之后的内容会有所更改来改进设计!)

这个项目非常耗时,既需要耐心又需要坚定的决心完成细致的焊接项目(小电线是不是非常有趣呢?)

这张图片是完成版的手表

2 – 零配件和工具

1.)Microduino Core + ATmega 644PA / ATmega1284P, 8mhz, 3.3v –http://www.microduino.cc

2.) 3.3v 稳压器 – http://www.pololu.com

3.) 触感按键 – http://www.adafruit.com

4.) OLED 屏幕 – http://www.adafruit.com

5.) 500mah(毫安) 3.7v 锂电池 – http://www.adafruit.com

6.) 蓝牙LE芯片 BLE112 A – http://www.mouser.com

7.) 电源开关 – http://www.adafruit.com

8.) JST-PH 2 针连接器 – http://www.adafruit.com

9.) 表带 – http://www.amazon.com

10.) 细金属丝 – http://www.adafruit.com

11.) LED亮片 – http://www.adafruit.com

12.) 振动电机 – http://www.radioshack.com

13.) 4* 3/4 英寸 4-40 螺丝 – http://www.fmwfasteners.com

14.) 4* 4-40 六角螺母 – http://www.pololu.com

15.) 微型USB前列充电器 – http://www.adafruit.com

16.) 阴极跳线 – http://www.adafruit.com

17.) 阳极跳线 – http://www.adafruit.com

Misc 的其他部件:

1.) 10k ohm 电阻
2.) NPN 晶体管
3.) 0.1uF 电容
4.) 二极管
5.) 1k ohm 电阻
6.) 33 ohm 电阻

3D打印部件

配件包下载

复制代码
1.) 手表正面 1x - microduino_front.stl
2.) 手表背面(3 parts) 2x microduino_back_left_small.stl, 1x microduino_back_small.stl
3.) 逻辑框架 1x - microduino_frame_bluegiga.stl
4.) 手表填充 1x - microduino_fill_1.stl
5.) 连接端口 2x microduino_ftdi.stl
6.) 表带支撑 2x - watch_strap.stl
复制代码

工具

复制代码
1.) CC 调试器 (编程蓝牙芯片)
2.) PC (蓝牙程序仅适用于PC)
3.) 一个 FTDI 助手 (或者相似于FTDI - USB 编程器)
4.) 一个额外的 Arduino (如果你需要mod microduino时,刻录引导程序)
5.) 温控烙铁
6.) 药芯焊丝
7.) 焊接管
8.) 细导线切割器
9.) 细导线剥线钳
10.) Dremmel 工具
11.) 砂纸
12.) 强力胶
13.) 环氧树脂
14.) 万用表
15.) 镊子
复制代码

3 – 高层硬件

手表的核心由3个小型板子组成:1个microduino核+,1个Bluegiga ble112 芯片,和1个电压调节器。

我选择microduino core核+是因为它的大小、在修改周期到8m赫兹时可以在3.3v设备上运行、以及它有比其他Arduino 内核更大的内存/IO。我目前的板子是ATmega644PA芯片。这是64K或者4K RAM的闪存,还有2K EEPROM。这提供了很大的代码空间,还可以运行一个Sharp内存显示(所以我还可以利用它做其他事情,因为它很省电)我会在未来移动到ATmega1284P芯片,128K内存,16K RAM,和4K eeprom。他们都有一些额外的I/O引脚,暂时我们还不需要使用他们进行扩展。

我花了很长时间研究并测试不同的蓝牙LE芯片,最终选定了BlueGiga ble112,因为它小巧、强大并且既可以作为中枢又可以作为外围(对于不同软件需求很重要)。另外,Jeff Rowberg已经写了一个非常棒的arduino库/BLE配置设置为base,这样会有很大帮助。(链接到他写的库:BLE112 Arduino Library 未来版本中可能使用 BLE113,因为它体积更小、更省电,但是它需要手工焊接有点麻烦)

最后,我添加了一个稳压器提供来自Le电池的3.3v信号。它可能不是100%必须的,但是使用它会更加安全,还可以保护内部硬件不受任何电压尖峰的损伤。

板子覆盖在一个3D打印出来的内部框架上。

一旦这三个板子相连,microduino主要通过一个SoftwareSerial端口和Ble112.2的输入按钮进行通信,这些板子使用软件上拉电阻接通电影,但是第三个按钮使用一个额外的下拉电阻,并且是一个硬件中断引脚。这将让Arduino被置于睡眠状态,由任何一个BLE112或者输入按钮唤醒。

屏幕通过预定义硬件SPI引脚连接到microduino,提供最快速的图形更新。2个LED被隐藏用于debug和提醒模块。最后还有一个小的振动马达。一个简单的晶体管电路提供所需的电流,因为发动机不能直接通过引脚被驱动。

4 – 构建逻辑

这部分内容是最难的、最仔细微妙的。要有足够的耐心,不能急于求成。你的部件很容易被烧掉,床架一个隐藏焊接jump会花费一个小时来追查。使用微线材进行连接。导线是单芯,很容易就会破损。我建议用强力胶把焊接点粘起来进行保护,减少电线弯曲带来的破损,尤其是焊接连接点。

从上面看这个板子的逻辑

从下面看这个板子的逻辑

步骤1)预焊接BLE112芯片:

你需要焊接。一旦你把BLE112放在这个框架里,它就很难焊接,所以如果你之前就焊接好,它就会稍微简单一点。确保你只使用了一点焊接,并且没有任何短路(使用万用表确认);

步骤2)放置黏合3个板子到3D打印的框架里:

尽量少用胶水。你可能不得不转一下他们,如果你胶水用多了,就很难转了。我建议只在角落用胶水。还要确保你的胶水没覆盖芯片(尤其是在BLE112芯片上)然后确保框架里没有空间让导线够的到BLE112芯片。如果你的3D打印质量不好,你可能需要使用烙铁来"腾出更多空间"。如果你需要这么做,一定要小心。塑料非常包,热量一过它就弯了。

步骤3)把BLE112连接到Microduino:

BLE112芯片指南

这个链接是BLE112的数据表https://www.bluetooth.org/tpg/RefNotes/BLE112_Datasheet1.pdf

复制代码
1 - GND(接地) - Microduino ground
2 - AVDD - 3.3v 电源
3 - AVDD - 3.3v 电源
8 - p1_6 - Pin 5, 模块唤醒 
13 - p1_5 - Pin 7, Arduino 唤醒, 不是当前使用
20 - DVDD - 3.3v 电源
23 - P0_5 - Pin 2 / Software Serial RX 
24 - P0-4 - Pin 3 / Software Serial TX 
29 - 复位 - Pin 4
复制代码

你还想让导线运行尽可能流畅。目标是防止导线受热。用烙铁在框架中搞出小凹槽,让导线通过。对于接地或者3v3电源的导线来说,用胶水把这些地方连起来,但是要暂停焊接,直到你有另一根导线要连同一个引脚。

步骤四)把BLE112连接到程序:

BLE112芯片指南

4 - p2_2 - To Programmer 
5 - p2_1 - To Programmer

 

接地、复位和3v3电源页都需要编程器并且可以被共享。(从编程器引脚接地到microduino接地,连接3v3电源到microduino引脚3v3(也是你连接BLE112芯片到电源的地方),然后连接microduino最近的BLE引脚到编程器引脚)。

你可以通过把5个阴极跳线粘在一起,然后把他们削短来妥善处理他们(看图)。

步骤5)测试:

如果你已经焊接了基本的编程器连接,你要确认你可以用它写程序,使用CC Debugger调试。这里有一篇非常棒的文章告诉你怎么做。使用CC Debugger 编程BLE112

使用预先写好的文档进行测试(你需要这个库)。

步骤6)连接电源和 Microduino程序码头:

Microduino程序码头

外部程序码头可以让你写入microduino。这种连接是非常直接简单的:

RTS 引脚 - Microduino 上的 RST 引脚(复位线上外部增加一个10MF的电容)
TX 引脚 - Microduino 上的 RX 引脚 
RX 引脚 - Microduino 上的 TX 引脚 
接地引脚 - Microduino上的接地引脚
引脚的V - 电压稳压器上的电压输入引脚

一旦你实现了这些连接,使V输出和电压稳压器的接地带到3v3 vin和microduino的接地。这步应该会让你接通电源并编程microduino!

步骤7)增加3个按钮:

手表右侧这2个按钮依靠内部上拉电阻以尽量减少额外硬件。当他们关闭时,这两个按钮简单的和两个输入按钮引脚接地。

第三个按钮会被用来中断microduino的任何睡眠模式,并使用一个外部的下拉10K欧姆电阻。

基于按钮的中断连接3.3v到引脚6.

上面的按钮接地到引脚14,下面的连接到引脚15.

现在你应该有了一个完整的逻辑框架!你可以下载基本的代码进行测试,因为它现在功能都有了就是没有屏幕。你应该可以测试基本的连接到iOS设备的功能。

5 – 构建背面

背面是电源、振动发电机和充电接口:

我强烈建议把正面和背面塑在一起,并使用他们来帮助黏合螺丝螺母。电机需要一些额外的逻辑来驱动。当我设置它时,我有0.1uF的电容、二极管和33欧姆电阻和发电机相连,还有晶体管和1K欧姆电阻隐藏在手边正面的下方。

电源/充电接口详情

接电源非常简单。连接红色的电源线(V+)到中间的开关。连接电源的黑色(接地)的导线到充电接口的接地引脚来控制AND把它连接到另一个导线(这个导线稍后会连接到逻辑框架)。现在把充电端口旁边的开关引脚连接到充电器的电压引脚上。然后连接另一个开关引脚到一个导线(稍后会连接到逻辑框架)。在这步里,我在背面使用了4跟导线。1根用于电源,1根接地,另一个和正面的晶体管相连,还有一个会被用来连接电压稳定器的电压输出引脚。

6 – 构建正面

正面放了一个屏幕、LED和晶体管逻辑

在放置屏幕前,你需要使用dremel切割器切断下面两个屏幕安装点。你一定要非常小心,因为如果你切错了或者破坏了平布的玻璃,那后果不堪设想,屏幕就不能用了。

手表背面细节:

你可以在这里看到2个LED亮片(包括电阻)和晶体管/电阻逻辑。还有一点需要注意修剪屏幕安装点。在你确保屏幕都搞定了之后使用用少量的强力胶。在我的这个版本里,我使用了3D塑料打印,所以LED亮片非常好的发挥了作用。如果你是用的是纯色,你就得为每个LED钻一个小孔了。

如果把2个LED接地连到了一条导线,你会省了很多烦恼,然后把那个接地连接到晶体管。最后连接OLED屏幕的接地。小心屏幕上用的胶水。如果你在玻璃正面使用了强力胶,你基本上就擦不下去了,然后这个地方会变得非常碍眼。

7 – 装配

3个主要部分

屏幕正面、LED和晶体管逻辑

现在是时间把三样东西结合在一起啦!用细导线把这些粘起来,导线要足够长让它可以折叠。这是 watch_padding.stl 文件,它可以让你在逻辑框架上扩展屏幕。我在第一个版本中给导线留下了很多空间(这种做法会让屏幕里逻辑电路板高3mm。如果你做的很精确的话,这个高度可能会降下来。每个毫米会让手表侧面更低。)

屏幕被连接到了 microduino:

复制代码
接地(晶体管/LDE接地) - microduino 接地
Vin - microduino 上的 3v3 电源
CS - 数字引脚 10
RST - 数字引脚 12
DC - 数字引脚 9
CLK - 数字引脚 13
DATA - 数字引脚 11
复制代码

你还需要连接晶体管输入到microduino的数字引脚17,2个LED电源线到数字引脚22和23。

连接背面:

连接开关电压到电压调节器的Vin
连接接地到microduino接地
连接一根来自发电机到电压调节器VOut
连接另一根来自发电机的导线到屏幕旁边的位于正面的晶体管。

假设你所有都做对了,你应该就能开启它了!

最终结果!

8 – 表带

增加表带

首先,在背面使用粗砂纸。这会让胶水粘的更好。在我的塑料壳上上了曾清漆,我还想让它附着的更好。我对准表带,用几滴强力胶固定。然后混合两部分的环氧树脂把它固定到表带下方,然后登它变硬。

然后,我在表带的上层又增加了一层环氧树脂,让它完全定型。最后,我增加了两个塑料的支撑作为额外加固。

9 – 软件

2014年5月7日,我把基本代码移植到GitHub上。这个版本的代码比较粗糙,但是里面包含了基本知识并且可以运行。在未来几周里,我还要对这些进行扩展。

Arduino代码  iOS Shell App

因为不是每个人都是苹果的开发者,所以我会尽快发布其他应用程序,让非苹果用户玩儿!

我还在努力开发Android版本。

所需的其他的库:

BLE112 Arduino Library  Time Library  OLED Library by Adafruit  Graphic Library by Adafruit

*原文:OSwatch.org

sigline.gif
本文转自 K1two2 博客园博客,原文链接:http://www.cnblogs.com/k1two2/p/5094100.html   ,如需转载请自行联系原作者
相关文章
|
9月前
|
物联网 芯片 SoC
聊聊身边的嵌入式,自拍神器自拍杆
聊聊身边的嵌入式,自拍神器自拍杆
爱了,这款神器!(二)
爱了,这款神器!
282 0
爱了,这款神器!(二)
|
机器人 物联网 云栖大会
RISC-V创意开发 | 基于RVB2601的桌面足球机器人
RISC-V创意开发 | 基于RVB2601的桌面足球机器人
238 0
RISC-V创意开发 | 基于RVB2601的桌面足球机器人
|
编解码 Linux
国内DIY爱好者原创制作树莓派7寸桌面迷你街机
国内著名树莓派玩家与开发板外壳制作者 longbow ,最近使用Raspberry Pi制作了一款7寸桌面街机。 机器采用7寸屏幕,标准的街机摇杆与按钮,原创自制外壳,屏幕可变换横纵向。使用Raspberry Pi平台与MAME开源街机模拟器。
512 0
国内DIY爱好者原创制作树莓派7寸桌面迷你街机
|
IDE 物联网 开发工具
HaaS EDU场景式应用学习 - 复古八音盒
HaaS EDU场景式应用学习 - 复古八音盒
HaaS EDU场景式应用学习 - 复古八音盒
|
传感器 智能硬件 内存技术