CSPM 開(kāi)放式軟體(CSPM OSS)
? 具備超媒體用戶(hù)介面的納米操縱工具(點(diǎn)擊進(jìn)入)
??? CSPM開(kāi)放式軟體系統(tǒng)(CSPM Open Source Software)的目的是讓二次開(kāi)發(fā)用戶(hù)可以從複雜的儀器功能編程中解脫出來(lái),將精力集中在具體的功能擴(kuò)展上,大幅度降低開(kāi)發(fā)成本、縮短開(kāi)發(fā)週期。
??? CSPM掃描探針顯微鏡系統(tǒng)(SPM)的架構(gòu)如下圖:
??? SPM 開(kāi)放式軟體系統(tǒng)(CSPM OSS)被劃分為兩個(gè)部分:SPM Console和SPM Kernel。
??? SPM Console軟體負(fù)責(zé)向用戶(hù)提供一個(gè)介面,讓用戶(hù)輸入各種指令,並將各種儀器的狀態(tài)和資訊顯示給用戶(hù)。例如,SPM Console軟體上有一個(gè)鐳射電源按鈕,用戶(hù)可以用滑鼠按下該按鈕,指示儀器打開(kāi)鐳射電源;SPM Console軟體也可以將顯微鏡所採(cǎi)集到的圖像顯示在電腦螢?zāi)簧稀?br />
??? SPM Kernel軟體在用戶(hù)介面軟體(SPM Console)和掃描探針顯微鏡(SPM)系統(tǒng)硬體之間架起一道橋樑,SPM Console軟體將用戶(hù)的指令發(fā)送給SPM Kernel軟體,SPM Kernel軟體對(duì)收到的軟體進(jìn)行解釋?zhuān)瑏K對(duì)SPM硬體進(jìn)行相應(yīng)操作,實(shí)現(xiàn)用戶(hù)指令。同時(shí),SPM Kernel對(duì)SPM硬體系統(tǒng)的狀態(tài)進(jìn)行採(cǎi)集和調(diào)度,以保證硬體正常運(yùn)作,並向SPM Console報(bào)告各種資訊,讓用戶(hù)可以即時(shí)瞭解儀器狀態(tài)並觀察實(shí)驗(yàn)結(jié)果。
??? 系統(tǒng)軟體劃分為兩個(gè)層次,可以將複雜的、高要求的、難以理解的硬體流程封裝在SPM Kernel軟體中,用戶(hù)不需要全面瞭解系統(tǒng)硬體的技術(shù)資訊,就可以快速高效地編寫(xiě)滿足自己需要的軟體。
??? 一般情況下,SPM Console軟體的源代碼是向用戶(hù)開(kāi)放的,用戶(hù)可以對(duì)源代碼進(jìn)行修改和補(bǔ)充,實(shí)現(xiàn)新的功能。
??? SPM Console採(cǎi)用Microsoft Visual C#語(yǔ)言編寫(xiě)。選擇C#的原因是:C#是一門(mén)設(shè)計(jì)簡(jiǎn)單、面向物件、類(lèi)型安全、靈活相容(.Net框架的支援)的新型面向元件編程語(yǔ)言。其語(yǔ)法風(fēng)格源自C/C++家族,並融合了Visual Basic的高效和C/C++的靈活性、強(qiáng)大底層控制能力,是Microsoft.Net平臺(tái)的主流語(yǔ)言。
??? SPM Console OSS 1.0軟體是一個(gè)開(kāi)放源代碼的軟體,為用戶(hù)提供了一個(gè)全面完整的範(fàn)例。用戶(hù)可以對(duì)該軟體進(jìn)行修改和擴(kuò)充,以滿足自己的特殊要求。
??? 下面舉一個(gè)例子,以說(shuō)明用戶(hù)在CSPM OSS上進(jìn)行二次開(kāi)發(fā)的簡(jiǎn)易性。
舉例:開(kāi)發(fā)納米加工程式
??? 本例的目的是對(duì)SPM Console進(jìn)行修改,以滿足在樣品上進(jìn)行納米加工,刻畫(huà)出一個(gè)“Z”型的字母來(lái)。
??? 其工作原理是,將探針和樣品進(jìn)行逼近,然後,關(guān)閉探針樣品回饋機(jī)制,將探針壓向樣品,然後讓探針在樣品上按字母Z的路徑移動(dòng),達(dá)到在樣品上加工的目的。
??? 探針在樣品上的刻畫(huà)路徑如下圖所示:
??? 整個(gè)過(guò)程為:先將探針移動(dòng)到點(diǎn)1,沿著線段1-2向點(diǎn)2移動(dòng),到達(dá)點(diǎn)2後,沿著線段2-3向點(diǎn)3移動(dòng),到達(dá)點(diǎn)3後,沿線段3-4移動(dòng)到點(diǎn)4。在移動(dòng)過(guò)程中,探針實(shí)際上是在沿線的若干節(jié)點(diǎn)上(如圖中黑點(diǎn)所示)停頓一段時(shí)間。
??? 欲實(shí)現(xiàn)上述功能,使用CSPM OSS平臺(tái),您只需寫(xiě)20行代碼就可以實(shí)現(xiàn)了:
float x0 = -(float)numericScope.Value/2;? // 筆劃一起點(diǎn)的X座標(biāo)
float y0 = -(float)numericScope.Value/2; // 筆劃一起點(diǎn)的Y座標(biāo)
float x1 = +(float)numericScope.Value/2; // 筆劃三終點(diǎn)的X座標(biāo)
float y1 = +(float)numericScope.Value/2; // 筆劃二終點(diǎn)的Y座標(biāo)
// 計(jì)算每走一步需要延遲多少毫秒
int delayMS = (int)numericPeriod.Value/(STEP*3);??
float volt??? = (float)numericVolt.Value; // 驅(qū)動(dòng)探針往樣品上壓的電壓
// 將探針移動(dòng)到'Z'的起點(diǎn)
Machine.SetX0Y0(x0, y0);
// 關(guān)閉回饋
Machine.SetDO(DO_FEEDBACK, 0);
// 輸出電壓,將探針往樣品上壓(DA通道10的作用是在掃描器陶瓷管Z方向上疊加一個(gè)電壓)
Machine.SetDAVolt(10, volt);
// 移動(dòng)探針,刻畫(huà)第一個(gè)筆劃,從點(diǎn)1移動(dòng)到點(diǎn)2
for (int i=0; i<STEP; i++)
{
? Machine.SetX0Y0(x0+(x1-x0)*i/STEP, y0); // 走一步
? Thread.Sleep(delayMS); // 延遲
}
// 移動(dòng)探針,刻畫(huà)第二個(gè)筆劃,從點(diǎn)2移動(dòng)到點(diǎn)3
for (int i=0; i<STEP; i++)
{
? Machine.SetX0Y0(x1-(x1-x0)*i/STEP, y0+(y1-y0)*i/STEP);
? Thread.Sleep(delayMS);
}
// 移動(dòng)探針,刻畫(huà)第三個(gè)筆劃,從點(diǎn)3移動(dòng)到點(diǎn)4
for (int i=0; i<STEP; i++) {
? Machine.SetX0Y0(x0+(x1-x0)*i/STEP, y1);
? Thread.Sleep(delayMS);
}
// 將DA通道的輸出電壓恢復(fù)為0
Machine.SetDAVolt(10, 0);
// 恢復(fù)回饋
Machine.SetDO(DO_FEEDBACK, 1);
具備超媒體用戶(hù)介面的納米操縱工具
??? 中國(guó)科學(xué)院瀋陽(yáng)自動(dòng)化研究所的研究人員利用CSPM OSS和本原的掃描探針顯微鏡(SPM)系統(tǒng),結(jié)合Phantom操縱桿,構(gòu)建了一個(gè)納米操縱平臺(tái)。利用該平臺(tái),用戶(hù)可以通過(guò)操縱桿,控制探針對(duì)樣品進(jìn)行納米操縱,在操縱過(guò)程中,用戶(hù)還可以通過(guò)操縱桿感知樣品對(duì)探針產(chǎn)生的作用力大小和方向,在操縱過(guò)程中增加了觸覺(jué)感知能力。在CSPM OSS之上,開(kāi)發(fā)人員不需要瞭解SPM的硬體控制細(xì)節(jié),甚至不需要瞭解軟體是如何對(duì)SPM進(jìn)行控制的,便可以快速地在本原SPM的基礎(chǔ)上增加硬體和軟體,構(gòu)建出具備超媒體用戶(hù)介面的納米操縱平臺(tái)。