發表文章

Arduino 上手第一步

圖片
今天又接到一個很奇怪的案子,客戶希望開發一個用 Arduino 平台 + XBee 無線接收溫度感應器傳回的資料。 還好我還有很久以前買的一片 Arduino 的板子,趕快找出來上手開發。 想用Arduino 開發的人,第一個一定要知道這個網站  www.arduino.cc ,在這網站的首頁上你就會看到這塊版子的樣子了, 買來的 Arduino 板子應該都會附一條 USB 線, 有這條線就可以從 PC 供電給 Arduino,也可以將寫好的程式 Load 到板子上。 接下來要把開發工具從  www.arduino.cc  下載下來: Arduino 的 Download 頁 目前網站上提供最新的版本是  Arduino-0022.zip ,如果想要更詳細的說明也可以上  Getting Started w/ Arduino on Windows  。 接下來的 把Arduino-0022 解壓縮,我是直接解壓縮到我的硬碟 D: 槽下,資料夾Arduino-0022 的內容如下: Arduino-0022 解壓縮後的內容 執行 Arduino.exe 會先看到: Arduino.exe 起始畫面 接著會進入開發畫面: Arduino.exe 開發畫面 到此成功了一半,Arduino 的開發板是有很多種類的,所以要先在開發工具上設定自己手上所擁有板子的型號,工作至此,悲慘的事情發生了,老手的我怎麼也無法打開 Menu 上的 Tools,心想一定是忘了安裝 Driver,立刻去安裝在 Arduino-0022 下的 FTDI USB Driver,結果一樣 Tools 打不開,花了 2-3個小時在網路上查詢原因,最後我還是決定放棄,我目前安裝的環境是 Window XP,而且是一台骨董級的PC了,立刻更換作業環境到 一台筆記型電腦上有安裝 Window7, Arduino-0022 上的 Tools 終於出現了: Arduino 中 Tools 選項 終於把開發環境都設定好了,可以正式去撰寫程式了。 2011-08-11 為了不能安裝 Arduino-0022 在 Window XP 上讓我每晚都睡不好,最後在 Arduin...

輕鬆更換 舊崁燈成 LED 崁燈

圖片
家中玄關的崁燈有 20 多年的歷史了,由於是早期的裝潢孔位很大,一直都找不到適合的燈座來換,趁著最近接案比較少,趕快上網找一下現在流行的省電LED崁燈,好不容易找到有孔位 18.5 公分的崁燈,心血來潮,先買一個來換一下。 原本的崁燈歷經歲月及主人的怠惰,已成如下這個樣子: 原本的崁燈是有玻璃燈罩的,但應該是有一次換燈泡時失手把燈罩砸碎了,在網上找到了這個賣家  http://goods.ruten.com.tw/item/show?21101078853332 , LED崁燈來時除附電壓器外也幫我接好了快速接頭,所以換起來很方便,現在崁燈更換後如照片: 崁燈旁的小圓圈是因為每次忘了關燈都會被唸,乾脆改成自動感應,自動感應式去水電行,老闆介紹的 PIIR-615,自動感應器也很好裝只是要多挖一個孔讓感應頭外露,手編目前沒有照度計,等有照度計時再來公布數據。

在 Visual C# 2010 用 DATASET 讀取 XML 檔案

圖片
  今天又有新的需求進來,客戶希望能在 XML 檔中 存取一些公司的基本定義資料及設定資料庫的路徑,這樣子程式在一開啟的時候可以先詢問客戶要處理哪一家公司的資料,應該是想用同一個系統處理多家公司的資料,而每一家公司的資料是放在單獨的資料庫裡。   XML 的檔案格式如下: <? xml version="1.0" encoding="big5"?> <公司集合> <公司>   <名稱>輕鬆工作家股份有限公司</名稱>   <統一編號>00000000</統一編號>   <資料庫>c:\database\00000000.mdf</資料庫> </公司> </公司集合>   但一開始給使用者的檔安希望是一個由程式產生的XML 檔如下: <? xml version="1.0" encoding="big5"?> </公司集合>   程式片段如下:  XmlDocument xmlDoc = new XmlDocument();                          XmlDeclaration xmlDeclaration = xmlDoc.CreateXmlDeclaration("1.0", "big5", null);                          XmlElement rootNode = xmlDoc.CreateElement("公司集合");                          xml...

在 Visual Studio 2010 C# 使用 Sqlite

圖片
  現在的每一個系統,幾乎都需要一個資料庫,使用 sqlite 的原因是因為 Android 的手持上是使用 sqlite, 所以先在 internet 上 Google 一下 "ADO NET 4.0 Sqlite",  立刻得知要先去 Download SQLite-1.0.66.0setup.exe, 你可以直接從此 下載 。   網頁的畫面大概如下   接著執行 SQLite-1.0.66.0-setup.exe, 畫面如下   接著設定存放位置 接著再按 2 次 "Next>" 就會開始安裝了   接著選擇要支援開發工具及版本   最後系統顯式安裝完成畫面,按 "Close" 完成安裝   接著用 Visual C# 2010 Express 開一個新專案, 我是取用 SQLiteTest, 我先測試Bindingsource, 在 DataSource 中選擇 Add Project Data Source  接著畫面出現選擇 Data Source Type: 選擇 Database 並按 "Next >",繼續選擇 Data Model, 選擇 DataSet 並按 "Next >",繼續選擇 Choose Your Data Connection: 按下 New Connection , 看到: 按下 " Change" 就會看到 "Change Data Source": 在 Data source 的選項中可以看到SQLite Database File,選擇 SQLite Database File 並按下 "OK" : 接著按下 "OK", 可怕的事發生了: 趕快再 "Google 一下",找到一篇文章 For VS C# 2010 you need to add following lines to C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\VCSExpress.exe....

Window 7 - 列印發票軟體 / Visual C# 2010 express 序列埠 (RS232) - 2

    因為一直等不到 Serial Port 的印表機 ,於是想先用我的 PDA 模擬成 RS232 終端機先行測試,首先先把 PDA 的 Com Port 設成 9600,N,8,1,也把程式中的COM Port 設成一樣,為了能快速設定 SerialPort,在 using 後加一行: using System.IO.Ports; 這樣 Visual C# 2010 的編輯器會幫你帶出很多預先設定好的質,設定 SerialPort 的程式如下:            serialPort1.PortName = "COM6"; serialPort1.BaudRate = 9600; serialPort1.Parity = Parity.None; serialPort1.DataBits = 8; serialPort1.StopBits = StopBits.One; 設定好 SerialPort 後, 再加一個按鈕輸出 "Hello World" 到 PDA 上,在 button.click 中加入 serialPort1.WriteLine("Hello world"); 果然在 PDA 上收到了 "Hello world" 。     處理 SerialPort 比較頭大的部分,都在於讀資料的部分,因為在執行前面作業的時候,背後可能已經有資料傳輸了,系統要一直準備接收資料,還好 Visual C# 2010 處理了大部分,不過先試一個最直接但會產生錯誤的方法,在 Form 上加一個 TextBox 物件準備接收 SerialPort傳來的資料,然後在 SerialPort 的 Datareceived 中加上 一行 textBox1.Text = serialPort1.ReadExisting; Visual C# 很厲害馬上告訴你: Error :Cannot convert method group 'ReadExisting' to non-delegate type 'string'. Did you intend to invoke the method? ...

Window 7 - 列印發票軟體 / Visual C# 2010 express 序列埠 (RS232) - 1

圖片
   列印發票的機器有很多都是接 Rs232 (序列埠) 的,所以要能在 Window 7 下執行,另一個重要的工作就是要能解決 Serial Port Communication, 先 Google 一下 "serial port visual c#" ,果然網路上有不少介紹 Visual C# and Serial Port 的文章 ,其中有一篇淺顯易懂的在  http://csharp.simpleserial.com/     Simple Serial Communication with Microsoft Visual C# Express。 接著用Visual C# 2010 打開原有的專案,開啟 ToolBox ,很幸運在 Visual C# 2010 Express 版中 Microsoft 已經內含一個 SerialPort的物件。 有框處就是SerialPort的物件    拖拉 SerialPort 到 正在編輯的 Form 上, SerialPort1 就自動產生了。 下方就是產生的 SerialPort1     其實單純寫 Serial Port 的程式,應該不是很複雜,複雜的工作都是要處理列外狀況,先寫一個按鈕單純的去開 COM1,事實上目前我的 筆記型電腦上是沒有 COM1的,在 buttonclick 處加上   private void button2_Click(object sender, EventArgs e)         {             serialPort1.PortName = "COM1";             serialPort1.Open();         } 接著用 Debug 去執行,按下 開啟 Comm Port的按鍵, 果然 IOException 出現了: IOEx...

Window 7 - 列印發票軟體 / Visual C# 2010 express 初試

圖片
    已經很久沒有寫收銀機軟體了,最近因為有朋友作拍賣需要一個簡易發票列印軟體,就包下這個工程,一方面解決朋友的問題,一方面也增加自己的實力。     首先先確定作業平台要在 Window 7 下,上網找了一下開發工具, Microsoft 的 Visual  C#2010 express 看起來還不錯,現在又是免費, 下載下來先小試一下。     外觀的感覺還滿平易近人,不過重點是 希望開發出來的程式是可以 給別人拿去用,先作一個簡易的 Window Form Application,把 Form 的名稱改成 Hello, 再加一個 "結束" 按鈕。 Hello Form + 結束按鈕     接著在 "結束" 按鈕的程式中加一行 Close(); 趕快先用 Debug 試一下,畫面顯示如下:          到此一切都不錯,接下來要找出如何製作成執行檔及轉給別人可以執行的程式,先改一下程式的 Property 如下: AssemblyName 改成 Window 7 收銀機     在 Visual C#的主選單上,一看到 Build 就給按下去,運氣不錯沒有產生任何 Error, 再使用 Publish, 希望 Visual C# 2010 沒有跟以前的版本改太多,接著一連串的設定畫面: 設定要存放的位置     接著設要產生的型態: 用CD-ROM or DVD - ROM 先設定成不會檢查 Update 終於看到 Ready to Publish! Finish 後 Visual C# 自動帶出設定的存放位置     在設定存放 Publish 的檔案夾中,看到了 setup.exe、Window7收銀機.Application 及 Application Files 資料夾,先不管那麼多,執行 setup.exe , 系統自動帶出執行的畫面,並在 Window 7的開始menu 建立了一個 Widow7收銀機的...