Search

2013年3月12日 星期二

wxRovio ver.0.1.0 - WowWee Rovio

  過年後跟人拿了一隻WowWee Rovio玩玩,玩了兩個禮拜發現好像沒有錄影的軟體,所以只好自己寫一個用,在GitHub看到roviolib於是參考了之後跟他一樣用Libcurl送參數給Rovio的CGI,格式為:http://<username>:<password>@<ip>/<command>(括弧要去掉),如果使用的Command會使CGI回傳數據,則必須要寫Callback去處理他,靜態影像處理很簡單判斷JPEG格式而已,不過Video Stream搞不太懂他傳回來的是MJPEG但是處理起來很怪大小也不一,所以參考roviolib作者的Callback之後感覺是在10k~50k之間,然後啟用Video Stream時就會一直接收所以要開個Thread才不會讓Main Thread掛住,另外有個Debug功能可以開啟I2C的功能可以看我下面的參考聯結,最後我改寫的wxRovio目前沒有全功能只有我常用的,然後用wxWidget刻一個Demo用的GUI,有時間再增加功能或改改GUI。(PS:如果按鈕hold住就直接Reboot或者按Stop試試)

使用功能前記得先登入否則會Exception XD,錄影(Video Start)錄完記得停止(Video Stop),頭部的控制按鈕如果一直按著會用分段的方式升降,如果只按一下就會直接升降到定點。



開啟夜間模式會根據Framerate除以的數字決定亮度,換句話說越亮的話Framerate越少,而Auto Gain Control以為跟控制有關,不過其實功能類似於夜間模式,但不同的地方在於這個功能不會減少Framerate但是Noise會增加不少,而這兩個功能都是Debug.cgi裡面的。



wxRovio錄影(錄一小時約1.2GB)



=============2013/03/14===============

一樣的Code在Linux上編過沒問題,當然得要有wxWidgets & OpenCV & Libcurl。




如果還有改版就寫Makefile XD


g++ -o2 -o wxRovio './AddUserDialog.cpp' './App.cpp' './DeleteUserDialog.cpp' './LoggingDialog.cpp' './SetCameraDialog.cpp' './SetOtherDialog.cpp' './wxRovio.cpp' `wx-config --cxxflags --libs --unicode` `pkg-config opencv --cflags --libs` -lcurl





參考:

2013年2月17日 星期日

鑭玻璃去衰退黃化




  最近試著用人家說的紫外線去除法用了幾天(都照射24H)有效果出來,找到的紫外線LED是405nm吃3.4v/20mA,所以用充電電池四顆充飽約5.2V,5.2V - 3.4V = 1.8V => 1.8V / 20mA = 90R => 所以每個燈串個90R電阻就好,話說我覺得從鏡尾照比較有用?

day 0


day 1


day 2


day 3




day4


2013年2月6日 星期三

PCM2706 Receive

    最近想自己DIY個輕便只用USB供電的DAC玩玩,把PCM2706當Receive然後走I2S到PCM1794接著在給管機放大機或直接上耳機喇叭...等等,本來一直在想要不要把PCM2706和PCM1794作在同一塊PCB,不過想了想還是先作分開比較方便測試,昨天先完成Receive的部份了,做了測試一開始很容易斷斷續續重新被OS掛載,然後我把PCM2706的腳重新焊了一次就比較沒有這個問題了,但是我注意到跟之前做的PCM2706的問題一樣,有時後會使Debian(其他Linux不知道,Win7不會)操作定住.....所以可能還得測試幾天看情況如何,如果有人真的做了有問題可以回報給我感恩XD,年後再來畫PCM1794。

說明:


    板子都是單面板且零件都是DIP,有主電路板與一個PCM2706的DIP轉板,PCM2706焊在DIP轉板時那個點要對準轉板的正方形點這樣方向才正確,然後插到主電路也是正方形點對正方形點,JP1是用來控制Pin9,如果Pin9接地則使用I2S輸出,否則就是一般輸出,我是只要用I2S不過為了直接測試我還是畫上一個左右聲道輸出的線路(下圖青色線以上的電路),因此功能開關也省去了,然後參考Datasheet與別人的圖以後用USB供電要將D+加上一個pull up電阻連接HOST,而振盪器也是根據建議用12MHz並一個1M電阻與兩個27p陶瓷電容。


Part List:

  1. USB:USB B-TYPE
  2. TX1:12MHz振盪器
  3. JP1:3Pin
  4. IS2:6Pin
  5. 左右聲耳機座
  6. L1:3~5mm LED
  7. R1、R2、R3、R4:33 Ohm
  8. R5:1M Ohm(振盪器下方)
  9. R6:330 Ohm
  10. R7、R8:22 Ohm
  11. R9、R10:1.5k Ohm
  12. R11、R12:15 Ohm
  13. R13、R14、R15、R16:3.3k Ohm
  14. C1、C2:27pF陶瓷電容
  15. C3、C4、C5、C6:1uF/16v電解、鉭質電容
  16. C7、C8:47uF/25v電解電容
  17. C9、C10:100uF/25v電解電容
  18. C11、C12:22nF金屬皮膜電容
    那條青色線以上是一般輸出,我是拿來測試用,如果用不到只要用I2S可以把那條線以上的電路直接刪去(用剪刀沿著那條線減去),另外注意PCM2706左上有三顆很靠近的電容中間那顆是C7旁邊兩顆是C3、C4,而C7、C8要躺著否則可能會卡到PCM2706的板子。


完成(只留I2S就這樣大小)


完成(有左右聲道)




2013年1月29日 星期二

Electronic Candle

  剛剛看我妹清出一個電子蠟燭XD,用一個電容式麥克風和一個RGB色LED以及一個被封住不知名的MCU(比ATtiny85還小的感覺),不過可惜的是麥克風只有開關的功能,如果顏色會隨麥克風受力大小改變會有真實蠟燭的感覺XD(這個顏色變化是固定隨機XD)。





2013年1月28日 星期一

wxArduino IDE(?) Compile and Uploader Test

  今天早上沒事做想說來寫個Arduino IDE順便研究AVR-Toolchain的Command,UI用wxWidgets刻然後底下包AVR-GCC相關工具 and Avrdude,前者要負責編譯code以及用到的Arduino Library,所以自己的IDE要寫個解析Include多少Arduino Library的Function,最後將這些編譯後檔案的obj File與Arduino自帶的Core328(ATmega328) Link完之後產生HEX File,再由給定的Command(MCU的Baudrate と Clock と Serial Port..etc)傳給Avrdude然後將HEX File上傳到MCU上,用wxWidgets可以偷懶直接用wxExecute之類的在背景開個Shell去跑AVR-Toolchain,不過我比較喜歡用該平台的API另外開個Thread去跑,下面一個簡單的demo,主要把Blink Examples Code編譯然後上傳到Arduino,第二次把Code暗與亮從50ms改成500ms然後重新編譯上傳看到LED差異證明確實有功能。




參考:


  1. Arduino Build Process
  2. Arduino Uploader – command line utility for compiling and uploading Arduino sketch
  3. WinAVR 初體驗