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上。這個版本的代碼比較粗糙,可是裏面包含了基本知識而且能夠運行。在將來幾周裏,我還要對這些進行擴展。
由於不是每一個人都是蘋果的開發者,因此我會盡快發佈其餘應用程序,讓非蘋果用戶玩兒!
我還在努力開發Android版本。
所需的其餘的庫:
BLE112 Arduino Library Time Library OLED Library by Adafruit Graphic Library by Adafruit
*原文:OSwatch.org