About虛擬&實際

@分享虛擬與實際的世界中所遊玩的心得紀錄,從物理化學到生命科學、從人文藝術到現代科技、從虛擬介面到實際生命體。享受的只是一種學習與體驗。若文章內容有誤,歡迎提出以供修改,對文章的回饋,歡迎寄信給我!一起分享,互相學習成長的環境。
@個人簡介在『關於韃靼』
@我是韃靼~我的信箱:chenyuquan at gmail dot com

2013年12月21日 星期六

Arduino Wi-Fi Shield Test with LabVIEW

前言:
因為嘗試接案,接觸到使用LabVIEW擷取Wi-Fi感測器的數據(TCP/ IP, DataSocket...etc),不過還是有些問題存在。因為Wi-Fi Module已經還人,為了測試是否正確,於是還是買了遲疑已久的Arduino Wi-Fi Shield。

昨天熱騰騰的剛入手,這兩天先簡易測試了Example中的Connect Network AP, WiFi web Client, WiFi web Server三種測試。使用的Arduino版本是1.0.2 (NOTE: 使用1.0.5在測試Web會有問題,必須將wifi韌體更新)



後來有簡易測試了LabVIEW的部分,不過如預期的沒有抓取到正確的資料,合理的推測必須先在Arduino的部分定義利用Wi-Fi shield送出資料的一些設定(例如IP, Port, Data byte等等)。看起來還是得先搞懂TCP/ IP, UDP, DataSocket等等,還有以上提到的如何在Arduino中寫出符合的程式。

2013年11月24日 星期日

Shared Variable_1

前言:
最近接觸了Shared Variable,主要的原因是想要測試無線感測器,抓取Wi-Fi訊號,研究了相關的TCP/IP,DataSocket,還有Shared Variable。不過還沒有甚麼進度就是了。

測試:
主要是根據資料,在Project建立了shared variable後,在properties內設定為Network-Published,一開始按照書中設定了Eanble Aliasing,不過不只網路連不到,連本機都讀不到!??

根據variable type有幾種設定(I/O alias, Network-Published & Single Process),所以我先設定single Process--->OK,然後設定Network-Published,但是就不設定Enable Aliasing(這個設定好像是要綁定特定對象。),然後即使在本機,但是用不同的VI去設定也可以成功的讀取(有點delay就是了,可能是延遲時間設定得比較久。

如下兩圖片:
Main.vi

Different VI
在Main VI裡面,可以寫入shared variable然後從同步迴圈去讀取數值。然後Different VI設定shared variable的參數,可以從資料庫去讀取所需的資料。

後記:
不過用MBP & 另一台小筆電設定都無法取得資料,另一個測試使用DataSocket就可以透過IP去擷取資料了。

自從換了工作,主力都在LabVIEW上面,反而沒時間紀錄學習LabVIEW的東西,只能說學的東西太多了,來不及整理,希望每周都有時間抽空紀錄一點。

參考:
NI的文章中有講更深入的設定,先備份下來,也許將來有機會用到:
我該如何利用 Shared Variable 在多個 LabVIEW 可執行檔間溝通?
另一篇主要解釋Shared Variable的原理:
Using the LabVIEW Shared Variable

2013年11月13日 星期三

NI-DAY-2013

前言:
暌違多年,在有機會下,又將參加NI DAY了,當然又是不是自己出錢。想到當初在實驗室接觸了LabVIEW然後又參加很多研討會/活動等等,目前的工作又主要是以LabVIEW為主(第一個專案),將來會如何真的是說不準!!

今年開始以來,因為一些重大的因素,使得我想要在LabVIEW上面更加的深入了解,也因此多閱讀了不少書,雖然都還在研讀中。而有機會參加NI DAY,更是再去與認識的舊朋友相逢還有結交新的朋友。

一個好友-Ancle 雖然平常不常聯繫,但是卻也很有緣份的有幾面之緣,這次特定跟他取得聯繫方式來跟他在NI DAY會面。這次在NI-DAY 2013除了跟同事一同去外,也遇到之前在中研院合作的朋友。也經由Ancle認識了另外兩位新朋友,我們下午三點後,就在大廳聊天聊地,真是開心。



一早的開幕與Keynote,講到延後結束,都餓了。

LabVIEW 小講堂,分享了不少實用技巧

LabVIEW爭霸戰,明年我就會坐在上面~

下午找到機會請人幫忙合照,不過一來在室內,二來朋友手有點晃了,可惜。

NI 辦活動又回到國際會議中心了,距離上一次參加已經是2007年的事情了,真是久遠。
我還厚顏的跟NI的內勤小妹邀合照,還好她沒拒絕跟很大方地願意合照,希望這麼認真又可愛的員工能在NI做的開開心心且順順利利。
後記:
參加活動除了能聽一些新東西外,我想最重要的其實還是與新舊朋友相聚分享,這也都是專業以外的重大人生經驗。期待明年的NI-DAY囉~~~

2013年11月3日 星期日

Hacking Work夠駭 才能成為職場A咖-CH1~7

前言:
入手了一本與“駭客”有關的書籍-Hacking Work夠駭 才能成為職場A咖。雖然內容比較針對於軟體相關性的工作,但是作者本身也提到“駭”可以存在任何形態的工作中。也提到駭工作是個人選擇,而技術的定位是強而有力的啓動器。

一些不錯的名言:

CH01: 如果你覺得自己描小的無法發揮功效,那你一定沒跟蚊子同床過。---貝蒂,瑞斯 Betty Reese (美國領航員)

CH02: 勇於天真。---巴克敏思特,富勒 R. Buckminster Fuller (建築師暨未來主義者)


CH03: 見到人人見到的東西而想到沒人想到的想法,這也是一種發現。---赫拉克里特斯 Heraclitus (希臘哲學家)

CH04: 擺脫所有無用、不美或不愉快的東西---來自無名氏的一封病毒郵件

CH05: 這背後藏者天大的快樂---葉胡達,阿密查 Yehuda Amichai (以色列最偉大的現代詩人)

CH06: 願邪惡的力量搞不清楚到你家的路。---喬治卡琳 George Carlin (傻瓜中的傻瓜)

CH07: 毆打將持續至士氣提升為止---現行工作設計法

記錄:

駭客:好奇心、想像力、驅動力(P21)

LISTA: Leaders Imaging Solutions Through Action, 經實作想像解決方案的領導人(P34)。


兩種駭法:硬駭,主要是改變事務;軟駭,主要是改變工作關係。"硬駭"是你對無生命系統所作的任何改變;"軟駭"是任何能改變你和他人或團體之間關係或工作協定之事---因為你的干預,促使他們答應改變運作模式。其中軟駭分成兩類:交易談判以及改變關係(P44)。


Y世代:1980~1990出生(P49)。


軟駭與社交工程(Social Engineering)脫離不了關係(P50)。


人人必做的五種駭行:軟駭你的新聘人員過程、硬駭一件會傷你元氣的小事、軟硬兼施駭每一項新計劃的開端、硬駭一件摧毀效率的大事、硬透過駭讓世界更好(P56)。


技術不是重點--建立適合你的可攜式工具包才是(P59)。


合乎道德之職場駭行十誡(P68)


要如何成為一名偉大的善意駭客?練習,練習,再練習!(P74)


三樣在公司真的壞掉的東西:公司搞不清楚狀況、看似協助,實為控制、擔任員工是高風險的職業(P82)。


目前任何僱主與任何員工簽訂的勞務契約,99.9%對公司有利(P93)。


針對員工是高風險的職業兩個參考:2009/09--《時代》封面故事〈失業國〉(Unemployed Nation)以及同年數個月後《商業周刊》用了〈可拋棄式員工〉(The Disposable Worker),在此同時,《華爾街日報》(The Wall Street Journal)宣佈:成長達到六年來的新高,雇主仍對雇用持審慎態度。

小結:
一成不變與亢長迂腐的流程不僅在東方世界,也在歐美世界一樣的存在。每當有小破壞性創新或者大改革,才能有新的面貌,只是實際的執行上其實也真的會遇到五倍甚至十倍以上的反彈,畢竟這就是人性。

這次開始將一本書的分幾篇文章記錄,便於檢索與整理,才不會使得一篇裡面落落長,造成自己閱讀的困擾了。

2013年9月19日 星期四

很認真的批判紀錄文_LabVIEW

對程式語言來說,LabVIEW一直不被正式的承認,因為用來控制儀器等等實在是很直覺,很簡易。對"一些"使用文字稿(Script)的行家來說,這簡直是個玩具(Toy)。

不過真正對這個產生輕視的我更是在本土的業界中發現。產業尋找會LabVIEW都是"專科"或以上,不過目前國內有開課的少之又少,通常都是大專院校。因為就跟MATLAB一樣,LabVIEW/ Mathematics等等幾乎都是在學術圈被帶回國(不過國外的業界對LabVIEW/ MATLAB可是非常在乎!!)才萌芽的。

所以本土產業對不管是哪種專業,其實大多都只在乎能否賺錢,能否用"超低薪"聘請"人才"~難怪會有產學分離的現象!!學習LabVIEW也有N年的感情,也不完全是為了這些現象而寫下評論。畢竟環境沒有改變,許許多多的怪異現象就不會減少,還會增加更多

後記:

1.國內其實是有越來越多專科已經有將其納入課程,不過在偉大的Cost Down以及沒有實質用途的政府,再加上貪得無厭/短視近利的老闆,我想再好的專業也會變糞土吧!2.實際上國外的TIOBE index中有排入LabVIEW。

2013年9月12日 星期四

LabVIEW-Day-2013

前言:
今年在偶然下參加了NI舉辦的LabVIEW Day,主要也是新工作的主管希望我去參加。雖然我很想跟她說NI辦的活動有一半都是在宣傳他們自家商品,不過是因為想要順便在工作前先認識新同事(新同事也有參加,是個非常NICE又好聊天的人,想必以後工作會很融洽)。


會場人挺多的,其實業界也越來越多人關注了

回家等公車時拍的飛機雲,天氣非常好

進階研討會的部分可以學到的有用技巧比較多,基礎研討會真的就只是"推銷"成分居多。不失NI的風格(可能是因為在台灣著重在行銷與市場吧!!)

後記:
聽聞新同事說到時候可以一起報名NI Day而且公司可以補助,真是棒!!~
不知道今年的NI Day是否有甚麼有趣的主題或者有甚麼好康囉!!

2013年8月25日 星期日

超閱讀力,不誇張!一分鐘讀懂?本書

前言:
在採購其他書籍的時候,恰好看到有賣這本書籍,看了一些介紹跟網路上其他幾個人的評論,覺得這是一本很吸引人的書籍,因為雖然是“超閱讀...”事實上是在訓練“導讀力”,並不是速讀的一種。的確我也覺得有點疑惑,是否真的能夠達成作者所提到的目標。因為自己也很喜歡閱讀書籍,之前也曾經看過一本“不用讀完一本書”也是講了另一種方式。但都是針對如何“有效率”的瞭解書籍。(另一本沒有做記錄)在這裡只列出一些名言佳句跟觀念。

記錄:
Time Magic = 縮短時間的魔法(導讀)
Color Magic = 右腦的魔法(記憶)

反覆進行短時間的記憶,就可以停留到長期記憶

「就像所羅門曾說的,競爭時從容不迫地就是勝者」[Benjamin Disraeli]

用手寫的讀書,正是把讀書時間拉長的萬惡根源
    利用「視覺」的讀書方式是最有效率有快速的

時間分成早、午、晚:
    早:腦子活性化,適合讀書
    午:腦的活動力降低
    晚:腦運轉遲鈍,適合復習

「不是要擊倒,重點是要打中。這樣子就會獲勝」[穆罕默德。阿里]

記憶過後的第一天是一望最快速的時候,之後的遺忘量就會逐漸變慢。

讓每天勤勉不斷地讀書變成一件理所單然的事情

「真正有價值的資訊來自直覺」[阿爾伯特。愛因斯坦]

導讀:靠直覺來行動

三階段:
(單純地進行翻頁動作,不要用眼睛追逐文字,別打算去理解內容
    Ten Minutes, Leading
        一頁三秒,一面(兩頁,內跨頁)六秒
    Five Minutes, Leading
        右頁一秒,左頁一秒,翻頁一秒
    One Minute, Leading
        一秒翻兩頁內跨頁,或0.5秒,用右手拿著書本,用左手來翻,市縣都凝視在左手整個手掌的周圍上,且幾乎是不動的。

覺得重要的地方在這頁上方“折起書角”

再強調,不可以想去看全部的頁面!若想去看全部的頁面的話,最後想一個字、一個字地去看裡面的文字。

「不要去思考,要去感覺」[李小龍]
「不要想理解,就去感覺吧」

依序三階段練習,
第一天
10min + 5min + 1min + 4min(休息) = 20min重複三本書,三本書60分鐘+休息30分鐘,90分鐘三本書為一組,總計需要四小時半。
第二天
90分鐘三本書一組(上午),接著做One Minute, Leading做20~50本書(下午)
持續進行三個月,就更能使"One Minute, Leading"完美無缺

「無論如何,不徹底地執行,是不行的!如果無法徹底執行,那就只是個普通人而已」[福澤諭吉『勸學』]

超出大腦理解能力以外的事物,即使時間縮短,無法理解就是無法理解。
只要使知識量增加,導讀的精確度也會上升

「努力、用功,這才叫做天才。比任何人還多3倍、4倍、5倍用功的人,這才叫天才」[野口英世]

左腦掌管語言、理論。容量小。
右腦掌管印象。容量大。(影像)

在已經有顏色的紙上書寫,而不是用有顏色的筆。
(淺色系)紅、綠、黃、藍 (按照重要性排列)

「短暫的人生會因為時間的浪費而變得更短暫」[Samuel Johnson]

「筆記才是救命恩人」[愛迪生]

把整理好的Color Magic Sheet放進A4大小的透明文件夾,並整理好。且透明文件夾也是四種不同的顏色同筆記部分。

紅色透明文件夾是最重要的,必須經常帶著走和反覆地記憶!
    綠色(一週複習一次)
    黃色(一月複習一次)
    藍色(一年複習一次)

書籍本身的分類:也是四種顏色,紅色為重要一百本書,綠色為想再重讀幾次的書,黃色是當作參考文獻,哪天可能重讀的書,藍色應該就不會再看第二次的書。(黃色跟藍色只複習Color Magic Sheet也OK)

人生只有現在立刻去做,又或者一輩子都不做,這兩種選擇。

「我經常相信,個人能做到的事情對所有的人來說都能做到的」[甘地]

「無論如何,先思考看看。試著找到辦法。然後就去做看看。如果失敗了,只要重來就好了。」[松下幸之助]

「活著並不是指呼吸這件事情。而是行動」[盧梭]

總結:
一本書用一分鐘讀完(Time Magic)
一分鐘復習六十本書(Color Magic)
    A4分成四種顏色(紅黃綠藍)且用藍筆
右手拿書,左手翻書,眼睛只凝視左手手掌
用四色透明文件夾複習,內裝Color Magic Sheet
書籍若要複習則按照紅黃綠藍分類

心得:
買來第二天已閱讀完,覺得以導讀來說,的確是本好書,畢竟人總是以"直覺"去判定事情,而且會的就是會;不會的多花時間也不會,但不會是可以"努力與思考"後瞭解,書中說的是指一般人考試或者閱讀書籍的方式不對,才會花很多時間也進不了腦袋。

之前買的書籍裡面,也是有很多書籍並未消化完,下個充裕的周末打算拿幾本書來測試。然後測試成功後,就將家裡未閱讀的書籍給消化完(這麼巧"消化完"跟上面並排!)。

2013年8月19日 星期一

BOOK_I and LabVIEW_我和LabVIEW_阮奇楨_CH_01/02/03

前言:
最近購入了一本蠻多人也推薦的書,這個文章主要記錄裡面我所不知道的新技巧、或者不熟悉的舊知識,以及一些作者的建議。然後未免同個紀錄太長,最後還是決定分幾篇記錄好了。

觀念:
有個重要的觀念是目前看了幾本書都有提到的就是:
“不要再重複別人已經完成的工作”
意思是說,盡量去搜尋已經可以使用的程式來使用,自己重新編寫雖然可以有很多學習收獲,但對專案或者整體而言是花了太多時間的。

第一章:

連續運轉(Run continuously)按鈕,程式內的所有Code會反覆運行,沒辦法將程式中只需要運行一次的Code和需要重複運行的Code區分開來。

在Projects中,若需要加入先前的VI到項目中,在"My compute"右鍵"Add"添加"File"。


VIEW/ Navigation Window:導航畫面,對於程式佈局不得以還是很大的時候很方便。


LabVIEW程式中的大多數SubVI的存在並不是為了Code重用,而是為了提高Code的可讀性&可維護性。一個理想的VI層次結構是金字塔型。(VIEW/ Hierarchy)


Code相對比較獨立(與程式其他的部分連線較少),可以建立成SubVI


可以將常用的program放到Favorite內(在Block diagram),若有設定,則將favorite拉到Function選單的最上方(第二也可),可以右鍵彈出選單時就看得到。


工具面板(Tools)有兩個快捷鍵:Tab & Space根據在Block diagram/ Front Panel/ Running mode時候有不同的切換。(P34)


第二章:

Numeric元件在Properties/ Display Format中可以在(左下)advanced editing mode直接設定為日期模式。(不一定要用字串)

公式節點(Formula Node):類似C語言,在較為複雜的數學運算可以使用以達到較好的程式可讀性與可維護性。


腳本節點(MathScript):內嵌MATLAB的語法,可以計算更複雜的科學運算,“但是”執行效率遜色於公式節點。


使用帶單位的數值元件,可預防不一致結果,但其VI就不能再被其他不同單位的場合使用,所以也可以使用單位轉換(Convert Unit)&基本單位轉換(Case Unit Bases)來將純量與轉換成具單位的數值或者直接將某一單位直接轉換成另一單位。(P44)


Enum(中文翻譯成枚舉型,好有趣),& Ring的比較:Ring可以更改每個項目的數值,在Edit Items中選取"Sequential Values"就可以更改數值了。而Enum適合特定、有限的狀況下使用,可以增加可維護性。


Radio Buttons(單選按鈕),類似Enum,不過可以直接全部看到不需要下拉。要重新排序可以選擇右鍵選項中的Reorder controls in Cluster,所以可以知道Radio Buttons也是Cluster的一種。


Boolean:有六種機械模式,一直以來總是無法“熟記”在心。借這個機會用自己的話寫下來:(連接個LED,亮燈即數值為"True")。另外,第二列的三種類型,是不能夠使用於局部變量和“數值”屬性節點。

第一列(Row)
    Switch when Press:
        按了就亮燈,再按一下就熄燈
    Switch when Released:
        一直按著,當放開的時候亮燈,此時按鈕還是顯示按著。
    Switch Until Released:
        一直按著就會亮燈,一放開就熄滅,且放開的時候,按鈕本身也被釋放了。
第二列(Row)
    Launch when Press:
        按了就亮,但會自動釋放按鈕,燈也熄滅了,沒辦法一直壓着。
    Launch when Released:
        一直按著,放開的瞬間會亮燈,但按鈕也同時被釋放,所以燈馬上就熄滅了。
    Launch Until Released:
        按著的同時會亮燈,但一放開按鈕就會被釋放,同時燈也熄滅了。

數組數據(p47)提到了個我從來不知道的組合方式:使用Array中放著array(這跟我最近在學Python的List/ Tuple很像),用說明的有點饒舌,整理成圖如下:(雖然暫時還不知道有什麼適合的用途)

Cluster:bundle & bundle by name,筆者建議使用bundle by name等,因為可讀性較好,也可以避免前後cluster的元素順序不一致導致錯誤。

在字串符中(p53),特殊含義,比如“回車”。這個還真的不知道是什麼意思?在查了google後,才知道就是enter/ (return, "mac OS").實在是太有趣了...(大驚小怪)


路徑(path):提到了若有相關文件,SubVI等等,可以放在跟主VI相同的資料夾內,然後使用Current VI's Path讀取路徑後,就可以加上相對路徑(前提文件,SubVI的名稱等等,應該只要在path const內打上檔名,不同系統會自動加上前綴分隔符號),這樣就可以快速地在不同平台下一樣的讀取到檔案。(因為WIndow, MAC, Linux所使用的路徑分隔符號都不一樣。)


數值&字串之間的轉換:提到可以使用功能更齊全的兩種-Formal into String & Scan from String。可以一次處理多個數據,不過要先瞭解其格式語法(我自己本身並不常用, 作者也提到類似C語言中的sprintf() & sscanf()。另外可以使用string to byte array將string轉換成ASCII碼。


p57有提到可以使用Refnum to path(簡中稱
Refnum為“句柄”),在使用開啓文件等等之類的VI時候,會有refnum out的輸出,搭配Refnum to path就可以將檔案路徑給顯示出來。(ex:Macintosh HD:Users:apple:Documents:FB好句子.docx)

p58提到了Variant是我一直沒什麼機會用到(好像也不知道用在哪),提到可以將cluster轉換成variant然後使用GetTypeInfo/ GetClusterInfo ,範例
如下圖(屬於不開放的VI,作者不建議使用再給客戶的程式碼內,避免LabVIEW升級後沒有支援)

接著提到了Dictionary(容器)就挺有趣的了,有點類似資料庫的感覺。
使用到的元件是在Cluster, Class & Variant/ Variant內的:Get Variant Attribute, Set Variant Aattribute and Delete Variant Attribute三個元件。

Flatten to String一文說明不同數據是以不同格式保存在“內存”中(就是我們所講的記憶體Ram)若需要將其儲存到硬碟中或者傳輸到其它硬體設備,則必須把原本的數據規劃成一連串的數據再進行儲存&傳遞。flatten到字串後的資料不易閱讀,若要在進行中可以即時觀察,則可以使用flatten to XML (File I/O_XML_LabVIEW Schema),不過效率相對前述的會較低。

p61提到使用變體(Variant)的屬性建立表格,藉由輸入字串來得到相對應的數據。書中提到遍體的屬性是以“哈希表格式”儲存的,這個就沒聽過了。

p64提到了之前一直很好奇,但之前沒有深入瞭解的Type Cast,原理是:將數據強制轉換成另一種類型,但是內存的二進制數據並不作改變。若用的是數據類型轉換(Conversion),雖然表面看起來差不多,但是事實上已經對於內存的二進制編碼已經不一樣了~(與flatten to string的比較可以參考p65)

p65提到boolean & string在內存數據的方式都是與U8相同,所以可以相互轉換之。而string已經有內建的轉換函數,所以並不一定需要使用強制轉換的方式了。(String to Byte Array & Byte Array to String)

p67分析了不知道的Label & Caption的分別,寫LV到前一陣子,還沒很認真地去分析為什麼他們有這兩種差異,一直以為只是表示而已!?(不求甚解應該再深入反省自己),Label 是元件的唯一標識,Caption 則是“介面”上顯示出來的名稱,亦即是可以在運行中改變。這樣的解釋大略地分隔了兩種區別,不過還是要去實際使用跟分析才能更瞭解了。

p68提到了默認值(預設值),有提到為了方便測試使用,“SubVI”可以設定最常使用的數值作為預設值,還可以把control的預設值寫在Label or Caption上以便查看。

p70提到String可以右鍵選取Update value while typing。這個是方便在程式執行時,keyin數據時,即時更新輸出資料,不用等到都輸入完才將資料傳輸。對於需要即時顯示與輸出的狀況是很方便。

p72提到property node的"Value"相當於local variable但是執行程式時,效率大大低於local variable。

2.4.6節提到的調用節點(Invoke Node)與屬性節點相似,區別在於調用節點用於“選擇方法”已完成“控制元件”的“某些行為”。

2.5.3 & 2.5.4有兩個實例是在運行中改變控制元標題(Caption, 不是Lable)跟禁止Enum中的某些項目,這兩個在人機界面上有很好的應用,例如根據需求的輸入單位顯示跟選取某個特定條件時,某些項目不能使用。(Enum輸入的都是預設值,可是某些可能在某些特定情形下是不能使用的,為了使用者的誤用,可以禁止使用之)

第三章:
p88, 討論到將case structure輸入number, Enum, String,可以產生無窮的設定,範例中有提到可以對case輸入多於一個的條件,例如同時滿足2, 4, 6的話,就會執行同個case。或者是一個區段的數值,使用'x..y'兩點就可以表示從x到y的連續數直接包含(大於的話就用z..,表示z以後皆是,小於的話就反過來用..k,表示k以下皆是)。(以前好像有讀過,但沒實際的使用,也忘記了還有這樣的功能!!用'..'的方式很像現在開始在學的Python與之前Arduino有用到的一些寫法)

p91提到了程序框圖禁用結構(Diagram Disable Structure),這個對我是個很有趣且沒用過的,曾經是在其他範例程式內有看過。可以將程式的某個部分給“暫停使用”且也不會被編譯成執行代碼(不影響整體程式效能),然後要使用的話在“啟用”就可以了,適合尋找並定位錯誤代碼。

p92提到了條件禁用結構(Condition Disable Structure),這個結構類似Diagram Disable Structure,但是目前的感想是使用在跨平台的時候,可以先設定不同平台能執行哪些程式碼,在VI匯入時候會自動檢查作業系統,另外,也可以設定不同的部分給不同使用層級的人(例如發佈給不同用戶的軟體,基本功能相同,但是個別的地方會使用不同的代碼,可能就類似微軟的專業版,家庭版等等之類的含義)。

p93同樣在condition disable structure項目內,提到可以自定條件,使用的方法如下(內文的含意看了很久才知道涵義):
=>Project (Project Explorer)--->My Computer--->Properties--->Condition Disable Structure可以設定自定義的符號。

p97 Shift Register, 如fig3.38, 即使N=0,輸出也是33,因為初始值進到channel(左邊)後,就已經將數值“內存”到loop了,所以即使沒有運轉for loop,右邊的channel輸出也是初始值。

p99 Feedback Node, 在循環結構內,feedback node是針對於包含它的每一層循環結構的,相當於在每層都建立了一對的移位暫存器,然後再將其串連起來。所以若當作subVI使用的時候,要注意可能輸出值可能會考量主要VI的循環結構次數,因為會影響到feedback node的計算次數。

P101使用Feedback在SubVI必須設定"可重入運行方式"才能避免多個相同SubVI使用同一個移位暫存器。

p103使用For loop可以使用Conditional Terminal來設定一個中斷條件,類似C語言中的"break"。

p104[While loop]使用索引隧道(index channel),for loop比while loop的效能還要好,因為for loop在進行前就可以先替輸出的array大小分配一個暫存空間。

p105[Event Structure]窗格(panes)的呼叫:Modern/ Containers/ Horizontal/ Vertical Splitter Bar,而事件結構主要有六種事件:Application, This VI, Dynamic, Panes, Splitters, Controls等等。

p108 LabVIE事件可分為:通知型/ 過濾型兩種事件。

p109 每一個"VI"只需要一個事件結構就可以處理所有的事情囉。

p112-120動態事件、定時結構可重複回來複習;此外,定時方法使用的函數最小分辨的等待或延時時間皆為2 ms。而以精確度來說,最高到最低精確排序:
定時結構(Timed Structures) > Wait until next ms Multiple > Wait = Time delay

2013年8月16日 星期五

Raspberry Pi with SSH

前言:
在今年年初已經拿到RPi,經過簡單的測試後,就默默的被Arduino & LabVIEW擠掉了。真是感到心虛,不過也由於沒有適合的螢幕(家裡只有D-sub & 沒什麼機會可以搶到的液晶電視),也是導致自己不用的藉口啦。在跟學校的朋友聊天聊得很不錯後,打鐵趁熱的也去光華買了HDMI轉DVI,就在Lab啟動了。

設定:
一開始的螢幕轉接卻沒有任何訊號,當下真的產生很大的問號,想到還有另外一台也有DVI介面,先測試若不行再上網查詢,還好熟悉的螢幕就很自然的出現了!!不知道是螢幕的問題還是轉接器的問題。(說到DVI也是有點複雜的學問,另外再整理資訊)

目前一直調整不暸最佳的解析度,不過還可以進行作業,就先來處理最想要用的事情了---SSH。

造訪了常常參考的網站,先列出了幾點可以去修改或者確認網卡是否正常:

修改出廠預設的主機名稱(raspberry): sudo nano /etc/hostname -改掉名稱
重新啟動: 
$ sudo shutdown -r now

檢查網路卡驅動程式是否存在: 
$ dmesg | grep net -"|", 'shift + \' -列出網卡相關的資料

設定RPi的網路位置: 
$ sudo nano /etc/network/interfaces -然後在文件中key-in以下資料:

auto eth0 ---數字的'0',一開始看錯以為是O。
iface eth0 inet static
address 192.168.X.X ---我是用虛擬IP,區域網路內就可以使用(校外不知道可以連否?)

netmask 255.255.255.0 

然後,
重新啟動網路: 
$ sudo /etc/init.d/networking restart 

啟動SSH server: 
$ sudo /etc/init.d/ssh start 

另外若要每次開機都能自動開啟SSH(言下之意,剛剛所做的會在每次重新開機後失效)則參考這樣的方式:(reference website)
To enable SSH automatically every time the Pi starts you need to :
Prepare an SD card with the Debian “Squeeze” imageInsert the SD card in your PCRename ” boot_enable_ssh.rc” as “boot.rcEject the SD card and insert into your Pi

成功後,就可以使用SSH軟體遠端聯繫RPi了,我使用的是"PuTTY",原本文中也有介紹"Cygwin",不過這個的設定頗繁瑣的。

後記:
使用Lab的PC經由PuTTY成功的連線到RPi了,沒想到一些設定就有很多新東西可以了解,
真是一點也不能大意。接下來要做什麼呢??要趕快來想想了!!~

另外,還需要設定防火牆與一些網路方面的設定,否則後門大開,我的RPi可能就變成好用的跳板供人使用了!!

參考:
用OpenSSH取代Talent的連線方式
連上Internet
Raspberry Pi基本設定、編譯核心、上網
Putty簡介
Cygwin安裝及SSH設定教學(上)

舊文章:
Raspberry Pi B的到來
Raspberry Pi 安裝系統與開機
[學習資料] Raspberry Pi
(轉帖) Arduino Uno vs BeagleBone vs Raspberry Pi

2013年7月30日 星期二

有點不夠力的Color Organ

周末的小玩意~
參考MAKE提供的周末Project,因為不需要到很複雜的工作,就去光華買所缺的零件。

電路設計:


利用輸入音源(音樂)的訊號分為高中低頻,使三組LED隨著音樂閃爍~就是音樂與燈光的搭配~

搭配的音樂是哪首我忘了~因為試了很多首歌~並不是每首都會有很好的LED閃爍比現~好像是謝金燕的嗶嗶嗶~哈哈~


後記:
原本買了高亮度的LED,但是不會亮。第二個問題是音源線全部插入音源座並不會啟動電路的功能,要"稍微"的拉出一些,不知道是不是插座內的位置有問題否!!??
要再計算一下電路能提供的電壓以及電流多少,然後再修改看是不是能讓高亮度的LED閃爍,要不然就可惜了啊!!~

參考:
Easy LED Color Organ

2013年7月23日 星期二

3D Printer的小紛爭

[3D列印] 猶記得今年開始3D列印開始飆紅,連相關的公司都獲利(雖然兩年前就開始關注的我覺得這只是炒作)。

然後因為紅了,紛爭就開始多了,首先是郭董接受訪問所說的:
(郭台銘:3D列印 只是噱頭) http://goo.gl/AG9ok3
可以看到網路的回文有好有壞,仔細看的話會發現,站在反方的通常都是設計師,原型製造者,工藝製造者...etc...之類的。

不過我個人覺得3D列印跟自動化本來就不是同一個(侷限)領域。後來出了這一邊國外的文章。
(What is the New Industrial Revolution?) http://goo.gl/7T8As
(中文版) http://goo.gl/cBJ0lz

小結: 郭董的言辭犀利也不是這篇文章才有的,只是他站在的角度是以"自動化、量產、工業化"的角度去看待3D printer,而反對的人是站在原型、雛型機的角度去為3D printer做定位。說真的,實在是沒吵的必要,不過網路回覆多無理性的鄉民,這也就不意外了。

Ref.
Make:Taiwan
Make
聯合理財網

2013年7月13日 星期六

Arduino- RH/ Temp sensor with LCD display

前言:
最近一直很想測室內的二氧化碳,自從上次使用Lab的二氧化碳儀器測過一次後就沒機會了。有在詢問二氧化碳感測器的價錢,沒想到還頗貴的,像一氧化碳或硫化物相關的還比較便宜!!我想這跟二氧化碳分子結構有關(所以才需要使用紅外光譜才能偵測)
偏離主題了,之前就有打算將RH/Temp sensor組裝在Arduino上面,趁這次颱風天沒機會出去溜搭,來拼裝一夏。

硬體:
RH/ Temp sensor (HMZ-435CHS1)
LiquidCrystal (16*2 matrix), 
potentiometer
電容(10 uf)
電阻(220 & 50k ohm)

程式:
這個部分結合了Arduino project 3 & 11的部分,修改一些參數以及顯示的模式。
然後再將之前在使用LabVIEW project所使用的RH/ Temp 電壓校正曲線即可。
溫度校正曲線:
  y = 1.709x2 + 11.428x - 14.54
  R2 = 0.9986
濕度校正曲線:
  y = 2.164x2 + 26.166x - 13.068
  R2 = 0.997

Code:
因為在LCD內要顯示兩個數據,又遇上了數字小數點的顯示問題花了一點時間解決。
目前小數點還沒有更加的解決方式,就暫時以"int"以整數顯示。而LCD顯示部分如下:

  lcd.setCursor(0, 0);
  lcd.print("RH % / Temp deg.");
  lcd.setCursor(0, 1);
  lcd.print(RH);
  lcd.setCursor(8, 1);

  lcd.print(Temp);

其中lcd.setCursor(m, n),m是每列(row)的位置,n是指哪一行(column)。

圖片:


後記:
參考Cookbook有提到字串問題,也許可以將數字定義成字串,然後限制字串的長度。而Arduino網頁以及手邊的書籍好像都沒提到顯示數字位數的資訊,可能我還沒找到!!
再來真正期待的是CO2感測器的加入!!而程式部分則希望加入可以存檔功能(log到電腦內或其他)。

20130714補充
實際的在主臥房測試如下:

修正一些Code計算上的Bug,實際測試,主臥房的溼度果然較工作室低。不過也是預料中,因為開了冷氣!

參考:
Arduino_Project03_Love-o-meter
Arduino_Project11_Crystal Ball
溫濕度感測器_RH & Temperature Sensor
Arduino Cookbook
Arduino Projects Book
Arduino.cc

2013年7月6日 星期六

Arduino_Project13_Touchy-feely Lamp

前言:
太久沒持續的更新Project了,這一陣子忙了太多雜事,讓自己差點失去方向,接著持續學習Arduino以及Python還有不能荒廢的LabVIEW是一定要跟上的。當然還有更重要的事情在默默的規劃和努力中。

這個專題是針對"電容"特性而改成的電容感測器(Capacitive sensor),使用現成的library來讀取累積在金屬薄片上的電量而觸發Led。

硬體:
LED, 電阻(220 & 1M), metal foil (我用鋁箔紙)

程式:
一開始要先呼叫現成的程式庫,然後設定觸發數值以及LED燈位置。然後讀取Sensor的數值,這邊使用了內建的程式庫指令:capSensor.capacitiveSensor(30)其中30是讀取sensor的數值數量,若設定太少,會出現太多變化的可能,若設定太高,則可能會導致讀取同一數值太多次。

CODE:
CapacitiveSensor capSensor = CapacitiveSensor(4, 2)
(4, 2)定義為:(傳送資料到金屬薄片,讀取資料),資料就是從pin4輸出的電壓。

圖影:
乍看下非常的簡陋~><~

後記:
設定了合適的觸發值後,可以更加精確的控制在哪種接觸下可以開啟LED燈,不過還是屬於0/1的設定,若能搭配類比輸出電壓,也許可以進一步的控制LED燈亮度的改變。

參考:
Arduino Projects Book

2013年7月3日 星期三

[分享] 十個讓工作室組織化與最佳化的小秘訣

十個讓工作室組織化與最佳化的小秘訣

我曾經在許多地方建置過工作室,它們的應用方向各有不同。為工作室進行規劃,這個流程是很個人同時又很基本的。整個規劃會因為個人的專業與特質的不同而產生變化,能夠變化的範圍相當地廣。並且,這經常也是一個「有機」的、持續變化的過程,可能會花上數個月甚至數年的時間才會完成所有的「微調」。
一路走來,我發現了一些方法,能夠協助提升工作時的效率與工作室的陳列、組織。以下先列出十個我希望能夠幫得上忙的小秘訣。若是你也有自己的小秘訣想要分享,請寫在下方的留言區。
秘訣一:善用壁掛板
如果你希望能夠利用垂直擺放的方式來規劃工作室,那麼壁掛板將會是你最好的朋友。它既不貴又有許多的附加零件可以購買,在規劃上提供了近乎無限的可能。

秘訣二:善用線軸整理架
如果你有很多的線軸,那麼它們有可能會彼此纏繞在一起導致很難分開。你可以用一個簡單的線軸整理架來解決這個問題。直接買一個或是自己做都行。我自己是用一些廢木柴與一根木樁,在不到一個小時之內就做出來了。

秘訣三:用曬衣繩整理短鱷夾
這個方法是在我的鱷魚夾不斷交纏在一起的情況下想出來的。只需要兩枚圖釘與一條曬衣繩就能夠解決這個問題。現在這些鱷魚夾變得既整齊又容易取用。

秘訣四:零件專用的迷你抽屜櫃
這種迷你抽屜櫃數十年來一直是電子工程師的好朋友,它們很適合用來儲存細小的電子零件。而且當你需要徹底翻找的時候,這種抽屜也很容易就能夠整個抽出來。

秘訣五:整理並清除廢棄物
我有好幾個專門用來裝廢棄物的行李箱,分成木頭類、金屬類、塑膠類、電子零件類等等。大約每年一次,徹底檢查這些行李箱的內容物,把你確定不會再用到的東西都丟掉,會是一個很不錯的清理方法。

秘訣六:廢物利用時務必去蕪存菁
做我們這一行的,有很多人都喜歡廢物利用,但是,一定要確定自己是以聰明的方式在「拾荒」。把你需要的部份拆下、取出,好好整理,剩餘不要的就直接丟棄。照片裡是我專門用來收集引擎、齒輪、皮帶、滑輪等等的盒子。

秘訣七:善用裝牛奶用的塑膠方籃
用來運送牛奶的塑膠方籃既堅固又尺寸劃一,並且很容易就可以在路邊撿到。我自己的都已經用了十五年了仍然「健在」,並且當我搬家時,這種籃子也很容易打包,只需要將它們以九十度垂直疊在一起就行了。

秘訣八:收工時才收拾工具
我是在建築工地工作時學到這點的,你永遠無法預測自己會需要一項工具多久。所以,除非已經要收工了,否則先別急著把工具收起來。並且,一次把所有的工具都拿出來,會比需要時再一件一件地拿出來更有效率。

秘訣九:用繩子串起膠帶卷
這是我在電影製片公司工作時學到的。將一條繩子綁在一個登山鉤上,再把膠帶捲一一串進這條繩子裡,然後把登山鉤掛在一面牆上。現在,這些膠帶卷變得很容易拿取,也不會在地上到處滾來滾去了。

秘訣十:讓工具隨時方便拿取
這是美國知名主持人亞當.薩維奇(Adam Savage)以前擔任模型師傅時所用的工具箱。在他工作時,會在身邊放置兩個像這樣能夠像剪刀一樣打開的工具箱,這樣就能夠在需要的時候快速取得某樣工具。設置一個像這樣的工具箱是一個不斷微調的過程,有需要的話你可以隨時調整裡面所裝的工具組合。

參考:

2013年6月22日 星期六

搜尋引擎

前言:
搜尋資料最怕的就是輸入錯誤的關鍵字或者輸入得到海量無關的資料,最近看到有人推薦以下的搜尋引擎,都很不錯。我也會陸續地將以前或者將來看到好用的會在持續更新。
Circuit Scout :沒有多此一舉之嫌,這個網站能讓你查找超過3萬2,000張電路圖表。
Datasheets.com:這個網頁有2.5億種電子零件產品資訊。
Google Scholar(Google學術搜尋):專門提供各種學術文件查詢,包括來自專業學會、各大學院校出版的期刊、書籍與論文等等。
美國國家標準與技術研究院( The National Institute Standards and Technology,NIST):這個網頁與廣泛的科學與工程網站連結,提供全球各種技術規格標準資訊的搜尋。
Patent Law Links :正打算發表你的偉大發明嗎?在你提出專利申請之前,可能需要搞清楚一些之前的類似專利;這個網站收集了許多搜尋引擎,是你對現有專利進行盡責調查的好用工具。
RefSeek:這是一個沒有廣告贊助商的搜尋引擎,提供超過10億條編目文件、網頁、書籍、期刊、報導等等學術內容。
Scirus:科學領域專門的搜尋工具,有超過5億條科學專有名詞編目,可查找期刊、文章、技術書籍、研究員網頁、專利等等資訊。
Sweet Search:這個搜尋引擎雖然名義上是給學生用的,但不僅能提供搜尋結果,也在每一條結果上加入了該網頁的重點摘要,因此能預先看看是否符合你的需要,不必浪費時間開網頁。
TechStreet:需要找標準嗎?這個網站提供了完整的全球各種標準規格內容,包括JEDEC、IEEE、IEC等機構所管轄的各種標準。

WWW Chemistry Guide:可查找各種化學元素特性與相關資訊,一個由科學家與工程師們共同策畫的好用工具。
編譯:Judith Cheng (EET電子工程專輯)
參考原文:10 useful science and engineering search engines,by Kristin Lewotsky

2013年6月20日 星期四

Join RS Product Catalogue Events

今天(6/20)下午參加了RS在台灣台北的產品型錄發表會,因為對這樣的公司感到非常有趣地說。其實也是對電子電機零件非常的吸引我!!

不過今天到會場發現人其實沒很多,我想是與廠商跟參與的人推銷不夠吧!!顯得有點稀疏!


前半場大概就是介紹RS公司自己的網站,行銷,以及推廣策略,然後搭配一間TE Connectivity介紹他們的產品。重點是有位漂亮的小姐(RS公司)上來介紹,發現是香港人,口音就很有趣,跟以前認識的港澳學妹Yumi一樣的口音,真是懷念!

手抖有點拍不清楚

中間是茶點時間,很不錯的福華飯店的點心,外商公司總是比較貼心給好吃的!!連盤子都是用陶瓷,但美中不足的是熱飲給的杯子卻是冷飲用的,有點搭配失敗!!


後半場就是Bourns & Fluke兩間廠商,其它令我覺得很有趣的是Bourns的主講人,清晰有力,描述有條理,而且更重要的是!!原來平常在用的可變電阻(藍色方塊)就是他們家的產品!現在他們也跨足很多產業,如行動通訊,車用等等(我想這兩塊也會是現在與未來的顯學了)


一開始的問答跟最後的抽獎,我都很幸運地得到小禮物:ㄧ個是4G的隨身硬碟,另外的是很Q的日曆(時間)plus簡易計算機,還可以儲存匯率換算~


不過令我最心動的是這個啊!!


大部頭的紙本型錄,拿起來就很有質感,很有價值啊!在這個電子e話的時代,說真的的確越來越少紙本了,尤其是原本就很巨大的型錄都採用電子化(當然在學校或業界單位或多還是有很多!)


參加這次的說明會,最早也是單純興趣,不過期待RS公司可以越做越好,另外的是我還是覺得之前拿到Key形狀的隨身硬碟比較讚!


參考:

RS Components Ltd (Taiwan)

2013年6月16日 星期日

一些電子電機相關的資訊集合

前言:
這裡記載一些觀念或者名詞解釋(通常是外文縮寫之類的),以備將來查詢。不過說真的,太多縮寫了!!

*SPI (Serial Peripheral Interface Bus) & IIC (Inter Integrated Circuit)
---SPI就像是RS232的東西,設定基本參數(如baud rate...etc),可以作同步傳輸使用(?),最高速度為119200bps(119.2kbps)。不需要其他的訊號來觸發傳送。
---而IIC (又可以稱I2C)速度可高達400kbps,使用兩條訊號控制線作為傳輸資料用。分別為:SCL(Serial Clock) : 作為資料傳輸時的參考時脈; SDA(Serial Data) : 以傳列傳輸(一次一位元)的方式傳送資料。
更多的資訊可以參考以下:
SPI (Serial Peripheral Interface Bus) & IIC (Inter Integrated Circuit)
[轉帖]SPI (Serial Peripheral Interface Bus) & IIC (Inter Integrated Circuit) (包含更多的比較資訊)



2013年6月3日 星期一

[學習紀錄] 介面設計與實習_使用LabVIEW NI-VISA

前言:
這裡記錄了研讀此書的一些新發現或者覺得應該記錄下來以供將來參考用。
(XX)是記錄其頁數(因為不是用傳統的累加式頁數)。

Chapter 1~2 基礎的LabVIEW觀念再複習。(42+24)

While loop & For loop
while loop是判斷條件為何來決定程式執行的流程架構,所以迴圈至少會執行一次;而for loop事一開始就要先設定執行的次數。

Chapter 3 擷取資料的處理與分析(34)

節點:
對程式方塊視窗而言,節點包含"函式"、"結構"及"subVI"。有三個執行上常用的工具:
1. 單步進入節點: 進入節點並暫停執行,在按一次則會完成此節點的動作,並且暫停在下一個節點開始的位置。
2. 單步完成節點: 執行完目前的節點後,在下一個開始前暫停執行 (包含兩次的單步進入)。
3. 單步跳出節點: 完成目前節點的動作後暫停執行。

Chapter 4 NI-VISA基本觀念(12)

VISA- Virtual Instrument Software Architecture是NI所開發的通用高階應用程式介面(API),不受平台、匯流排和環境的限制,可以在GPIB、串列埠、並列埠或USB裝置進行通訊。

4-3提到了USB (Universal Serial Bus)介面有兩種:USB INSTR 以及 USB RAW,前者是符合USB測試和測量群組(縮寫USBTMC),NI VISA都可以直接進行通訊。而USB RAW則是不包含USB INSTR的剩餘裝置稱呼,必須要先了解USB通訊協定(Ch 11-14)。例如使用VID/PID序號(USB裝置)來產生NI-VISA所需的.inf檔案,而此檔案可以藉由VISA Driver Development Wizard自動產生,當安裝好驅動程式時候,就可以在Measurement Automation Explorer(MAX)下找到該裝置了。(這邊簡易描述,詳細的可以再參考原文)


4-7有提到NI-VISA.Net API的功能,不過我沒聽過也完全沒用過(還是其實用過了並不曉得呢??)


此章節最後提到NI-VISA的幾種資源:INSTR、MEMACC、INTFC、BACKPLANE、SERVANT、SOCKET和RAQ等等。不過文中式提到大部分的應用程式和儀器的驅動只有使用到最簡單的INSTR資源而已,目前我能接到有撰寫的程式看起來似乎就是這樣。


Chapter 5 複合式介面開發版設計與應用(30)

這一章節突然的就開始介紹起硬體,對於依然是硬體局外人的我來說,有點不知所措,哈哈。都是先簡易的描述一些硬體的介面,如UART、I2C、SPI、SMbus、1-wire與USB等。

這章節我就比較屬於瀏覽式的閱讀了,而其中比較有興趣的是UART與I2C吧,因為前一陣子有想要買顆二氧化碳感測器(Carbon dioxide)來玩玩,不過市面上的這種單一sensor還真的挺少的,大多數都是一氧化碳感測器。而我看到一間有提供比較低價的CO2 sensor的輸出介面就是UART以及可以直接用RS485去讀取資料(經由integrated circuit, 應該就是I2C介面了)。不過還是遲遲下不了手,畢竟單一Sensor要價兩千塊,實在是可用性不廣啊!還在想如何藉由實驗室購入,這樣就是一舉數得了。


然後本章節的後半段提到了Keil C micro-Vision2軟體,用來開發複合式介面開發版的應用軟體,好像是使用C語言以及組合語言的整合。這邊讓我想起了服役的時候所購買的:8051單晶片控制板,實在是個傷心的過往,記得那塊板子是使用組合語言的樣子,現在還在我的工具盒裡面等待我去使用。


-----暫停分隔線(7/30),書籍到期,先還圖書館了,不過是好書可以考慮購入當工具書使用-----
-----準備重新開始分隔線(8/24),已經購入,可以是本隨時參考的好工具書-----

Chapter 6 並列埠的基本概念(24)


Chapter 7 並列埠之輸出/輸入設計與應用(22)


Chapter 8 串列周邊埠的基本概念(30)

同步&非同步
同步先送出MSB位元,非同步先送出LSB位元,RS-232/485屬於非同步傳輸,非同步傳輸適合"長傳輸距離"。

微處理器與周邊的通訊可分為兩種:(P8-3~4)

1. 串列式通訊(Serial)-傳送資料單位為位元(bit)。
2. 並列式通訊(Parallel)-傳送資料單位為位元組(byte)或字元組(word)。
而不論哪一種均包含三種方式:
1. 單向傳輸(simplex)
2. 半雙工傳輸(Half duplex)
3. 全雙工(Full duplex)

Chapter 9 RS-232串列介面之設計與應用(36)


Chapter 10 RS-485串列介面設計與應用(26)


Chapter 11 USB基本特性與規格(50)


參考:

介面設計與實習_使用LabVIEW NI-VISA_許永和_全華