發表文章

目前顯示的是 4月, 2019的文章

小工具開發 - 檔案實序排定器

圖片
最近遇到某些音樂播放器,由其是SONY的車用音響,都出現了這個問題,就是它根本不照我們放置檔案的順序或是其他排序方式(時間)去撥放。而這支程式就是用來重建他的檔案順序用的。 At some Sony music players or car audios,  it read mp3 files order is not follow filename sort or otherwise sort on the USB drive. This program will regenerate file order to the right! 假如我有一個USB隨身碟資料夾,裡面的檔案清單就如下面這張圖: 在 Windows 檔案總管下,看起來就是上面這樣子的,因為檔案總管會預設以檔案名稱來排序,正常得情況我們在 Windows 的播放軟體也會依照這個規則來執行。 然而,目前我在SONY音樂播放器上遇到這個播放順序的問題,它是照下面這種順序去撥放的: 比較前後兩張清單後注意到了嗎? 第二章的清單順序根本不知道它是依循啥麼的啊??事實上這就是我在 SONY音樂播放器上遇到的問題。 經過不斷的檢查後發現,原來第二張的檔案順序是在 FAT 表上的出現順序啊!!!!! 這啥鬼? 原來 SONY 音樂播放器是直接照 FAT 表讀出的檔案順序來播放音樂的,無怪乎我怎麼改檔案名稱,或是檔案時間都沒有用。 要是按照這種方式播放的話,如果要整理檔案,就得把 MP3 檔全部 移出 USB 隨身碟後,再依順序一個一個拷貝(搬移)回 USB 隨身碟。 真是天殺的,如果 USB 隨身碟有滿滿 16 GB音樂檔,那不就搬到天花地老了。這個會死人啊,老兄。SONY,我真服了你們了,東西又不便宜,程式卻寫得這麼爛,真不像 SONY 的產品啊。 索性,自己寫一支程式,專門來做檔案順序『重建』就可以保證在 FAT 上是依照自己訂的順序來跑了。 有興趣的就自己下載看看: 下載檔案/原始碼 這是用 dotNetFramwork 4.5 製作的,所以要執行的話,電腦至少要能支援 dotNetFramwork 4.5 ,或是到 這裡下載 。記得選擇您使用的語系再安裝。 程式載點 (Google drive) 原始碼載點 (Gith

Arduino 控制 - 使用 L293D 來驅動馬達

圖片
L293D 式一顆用雙路直流馬達的控制器,用這顆 IC 可以用來驅動一般的小型馬達/玩具馬達之類的,相當方便。 其內部結構大概就是一個 4路半H橋式驅動電路。 Pin 2 與 Pin 7 屬於一對,Pin 10 與 Pin 15 也屬於一對。 Pin 1 與 Pin 9 雖然做為 Enable 接腳,但是也可以輸入 PWM 訊號來控制馬達出力的力度。 Pin 8 是提供給馬達的電力,可以獨立供給,也可以和 Pin 16 的 Vcc 共用。 底下是利用 Arduino 做的簡易的控制電路: 藍色 LED 是用來觀察 PWM 的強度用的,可以不接。 我這邊另外用 9V 提供給 L293D 來驅動馬達,速度會比較快。 程式碼方塊如下: 程式源碼如下: int counter; int counter2; void setup() {   pinMode(3, OUTPUT);   pinMode(5, OUTPUT);   pinMode(6, OUTPUT);   pinMode(13, OUTPUT); } void loop() {   analogWrite(3, 255);   digitalWrite(5, HIGH);   digitalWrite(6, LOW);   for (counter = 0; counter < 5; ++counter) {     digitalWrite(13, HIGH);     delay(500); // Wait for 500 millisecond(s)     digitalWrite(13, LOW);     delay(500); // Wait for 500 millisecond(s)   }   analogWrite(3, 64);   digitalWrite(5, LOW);   digitalWrite(6, HIGH);   for (counter2 = 0; counter2 < 5; ++counter2) {     digitalWrite(13, HIGH);     delay(500); // Wait for 500 mill