第1步:收集非3D打印件
激光組件由以下部件組成:
4個微型電磁閥
一個1/2英寸的鏡子
四個M3螺絲
我使用的特殊螺線管在eBay上以每個1.45美元的價格購買。圓形鏡子在HobbyLobby的工藝品過道中被發現 - 一包25美元,花費不到3美元。你也可以在eBay上找到鏡子。
你還需要一個廉價的激光筆,再次來自eBay。紫激光以及黑暗中發光的黑膠片是這個項目的絕佳組合!
不需要一套伸出援手,但對于握住和定位它們非常有用。激光筆。可以用一個大的活頁夾來按住電源按鈕。
你需要一個Arduino(我使用的是Arduino Nano)和一種驅動電磁閥的方法。正如VajkF在評論中所述,您可以使用預制的H橋,例如基于L298或L9110的H橋。這些在eBay上很容易買到幾塊錢,也可以用來驅動電機和機器人項目。
由于我沒有H橋,我用分立元件建造了自己的驅動器:/p》
四個電阻(我使用的是1.2k歐姆電阻)
四個二極管(我使用的是1N4004) )
9V電池和電池連接器
電子元件來自我的實驗室,所以我沒有確切的成本,但除非你已經有部件或可以清除它們,使用預制H橋可能更具成本效益。盡管如此,我將提供構建您自己的原理圖。
步驟2:3D打印鏡像轉向模塊
激光轉向模塊由兩個3D打印部件組成:一個用于安裝四個電磁閥的底座和一個用于鏡子的鉸接平臺。
我已將兩個STL文件附加到3D打印,以及FreeCAD文件,以防您需要修改設計。所有內容都在GPLv3下,因此您可以自由地制作和分享您的改進!
第3步:組裝激光模塊
使用熱膠將四個電磁閥固定在下部。
使用熱膠將鏡子固定在上部件的中央。
將金屬活塞插入螺線管中,然后將上部件放在支柱上(但不要將其擰緊)。輕輕旋轉頂部件并使用小螺絲刀將每個活塞提升到位。圓盤的唇部應滑入活塞的凹槽中。小心,因為3D打印的鉸鏈非常脆弱。有了耐心,可能還有一些失敗的嘗試,你應該能夠放置所有四個活塞而不會扭曲或對鉸鏈施加壓力。
一旦所有活塞定位,部分插入M3螺釘,但在擰緊之前,輕輕向下推動每個活塞,確保鏡子自由傾斜。如果它不能自由移動或卡住,可能需要拆下頂板,撬開一個或多個螺線管松開并以略微向外的角度重新安裝(在它和中央支柱之間放置墊片可能有助于此) 。
步驟4:打印激光指示器套圈
激光指針套環適合激光指示器的頭部。然后,您可以使用一組幫助手抓住項圈并讓您將激光精確定位在工作臺上。
步驟5:組裝驅動電路
驅動電路如圖所示。如前所述,我的版本是由分立組件構建的,但您也可以使用現成的H橋。如果你選擇建立自己的,你將需要建立這個電路的四個副本,四個螺線管各一個。
每個電路將連接到一個Arduino引腳,兩個用于控制左右電磁閥,兩個用于上下電磁閥。這些將需要連接到支持PWM的引腳,如下所示:
引腳9:向上電磁閥
引腳3:向下電磁閥
引腳11 :左電磁閥
引腳10:右電磁閥
單個9V電池可用于驅動所有四個電磁閥驅動電路,或者您可以使用臺式電源。 Arduino將使用USB電源,不應連接到9V電池的正極。但是,電池的負極用作接地參考,應連接到Arduino上的GND引腳以及晶體管上的發射極引腳。
步驟6:上傳示例代碼
示例代碼已更新,具有以下功能:
調整PWM頻率,使機制為在低速時幾乎保持沉默。運動測試1中的嗡嗡聲完全消失了!
根據Schimpf的論文添加電壓方程,以“線性化”螺線管的非線性響應。
我還根據此博客的代碼包含了Lorenz Attractor的實現。
結果的保真度還有很多不足之處,但我還在努力! :)
后續步驟說明了代碼中使用的一些技術。
步驟7:調低音量
在我的運動測試1中,您可以聽到響亮的嗡嗡聲,特別是在上下移動過程中。事實證明,這是由Arduino的默認PWM斬波頻率在可聽范圍內引起的。線圈電壓的快速切換將導致它們以該頻率振動,使它們變成微小的揚聲器。
為了解決這個問題,我增加了代碼中的PWM頻率:
#define PWM_FREQ_31372Hz 0x01 // Sets the PWM frequency to 31372.55 Hz
#define PWM_FREQ_3921Hz 0x02 // Sets the PWM frequency to 3921.16 Hz
#define PWM_FREQ_980Hz 0x03 // Sets the PWM frequency to 980.39 Hz
void setPWMTimerFrequencies(uint8_t frequency) {
TCCR1B = (TCCR1B & 0b11111000) | frequency; // Set timer1 (pins 9 & 10) frequency
TCCR2B = (TCCR2B & 0b11111000) | frequency; // Set timer2 (pins 3 & 11) frequency
}
設置Arduino PWM頻率是使電磁閥或電機靜音的有用技巧。嘗試不同的頻率選擇,看看哪一個給你最好的結果。雖然它涉及一些更高級的編程,但是關于定時器如何工作的良好資源就在這里。
步驟8:調整電壓以減少失真
我的初始運動測試顯示螺線管的響應有明顯的失真。在Motion Test 3(左圖)中,本來應該是圓形螺旋而是變成了帶有鋸齒狀邊緣的矩形網。
解決這個問題需要一點點數學,但我能夠找到一個網上有令人驚嘆的論文,幫助我很好地理解了這個問題,足以用軟件來解決它。
接下來我將逐步完成調整系統并改善結果痕跡的外觀!/p》
步驟9:完善軟件,使用數學
調整系統的秘密結果是是東華盛頓大學Paul H. Schimpf撰寫的一篇名為“電磁力的詳細解釋”的優秀論文(鏈接)。特別是,等式17給出了各種術語的螺線管力。
以下術語很容易測量:
R - 我的螺線管的電阻
li》
l - 螺線管的長度
x - 活塞在螺線管中的位移
V - 螺線管兩端的電壓
我也知道電磁閥產生的力必須平衡雙軸鏡上3D打印彈簧的力。春天的力量受胡克定律的支配,其定義如下:
F = -kx
雖然我不知道它的價值k,我至少知道我從Schimpf論文中得到的方程式17的力必須等于胡克定律的力。
alpha(α)的值是一個棘手的問題。雖然方程式13和14顯示了如何從螺線管(A)的面積,匝數(N)和磁導率值(μ)計算這些值,但我不想拆開螺線管來計算匝數,我也不知道我的螺線管的核心材料。
步驟10:廉價的組件測試儀節省了一天!
然而,事實證明,等式15和16給了我所需要的東西。我有一個便宜的M328組件測試儀,我從eBay以10美元的價格購買。它能夠用它來測量我的螺線管的電感,我發現通過推動不同深度的電樞給我不同的感應值。
用電樞完全插入測量它給了我的價值L(0)。
我的螺線管的長度是14毫米,所以我測量了電樞在五個位置的電感,這給了我L(x)的各種值:
L(0.0)= 19.8 mH
L(3.5)= 17.7 mH
L(7.0)= 11.1 mH
L(10.5)= 9.3 mH
L(14)= 9.1 mH
然后我使用電子表格繪制我的值與公式15和16的值,對于μr的特定選擇,然后改變我的選擇,直到我發現了很好的比賽。這發生在μr為2.9時,如圖所示。
步驟11:找到彈簧常數K,解決問題
唯一剩下的未知數是K,彈簧常數。我通過在我的雙軸組件中的一個螺線管上施加9V并測量鏡子被拉下的距離來測量這一點。通過這些值,我能夠求解K的方程,我發現它大約是10.41。
我現在有了計算螺線管在沿著沖程的不同位置的拉力所需的值。通過將F(x)設置為等于霍克定律的彈簧力,我可以求解所需的電壓V.
圖表顯示了將螺線管移動到任何所需位置所需的電壓x。
在右側,電壓為零且位置為3 mm時,這對應于3D打印鉸鏈完全松弛時螺線管的中性靜止點。向左移動圖表對應于將電樞拉入螺線管以抵抗3D打印鉸鏈的拉動 - 這最初需要更多電壓,但隨著電樞深入螺線管,拉力增加并且所需的驅動電壓逐漸減小。/p》
這種關系絕對是非線性的,但是根據Schimpf論文中的公式,我可以編寫我的Arduino代碼來輸出正確的電壓,因此光束偏轉是線性的:
float positionToVoltage(float x) {
// Restoring force exerted by hinges (Hooke‘s Law) at desired x.
const float spring_F = -spring_K * (x - spring_X0);
// Voltage such that the pulling force of the solenoid matches the
// restoring force of the hinges
return sqrt(-2*R*R*(-spring_F)*solenoid_len/(a*L_0*exp(-a*x/solenoid_len)));
}
這導致比我原始運動測試中的圓形螺旋更圓。完成任務!
步驟12:關于使用離散組件的驅動電路的問題與解答
為什么我不能直接連接電磁閥到Arduino?
這是Arduino在不受損害的情況下可以提供多少電流的問題。每個引腳大約40mA。知道Arduino工作在5V,我們可以使用歐姆定律計算負載所需的最小電阻(在這種情況下,螺線管)。將5伏特除以0.040安培得到125歐姆。如果負載具有更大的阻力,我們可以將其直接連接到Arduino,否則我們不能。小螺線管通常具有50歐姆的電阻,因此我們無法直接從Arduino驅動它。如果我們這樣做,它會拉出100mA,這顯然是太多了。
為什么你使用9V作為螺線管,而使用5V作為Arduino?
Arduino以5V運行,但這對于電磁閥來說有點太少了。使用晶體管可以為螺線管選擇一個電壓,該電壓與Arduino使用的5V無關。
我如何知道晶體管是否適合這個項目?
與Arduino一樣,主要要求是流過螺線管的電流不超過晶體管的最大額定值(特別是集電極電流)。我們可以通過測量螺線管的電阻然后將電源電壓除以它來輕松計算最壞情況。在電磁閥的9V供電電流和50歐姆的螺線管電阻的情況下,最壞的情況使我們處于180mA。例如,MPS3704的額定最大集電極電流為600 mA,這為我們提供了大約3的余量。
如何確定Arduino輸出和電阻之間的最小電阻值晶體管的基極?
Arduino的輸出將通過限流電阻連接雙極晶體管的基極。由于Arduino工作在5V,我們可以再次使用歐姆定律來計算將電流限制在40mA以下所需的電阻。即,將5伏特除以0.04安培,以獲得至少125歐姆的值。較高的電阻值會降低電流,從而為我們提供更大的安全裕度。
該電阻是否有最大值,我不應該超過?
《事實證明,是的。晶體管具有所謂的電流增益。例如,如果增益為100,則意味著如果我們將1mA放入基極,則高達100mA將流過晶體管控制的負載。如果我們將1.8mA放入基極,那么高達180mA的電流將流過負載。由于我們之前計算過,在9V時,180mA電流流過螺線管,然后1.8mA的基極電流是“最佳點”,而且我們的電磁閥不會完全打開。
我們知道Arduino輸出5V并且我們想要1.8mA的電流流動,所以我們使用歐姆定律(R = V/I)來計算電阻(R = V/I)。 5V除以1.8mA時,電阻為2777歐姆。因此,考慮到我們所做的假設,我們預計阻力必須介于125和2777之間 - 選擇1000歐姆之類的東西可以給我們提供相當好的安全余量。
步驟13:分析目前的問題和可能的解決方案
目前的原型顯示出潛力,但仍存在一些問題:
Motion沿X和Y軸看起來并不垂直。
當鏡子改變方向時會跳躍。
分辨率非常低,并且有明顯的階梯模式。
在較高的運動速度下,激光的路徑會因振動和振鈴而失真。
問題1)可能是由3D打印柔性鉸鏈的設計引起的它們沿著一個軸傳遞運動到垂直軸。
問題2)是由于驅動活塞和鏡子平臺之間的耦合松弛,這導致鏡子猛拉并跳過X和Y軸。這種突然的運動導致了一個黑暗的X形間隙,激光點正在進行更快速的不受控制的移動。
問題3)的發生是因為默認的Arduino PWM只有255級,而且由于電壓曲線的形狀而浪費了相當多的水平。這可以通過使用timer1來顯著改善,timer1是16位并且能夠達到65536個唯一值。
問題4)因為鏡子和螺線管的滑動電樞(活塞)構成重要移動質量的數量。
由于問題1)和2)與機械設計有關,一種可能性是移除金屬活塞并用直接固定在其上的小型稀土磁鐵替換它們。傾斜板。螺線管將是一個開放的線圈,可以在不進行物理接觸的情況下吸引或排斥磁鐵。這將導致更平穩的運動并消除抽搐的可能性,同時減少總質量。
減少質量是問題4)的主要解決方案,但任何剩余的問題可以通過實施動作直接針對軟件在軟件中控制配置文件以受控方式加速和減速鏡子。這已經在3D打印機固件中廣泛完成,類似的方法也可以在這里工作。以下是與運動控制相關的一些資源,因為它適用于3D打印機:
“運動控制配置文件的數學”,Chuck Lewin
“Jerk Controlled Motion Explained “,
我懷疑添加一個梯形運動控制配置文件可以讓鏡子以更高的速度被驅動,而不會出現振鈴或振動現象。
第14步:未來的工作和可能的應用
雖然為這些問題制定解決方案需要做大量的工作,但我希望在這樣的應用中,源光束控制模塊可以成為基于電流計的項目的經濟實惠的替代方案:
為DJ和VJ提供廉價的激光表演。
用于復古街機游戲的機電矢量顯示,例如Vectrex。
DIY樹脂型SLA 3D打印機,在RepRap機芯的精神下,可以打印自己的激光轉向模塊。
相機的數字平移或光學防抖。
-
激光
+關注
關注
20文章
3465瀏覽量
67142 -
3D打印
+關注
關注
27文章
3590瀏覽量
112465
發布評論請先 登錄
VirtualLab:激光引導無焦系統的分析與設計
激光束修復液晶面板任意層不良區域,實現液晶線路激光修復

光束整形在金屬增材制造應用中的優勢

VIRTUALLAB FUSION應用:光束切趾建模
VirtualLab Fusion應用:利用空間濾波器“清理”激光束
VirtualLab Fusion應用:用于光束切趾的圓鋸齒光闌
VirtualLab應用:Ince-Gaussian光束產生渦旋陣列激光束的觀測
安泰高壓放大器在SPGD光束整形實驗系統中的應用

評論