2020-02-22

[筆記]利用Arduino Nano重新燒錄Arduino Micro的Bootloader

在開發Arduino接收藍芽資料程式時,為了測試,結果在Serial Port輸出太多東西,導致USB無回應,作業系統無法辨識,程式也燒錄不進去,差點以為這塊Arduino Micro就要毀了...

還好經過搜尋,發現可以重新燒錄Bootloader,讓Arduino恢復出場狀態。但搜尋到的都是UNO燒Micro,或是Nano燒Pro Micro...UNO燒Micro需要用到一顆電容,我沒有(而且我連UNO都沒有XD);而Nano燒Pro Micro,因為這個Pro Micro是小板,跟Micro用一樣的處理晶片,所以或許有可能喔!!

2020-02-21

[筆記]Arduino與HC-06藍芽遠端控制WS2812B - [2] 控制Relay

上一篇我們講到如何控制藍芽模組來接收資料,這一篇來講講如何利用Arduino發送信號來控制開關。

講到利用訊號控制開關,最簡單的就是Relay(繼電器)了,他是一個利用小電流去控制大電流的自動開關。

我們會想,怎麼不用Arduino的5V輸出提供給LED燈條就好了呢?

原因是Arduino能提供的電流實在太小了,每個輸出針腳最大只有20mA而已。

2020-02-20

[筆記]Arduino與HC-06藍芽遠端控制WS2812B - [1] Arduino與HC-06

最近有個需求,有兩位美女需要能夠遠端控制RGB彩色燈條,讓他們閃爍及調整顏色。由於一般市面上RGB幻彩燈條都需要由控制器來控制,但常見的控制器一次都只能控制一條,而我們需要的效果要由兩條燈條來完成:兩條不同顏色、其中一條要有呼吸效果、兩條需要同時開和關,這樣就必須有兩個控制器、兩台手機來連接,而且控制器上的效果又不符合我想要的,剛好我喜歡在油管看看DIY的影片,現在蠻紅的Arduino是個很棒的東西,可以自訂各個接腳的功用,也可以連接各種外接設備,實在是太符合我的要求啦!!覺得自己硬幹一台好像也不是問題,於是這個專案就誕生了...


2018-01-31

[筆記] 解決Windows 10 1709分享資料夾,Linux無法連線的問題

公司內的事務機有掃描檔案到電腦分享資料夾的功能,但最近某幾台電腦一直無法收到事務機傳來的掃描文件檔,非常奇怪!看了一下設定,跟別台功能正常的電腦設定也都一樣呀,為什麼這幾台就是不行呢?而且用windows直接連他們的分享資料夾都可以呀,為甚麼事務機不行???

為了這個問題,花了我超多時間,甚至在公司重灌電腦後為了設定這個,加班研究到快天亮....還是不行!好吧,大概是這台電腦跟事務機犯沖,繞個圈用別的方法好了,但是心裡還是有個疙瘩在...

2018-01-05

[筆記]Server 2008 R2移除Hyper-V之後網路卡無法連線的問題

公司一台內部Server 2008 R2之前為了特殊需求,裝了Hyper-V,而最近已經沒這需求了,所以便把Hyper-V給移掉。但移除完成之後,竟然無法上網了?IP、遮罩、閘道設定都對,但就無法對外連線,可是改成DHCP又可以....這真是靈異事件了!

2017-12-05

[筆記]如何在Visual Studio 2017內使用Rdlc報表


雖然Rdlc報表是很久前的產物了,但是要產生某些制式格式的檔案的時候,還是很好用!

最近公司網站要導入電子發票,所以每張發票都要有張發票圖檔副本留存,這個時候就想到這個好用的東西,但Visual Studio 2017裡面,預設把報表相關的東西都拿掉了,所以我們必須手動加回去...

2017-08-24

達成成就 -「上傳一個自己開發的中文套件到NuGet」

幾年前,為了管理自己的照片,想說自己寫個小軟體依照相片拍攝日期分資料夾,但在讀取exif的時候遇到許多問題,或者是讀出來的樣子不是自己想要的,所以乾脆自己寫一個處理exif的元件。

2017-07-30

[筆記]使用Ubuntu 16.04架設L2TP Over IPSec VPN

Ubuntu在16.04版本之後的套件庫,拿掉了openswan,所以要改用strongswan來設定IPSec,跟之前openswan有些許的不同,參考了這篇之後架設成功,所以趕緊筆記一下~

注意,底下所有指令都用root身分執行,所以就不再打sudo了!

1.系統部分

首先安裝必要套件:
apt-get install strongswan xl2tpd ppp lsof

2017-05-21

雲豹200換離合器片DIY


200豹最近一直有換檔時動力銜接不上的問題,有轉速但速度沒上去,估計是離合器片已經差不多了,雖然還能騎不過總是有那麼一點疙瘩在,於是備好料之後選定個黃道吉日就是今天來動工換一下啦~

2017-05-06

[筆記] QNAP NAS增加手動排程

公司規模比較小,所以使用NAS當作File Server,供大家存取共用檔案,也是挺方便的。

而有時總是會有些需求,例如在某些時刻禁止某些使用者連線網路磁碟機,在web介面上沒這功能,所以就要自己寫啦~

2015-12-05

「初始化字串的格式和開始於索引 0 的規格不相符的」問題

「初始化字串的格式和開始於索引 0 的規格不相符」

「Format of the initialization string does not conform to specification starting at index 0」


相信使用Entity Framework Code-First的開發者一定有人遇過,在本機開發環境做了Add-Migration XXX和Update-Database之後看起來都沒問題,發佈設定檔裡面也勾了啟用Code-First移轉,然後發佈到遠端主機上,開心的期盼.Net會自動更新資料庫,結果總是出現這個錯誤...

2015-11-14

[筆記]將Git快顯功能表內的功能移除

最近遇到一個問題,移除了Git安裝新版,又移除再安裝,反覆過程中,原本的快顯功能表壞掉了...



可看圖,原本裝好git for windows之後,資料夾空白處按右鍵會有「Git Bash Here」、「Git GUI Here」這兩個功能,但因為過程中壞掉,導致移除的時候沒順便清掉這兩個,又因為再次安裝的位置不同(這說來話長....總之跟git版本和Visual Studio的git第三方擴充有關),按下去會變成如下:


重新安裝git,選擇不加入快顯功能表也沒用,這兩個東西的指向位置還是錯誤,在試了超久之後,終於發現他的位置了!只要在

HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell

底下,把兩個資料夾刪掉就可以啦!(圖中我因為已經刪掉一個做測試了,所以只剩一個,照理說會有兩個)


2015-10-02

[筆記]讓新版EF6的Skip、Take語法支援SQL Server 2008

最近在寫一個簡單MVC專案,有用到分頁,在本機測試時,分頁一切正常,但是發佈到遠端Server時,竟然出現底下錯誤:「接近 OFFSET 之處的語法不正確。FETCH 陳述式中的選項 NEXT 使用方式無效


覺得奇怪,到底花生省魔術?

2015-07-07

[筆記]如何以自訂XML的方式對其他XML做驗證

最近的專案內有個需求,對方會傳來一組XML,而我們必須針對不同的狀況來對這組XML做驗證,判斷Tag是否都符合所需;而不同的狀況所需要的Tag是不相同的,所以必須在資料庫內紀錄每個狀況所需要的XML Tag。

其實重點就是,我們如何用特定的XML(以A來簡稱),去驗證其他XML(以B來簡稱),看看B是否符合A的規則?

2015-01-14

.Net委派(delegate)的簡易解說與用法


.net程式寫久了,常會看到委派(delegate),但這個名稱實在有點玄,MSDN的解說也讓人百思不解,中文字都看得懂,但兜在一起就變成天書了...網路上搜尋到的解說也都太複雜,範例也用不切實際的例子來當解說,讓人更不了解。直到最近自己寫的一個專案,不得不用到委派,所以自己詳細的研究了一下,總算是了解了一些端倪,就筆記一下,希望能對委派苦手有些幫助。(因為是我自己的了解,所以有不完善或有錯誤請包涵)

委派最常見的用處,就是將我們自己的function當成參數,傳到另一個function來跑。

2014-11-24

ASP.NET MVC - 如何讓Form參數內的XML字串綁定到Model

最近在學習MVC,目前有個需求,需要使用者將Form Post到某個Action內,裡面的參數還會有xml文字,整個參數會像底下一樣:
A=123&B=abc&C=<Root><A>123</A><B>abc</B><C>kkk</C><D>iii</D></Root>

其中A與B是普通字串,而C是XML字串

在Visual Studio 2013裡有個好用的功能,可以將XML或JSON字串轉成Class,只要使用選擇性貼上即可。底下就是寫好的一個使用者參數的Model:
public class SendModel
{
    [Required(AllowEmptyStrings = false, ErrorMessage = "{0}不可為空")]
    [StringLength(3, MinimumLength = 3, ErrorMessage = "{0}長度必須為{2}")]
    public string A { get; set; }
 
    [Required(AllowEmptyStrings = false, ErrorMessage = "{0}不可為空")]
    [StringLength(3, MinimumLength = 3, ErrorMessage = "{0}長度必須為{2}")]
    public string B { get; set; }
 
 
    [Required(AllowEmptyStrings = false, ErrorMessage="xml不可為空,請檢查格式是否正確")]
    public SendXmlModel C { get; set; }
 
    //這個類別就是將XML貼上之後所產生的,格式相同就可序列化成字串或反序列化回該類別的物件
    [Serializable]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    [System.Xml.Serialization.XmlRootAttribute("Root", Namespace = "", IsNullable = false)]
    public partial class SendXmlModel {
        public string A { get; set; }
        public string B { get; set; }
        public string C { get; set; }
        public string D { get; set; }
    }
}


2014-10-06

雲豹200更換前叉油DIY


200豹騎了也四萬多公里了,前叉變得很軟,尤其現在每天需要雙載,稍微一個煞車就點頭,台灣的拉力路面也是對避震非常的有挑戰性!(抱怨一下,每天需要走的汐止明峰街,那路面真他媽的爛...)所以興起了換一下前叉油的念頭。

2014-07-15

偵測檔案使用的編碼是Utf-8或Big5-新版

前一篇文章討論到如何偵測檔案的編碼方式,但由於還是有很小的機會會誤判,心裡總是有疙瘩在,不確定廠商到底會丟怎樣的資料來(廠商的代名詞就是腦X),而且訂單XML內中文字的數量很少,若只有一筆,很可能只有三個中文字而已,於是從utf-8是如何編碼開始研究起。

沒想到規則意外的簡單,因為我不須知道太詳細的細節,只需知道幾個重點:

  1. 只要是0開頭的byte就表示是ascii編碼,也就是0xxxxxxx後面的七碼x相容於傳統ascii編碼
  2. 非ascii編碼,一律以1開頭再接0,並且最少兩個1
  3. 1的數量指出這個字是由幾個byte所組成,如1110xxxxx表示這個字要3個byte
  4. 其後每個子byte都為10開頭
  5. 最多每個字4個byte

偵測檔案使用的編碼是Utf-8或Big5

使用程式處理文字檔,最麻煩的就是要選擇開啟檔案時所採用的編碼方式。在台灣常見的就是utf-8或是big5兩種編碼,只要選錯了,那麼檔案裡面的中文字99.999%以上會變成亂碼或是莫名其妙的中文字。這也是非英語系國家的痛啊!

2014-06-23

如何讓Ubuntu Server在安裝時使用SoftRaid

一般來說,如果要架設Server,最好使用硬體來做Raid,較省資源和穩定。但有時候預算或其他問題,沒辦法使用到硬體的Raid卡來做,那麼使用軟體提供的SoftRaid也很不錯。缺點是較吃CPU資源和效能影響及發生問題時恢復資料的難度較高。但現在電腦的CPU都很強大了,所以在有限的資源下也可考慮看看。

現在網路上比較容易查到的,都是已經裝好Server作業系統,然後教你怎樣設定和加入Raid,但我是全新安裝(或重灌),在做Raid就卡關了是要怎麼把作業系統裝進去啊?

沒關係,現在一步步來。