2016年3月17日 星期四

Arduino lightsaber DIY


光劍的題材很多人在做,比如說 泡棉光劍..有音效 可對打不怕重傷 又有藍芽控制 真的好棒.
想要當原力武士要打造一把自己專屬光劍,只要會Arduino,靠網路上的分享文章就可以DIY了,
以下文章的資源大部分都來自於網路上的分享.

如想要簡單的光劍,揮舞有音效,開啟以及關閉時會有光線升降的效果
  • 就材料上單晶片挑選Arduino nano當控制板,一來小二來便宜.
  • 音效需要MP3 player. Mini MP3 module *1, 稍嫌貴了些...
    音效coding的部分可參考DFPlayer Mini MP3的範例
  • TF card *1 用來存放MP3檔案,MP3的音效檔可以到The Force Net尋找Lightsaber sound的MP3
  • 劍身先找壓克力燈管 直徑23mm左右的.先把燈管做出來
  • 劍柄的部分找3D印表機列印囉.
  • 電源的部分,可以找單顆18650電池的行動電源提供5V的DC輸出
  • 開關的部分 需要微動開關作為Power ON/OFF的切換
  • 水銀開關作為晃動時的Audio ON/FF的判斷
  • LED數顆,光劍的LED串接可以參考超炫IoT光劍自製HowTo完全公開!
    (以下相關LED連接的圖片都擷取自上述連結)

但使用上 就要規劃一下,看一下如果想要有10段光線升降,會用掉D2~D11 pin
在超炫IoT光劍自製的文章中採用的是6段光線升降,用的是3.3V的DC,

可能實際上要考慮一下Arduino是5V的DC
至於5V能並聯幾顆LED,串聯電阻多大,可以先參考一下這篇文章,
為什麼LED需要串聯的電阻值是220 ohm?
也可利用以下連結直接在線上作計算.
LED限流電阻值-線上計算器


針對Arduino的pin define先規劃一下




D0~D1連接Mini MP3 player
D2~D11連接LED Matrix控制LED燈管
剩下的D12 / D13當電源控制開關的訊號囉.
Pin define的規劃如下.剩下就是coding跟買材料來組裝.

Arduino Nano
DFPlayer Mini MP3
Speaker
LED 
N/A
SPK_1
RED Line
 
N/A
SPK_2
Black Line
 
TX/D1
RX
 
 
RX/D0
TX
 
 
RST
 
 
 
GND
GND
GND
GND
D2
 
 
LED matrix 1
D3
 
 
LED matrix 2
D4
 
 
LED matrix 3
D5
 
 
LED matrix 4
D6
 
 
LED matrix 5
D7
 
 
LED matrix 6
D8
 
 
LED matrix 7
D9
 
 
LED matrix 8
D10
 
 
LED matrix 9
D11
 
 
LED matrix 10
D12
 
 
LED On/OFF
D13
 
 
Audio On/OFF
3V3
 
 
 
AREF
 
 
 
A0
 
 
 
A1
 
 
 
A2
 
 
 
A3
 
 
 
A4
 
 
 
A5
 
 
 
A6
 
 
 
A7
 
 
 
5V
VCC
 
VCC
RESET
 
 
 
GND
 
 
 
VIN
 
 
 





就以上的規劃coding的展開如下,剩下就是debug囉.!


#include "SoftwareSerial.h"
#include "DFPlayer_Mini_Mp3.h"

const int LedMartix1 = 2;     //設定LED Martix1接腳在第2pin
const int LedMartix2 = 3;     //設定LED Martix2接腳在第3pin
const int LedMartix3 = 4;     //設定LED Martix3接腳在第4pin
const int LedMartix4 = 5;     //設定LED Martix4接腳在第5pin
const int LedMartix5 = 6;     //設定LED Martix5接腳在第6pin
const int LedMartix6 = 7;     //設定LED Martix6接腳在第7pin
const int LedMartix7 = 8;     //設定LED Martix7接腳在第8pin
const int LedMartix8 = 9;     //設定LED Martix8接腳在第9pin
const int LedMartix9 = 10;      //設定LED Martix9接腳在第10pin
const int LedMartix10 = 11;     //設定LED Martix10接腳在第11pin
const int PowerON = 12;     //設定LED啟動開關接腳在第12pin
const int AudioON = 13;     //設定水銀開關接腳在第13pin
const int LEDdelay = 30;      //延遲0.03秒進行一次LED升降
int LEDstatus = 0;      //定義變量為LEDstatus=0

void setup () {
  Serial.begin (9600);
  mp3_set_serial (Serial); //set Serial for DFPlayer-mini mp3 module
  mp3_set_volume (10);
  pinMode(AudioON, INPUT);          //設定水銀開關為輸入端
  pinMode(PowerON, INPUT);          //設定LED啟動開關為輸入端
  pinMode(LedMartix10, OUTPUT);     //設定LED Martix10為輸出端
  pinMode(LedMartix9, OUTPUT);      //設定LED Martix9為輸出端
  pinMode(LedMartix8, OUTPUT);      //設定LED Martix8為輸出端
  pinMode(LedMartix7, OUTPUT);      //設定LED Martix7為輸出端
  pinMode(LedMartix6, OUTPUT);      //設定LED Martix6為輸出端
  pinMode(LedMartix5, OUTPUT);      //設定LED Martix5為輸出端
  pinMode(LedMartix4, OUTPUT);      //設定LED Martix4為輸出端
  pinMode(LedMartix3, OUTPUT);      //設定LED Martix3為輸出端
  pinMode(LedMartix2, OUTPUT);      //設定LED Martix2為輸出端
  pinMode(LedMartix1, OUTPUT);      //設定LED Martix1為輸出端
  digitalWrite(LedMartix10, LOW);    //設定LED Martix10預設LOW
  digitalWrite(LedMartix9, LOW);    //設定LED Martix9預設LOW
  digitalWrite(LedMartix8, LOW);    //設定LED Martix8預設LOW
  digitalWrite(LedMartix7, LOW);    //設定LED Martix7預設LOW
  digitalWrite(LedMartix6, LOW);    //設定LED Martix6預設LOW
  digitalWrite(LedMartix5, LOW);    //設定LED Martix5預設LOW
  digitalWrite(LedMartix4, LOW);    //設定LED Martix4預設LOW
  digitalWrite(LedMartix3, LOW);    //設定LED Martix3預設LOW
  digitalWrite(LedMartix2, LOW);    //設定LED Martix2預設LOW
  digitalWrite(LedMartix1, LOW);    //設定LED Martix1預設LOW
}

void loop() {
  if (LEDstatus == 0 && digitalRead(PowerON) == HIGH) { //當有開關觸發LED亮
    mp3_play (random(6, 8));     //先將光劍啟動的音效檔定為0006.mp3 或0007.mp3, 藉由亂數處理任意播放
    delay (1000);    //播放1秒音效
    for (int i = 2; i <= 11; i++) {
      digitalWrite(i, HIGH);
      delay(LEDdelay);
      LEDstatus = 1;
    }
  }
  if (LEDstatus == 1 && digitalRead(PowerON) == HIGH) { //當有再次開關觸發LED暗
    mp3_play (random(9, 11));     //先將光劍關閉的音效檔定為0009.mp3 或0010.mp3, 藉由亂數處理任意播放
    delay (1000);    //播放1秒音效
    for (int i = 11; i >= 2; i--) {
      digitalWrite(i, LOW);
      delay(LEDdelay);
      LEDstatus = 0;
    }
  }
  if (LEDstatus == 1) { //當光劍啟動時紀錄水銀開關觸發狀態
    for (int i = 0; i < 4; i++) {
      hum[i] = digitalRead(AudioON);
    }
    if ((hum[0] != LOW && hum[1] != LOW && hum[2] != LOW && hum[3] != LOW) || (hum[0] != HIGH && hum[1] != HIGH && hum[2] !=  HIGH && hum[3] != HIGH)) {
      randNumber = random(1, 5);
      mp3_play (randNumber);     //先將揮光劍的音效檔定為0001~0004.mp3, 藉由亂數處理任意播放
      delay (randNumber * 1000);
    }
  }
}

2016年3月16日 星期三

小豬仔兩歲囉


集體慶生的優點就是熱鬧非凡,蛋糕一定出色,媽媽特地挑了一個只要是小孩都一定會認識的巧虎
果然震撼力十足每個小孩都認識.

要一群不知道自己是壽星的小孩聚在蛋糕前面是件非常困難的工作.
小朋友腦袋想的大概是巧虎是要拿來玩得嗎?(我個人猜想)

瑄瑄壓根沒想到這是她的生日蛋糕,倒是對其他的工具感到好奇.

反倒是當姐姐比較懂,對於蠟燭蛋糕.很快就想到生日,但這是妹妹的生日,別搶著吹蠟燭.

結論最後是,姊姊比妹妹還享受生日宴會.當然啦!也只有妹妹傻呼呼的年紀才能這樣做.
等再大一點.可能就懂了.長大後的姊姊應該是不會搶著替妹妹吹蠟燭啦!

之後,還是在家裡再吃一次專屬於壽星的蛋糕.
比起一歲慶生的他,更加懂事,也會跑了.

要乖乖長大唷.小豬仔.

光線與植物生長的關係

擷取兩份網頁上的知識

LED植物生長燈知識


光譜範圍對植物生理的影響
  • 280 ~ 315nm ––>  此種波長已屬紫外線光線,對於各類動、植物甚至於菌類生長,均有直接壓制性生長的功能,對形態與生理過程的影響極小。
  • 315 ~ 400nm ––> 此種光波亦屬遠紫外線光雖無紫外線傷害植物,為對植物生長並無直接作用,葉綠素吸收少,影響光週期效應,阻止莖伸長。
  • 400 ~ 520nm(藍)–> 此類波長可直接處使植物根、莖部位發展,對於葉綠素與類胡蘿蔔素吸收比例最大,對光合作用影響最大。
  • 520 ~ 610nm(綠)–> 綠色性植物排斥性推擠,綠色素的吸收率不高。
  • 610 ~ 720nm(紅)–> 植物的葉綠素吸收率不高,唯此波長對於光合作用與植物生長速度有顯著影響。
  • 720 ~ 1000nm ––> 此類波長泛屬紅外線波長,對於植物的吸收率低,可直接刺激細胞延長,會影響開花與種子發芽。
  • >1000nm ––> 已接近雷射光波長已轉換成為熱量。

以上的植物與光譜資料來看,每種波長的光線對於植物光合作用的影響是不同的,植物對於光合作用需要的光線中,400 ~ 520nm(藍色)光線,以及610 ~ 720nm(紅色)對於光合作用貢獻最大,而520 ~ 610nm(綠色)光線,對於植物行使生長作用的功效比率很低。
若按照以上原理植物只對於400 ~ 520nm(藍色)及610 ~ 720nm(紅色),的光譜有直接幫助生長的效果,所以學術概念下的植物燈都是做成紅藍組合、全藍、全紅三種形式,以提供紅藍兩種波長的光線,用來覆蓋植物行光合作用所需的波長範圍。
在視覺效果上,紅、藍組合的LED植物生長燈呈現粉紅色,這種混光色實對生物照明是極為不舒服的色系,然卻只能以實用性怯其外觀,以擇其實用性為主。
利用上述的數據一般的植物燈的紅藍燈色譜比例一般在5:1 ~ 10:1之間為宜,通常可選7~ 9:1的比例,唯比例分配需採燈珠亮度比為混光依據,非採燈珠數量為混光依據。
用led植物生長燈於植物種植時時,一般距離葉片的高度為30-50公分左右,這中間尚需要實際依種植植物的種類給予不同光強度,調整高度一般視為最簡便的亮度調整方式。

---------------------這篇文章還針對水中植物該注意的參數介紹-------------
水草缸的光照
光照是水草生長發育的重要環境,光照由,(1)燈光的光質,(2)燈光的光度,(3)照明的時間,三項要件所構成。當水草缸中的水草,會正常的冒出氣泡,這表示水草在行光合作用,也表示這個水草缸「美得冒泡」很正常。
(1)燈光的光質
水草缸使用一般植物燈就可以,注意太陽光譜中,只有在藍光區的400~520nm,紅燈區的610~720nm,可以使植物可以行光合作用,所以選擇植物燈時,藍光400~520nm,紅燈610~720nm的光質一定要好,紅光對綠色水草較有利,藍光對紅色水草較有利。一般植物燈的演色性不佳,人在觀賞水草缸時,觀賞的效果並不理想,解決之道,只要另外增加「觀賞光源」即可,例﹔太陽燈管。
備註﹕植物行光合作用,葉綠素a的吸收高峰,在藍光區的430nm處,在紅光區的660nm處,葉綠素b的吸收高峰,在藍光區的435nm處,在紅光區的643nm處。所以選購燈管的時候選波長高峰分佈在430nm~435還有643nm~660nm,如果不能同時滿足葉綠素a,b的話.,以葉綠素a為主要考量,對水草比較好。
(2)燈光的光度
燈光的光度要高,一般燈的瓦數(W)愈高,光度愈高,燈具距離水面愈近,光度愈高。以螢光燈(俗稱日光燈)60流明/瓦的功率來估算,平均每公升水量,需要0.5~1W的功率。詳細的預估,每公升水量,水深30cm需要0.5~0.6W,水深30~40cm需要0.7~0.8W,水深40~50cm需要0.9~1W。光度高不高,可以種一兩株陽性水草,陰性水草,看看生長狀況就知道。水草盡量選擇,耐陰性的水草,不管光度高不高,耐陰性水草都可以生長的很好。
(3)照明的時間
平均每天照明 8~12小時,主要是看水草的生長狀況,生長狀況好每天照明 10小時也可以,生長狀況不理想,可以適度的延長照明時間。
如何選擇水草缸的燈源
根據實驗水草缸的流明值,每公升至少要30-50流明(LUMEN)的光照。所以每個水草缸在選擇燈源之前,必須以該燈源每瓦流明值,估算一下該燈源合不合適,該不該選用。
各種燈源的每瓦流明值,參考如下:
燈泡,約7流明/瓦螢光燈泡,約9流明/瓦鹵素燈泡,約16流明/瓦日光燈,約16流明/瓦水銀燈,約52~55流明/瓦金屬鹵素燈,約74~77流明/瓦T8螢光管,約55~75流明/瓦PL螢光燈,約66~80流明/瓦T5螢光管,約96~64流明/瓦
高功率T5螢光燈己受到水族市場的關注與青睞,主要原因是燈管體積細小,光效高,演色性好,光衰小,壽命長,無頻閃等。這特性提供了使用者更多的使用空間與達到節省能的重大效果,必將成為水草缸的首選。
如何計算水草缸所需要的流明
根據實驗水草缸的流明值,每公升至少要30-50流明(LUMEN)的光照。一個200公升水量的水草缸,若選擇太陽螢光燈管,其每瓦流明值為75流明/瓦,水族箱所需的總流明值為8000流明(40流明/公升 x 200公升),若選擇每瓦具有70流明的40瓦太陽螢光管,每支40瓦太陽螢光管的流明值為2800流明(70流明/瓦 x 40瓦),三支40瓦太陽螢光管的流明總值為8400流明,所以一個200公升水量的水草缸,需要三支40瓦的燈太陽螢光管。
色溫是什麼
所謂色溫是表示「光顏色的量」,它的定義是:當光源所發射的光顏色與「黑體」在某一溫度輻射的溫度相同時,這時黑體的溫度稱為該光源的色溫度,簡稱色溫,用絕對溫度(K)表示。

看來商品已經問世了,連介紹都很詳細呢,還有光譜的說明.
----------------------------------------------------------------------------------------------
VITALUZ多波段LED植物栽培燈





Patchbox OS × Roland SC-8850 × Akai MPK mini Plus 37:開機自動連線設定

前言:讓 MIDI 鍵盤開機就能使用 如果沒有 Raspberry Pi,也沒有使用 Patchbox OS,最簡單的組合方式其實不複雜。 只要將 Roland SC-8850 的開關切換到 MIDI DIN-5 輸入模式,再將 Akai MPK mini Plus 37 透過 ...