2015年3月5日 星期四

IN-17 Nixie tube portable clock




這是我的第二個Nixie tube clock
從上次製作到現在大概間隔一年多,自己的PCB設計應該從無到有一點點了,原本想說先弄一個新的IN-14 x 8 的時鐘,沒想到結果是當時去ebay順便買的IN-17先做好了

Feature:     

  1. Four IN-17 Nixie tube 
  2. Base on Arduino Uno
  3. Power by USB or built-in Li-poly with 2 hrs of battery life
  4. Dock to Charge by contact 
  5. Auto adjust to light             
  6. With Wifi NTP time sync   (to be done)

Functions:
  1. Clock
  2. Timer
  3. Stopwatch
  4. Some animation
這次的設計的要點就是盡可能的小,所以你可以看到其實按鈕有點擠...
四支真空管也是有點擠,其實理由就是因為這寬度剛好5cm,大部分的PCB廠商都是以5cmx5cm為分界點,所以就盡量塞在5x5以內

架構上分成主板和顯示板
顯示的方式用的是一個74141配上4個高壓開關電路,採掃描式,而掃描的部分交由一個Attiny24負責,將資料由i2C傳入,Attiny就會負責掃描主要是因為我發現Attiny24便宜到個爆炸(10元)所以多十元減少一堆負擔就做了,上次在做IV-18的時候這問題有點煩,尤其是Arduino不好設定Timer的狀況
而顯示板還有四個LED以及四個按鈕還有預留的光敏電阻可以用

主板的架構上
由比較熟悉的Atmega328作主控,另外用CP2102做為uart轉Serial使用,還有DS3231M做RTC,另外將RTC的Clock輸出給MCU Sync,另外還有一個DRV2605震動馬達控制器
電源的部分,切成三個Power domain分別是系統的3.3V顯示板需要的5V還有Nixie的180V
來源有USB的5V以及Li-poly 的3.7V
滿複雜的....
這個的主板其實設計過兩次,前一次的設計原先採用的是系統電壓5V以及Nixie的180V,
但是這樣一來使用鋰電池的時候就需要先升壓,再降壓給一些IC使用

另外就是這個可以邊用USB邊充電,電會自己找路線,用電池的時候Nixie升壓會從鋰電池直接供電,5V會由3.3V經過charge pump或是預留的切換式升壓電路上去
用USB供電的時候,所有的電路都會使用USB供應,包含鋰電池充電還有Nixie升壓,而5V就不用經過升壓電路直接給

這是使用USB供電的狀態
這是由電池供電的狀態
5V是升壓上來的
這是主板的照片
可以看到那個有點複雜的供電迴路Atmega328他的ISP孔兩種5V升壓電路,最後是power switch以及NP-10 180V升壓版還有RTC IC,另外右下角還有一個震動馬達

這裡可以看到預留的FM模組以及馬達控制器和震動馬達,電池座,CP2102最後就是兩種溫濕度計HDC1000 & SHT2X
從電路圖的設計來看的話
我畫的非常糟糕,不過應該還是能看吧,這是核心部分的零件,可以看到Atmega328已經有很多Port被接出來了,大部分都用在LED與Button上面,我下次可能要改用電阻串聯的方式減少Button占用的GPIO數.LED都接再PWM的Pin上面,為了能夠調整亮度,然後左下角有一組USB轉UART的CP2012.而左上角則是有一個I2C的電平轉換電路,因為顯示板的電壓是5V.這也是一個下次如果要再做的修正點,其實Attiny不一定要和74141用5V.另外就是其中一個Analog打算拿來接光敏電阻的.
RTC就沒有甚麼好說的了,只是另外把SQW的clock輸出(要Pullup)
然後就是一團亂的Power,其中我預留了兩組升壓電路,右下角分別是Charge Pump以及切換式升壓.再來就是右上角的鋰電池充電模組,然後左邊就是供電切換的電路,以及左下角的3.3V LDO


FM目前是悲劇的狀態,因為天線沒有辦法拉太長,所以訊號有點糟糕,打算等LNA板子到來試試看狀況還有就是改用FM Chip antenna 看看有沒有辦法改善,PAM的模組(放大器)已經有了,應該會加個小喇叭當FM收音機


然後接下來就是IN-17真空管
這是蘇聯製最小的數字管,買不起太多最大的IN-18就改買這個來玩,價格和IN-14差不多
另外這些管也都是蘇聯的軍用管

接下來就是子版
不過我做太趕忘記照子板的背面了,所以PO電路圖
可以看到有Attiny24還有他的ISP以及一堆電晶體+LED+按鈕+74141

這次用74141主要的原因是第一個,我手上還有幾個,第二個就是體積的問題
Nixie的驅動有兩類和很多種
1.掃描
   陽極: 高壓電晶體開關 or 高壓光電器 
   陰極: 74141 or 高壓電晶體 or ULN2003那種的搭配47V Zener 
2.靜態:
   一堆74141 or HV系列IC (HV513....等) or 一堆(比掃描式多幾倍的)高壓電晶體
這次採用的方案現在看來是有點耗電,主要是因為74141滿老的,不如現今的IC來的省電的多,而且限定要用5V,如果能夠採用HV系列的IC的話,應該能夠改進不少電路上的複雜程度(5V升壓電路就不用了)以及面積(SSOP等等)還有焊接,但是成本會多一些出來
另外就是Attiny的ISP如果可以改用SMD版應該更能縮小體積

這就是目前使用的solution,四組高壓開關 x 一個74141

至於code的部分(Code都在Github,需要copy的請左轉到那邊,我覺得用Sublime比較好看所以這邊Code用照片的)
Nixie在掃描的時候,需要先把前一個Nixie的陽極關掉,再切新的陰極設定,然後才能打開下一個的陽極,不然上一個Nixie的數字會影響到下一個,畫面就會霧霧的.
然後還有I2C slave的Code,我沒多做考慮把資料濃縮(畢竟只有0~10,實在是不需要一個int,但是也不想改了...)(10是關掉燈管,因為超出74141的範圍=>燈管關閉)
至於本體的Code....我還沒寫完所以留著等Update

還有一些側面照


當初應該多預留一點空間給模組的...
這次的另一個問題點在於兩張板子之間的連接方式,採用標準的2,54pin 厚度會太大,但是不採用的話卻難以維修,但是為了美觀還是直接焊接的方式,修改的空間在於改採1.27mm的pin,不僅面積上的縮減,也得以減少厚度,不知道升壓模組的變壓器塞不塞的下就是了

顯示的東西這次除了基本的顯示時間以外,還有計時器倒數一些小動畫(波浪亂數依序)

波浪
計時器
倒數計時
循序動畫

還有個溫濕度計的顯示,所以是22度C和67% RH ,但是溫溼度計會被慢慢加熱,大概會加熱到32度C,已經放在開關孔附近了竟然還會被影響到....
HDC1000的地方我layout的時候太靠近螺絲孔了,所以就上HTU21D

然後就是外殼設計我認為我目前最缺的部分就是好的外殼了第一個的時鐘就是缺少好看的外殼還有方便安裝的設計這次多虧黃傑幫我畫這個的外殼基本上是個上開的盒子然後側邊有開幾個USB還有開關孔

這樣一來就不容易碰到180V然後被電到了....這時候就順便提一下第一版發生的事情
原本第一版的設計系統電壓是5V,想說應該要監控電池電壓,就"直接"把電池接上Analog input,然後做完測試完之後,把5V開關關掉,然後就直接摸到180V輸出的路線
結果被電到才發現怎麼關不掉5V,結果才發現是Analog input 的鋰電池電壓從Atmega328內建的保護二極體倒灌回去VCC,然後升壓板就繼續工作了..現在想起來第一版的電源供應設計真的是很奇怪,開關應該接電池才對.不過第二版做完之後外殼還沒做完之前也是被電到了幾次.現在不要摸到真空管底下的接線應該都還好.

另外就是因為這個真空管的顯示方向是正上方如果直接擺放的話其實不是很好看所以還有做一個底座另外就是原先有打算說把Qi的充電模組做進去底座+時鐘但是想想用金屬接點就好就像是Sony防水手機的充電接點差不多這樣一來其實就夠方便反正這個的充電電流不大(受限於200mah的鋰電池)應該是夠用不過要先找到合適的接點先

另外就是PCB+軟體我就丟Github了
https://github.com/will127534/IN-17-Portable-Clock

TODO:
1.FM搞定
2.加WIFI
3.充電接點

=========================UPDATE 2015/07/18

首先是來講一下FM,一句話就是FM耗電量太高,
在這個Project當中要加入FM需要三樣東西,FM模組,LNA,放大器

FM的天線畢竟用外接的會太醜,而數公尺的電線擠進去效果也非常差,天線的方面我後來改用SMD的版本,結果即使是用SMD天線,效果也是非常差,只好再加一個無線電的放大電路
效果就非常不錯了,但是喇叭還是需要一個驅動器,結果加上去之後測到耗電量
就發現這一組下來爆衝60mA,太高了,只好移除掉這功能

充電接點倒是進展不錯,利用第一次Layout的時候的底板當作彈簧針的基板
配合外殼挖孔並且在背後固定兩片黃銅片,最後接上USB電源的輸入那邊就結束了
只是說彈簧針的彈力還是需要些調整...

下次做的話可能就希望連同USB也能夠用彈簧針吧.


Wifi的話...因為耗電量,可能的方向改成BLE

TODO:
ADD BLE






11 則留言:

  1. 您好:
    謝謝您精彩的分享,看了後也想diy,但沒有硬體設計的經驗(會用烙鐵及辦認簡單的電子零件),能否指點該如何實作或相關的參考資料可用呢?
    ex: sch轉換成pcb板的方式及source code的寫入?

    回覆刪除
    回覆
    1. 我覺得先去看DIY Arduino吧
      就跟著做一遍這樣

      刪除
  2. 你好:
    NIXIE驅動IC除了74141可用之外,另有DM7441也是能用的;我最近也想作6管的NIXIE CLOCK,所以逛到你的BLOG. 我第一個作品是先用ARDUINO pro mini + DS3231模組 + NE555升壓 + AMS1117 降壓 + 大創公仔盒 = 單管鐘。希望有機會和你經驗交流。

    回覆刪除
    回覆
    1. 多謝補充~
      不過我最近都改用高壓電晶體去切了,覺得74141真的是太耗電
      電壓也太高,我之後有把四管真空管的電路弄完,打算做八管的
      但是.....
      我一直拿捏不定功能,所以遲遲沒有把底板Lay完
      不過倒是先做了一個六管的
      http://will-123456.blogspot.tw/2016/02/6-digit-in-14-nixie-clock.html

      刪除
  3. 你好:
    陽極切換的部份,我用過TLP627及高壓電晶體切換二種方式;因不是電子相關科系出身,所以也不懂哪種耗電比較低~~就耗電方面是用哪種儀器量測? 另外,也看不懂你的升壓方式;有關升壓部份你可指點一下嗎?前陣子在網路找到一個open source 的hv POWER, 是用MC34063驅動,我手工跳線試作了一片,感覺比NE555好(同用IRF740,34063方案不會發燙)…
    最後再請教,你layout pcb是用哪個軟體,pcb是在台灣作的嗎?如何計價?


    回覆刪除
    回覆
    1. 我也不是XD
      這種耗電量曲線是一直線的用電錶量一量就好
      TLP627應該稍微比高壓電晶體高,因為TLP627其實是用LED+高壓電晶體去做的,比起單一個高壓電晶體當然多了一組LED的電流的耗電量咖高
      升壓是我的缺陷,我之前也曾經想要做一組555的電路,但是不知道為啥就是沒辦法升上去,所以就買了個現成的
      不過我Google solution的結果是傳統的555,MC34063,MAX1771這幾個,還有一種是用變壓器升上去的,就有點像傳統相機的閃光燈的構造
      我覺得555真的是效率太差,我買了一個用555的放在密封的箱子結果燒掉線圈,34063可以的話我覺得就用吧,效率不差了,唯一個問題就是輸入電壓不能太低
      我的PCB layout用的是Eagle cad,PCB送Seeedstudio(公司在深圳)洗的
      線上傳gerber file,選單選選就有價錢了,基本的是10USD 5x5cm 2-layer
      台灣都太......貴,公司那種的才付得起QQ

      刪除
    2. 補充:一次洗 十張版 10USD
      然後這個升壓電路是台灣做的,我那時候在露天上買
      不過不確定現在還有沒有

      刪除
    3. 你說到用555升壓遇到的問題,我有遇過!!我把所有的元件都換了一遍才發現是電感的問題…一樣都標示100UH,就是有幾個不行!!換了電感就可以升壓!!
      我弄了幾片NE555的電路板;作了6個555的升壓電路外,還多了幾片,你要話我可以給你1片試試。(555的電路5V可以用,我試過掃描的方式,至少可以帶4個管)

      刪除
    4. 補充一下,用變壓器的方式,我有找到一位日本人用電感改的用法,因為不是本科,很多不懂,但資料我有留!

      刪除
    5. 我其實有買合用的變壓器,而且板子也準備好了
      但是一直沒動力去搞XD

      刪除