顯示具有 玩具 標籤的文章。 顯示所有文章
顯示具有 玩具 標籤的文章。 顯示所有文章

2016年5月8日 星期日

[玩具] OV7670

最近在公司發現的鏡頭小模組

















解析度 640*480 (30萬像素)

暫時還不知道怎麼玩它,等爬文之後再來寫其他的。


參考資料:

OV7670 Datasheet
http://www.voti.nl/docs/OV7670.pdf


2016年5月6日 星期五

[玩具]D-link DCS-930L


前言



最近有個需求,要遠端看到我用IOT Board執行情況,

所以選擇了一台Wi-Fi IP-CAM ,選擇它只有一個理由,cheaper。

順發賣899大洋,其他的兄弟都破千,就是它了。


設定


這台機器有二種上網方式:

(1)直接用RJ45 插在AP後面。( 最簡單沒有煩惱,只是多了一條線位置就不好喬)

(2)透過Wi-Fi。(就是為了無線才買它丫,不然我買有線就好)




如果你家沒有D牌支援雲路由的AP,那就會麻煩一點。(小弟就是用T牌AP)。

別問我為什麼不一開始就用APP 搜尋,因為真的一直搜不到。

(1)拿出附贈的網路線,把CAM跟AP後面的LAN弓連接。(隨便插一孔,別插到WAN)

















(2) 連進你的AP,查一下DHCP列表,找到DCS-906LB 的IP是192.168.0.100
















(3)打開瀏覽器,打上剛才找出來的IP,使用者名稱輸入 admin  ,密碼不用打,按登入



















(4)先來改語言





























(5)功能的部份,要選ActiveX  或是 Java。看一下,下圖的說明














































很可惜的,Chrome二個都不支援,ActiveX 基本上就是只有IE可以用。

Java像是Firefox,Safari之類的可以支援,用Mac的話你就只有Java可以選擇,

不過別擔心,你還有APP。

(6)點選網際網路連線設定精靈
































(7)下一步







































(8)如果你是插在AP後面,選DHCP,如果想要鎖IP,可以在AP中設定即可。

如果你之後是要插在ADSL後面,選一下PPPoE並輸入ADSL帳密。

如果你不是用DHCP,那DNS可以設定成168.95.1.1 以及 8.8.8.8。


































(9)動態DNS帳戶是指如果是浮動IP,可以透過像No-IP這樣的服務,取得一組Domain

Name,DDNS會自動幫你對應至浮動IP。


































(10)修改攝影機的名稱,你可以改成room Cam 或是 door Cam這類比較好記的名字。

(11)設定一下時區



































(12)最後做一個套用的動作。


































(13)畢竟我最後還是要用無線的Cam,所以來改一下無線網路設定。

點下"站台搜尋"































(14)掃到我家的AP,然候按下"選擇"


























(15)會自動代入我家AP的設定,最後記得在共享密碼的地方,打上家裡AP的密碼。


(16)接下來拔掉網路線,然候稍等一下,Cam就變成無線上網了。

(IP可能會改變,再次確認一下,然候再重新登入Cam設定頁)



(17)修改Cam的解析度為640*480

(18)新建一組使用者帳密(不想大家都可以看吧)










































(19)新增完後就會在下面出現了


















(20)我在Mac無論使用Safari或是Firefox都無法正常觀看即時影像(Java 己更新到最新版)

 (21)下載APP
近端指的是透過Wi-FI觀看(只有在家裡看的到)
遠端指的是透過D-Link的雲服務(在那都可以看,需另外註冊帳號)

(22)開啟APP

























































透過Wi-Fi在傳輸其實沒什麼感覺到Delay。

心得


這台的編碼方式是JEPG,並不是M-JEPG,所以你如果要用程式去讀必須


要不斷的重新取得,因為JPEG是靜態的,而不是影片。

2015年7月21日 星期二

「玩具」吸盤


























一開始我很好奇這雞司啥用途?為什麼在機房會出現這個。

原來是用來吸地板,拿起地板底下有管線通過。

2015年7月13日 星期一

[玩具]顏色傳感器(Color sensor)




1、TCS3200 識別顏色的原理:
    TCS3200 識這種可編程的彩色光到頻率轉換器適合於色度計測量應用領域,如彩色打印、醫 療診斷、計算機彩色監視器校準以及油漆、紡織品、化妝品和印刷材料的過程控制和色彩配合。 本文以 TCS3200 識在液體顏色識別中的應用為例,介紹它的具體使用。


2、 三原色的感應原理
    通常所看到的物體的顏色,實際上是物體表面吸收了照射到它上面的白光(日光)中的一 部分有色成分,而反射出的另一部分有色光在人眼中的反應。白色是由各種頻率的可見光混 合在一起構成的,也就是說白光中包含著各種顏色的色光(如紅 R、黃 Y、綠 G、青 V、藍 B、紫 P)。根據德國物理學家赫姆霍茲(Helinholtz)的三原色理論可知,各種顏色是由不同比例的三 原色(紅、綠、藍)混合而成的。


3、 TCS3200 識識別顏色的原理 
    由上面的三原色感應原理可知,如果知道構成各種顏色的三原色的值,就能夠知道所測試物體的顏色。對於 TCS3200 識來說,當選定一個顏色濾波器時,它只允許某種特定的原 色通過,阻止其它原色的通過。例如:當選擇紅色濾波器時,入射光中只有紅色可以通過, 藍色和綠色都被阻止,這樣就可以得到紅色光的光強;同理,選擇其它的濾波器,就可以 得到藍色光和綠色光的光強。通過這三個值,就可以分析投射到 TCS3200 識傳感器上的光 的顏色。


4、白平衡和顏色識別原理 
    白平衡就是告訴系統什麽是白色。從理論上講,白色是由等量的紅色、綠色和藍色混合而成的;但實際上,白色中的三原色並不完全相等,並且對於 TCS3200 識的光傳感器來說, 它對這三種基本色的敏感性是不相同的,導致 TCS3200 識的 RGB 輸出並不相等,因此在 測試前必須進行白平衡調整,使得 TCS3200 識對所檢測的“白色”中的三原色是相等的。進 行白平衡調整是為後續的顏色識別作準備。在本裝置中,白平衡調整的具體步驟和方法如下: 將空的試管放置在傳感器的上方,試管的上方放置一個白色的光源,使入射光能夠穿過試 管照射到 TC3200 識;根據前面所介紹的方法,依次選通紅色、綠色和藍色濾波器,分別測 得紅色、綠色和藍色的值,然後就可計算出需要的三個調整參數。


當用 TCS3200 識識別顏色時,就用這三個參數對所測顏色的 R 、G 和 B 進行調整。這里有兩 種方法來計算調整參數:1依次選通三種顏色的濾波器,然後對 TCS3200識的輸出脈沖依 次進行計數。當計數到 255 時停止計數,分別計算每個通道所用的時間。這些時間對應於實 際測試時 TCS3200 識每種濾波器所采用的時間基準,在這段時間內所測得的脈沖數就是所 對應的 R 、G 和 B 的值。2設置定時器為一固定時間(例如 10ms ),然後選通三種顏色的濾波 器,計算這段時間內 TCS3200識的輸出脈沖數,計算出一個比例因子,通過這個比例因子 可以把這些脈沖數變為 255。在實際測試時,使用同樣的時間進行計數,把測得的脈沖數再 乘以求得的比例因子,然後就可以得到所對應的 R 、G 和 B 的值


資料來源:

http://www.ltc.com.tw/images/mtardtcs3200.rar

2015年7月11日 星期六

「arduino」三色LED模組

3個顏色的LED模組












































V是VCC,R是紅色,B是藍色,G是綠色。


參考這塊模組的電路圖,內部己有限流電阻了








































圖片來源:
https://docs.google.com/file/d/0ByLk3af9VgyyM0V4TG5jaElJaWc/edit


注意一下,這顆LED是共陽極的,也就是你的PWM輸出必須是0才會全亮,

255則是閉關的,下方的程式碼是關閉所有燈。

//off
analogWrite(LEDR,255);
analogWrite(LEDB,255);
analogWrite(LEDG,255);  





你可以選擇單色亮起,亦可以透過PWM來控制頻色的值。

我們先透過arduino 來控制3個顏色做呼吸燈


V接在5V,R接11 ,B接10,G接9




程式碼

 int redpin = 11; //select the pin for the red LED   
 int bluepin =10; // select the pin for the blue LED   
 int greenpin =9;// select the pin for the green LED  
 int val;  
 void setup() {  
 pinMode(redpin, OUTPUT);   
 pinMode(bluepin, OUTPUT);   
 pinMode(greenpin, OUTPUT);   
 off();  
 }  
 void loop()  
 {  
  //off all led  
  //off();  
  ledbreathe(redpin);  
  ledbreathe(greenpin);  
  ledbreathe(bluepin);  
 }  
 void off()  
 {  
  analogWrite(redpin,255);  
  analogWrite(bluepin,255);  
  analogWrite(greenpin,255); //off  
 }  
 void ledbreathe(int led)  
 {  
  for(val=255; val>=0; val-=5)  
  {  
   analogWrite(led, val);   
   delay(30);  
  }  
  //hold on 30ms  
  delay(30);  
  for(val=255; val>0; val-=5)  
  {  
   analogWrite(led, 255-val);   
   delay(30);  
  }  
 }  

最後是成果

2015年7月3日 星期五

「玩具」溫溼度傳感器

先來看一下照片











































S 接A0

中間接+5V

- 接GND


接線照劃如下(小弟只買一包線,只有藍色的,不要打我)


























執行結果如下:























溼度大致上在38~39% 左右,溫度在25~27之開飄移,我們來看一下,在39元店買的

























室溫約29度,溼度也差不多接近40% ,OK啦,開了冷氣都還快30度(省一下電~誤)

最後附上官方的範例程式碼


 #define dht_dpin A0  
 byte bGlobalErr;  
 byte dht_dat[5];  
 void setup(){  
 InitDHT();  
 Serial.begin(9600);  
 delay(300);  
 Serial.println("Humidity and temperature\n\n");  
 delay(700);  
 }  
 void loop(){  
  ReadDHT();  
  switch (bGlobalErr){  
    case 0:  
  Serial.print("Current humdity = ");  
  Serial.print(dht_dat[0], DEC);  
  Serial.print(".");  
  Serial.print(dht_dat[1], DEC);  
  Serial.print("% ");  
  Serial.print("temperature = ");  
  Serial.print(dht_dat[2], DEC);  
  Serial.print(".");  
  Serial.print(dht_dat[3], DEC);  
  Serial.println("C ");  
     break;  
    case 1:  
     Serial.println("Error 1: DHT start condition 1 not met.");  
     break;  
    case 2:  
     Serial.println("Error 2: DHT start condition 2 not met.");  
     break;  
    case 3:  
     Serial.println("Error 3: DHT checksum error.");  
     break;  
    default:  
     Serial.println("Error: Unrecognized code encountered.");  
     break;  
    }  
  delay(800);  
 }  
 void InitDHT(){  
   pinMode(dht_dpin,OUTPUT);  
     digitalWrite(dht_dpin,HIGH);  
 }  
 void ReadDHT(){  
 bGlobalErr=0;  
 byte dht_in;  
 byte i;  
 digitalWrite(dht_dpin,LOW);  
 delay(20);  
 digitalWrite(dht_dpin,HIGH);  
 delayMicroseconds(40);  
 pinMode(dht_dpin,INPUT);  
 //delayMicroseconds(40);  
 dht_in=digitalRead(dht_dpin);  
 if(dht_in){  
   bGlobalErr=1;  
   return;  
   }  
 delayMicroseconds(80);  
 dht_in=digitalRead(dht_dpin);  
 if(!dht_in){  
   bGlobalErr=2;  
   return;  
   }  
 delayMicroseconds(80);  
 for (i=0; i<5; i++)  
   dht_dat[i] = read_dht_dat();  
 pinMode(dht_dpin,OUTPUT);  
 digitalWrite(dht_dpin,HIGH);  
 byte dht_check_sum =  
     dht_dat[0]+dht_dat[1]+dht_dat[2]+dht_dat[3];  
 if(dht_dat[4]!= dht_check_sum)  
   {bGlobalErr=3;}  
 };  
 byte read_dht_dat(){  
  byte i = 0;  
  byte result=0;  
  for(i=0; i< 8; i++){  
    while(digitalRead(dht_dpin)==LOW);  
    delayMicroseconds(30);  
    if (digitalRead(dht_dpin)==HIGH)  
    result |=(1<<(7-i));  
   while (digitalRead(dht_dpin)==HIGH);  
   }  
  return result;  
 }  

2015年7月1日 星期三

[玩具]D-Link DWA-121

幫pi 2買了一支USB無線網卡,參考網路上資料,

確定這一支D-Link DWA-121是可以支援,本來想買跟pi 1一樣的

Edimax EW-7811Un  ,但是找不到了,退而求其次選擇一支可正常支援的。














來看一下照片

和 Edimax EW-7811Un 合照

























來一張運作中的模樣(右上的USB,底下是藍芽,參考這一篇

























2015年6月20日 星期六

[玩具]Dongle SBD-40

最近在幫我家的樹梅派找一可以支援BLE的藍芽接收器,

參考了這一篇 確認Dongle SBD-40可以支援BLE。




2015年6月11日 星期四

[玩具」手指測心跳模組

逛街時看到之前去放視大賞時 ,有學生用來做心跳數測量的模組,不貴,就敗一個回家。

這是一個For arduino 的模組 ,有時間弄起來後,再來分享。 (不到一百大洋)






2015年5月30日 星期六

[玩具]USB電壓、電流檢測表

今天和嘛吉去電腦街時,嘛吉覺得這玩意兒俺一定有興趣,賓果~俺敗下去了,

特價99,買來試一下也不錯。












































看標示可以支援3.5V ~ 7.0V 的電壓,用來USB上應相當足夠。

電流則是1~3A,一般的USB充電是1A ,平板的充電插頭有些是2A。

一般USB 2.0 的供電約在0.5A左右。

觀察了一下發現,其實大致上充電器以及小米行動電源都能輸出5~5.1V

的電壓,但電流則是視裝置的不同,並不是插頭餵多少,裝置就吃多少,

同一顆插頭,同一條線,接平板吃400多mA ,接手機吃600多mA。

換到小米行動電源上亦同。












































它不需要任何操作,通電後每隔幾秒會輪流切換電壓及電流。