發表文章

使用arduino設計EBD展示燈

圖片
其實這個構想很久了, 指是要先處理單線電力供電問題,再處理高低壓控制,以及演示計算問題。 我再這之前有作出一個簡易的 EBD 煞車燈, 但是,看久了還是希望有點變化,可是又不希望買市面上的燈條來組合: 一來是我希望展示燈有有延遲啟動效果,市面上燈條做不到。 二來是希望展示的方式可以依照自己喜好組合,市面上燈條也難辦到。 所以只好動起 Arduino 歪腦筋,看看能不能塞進去第三煞車燈了。 先勾勒出電路圖 不算太難,只是線路有點多而已,由於要塞到第三煞車燈裡面所以要進量縮小 因此比較多零件的驅動電晶體使用了SMD的N通道MOSFET - P3055LDG來製作。 原則上Arduino NANO 是5V 驅動與電力提供, 控制 TLC5940NT 一路都是5V 但是要轉到控制12V的LED燈板就需要用到偶合電路比較安全, 因此這裡選用了簡單形式的 LTV847 光耦合IC來串接, 這樣就可以隔離12V電力,避免逆流回Arduino 或TLC5940NT導致燒毀問題。 Arduino NANO TLC5940NT LTV847 P3055LDG 程式的部分改天再分享上來

[記錄]淺談麵包板品質與杜邦連接線的問題

圖片
最近在做一些 Arduino 控制電路, 但是一直很不順心的是關於 DS1302時鐘模組與TLC5940NT的多通道PWM控制。 在這些通訊控制中通常都需要用到 CLOCK 同步。 這故事是一開始的實驗板電路,大部分都會使用麵包板和一些跳線來做, 因為要外接 Arduino 模組和一些驅動板,通常除了麵包板上跳線會使用單芯線外, 會使用一些杜邦2.54端子的聯接線來聯接。 一開始簡單的實驗都很正常,然後就這樣用久了,同樣再做一次相同的電路時, Arduino 電路的運作開始出現異常。 比較常見的像是 DS1302 取到的時鐘資訊常常便成亂碼, 又或是 TLC5940 的 PWM 控制一直出現干擾(動作亂跳)。 經過不斷抓狂的抓蟲後來發現 連接線 和麵包板的嚴重問題,如下: 像是杜邦2.54端子上圖紅色圈起位置,發現用久之後會斷芯,外觀完全看不出來, 不確定是否為線材本身問題還是人為問題,因為這種斷芯會讓訊號時有時無。 其次是麵包板: 第二點,品質不好的麵包板,接孔內的彈片金屬彈力衰退,常見接觸不良, 接觸點造成接觸電阻升高,導致分壓/分流不正確,訊號異常等。 造成我浪費大量時間在找問題(明明電路是正確的,但實際運作一直出狀況) 所以,解決方法如下: 1、更換 / 使用好的線材聯接線,使用前量測聯接線是否有電阻升高或是斷線問題。 2、更換 / 使用較好的麵包板,如果發現麵包板部分插孔開始鬆脫,無法夾緊零件或是聯接線,就得考慮更換。 只能說該換就換,不然浪費大量時間又讓自己信心崩潰真是划不來啊。

[記錄]快速刪除 SQL Server 前 1000 筆資料的方法 Using Common Table Expressions

【注意】CTE 這個方法只適用於MS SQL Server 一般我們刪除指定資料範圍的方式都會用這種方法: delete from [myTable] where YourConditions 但是有時候,我們因為某些需要刪除資料庫前1000筆資料時卻好像沒辦法用 where 去達成條件。 我們都知道選擇前 1000 筆資料方式: select top 1000 field1,field2,field3 from [myTable] 如果把前述條件當成Conditions來用,就必須 join 欄位 delete from [myTable] where field1 in (select top 1000 field1 from [myTable]) 但很不幸,如果資料龐大,又 field1 不是 Primary Key 的第一欄位, 又或是 Primary Key 是多重組合,則可能造成資料庫大量 LOCK, 使用者得查詢會幾乎被 BLOCK 起來。 這時候我們可以用 CTE 指令方式,這是個類似 Store Procedure 的處理方式,但不需要像 Store Procedure 那樣複雜的語法。 ;WITH CTE AS ( SELECT TOP 1000 * FROM [myTable] ORDER BY field1 ) DELETE FROM CTE 看!簡單多了! 關於 CTE 使用方式可以參考  https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2008-r2/ms190766(v=sql.105) ※好像SQL2005以上有提供下面指令可以達到效果,但我個人是沒有用過 DELETE TOP (1000) FROM [myTable] WHERE YourConditions

改造我的檯燈-使用LED取代日光燈管

圖片
最近我的檯燈故障了,鄉更換燈管,發現這款燈管超級難找:T4 12W 1202環形燈管 由於我的檯燈上有放大鏡,因為工作需要常常很靠近燈,常常會覺得很燙。 因此讓我想既然難找到這行燈管乾脆決定使用LED取代燈管,因此進行了改造。 這是我首次拍長時間的 Youtube 影片,因為設備操作不熟悉,所以花了很多時間調整與調教甚至還臨時做了補光燈還呢!!

直接使用 AVIUTL 縮小影片

圖片
雖然現在攝影設備(DV/DC/CAM....)都可以輕鬆拍出 Full HD 的影片,但是問題是 FHD ( Full HD 簡稱) 或 4K 影片檔案大到令人咋舌,動輒以 GB 起跳的檔案,在網路上傳送,簡直就是噩夢一般。 所以,在不影響閱聽者的觀賞情況下,適當的縮小影片是一個很重要的事情。 這裡使用個人常用的影片編輯軟體 AVIUTL 來快速處理影片,這裡以大將常見的 MP4 檔案來進行說明。 首先,檢查影片大小,其實 Windows 的 檔案總管 對於 MP4 算是比就友善的,可以在檔案總管內看到原始影片解析度。 就解析度來說 FHD 是 1920 x 1080,而 HD 則是 1280 x 720 一般HD的畫質在觀看上其實是都可以接受的,所以我們就以 HD 畫質為目標來處理。 首先開啟 Aviutl,可以看到上下兩個視窗,上面是預覽畫面,下面則是軌道編輯。

簡單易用的免費空間 ZippyShare

圖片
網址:http://www.zippyshare.com 上傳檔案限制:500MB 下載限制:無 檔案存留時間:沒有檔案下載活動後30天自動砍檔 2018/03 【上傳方式】 直接到ZippyShare首頁,可以看到『Browse』,按下『Browse』來選擇你要上傳的檔案

powerbuilder的TrackBar和ScrollBar對於滑鼠滾輪的處理

powerbuilder 的 TrackBar (vTrackbar / hTrackBar) 與 ScrollBar (vScrollbar / hScrollbar) 的控制上一直以來都少了一根筋,那就是 Mouse Wheel 滑鼠滾輪的事件。 雖然,Trackbar/Scrollbar 在使用時,滑鼠滾輪都可以控制標桿的移動,但是因為沒有對應的事件與通知,所以沒辦法處理滾輪滾動之後的定位值 你可以在 Trackbar/Scrollbar 找到下面事件 moved - 標桿移動後的觸發,但是只限於使用滑鼠按住標桿的移動才會發生。 pageup/pagedown - 當使用滑鼠點擊標桿 兩側 時,標竿會移動一個距離的事件。 lineup/linedown - 當使用鍵盤方向鍵(Arrow Key)控制標桿移動時,會觸發的事件。 但就缺少滑鼠滾輪事件! 此時就可以利用攔截 Windows Message ID 方式處理: 滑鼠滾輪事件 WM_MOUSEWHEEL = 522 此事件會帶 Word 參數 → 0 =向下滾動、1=向上滾動 在 Trackbar/Scrollbar 裡面有個 Other Event,在裡面下判斷,即可以處理 if message.number = 522 then if message.wordparm < 0 then //mouse wheel down st_pos.text = string(vtb_1.position) else //mouse wheel up st_pos.text = string(vtb_1.position) end if end if 那如果要防止使用者使用滑鼠滾動(禁用),就可以在事件返迴 1 ,以防止事件執行: if message.number = 522 then return 1 end if 相對的這個在 DataWindow Control 物件上也適用喔!