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