Top
智慧杯燈 Intelligent LED
(使用Attiny85、WS2812b)


壹、摘要
    本專案將使用Attiny85 作為核心,並搭配WS2812b、
   紅外線巡跡模組、聲音感應模組、光敏模組製作一個
   全自動桌上型裝飾燈。
     Attiny85就像是迷你版的Arduino,或者說是8隻腳的Arduino
   體積不大,電壓範圍寬,非常適合用於小型作品,
   關於Attiny85的詳細介紹可以參考這個網站



貳、材料
   
材料名稱
數量
大約價格
Arduino UNO(或Mega)
1個
180
Attiny85
多個
避免燒壞
40
微波雷達模組 RCWL-0516
一個
40
行動電源模組(單顆型)
一個
90
18650鋰電池
一個
120
電路板(單/雙)面
各1
10
WS2812b-12位元環狀LED燈
一個
100
紅外線尋跡模組
一個
40
光敏模組
一個
40
高感度聲音模組
一個
40
杜邦線
數條
50
M3螺絲螺帽
數個
50
3D列印成品
1
500~1000
焊接工具


Arduino IDE



叁、Attiny85腳位及運作架構圖
 一、Attiny85腳位圖
 
 二、運作架構圖
 
 三、接線圖
肆、Arduino IDE環境設置及函示庫安裝
   關於Arduino IDE的設置大家可以參閱
 函式庫的部分會用到
 請至GitHub下載最新版即可

伍、程式碼部分
 一、為了節省版面,這次就直接附上檔案(Intelligent_LED.ino)
 二、上傳時請注意上傳順序
     1.燒錄器設為"AVRISP mkll"上傳”11.ArduinoISP”至Arduino UNO
     2.Arduino接上ATtiny85
     3.燒錄器設為"Arduino as ISP"並設定開發板為"Attiny25/45/85"
     4.設定相關參數(處理器設為"Attiny85"、Clock設為"Internal 1MHz")
     5.上傳
 三、上傳後若有以下狀況:
C:\Users\teacher\Documents\Arduino\libraries\Adafruit_NeoPixel
\Adafruit_NeoPixel.cpp:1051:3: error: #error "CPU SPEED NOT SUPPORTED"
 #error "CPU SPEED NOT SUPPORTED"
  ^
C:\Users\teacher\Documents\Arduino\libraries\Adafruit_NeoPixel
exit status 1
開發板 ATtiny25/45/85 編譯錯誤。
   請直接開啟"Adafruit_NeoPixel.cpp"
   (檔案位置就是第一行那些字)
   並將第178行中的"7400000UL"改為”400000UL”並存檔
#if (F_CPU >= 7400000UL) && (F_CPU <= 9500000UL)
//改為
#if (F_CPU >= 400000UL) && (F_CPU <= 9500000UL)
   同時,將主程式中"CPU_Speed_check"設為8
   否則Attiny85算的一秒會是我們的0.125秒
#define CPU_Speed_check 8 //時鐘速率校正
   接著,就可以上傳啦!

陸、杯燈組裝
 一、3D列印
   根據杯子以及元件的大小進行3D繪圖並列印

 二、模組解焊
   將會用到的模組元件解焊,以便重新配線焊接
   (這裡忘了拍照,不過應該還好)
   p.s.解焊時請注意不要讓元件處於太高溫的狀態以免燒壞

 三、切割電路板
   依據杯子大小設計模組擺放方式並切割電路板
   (右邊的紅色電路板為雙層版、左邊兩白色為模型紙)

 四、配線焊接
   將元件一一焊到電路板上並配線

由左至右為(光敏電阻、紅外線接收、紅外線發射、8pin IC座)

 五、組裝
   依序裝上紅外線感應控制板(下左圖.中)及光敏模組(下左圖.左)
   並於圓柱狀外殼中放入18650鋰電池及行動電源模組(下右圖)

將以上兩樣物品進行組裝



將紅色元件電路板套上,並放入玻璃杯中

 六、微調
   檢查是否短路及測量電流(確認是否位於行動電源供電的範圍內)

 七、大功告成
   很漂亮的說~~

柒、成品說明與心得
 一、範例檔
 二、成品Demo

 三、心得
          在製作過程中最困難的部分就是把模組解焊
     解焊時要有耐心,過程中的我因 為太急躁所以
     有一個聲音模組被我毀了(>_<|||),另外,在設
     計3D模型時,"要預留列印時因為擠壓而變形的
     空間,像是裝載18650電池的圓柱桶,設計時
     設計直徑18毫米,而實際上印出來卻大概只有
     16.6毫米,因此就必須改用16650電池(特規)。
          而個人對於有計畫使用ATtiny85的朋友們,
     提供以下建議:
       1.要注意腳位的特性(數未腳位、類比腳位...)
       2.電壓範圍很廣,不必擔心供電不穩導致的運作問題
       3.需要用到大量函式庫的不建議使用(因為記憶體不大)
       4.燒錄時只能接有燒錄器,否則Arduino會燒壞
         ↑↑↑慘痛經驗,個人燒壞了2顆
     最後,感謝您閱讀本文章~~

↑↑↑構想手稿

文中若有任何地方需要改進歡迎填寫表單~~

   

沒有留言 :

張貼留言