极客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

时间: 2024-10-07 18:26:16

极客DIY:使用Arduino制作一块开源手表的相关文章

极客DIY:使用树莓派制作一架四轴无人机

如果你想DIY一台属于自己的无人机,那么接下来可以阅读这篇文章,阅读完毕之后也许对你会有启发. 这个项目主要用到的零件主要来自Erle Robotics(一个使用Linux系统的开源四轴飞行器项目).本文的作者并不为这家公司工作,如果对该场景感兴趣也可以关注以树莓派相关联的基础项目,例如 Dexter Industries以及PiBOT.另外在一些相关网站上也更多的教程可以观看.在今年 Robotics是向爱好者提供了相对廉价而又易上手的一次机会,可以在芯片上烧录程序同时可以不断添加新硬件,这一

极客DIY:廉价电视棒玩转GNSS-SDR,实现GPS实时定位

0×00 前言 GNSS是Global Navigation Satellite System的缩写.中文称作:全球卫星导航系统.全球导航卫星系统.   GNSS泛指所有的卫星导航系统,包括全球的.区域的和增强的,如美国的GPS.俄罗斯的Glonass.欧洲的Galileo.中国的北斗卫星导航系统,以及相关的增强系统,如美国的WAAS(广域增强系统).欧洲的EGNOS(欧洲静地导航重叠系统)和日本的MSAS(多功能运输卫星增强系统)等,还涵盖在建和以后要建设的其他卫星导航系统. 0×01 摘要

极客DIY:打造属于自己的无线移动渗透测试箱

本文中介绍的工具.技术带有一定的攻击性,请合理合法使用. 你想不想拥有一款属于自己的移动无线渗透测试箱,如果你感兴趣,下面介绍的设备将会对你很有帮助.这个箱子被称为"MiTM(中间人攻击)WiFi箱",使用这个箱子可以完成一些无线审计工作,同时也可以伪造接入点并完成中间人攻击. 工具要求 如果你真的想要做这个箱子那么你需要如下工具: 5或6mm的钻木/金属钻头 开口扳手(规格8) 钳子 手术刀/裁纸刀 尼龙扎带(俗称:勒死狗) 箱子的选择 这里有些建议,你选中的箱子最好是用过一次以上,

极客DIY:如何构建一台属于自己的基站

写在前面(原文作者) 上周我去特拉维夫(Tel Aviv)探望我的朋友结果有了一些收获,一块崭新的BladeRF(x40),即一个支持USB3.0的SDR平台,这就意味着可以同时发送和接收信息了.而HackRF不同于其他两款硬件,它不支持全双工.这意味着要切换收和发的话,必须每次给控制器发送命令. 微控制器处理切换可能要花费微秒级的时间.在这篇文章中将会介绍如何建立一个小型便携式GSM基站,GSM网络可以遭到攻击/劫持/拦截,当然你可以利用相对价格比较低的电子设备做到这一点.而本文也仅仅供交流学

极客DIY:RFID飞贼打造一款远距离渗透利器

本文使用最新的渗透工具RFID飞贼(Tastic RFID Thief)和RFID感应破解技术来获取一些拥有安防的建筑物的访问权限. Tastic RFID Thief是一个无声远距离RFID读卡器,可不为人知地远距离盗取RFID信息,当不知情人员佩戴门禁卡或射频设备时,便会被它攻破.Tastic RFID Thief针对的是低频125KHz的射频系统,例如那些使用HID Prox或者Indala Prox的产品,不仅如此,你还可以利用它的电路板改造成一个13.56MHz的高频RFID读卡器,这

极客新玩法 用果壳智能手表看《爸爸去哪儿》

湖南卫视芒果台的亲自真人秀<爸爸去哪儿>火遍大江南北,我们可以在电视.电脑.手机或平板上看这档节目,你想知道在智能手表上看视频是怎样的感受吗?最近有玩家在优酷上传了一段用果壳智能手表看<爸爸去哪儿>的视频,小伙伴们都惊呆了! 从视频截图看,这位玩家似乎是一位妹子 随着果壳智能手表1153固件的更新,玩家期待已久的智能手表http://www.aliyun.com/zixun/aggregation/11437.html">软件商店"果壳市场"正式

极客新玩法用果壳智能手表看《爸爸去哪儿》

[科技讯]12月25日消息,湖南卫视芒果台的亲子真人秀<爸爸去哪儿>火遍大江南北,我们可以在电视.电脑.手机或平板上看这档节目,但你想知道在智能手表上看视频是怎样的感受吗?最近有玩家在优酷上传了一段用果壳智能手表看<爸爸去哪儿>的视频,小伙伴们都惊呆了!随着果壳智能手表1153固件的更新,玩家期待已久的智能手表软件商店"果壳市场"正式开放,近百款丰富第三方App让果壳智能手表可玩性大增.经测试发现,更新固件后果壳智能手表可以完美播放在线视频,只要从果壳市场中下载

开源硬件:极客们的伟大理想

自 Dennis Allison 在 1975 年发布它的 Tiny BASIC 以来,他倡导的开放.共享的思想得到了多数开发者的认同,这些年,软件开源取得了令人瞩目的成绩.同时,他那句 "让我们站在彼此的肩膀,而不是彼此的脚趾上."也变成了开源软件运动的名言. 如今,基于开放.共享理念的开源软件运动正掀起一场硬件开源运动.开源硬件,指与自由和开放源码软件相同方式设计的计算机和电子硬件.开源硬件开始考虑对软件以外的领域开源. 这个词主要是用来反映自由释放详细信息的硬件设计,如电路图.材

ASP.NET开源博客QBlog模板皮肤制作教程索引贴

最近几天花了点时间,制作了一下教程,写了几篇 开源博客 秋色园 QBlog 模板皮肤制作文章,这里给出一个索引: PS:同时 秋色园 也增加了四套皮肤,目前共有8套皮肤.   1:ASP.NET开源博客QBlog模板制作教程:博客模板皮肤介绍说明(一)   说明:用截图及文字的方式介绍了模板的基础样式及原理. 示例图片: 1:样式文件   2:ASP.NET开源博客QBlog模板制作教程:博客首页-头部[博客标题|博客概要|博客菜单导航|博客登陆注册退出|多语言导航](二)   说明:实战制作: