極客DIY:使用Arduino製做一塊開源手錶

1 – 引言php

首先讓咱們看下這個項目要考慮到的問題:html

1.)使用100%Arduino兼容性硬件
2.)保證存儲器足夠大能夠裝下大量的稍後會擴展的新內容
3.)電量最少夠1天用
4.)BLE既是中樞設備又是外圍設備
5.)體積足夠小

接下來的幾頁都是如何建造一個開源的手錶!(這個版本是最第一版本,因此以後的內容會有所更改來改進設計!)ios

這個項目很是耗時,既須要耐心又須要堅決的決心完成細緻的焊接項目(小電線是否是很是有趣呢?)git

這張圖片是完成版的手錶github

2 – 零配件和工具chrome

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

相關文章
相關標籤/搜索