2017年10月18日 星期三

使用Linkit 7697打造遠端遙控智能燈座 - Part 2

這次手作了35 PCS課堂上使用,包括11Maker Faire Taipei展覽樣品



和鎢絲燈泡一起打包過後,就像準備出貨,只是難看了點



工作桌凌亂不堪,但為了就是要學員一次就上手!

且準備了九支程式、電路圖說明與Layout走線,要在三小時完全學會

而且當天會有小鮮肉助教,把教材給他之後,我就可以喝飲料看漫畫了

希望之後完整系列課程結束,能讓大家多多關心自己家中的長輩 ^ ^



先前寫了一篇使用Linkit 7697打造遠端遙控智能燈座,這一篇是Part 2

以下程式可以按下dab調光


int pinLed = 14;
int PWM = 9; // PWM pin
int dimming = 40;  // Dimming level (0-128)  0 = ON, 128 = OFF
int flag1=0,flag2=0,flag3=0;

void setup(){
    Serial.begin(9600);
    pinMode(2, INPUT);
    pinMode(pinLed, OUTPUT);
    analogWrite(PWM, 55);  //setting PWM speed
    Serial.println("Hello");
}

void loop(){
   int switchStatus = digitalRead(2);
    String s = "";
 
    while (Serial.available()) {
    char c = (char) Serial.read();
        if(c!='\n')
        {
            s += c;
        }
        delay(1); 
    }

    if(s=="d"){
    flag1=1;
    flag2=0;
    flag3=0;
    dimming=40;
    Serial.println(s);
 }
    if(s=="a"){
     flag2=1;
     flag1=0;
     flag3=0;
     dimming=30;
     Serial.println(s);
 }

 if(s=="b"){
     flag3=1;
     flag2=0;
     flag1=0;
     Serial.println(s);
 }

   if(switchStatus==HIGH && flag1==1)
  {
   
   Serial.println("ddd");
  int dimtime = (65*dimming);    // For 60Hz =>65   
  delayMicroseconds(dimtime);    // Wait till firing the TRIAC   
  digitalWrite(pinLed , HIGH);   // Fire the TRIAC
  delayMicroseconds(8.33);         // triac On propogation delay
         // (for 60Hz use 8.33) Some Triacs need a longer period
  digitalWrite(pinLed, LOW);    // No longer trigger the TRIAC (the next zero crossing will swith it off) TRIAC
     }

     if(switchStatus==HIGH && flag2==1)
  {
   
  Serial.println("aaa");
  int dimtime = (65*dimming);    // For 60Hz =>65   
  delayMicroseconds(dimtime);    // Wait till firing the TRIAC   
  digitalWrite(pinLed , HIGH);   // Fire the TRIAC
  delayMicroseconds(8.33);         // triac On propogation delay
         // (for 60Hz use 8.33) Some Triacs need a longer period
  digitalWrite(pinLed, LOW);    // No longer trigger the TRIAC (the next zero crossing will swith it off) TRIAC

  }

  if(switchStatus==HIGH && flag3==1)
  {
   
  Serial.println("bbb");
  digitalWrite(pinLed, LOW);    // No longer trigger the TRIAC (the next zero crossing will swith it off) TRIAC

  }
}

以下程式可做出AC呼吸燈泡模式

將%Localappdata%\Arduino15\packages\LinkIt\hardware\linkit_rtos\0.8.4\cores\arduino\wiring_interrupt.c

裡面的eint_config.debounce_time = 50; // debounce time unit: ms

50改為0


-->可以在C槽中找












int pinLed = 14; //output pin
int flag = 0;
int dimming = 128;  // Dimming level (0-128)  0 = ON, 128 = OFF
int brightness = 40;    // how bright the LED is
int fadeAmount = 1;    // how many points to fade the LED by

void setup()
{
 pinMode(pinLed, OUTPUT);
 attachInterrupt(2, interrupt, RISING); //using interrupt
 Serial.begin(9600);
}

void loop()
{
if (flag == 1 )
{
// change the brightness for next time through the loop:
 brightness = brightness + fadeAmount;
 dimming=brightness;
 Serial.println(brightness);
 int dimtime = (65*dimming);    // For 60Hz =>65   
  delayMicroseconds(dimtime);    // Wait till firing the TRIAC   
  digitalWrite(pinLed, HIGH);   // Fire the TRIAC
  delayMicroseconds(8.33);         // triac On propogation delay
         // (for 60Hz use 8.33) Some Triacs need a longer period
  digitalWrite(pinLed, LOW);    // No longer trigger the TRIAC (the next zero crossing will swith it off) TRIAC
      // reverse the direction of the fading at the ends of the fade:
  if (brightness <= 10 || brightness >= 100)
  {
    fadeAmount = -fadeAmount;
  }
   flag = 0;
  }
}

void interrupt()
{
 flag = 1;
}

這次是初階課程,如果控制30顆燈泡同時閃爍或亮滅,會挺壯觀

但可惜的是,MQTT要等到進階課程才會教到  ^ ^

加入我們吧!

2017年9月14日 星期四

學校家長說故事

做簡報的時候,字愈少愈好
這次演溝很特別,簡報上完全沒有字
最後的"我們一起玩"讓所有人沸騰
感謝大家,讓我把聽眾群延伸到5歲以下
小朋友的反應最真實了,尤其是大鵝,完全投入在故事中



#你喜歡籃球嗎
#教練我想打籃球

2017年9月12日 星期二

結婚記念日 - 成長MV

為了記住結婚記念日,email後面加上912

這幾年的九月,通常都不在國內

不是出差Debug就是出國準備新案

每當key email,912只是個反射動作,自然記不得是什麼日子(每年都變家庭革命日)

今年很難得,在幾週前就記住啦! 而且還找出我當年做的成長MV

這首pop rock選的不錯,現在聽還是很有味道,都已忘了這個樂團的存在

放FB的好處在於會被提醒,但朋友看到會有心跳漏拍的可能

UCCU... ^ ^


2017年9月8日 星期五

使用三顆Linkit 7697製作室內定位功能

由於小朋友開學一團混亂,導至文章比較慢產出

但也發現在校園內"未滿足需求"

1、當家長送小朋友進校門後,他是真的直接進教室了嗎? 有沒有被其他人叫走了呢?

2、教室沒有攝影機,但小朋友真的在室內嗎? 在哪一個室內呢?

3、放學的時候,小朋友是真的有上校車嗎? 校車是幾點會到家的巷口呢?

以上問題皆可以自已動手用Simple Care解決

為了證明小弟再忙也要喝杯拿鐵,下班後也會找時間寫文章

這次的Indoor Location有點難寫,改用講的 (請參閱影片,記得開音效哦~)




原來相機、手機與運動攝影機一起使用

還是相機比較穩定啊!


P.S.1.我們可以準備開個線上會議或Study Group了

P.S.2.Indoor Location的演算法需要修正,目前還是有問題

P.S.3.Taipei Maker Faire在華山,主辦單位說空間有限,所以Simple Care是備取~

但不重要~東西做得出來能幫到人才是重點,參展只是方便讓大家聚會

P.S.4.最後一篇技術文章是Smart Home Security,但這類型的文章大家都看到不想看了,有時間再寫囉~

P.S.5.想試ESP32能不能達成,有沒有人手上多出來三顆的ESP32 ? 快連絡我~

週末愉快

Good Luck~

^ ^

加入我們吧!

2017年8月30日 星期三

開學囉~

今天是公托家長日

老師很用心的說明每一個細節

大鵝的號碼相當容易記,是他不喜歡的人物背號

井上雄彦筆下的赤木剛憲才是他最崇拜人物,原因是大鵝喜歡當隊長

公托有很多課後活動,畢盡曲棍球打的再混,直排輪也還略懂

圍棋和足球因為之前都沒跟大鵝聊過,所以較無興趣

最近的睡前故事已經把湘北海南之戰講完

本來已經決定下一個睡前故事將會是網球王子

看來可以足球小將翼或棋靈王也可以安排在行程內

因為十月的上午,每週有國家級足球教練來教

哇 ~ 你拔拔眼睛都亮了~ 我也想踢波呀!

除此之外,還可以讓家長選有空閒的時間來說故事給小朋友聽

所以麻麻選了一天打算讓我去講灌藍高手

這樣就結束了嗎? 每個週四是騎腳踏車日

哇!!! 這間學校也太棒了!!!


2017年8月25日 星期五

使用Arduino Nano打造調光器

鑒於調光器文章流量很高,可見大家對於此類產品有強烈的興趣

這次再寫一章使用Arduini nano實做,而且簡單的不得了,還不用怕被電到,文章是由這篇修正而來,1-10V調光技術

最後電路修正為下圖,整流器接上LED燈條(LED燈泡也同樣意思)


註:下圖黃框如果沒有12VAdapter,也可以直接將Arduino nano接到5V


這麼簡單的Source Code真是是傷大家的眼睛


int PWM = 9; // PWM pin

void setup()
{
 Serial.begin(9600);
}

void loop()
{
  analogWrite(PWM, 255);  // PWM最大值
 delay (5000);
   analogWrite(PWM, 200); 
 delay (5000);
    analogWrite(PWM, 0);  // PWM最小值
 delay (5000);
}

來看看


Arduino Forum上有呼吸燈的Tutorial,照著貼上去

int led = 9;           // the PWM pin the LED is attached to
int brightness = 0;    // how bright the LED is
int fadeAmount = 5;    // how many points to fade the LED by

// the setup routine runs once when you press reset:
void setup() {
  // declare pin 9 to be an output:
  pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  // set the brightness of pin 9:
  analogWrite(led, brightness);

  // change the brightness for next time through the loop:
  brightness = brightness + fadeAmount;

  // reverse the direction of the fading at the ends of the fade:
  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
  }
  // wait for 30 milliseconds to see the dimming effect
  delay(30);
}

來看看




~~~~~~~~~~~~~~~燈控科普時間~~~~~~~~~~~~~~~~~~~~~~~

燈控可是一門技術呢! 也是一個存在已久的商業行為

小弟就別多寫什麼,這次來參考

裡面有提到Triac(智障型燈座)0-10V / 1-10V(這次的文章)
Zigbee(我們用的是WiFi+Lora)PLC(買不起 @@)DALI(這應該要請專家來說明)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

!!!UPDATE !!!

原本科普時間想要貼個文章打混過去,沒想到向神龍許願有用

調光界的高手Edmund願意幫小弟寫普時間,真是倍感光榮

~~~~~~~~~~~~~~~Edmund燈控科普時間~~~~~~~~~~~~~~~~~~~~~~~


調光,或許在一般人的眼中,不外乎就是用個旋扭式的調光開關,控制鎢絲燈泡的亮度

但其實早在20多年前,巿場上已經對調光這個應用有著更多的要求

這由源自解決傳統的相位調光(Phase-cutting)的問題

巿場上一般常買的到的調光器,絕大多數都是以前段相位調光 (Forward Phase/Leading Edge Dimming)

但大家想想,現在還有人在家中或商業的環境用鎢絲燈泡嗎?

對相位調光有興趣的朋友可以參考此文章

雖然 Trailing-Edge/Reverse Phase 能解決大部份的家用 ELV 燈源(LED/CFL省電燈泡)的調光問題,但其實相位調光存在很多不能解決的問題

一般 Trailing-Edge/Reverse Phase(後段相位調光)都偏向以可控矽 (Triac) 來設計調光應用

Triac 存在的問題難以解決


l   燈源的負載不能太大 (基本上40w以上的就會出現調光器發熱/有噪音(Buzz Noise)

試想想一個飯店的大堂(6m-12m)的高度,燈具用 LED 的話,住住會用到 25w – 50w 的燈具

以一個燈光迴路是大約 12-20 LED 燈源,大約就是大約 400w – 1000w 的負載

所以過往在策劃方案時就要把 LED 燈源的 pf (Power factor) 跟燈光迴路的總瓦數都算好


l   相位調光器一般的負載 LED 能力,常見只有大約 150w – 300w 左右

所以很多時候在處理比較大的往宅或商業的應用方案

除非客戶或燈源一定要用相位調光器(要加上調光放大器 Power Booster使用)

或改用其他的燈光調光方法 (放大器應用可以參考這篇

除了相位調光外,常用到的調光方法有以下幾種:

1.          PUSH L
2.          0-10v/1-10v
3.          DALI
4.          DMX
5.          其他的 BUS 系統 (CBUS/KNX/Pyxos 等等)

由於關心大家的鍵盤著想,避免大家看到睡著,口水氾濫成災

各種調光方法的詳細Edmund就先留待下次有機會再跟大家分享

針對幾種容易入手的先分享一下常見到的應用及特性

1、PUSH L/PUSH DIM

一種成本很低 CP 值很高的調光方法,對於迴路佈線的要求也跟傳統燈光迴路沒有太大差別,只要燈源能找到相匹配而有PUSH L 輸入的鎮流器,配上一個復位關關(門鈴開關),就能達至多位置開關/調光的效果,Edmund平日跟老婆看電影時,電視背的LED燈條就是以這種做法來作調光,而實際的應用,很多過往處理過的住宅方案,客戶沒有燈光系統的要求,但也想享受調光的氛圍,這就是一個成本效益很高的做法,
可參考這篇








2、0-10v/1-10v 

最初接觸這種調光方法,是大約 20 年前,因為有客戶想把家中所有的 T5 燈管作調光,0-10/1-10v 的調光方法對 CFL/LED 有著很大的好處,調光的效果也解決了相位調光上很嚴重的 flickering zone / dead travel zone/buzz sound 的問題,在 LED 的應用越來越廣泛的今天,相信會越來越常見,也就是本篇的應用

國際牌的 1-10V 調光器 (引用來源:Mobile01)


*1-10V T5 調光器的接線方法

3、DMX

多用於舞台燈光/指令可以包含RGB 顏色改變/調光/閃爍/燈光投射位置改變,在不少的演唱會/會所/攝影棚甚至 KTV 都常看到,有興趣的話可以參考連結
(引用來源:影視工業網)

4、DALI 

DALI 
算是一種很成熟的技術,不少的飯店/會所、尤其在大型的服飾專賣店都常看到,因為它能夠達至在同一個燈光迴路內不同的燈源可以作出不同的調光亮度,不少歐洲的名牌服飾店及博物館都是以 DALI 系統作為他們燈光應用的標準,試想想你是一家名店的櫥窗設計師,給予你每顆照明光源的亮度你可以任意調整,在店內重點區域或作為強調主打商品的展示的應用上有多方便?付出的代價就是 DALI的鎮流器會比較貴,以及 DALI 的處理器也要一定的價錢


**服飾店以DALI 燈光系統為店中的燈光營造出格調的層次感 (引用 John Cullen Lighting)

**DALI LED 整流器,可以看到端子 DA1 DA2 就是用來接收 DALI 調光信號


針對各種調光的協議的優劣及應用範圍,留待下次有機會詳細分享


觀迎親臨 9 16 日的活動


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

原來燈控有這麼多的學問啊!  這還是要請燈控界的高手Edmund來介紹,畢竟對AC要保有敬畏之心



簡單的說,玩了這次的1-10V調光器,加上之前做的智障型燈座

WiFi/Lora做結合後,就可以朝著調光王了邁進了!!!

(突然想到我們Maker一哥有個萬遲王的頭套…)

燈控這個市場確實含金量挺高的! 商業模式也很確定! 誰家不需要燈光,是吧?

P.S.小道消息是9/16,燈控界的高手會開一堂燈控相關課程,我會去做工讀掃地清潔一個小時

順便去分享這篇文章! 畢盡我燒菜好好吃的! (!?

但寫完發現太簡單了,也許去分享不用一個小時

10分鐘就夠用了,剩下的只能講笑話和世大運的賽程分析

可是9/16世大運都結束了耶

FB設定搶先看的方式

設定搶先看的兩種方式 A1. 先到我家的日常粉絲團按下 …( 紅框處 ) A2. 按下追蹤中 ( 紅框處 ) A3. 按下搶先看 ( 紅框處 ) A4. 完成!!! 另一種方式 ...