讓我們構(gòu)建一個負擔(dān)得起的開源動態(tài)光散射裝置,用于納米粒子尺寸測量!
表征微米和納米粒子的大小在許多應(yīng)用中很重要,例如蛋白質(zhì)聚集和復(fù)雜流體研究。對于大于約一微米的顆粒,光學(xué)顯微鏡可以與圖像分析軟件結(jié)合使用。然而,對于亞微米顆粒,必須采用更先進和更昂貴的技術(shù),例如電子顯微鏡或光散射。特別是動態(tài)光散射(DLS) 廣泛用于稀釋顆粒懸浮液。在 DLS 中,當粒子在流體中經(jīng)歷布朗運動時,從激光束散射的光隨時間演變的方式反向計算粒子大小。典型的商業(yè) DLS 設(shè)備價格昂貴,因為使用了高質(zhì)量的激光器和檢測器,可以在廣泛的顆粒尺寸和濃度范圍內(nèi)進行測量。最近的一些設(shè)備甚至可以確定非球形顆粒的形狀。
與昂貴的商業(yè)設(shè)備相比,該項目旨在通過低成本組件和開源設(shè)計探索 DLS 原則和邊界。更廣泛地說,我們希望這種方法也有助于未來涉及光散射或高頻數(shù)據(jù)記錄的項目。
介紹
動態(tài)光散射的工作原理如下(見下圖):激光束照射到樣品上并被粒子散射到各個方向(假設(shè)粒子尺寸小于激光波長)。散射光從光束以特定角度(此處為 90°)收集。來自不同粒子的光子會干擾檢測器以產(chǎn)生特定的強度。由于溶液中的粒子經(jīng)歷布朗運動,因此收集的強度隨時間變化,然后大小可以從強度時間序列中解卷積。
從透明溶液中以大角度收集的光線非常暗淡,因此現(xiàn)代 DLS 設(shè)備使用昂貴的組件,例如高強度激光器和單光子探測器,以提高其信噪比并在幾分鐘內(nèi)實現(xiàn)準確測量。這對于傾向于散射較少光的最小粒子(幾納米)至關(guān)重要。此外,小顆粒在溶液中移動得更快,需要高頻信號采樣(高達 100 kHz)。該項目的目的是探索具有可訪問組件的 DLS 技術(shù)的技術(shù)邊界,代價是更長的測量時間、有限的精度和減小的粒度范圍。
測量的內(nèi)容
首先將研究溶液中表征良好的高分子量蛋白質(zhì)(光譜蛋白)和纖維(纖維素)。然后將研究其他類型的膠體系統(tǒng),例如牛奶和牛奶替代品。
硬件設(shè)計目標
安全- 機箱完全封閉系統(tǒng)。如果外殼被意外打開,激光將關(guān)閉。
可用性- 易于測量樣品。
成本- 經(jīng)濟實惠的組件和 3D 打印外殼。
便攜性 -該設(shè)備將圍繞通過 USB 端口連接到 PC 的 Arduino 板構(gòu)建,發(fā)送強度時間序列。該軟件將用 Python 編寫。
項目實施
外殼和組裝
下圖顯示了設(shè)備的部件。您可能需要根據(jù)您的硬件調(diào)整某些部件。
頂板和底板是由不透明的片材激光切割而成。我們在比色杯室內(nèi)使用白色 PMMA 并噴涂黑色亞光漆。直接從深色啞光材料上切割應(yīng)該是更好的選擇。其他部分是用黑色 PLA 3D 打印的。散熱器用雙面膠帶固定。一個散熱器用作光束停止器,處于傾斜位置以將未吸收的光束引導(dǎo)出比色皿腔室。另一個散熱器放置在激光模塊旁邊,這里的效率相對較低。
激光與安全
注意:直接觀察激光二極管發(fā)射可能會導(dǎo)致眼睛損傷。必須格外小心,以防止直接或通過反射觀察光束。戴上適合波長的防護眼鏡。如果同一個房間里有其他人,他們也應(yīng)該穿戴防護用品。
項目使用 Thorlabs 的 650nm 4.5mW 激光模塊 CPS650F ,盡管可能有更便宜的替代品。但我使用它的主要原因是它的一個優(yōu)點,帶有一個集成的電流驅(qū)動器和一個聚焦光學(xué)器件。我們只需要提供 5V 電壓,由于最大電流為 60mA,我們可以使用 Arduino 的 Vcc(或 5V)端口。
在正常模式下,該設(shè)備應(yīng)在完整的激光器外殼下運行(如 CD 播放器)。為了校準和聚焦激光,我們使用了 Thorlabs 的 LG4 眼鏡和一張白紙。激光器與松動的激光器支架的螺釘對齊。后期底座上的孔足夠大,可以提供一些靈活性。光束應(yīng)聚焦在比色皿的中心。
在下圖中,光束在輕微渾濁的水中可見。
光探測器
這部分可能是該項目中最具挑戰(zhàn)性的部分。
選項 1 - 光敏電阻
Biomaker 挑戰(zhàn)包配有 Open-Smart 的分線板光傳感器。我們對其進行了測試,盡管它的響應(yīng)速度驚人(高達 20 kHz),但它的靈敏度卻低了兩個。
選項 2 - Grove 數(shù)字光傳感器
另一個與 Arduino 兼容的光傳感器。它帶有一個集成的 ADC,但我們發(fā)現(xiàn)采樣率在庫代碼中是有限的。目前尚不清楚為什么,我們決定選擇下一個選項:
選項 3 - 帶有定制電路的光電二極管
光電二極管在接收光時會產(chǎn)生小電流。以下跨阻抗電路用于將該電流轉(zhuǎn)換為 Arduino 可讀的(大部分)放大電壓信號:
在光伏模式下(左),二極管沒有施加偏置電壓。偏置用于減小二極管的電容,從而增加帶寬(右)。增益由反饋電阻控制Rf。較大的 Rf 意味著較大的增益,但非常大的電阻器往往具有不可忽略的固有電容。電容器Cf用于穩(wěn)定運算放大器,但會降低帶寬。
組成:
光電二極管:BPW24R;
運算放大器:TLC082IP
在光伏模式下,Rf = 1 至 10 MOhm,Cf = 無。我們無法使光電二極管在偏置模式下工作。
為了測試探測器,我們在其前面放置了一個 LED(此階段無需使用激光),并帶有一個擴散器以避免光電二極管飽和。函數(shù)發(fā)生器以指定頻率的方波信號驅(qū)動 LED,檢測器的輸出電壓由 Arduino 采樣。
我們采用 15 微秒的時間步長(67 kHz 采樣)。理論上,我們可以采樣 33 kHz 的信號,但是對于 5 kHz 的信號,我們每個周期會獲得更多的點。第一個發(fā)現(xiàn)是 5 MOhm Rf 電阻的電容太大,我們可以看到:
使用 1 MOhm Rf 電阻,我們得到一個較弱但尖銳的方波:
所以我們選擇 Rf = 1 MOhm,并且由于我們的運算放大器有兩個通道,我們使用第二個通道進一步放大。第二個通道前面有一個高通濾波器,以消除與第一個通道的偏移。更好的系統(tǒng)將使用具有零偏移功能的運算放大器,對數(shù)電位器用于調(diào)整第二級的增益。然后使用低通濾波器來抑制 ADC 無法處理的高頻。
Rf1 = 1 MOhm, CHP = 220 nF, RHP = 47 kOms, Rf2 = 0-50 kOhm, R0 = 10 Ohm, RLP = 100 Ohm, CLP=47nF,
如果我們在 LED 前面放置一個更強的擴散器,我們不會從第一個通道得到任何東西,但我們會從第二個通道得到一個有點失真的信號:
能夠調(diào)整增益也很重要,因為各種解決方案樣本會以不同的幅度散射光。
缺少的最后一部分是探測器的光學(xué)器件。目前它從一個相當寬的角度(12°)收集光,但目前尚不清楚它是否對系統(tǒng)有顯著影響。
從檢測器采樣數(shù)據(jù)
我們將嘗試僅使用 Arduino 功能對大約 67 kHz 的光電二極管信號進行采樣。默認情況下,Arduino Uno 可以在 10kHz 左右進行采樣,而無需考慮串行通信引起的開銷。所以需要一些工作來加快速度。幸運的是,網(wǎng)上有很多例子。Willem Maes 的這份詳盡文檔可以提供幫助:magelhaes.hzs.be/willem/Arduino/speeding.pdf 。我們可以在三個層面采取行動:
首先,ADC(模數(shù)轉(zhuǎn)換器)時鐘默認設(shè)置為比 ATmega 低得多的速度。我們可以在代碼中更改時鐘速度。
其次,ADC 可以在自由運行模式下使用,在這種模式下,ADC 會不斷地轉(zhuǎn)換輸入,從而節(jié)省函數(shù)調(diào)用開銷。
第三,在調(diào)用串行通信發(fā)送器之前,將值存儲在緩沖區(qū)中(此處為 16 位的 800 個值)。緩沖區(qū)的大小受芯片上可用內(nèi)存的限制。這里 800 個值可以在 67kHz 采樣 12ms。
目前第一點和第三點已經(jīng)落實。下圖顯示了由函數(shù)發(fā)生器產(chǎn)生的 20 kHz 方波,并由 Arduino 通過引腳 A0 進行采樣,并analogRead以 8.5 微秒 (117 kHz) 的時間步長運行。
const unsigned int numReadings = 800;
unsigned int analogVals[numReadings];
long t, t0;
然后我們改變 ADC 的時鐘速度。我們還設(shè)置了串口:
#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif
void setup() {
Serial.begin(115200);
// set prescale to 16
sbi(ADCSRA, ADPS2) ; // cbi means clear bit
cbi(ADCSRA, ADPS1) ; // sbi means set bit
cbi(ADCSRA, ADPS0) ;
}
主循環(huán)從收集 800 個點開始,然后將表格發(fā)送analogVals到計算機,以時間序列的總持續(xù)時間 ( t) 結(jié)束。
void loop() {
t0 = micros();
for (int i=0; i < numReadings ; i++)
{
analogVals[i] = analogRead(A0);
}
t = micros()-t0; // calculate elapsed time
// Send to computer
for (int i=0; i < numReadings ; i++)
{
Serial.print(analogVals[i]);
Serial.print(',');
}
Serial.println(t);
delay(10);
}
分析數(shù)據(jù)
我們使用安裝了一些庫(serial、numpy、matplotlib 和 scipy)的 Python。要使用該腳本,請使用文本編輯器打開它并檢查變量的定義(特別是 Arduino 地址和與您的實驗條件相關(guān)的所有內(nèi)容)。
address='/dev/ttyUSB0' # Arduino address
baud=115200 # baud for serial communication
lambd = 650e-9 # [m] Laser wavelength
n_s = 1.33 # Solvent refractive index at wavelength
k = 1.380649e-23 # [j/k] Boltzmann constant
T = 293 # [K] Temperature
eta_s = 0.001 # [Pa.s] Solvent viscosity measurement at T
theta = np.pi/2 # Scattering angle
然后在終端中啟動,后跟要從設(shè)備獲取的時間序列數(shù)(默認為一個):
python2 OpenDLS.py 1
讓我們看看我們的第一個信號。使用增益后,我們得到一條嘈雜的曲線,但低頻變化很大:
在這個階段,尚不清楚峰值是否是由于灰塵顆粒反射光束造成的。此外,自相關(guān)函數(shù)有一個有趣的尾巴:這是因為時間序列不夠長,無法對長弛豫時間進行重要統(tǒng)計。
為了改善這一點,我們平均進行了 1000 多次測量;
python2 OpenDLS.py 1000
現(xiàn)在尾巴是固定的,雖然它仍然很吵。我們準備好分析數(shù)據(jù)了!
對于單分散球體,自相關(guān)函數(shù)應(yīng)該是一個遞減指數(shù),因此我們擬合 a,b和c:
g(tau) = a + b*exp(-c*tau)
c理論上是 2* q ** 2* D 。q是散射矢量:
q = 4*pi* n_s *sin( theta /2)/ lambda ,n_s是溶劑的折射率,theta是散射角,lambda是激光的波長。
D是來自斯托克斯-愛因斯坦關(guān)系的粒子的擴散系數(shù):
D = k*T /(6*pi* Rh * eta_s ),其中k是玻爾茲曼常數(shù),T是溫度,Rh是粒子的流體動力學(xué)半徑,eta_s是溶劑的粘度。
以 200nm 聚苯乙烯分散體為例
我們有一個標準的 188 (+/-4) nm 聚苯乙烯珠,2.2% 在水中的質(zhì)量 (Sigma-Aldrich 95581),它像牛奶一樣白色和不透明。當稀釋至 0.01% 質(zhì)量分散度時,我們會得到一種透明但略微混濁的液體,它將足夠的光散射到檢測器。下圖是 1000 個時間序列的平均值:
我們擬合了 167 nm 的粒徑,噪聲包含在 +/-20% 的窗口中(在曲線的斜率處)。
對顆粒大小和強噪聲的系統(tǒng)性低估可能來自光束在到達檢測器之前的多次散射。這可以通過稀釋樣品來改善,但是檢測會更難,因為我們在這里玩的是我們系統(tǒng)的限制。
對更多時間序列進行平均無助于減少噪聲,正如我們從這 10,000 個平均值中看到的那樣,需要 45 分鐘才能完成:
理想情況下,我們需要用其他粒度重復(fù)這個實驗,看看我們觀察到的相關(guān)性是否真的來自液體,而不是來自硬件。
結(jié)論
這種開源 DLS 設(shè)備對于將足夠的光散射到廉價檢測器的分散體來說似乎非常有前途,盡管準確度仍然很低。我們希望一些構(gòu)建塊和代碼對其他項目有用。
關(guān)于 DLS,未來可能的拓展:
蓋子打開時自動關(guān)閉激光。
用于透明解決方案的更好檢測器(具有零偏移功能的運算放大器、雪崩模式或蓋革模式的光電二極管、用于選擇精確散射角的孔徑針孔系統(tǒng))。
溫度探頭,用于調(diào)節(jié)配合中的溫度和粘度。
使用電流檢測器,研究來自混濁液體的反向散射光。
-
檢測器
+關(guān)注
關(guān)注
1文章
866瀏覽量
47720 -
開源
+關(guān)注
關(guān)注
3文章
3368瀏覽量
42567 -
光探測器
+關(guān)注
關(guān)注
1文章
39瀏覽量
10873
發(fā)布評論請先 登錄
相關(guān)推薦
評論