大多數(shù)先進(jìn)的電子 PCB 裝配線都有拾取和放置機(jī)器,可以從 SMD 卷軸上拾取元件并將其放置在 PCB 上。但是,當(dāng)您進(jìn)行中等規(guī)模生產(chǎn)或在 PCB 上使用 THT(通孔型)組件時(shí),這是不可能的。這種情況適用于大多數(shù)低成本電路板組件,如 LED 驅(qū)動(dòng)器、無變壓器電源等。為了幫助加快組裝過程并準(zhǔn)備所需數(shù)量的組件,我們構(gòu)建了這款基于 Arduino 的電阻切割機(jī)。
這臺(tái)機(jī)器可以處理任何分接元件卷軸,如電阻卷軸、二極管卷軸或任何類似的部件。它可以從一個(gè)卷軸中抽取特定數(shù)量的組件并將其切割成所需的數(shù)量。通過這種方式,我們可以輕松地將整個(gè)卷軸切割成所需數(shù)量的小塊。
基本機(jī)制和功能
當(dāng)我開始這個(gè)項(xiàng)目時(shí),互聯(lián)網(wǎng)上有一個(gè)項(xiàng)目叫Pablo 的電阻切割機(jī)器人。該項(xiàng)目非常令人印象深刻,但我想對(duì)其進(jìn)行修改以使其更可靠,更易于每個(gè)人構(gòu)建,因此我添加了以下提示:
該機(jī)器應(yīng)該易于構(gòu)建,這意味著任何擁有 3D 打印機(jī)的人都應(yīng)該能夠構(gòu)建它,而無需使用許多其他電動(dòng)工具。
通過添加 MOC7811 opt 隔離傳感器來提高機(jī)器的準(zhǔn)確性和可靠性,該傳感器將作為我們的 Arduino 的反饋。這將有助于了解每次推送多少組件
用市場上容易買到的鋁擠壓代替木制底座,也使設(shè)計(jì)更堅(jiān)固,更容易工作。
將切割機(jī)構(gòu)從使用步進(jìn)電機(jī)更改為伺服電機(jī),使設(shè)計(jì)更簡單,更容易構(gòu)建。
通過提供可編輯的 CAD 文件、原理圖和 Arduino 代碼,讓每個(gè)人都能以開源的形式使用完整的設(shè)計(jì)。
制作電阻器卷筒切割機(jī)所需的材料
如前所述,此構(gòu)建的想法是使所需的材料和工具盡可能簡單和容易。您只需要以下組件來構(gòu)建您的電阻切割機(jī)。
機(jī)械部件
鋁擠壓型材 20x40 6T 槽
光軸桿直徑 8mm
螺紋桿 8mm 直徑
Nema17 8mm軟軸電機(jī)聯(lián)軸器
法蘭球軸承 8mm 孔 – 2 個(gè)
枕座安裝 8 毫米孔 – 2 件
用于 2020 年鋁型材的鑄角支架 – 4 件
用于 2020 鋁型材的滑動(dòng) T 型螺母 – 20 件
用于 T 形螺母的 M4 6mm 內(nèi)六角螺絲 – 20 件
皮帶輪正時(shí)皮帶
Nema17步進(jìn)電機(jī)
MG90S 金屬齒輪伺服馬達(dá)
Arduino納米
16x2液晶屏
A4988步進(jìn)電機(jī)驅(qū)動(dòng)模塊
MOC7811光耦傳感器
12V 2A 直流適配器
按按鈕
50V 100uf電解電容
連接線和穿孔板
Arduino電阻切割機(jī)的機(jī)械結(jié)構(gòu)
機(jī)器的完整機(jī)械結(jié)構(gòu)分為小部分,并在下面進(jìn)行說明。
驅(qū)動(dòng)機(jī)制:
我們使用 NEMA17 步進(jìn)電機(jī)作為我們機(jī)器的主驅(qū)動(dòng)電機(jī)。如果您不熟悉使用 NEMA17 步進(jìn)電機(jī),您可以查看這篇文章,了解如何將 NEMA17 與 A4988步進(jìn)電機(jī)驅(qū)動(dòng)模塊一起使用,其中介紹了基礎(chǔ)知識(shí)。NEMA17 電機(jī)使用如下圖所示的耦合器連接到 8mm 軟軸,這樣當(dāng)電機(jī)旋轉(zhuǎn)時(shí),軟軸也隨之旋轉(zhuǎn)。
使用步進(jìn)電機(jī)的原因是我們可以在整個(gè)機(jī)器運(yùn)行過程中統(tǒng)一控制步數(shù),并且可以有統(tǒng)一的進(jìn)給。正如您在上圖中所見,我們已經(jīng) 3D 打印了一個(gè)電機(jī)支架,以將 NEMA17 電機(jī)固定在鋁擠壓桿上。
進(jìn)料機(jī)制:
機(jī)器的下一個(gè)階段是送料機(jī)構(gòu),它使用軟軸、螺桿、一對(duì)枕塊和送料輥來實(shí)現(xiàn),如下圖所示。
進(jìn)料輥:進(jìn)料輥是一個(gè) 3D 打印部件,上面粘有同步帶。同步帶中的橡膠提供足夠的摩擦力和壓力,以均勻地推動(dòng)卷軸帶。
軟軸:軟軸與步進(jìn)電機(jī)耦合,送料輥擰緊在軟軸上。這樣,進(jìn)料輥可以按需要的距離分開,并且輥與步進(jìn)電機(jī)一起旋轉(zhuǎn)。
枕塊:我們?cè)谲涊S的兩側(cè)使用了兩個(gè)枕塊,以確保軟軸與鋁擠壓件平行。此外,這兩個(gè)塊幫助我們?cè)O(shè)置軟軸和螺桿之間的距離,從而控制電阻卷筒上滾輪施加的壓力。
螺紋桿和法蘭軸承:一根 8 毫米螺紋桿,帶有安裝在軟軸下方的法蘭軸承。帶法蘭的軸承有助于將電阻滾刀固定在適當(dāng)?shù)奈恢茫⑶疫€可以在滾輪移動(dòng)時(shí)自由旋轉(zhuǎn),從而將滾刀送入切割部分。法蘭軸承在上圖中并未完全可見,但您可以查看本頁底部鏈接的視頻以獲得更好的理解。
卷軸導(dǎo)軌:卷軸導(dǎo)軌又是一對(duì)安裝在鋁擠壓件上的 3D 打印部件。正如您在圖像中看到的,電阻器卷筒通過此卷筒導(dǎo)軌送入輥筒,以確保卷筒始終垂直于送料輥筒進(jìn)入。
計(jì)數(shù)和反饋機(jī)制:
盡管有很好的進(jìn)料機(jī)制(盡我所能),但電阻器卷軸時(shí)不時(shí)會(huì)滑動(dòng),因此進(jìn)料不會(huì)保持均勻。因此,必須引入一個(gè)傳感器來計(jì)算在機(jī)器被切割之前有多少電阻器被送入機(jī)器。此外,通過這種方式,我們可以從機(jī)器獲得反饋,我們可以確保一切運(yùn)行順利。
上圖顯示了我們?nèi)绾伟惭b MOC7811 光耦合器傳感器來計(jì)算被推出饋電機(jī)構(gòu)的電阻器或二極管。請(qǐng)注意,傳感器的發(fā)射器和接收器之間的距離已被削減和修改,以允許完整的條帶通過電阻器。
斬波機(jī)制:
機(jī)器的最后一個(gè)機(jī)制是斬波機(jī)制,為了完成這項(xiàng)工作,我們使用了兩個(gè)伺服電機(jī),刀片連接到其角上,如下所示。
我仍然相信這個(gè)區(qū)域可以進(jìn)行很多改進(jìn),主要是刀片的安裝方式。也許讀到這里的人可以提出更好的選擇。雖然使用兩個(gè)伺服器確實(shí)提供了一個(gè)優(yōu)勢,因?yàn)榈镀梢元?dú)立控制,但我們可以單獨(dú)調(diào)整伺服角度以保持刀片靠近帶材,并確保它們以相同的速度和相同的時(shí)間行進(jìn),以確保在任何一個(gè)上均勻切割邊。
3D 打印所有必需的零件
這款基于 Arduino 的電阻切割機(jī)有 13 個(gè)部件需要 3D 打印。我已經(jīng)在 thingverse 上上傳了所有 STL 文件,您可以使用下面的鏈接自行下載和打印。
下載電阻切割機(jī)的 STL 文件
除了 STL 文件,您還可以找到可在 fusion 360 上使用的可編輯文件來修改或即興設(shè)計(jì)。
我使用 cura 對(duì)所有 13 個(gè) STL 文件進(jìn)行切片,并使用我的 Ender 3D 打印機(jī)打印它們,因?yàn)闆]有高精度零件我已將 cura 設(shè)置為以低質(zhì)量(0.28 毫米層厚)切片并僅對(duì)懸掛在上方的零件添加支持構(gòu)建板。如上面的屏幕截圖所示,整個(gè)打印大約需要 7.5 小時(shí)。您還可以在上面共享的 thing verse 鏈接中找到相同的 Gcode。
基于 Arduino 的電阻器卷筒切割機(jī)的電路圖
我們的 DIY Arduino 電阻切割機(jī)的完整電路圖如下所示 -
如您所見,電路非常簡單,我們使用 12V 2A 適配器為整個(gè)設(shè)置供電。nano 上的板載 5V 穩(wěn)壓器用于使用 Arduino 板上的 5V 引腳為 MOC7811 傳感器和伺服電機(jī)供電。16x2 LCD 使用 Arduino 的 I2C 引腳(即引腳 A4 和 A5)上的 I2C 模塊連接到 Arduino nano。
左右伺服電機(jī)分別連接到 PWM 引腳 9 和 10。A4988 步進(jìn)驅(qū)動(dòng)器模塊的 Enable、Step 和 Dir 引腳分別連接到 D6、D3 和 D4。每當(dāng)我們不使用步進(jìn)電機(jī)時(shí),我們都會(huì)使用啟用引腳來切斷它的電源。MOC7811 連接到引腳 A0,按鈕連接到引腳 D8。按鈕用于在操作期間啟動(dòng)或停止機(jī)器。
在上面的示意圖中,由于fritzing沒有MOC7811組件,我們單獨(dú)展示了它的電路。220 歐姆電阻器用于限制流向光電二極管的電流,10K 電阻器用于在檢測到物體時(shí)上拉傳感器的輸出引腳,Sigout 引腳讀數(shù)為 0V,否則讀數(shù)為 5V。該引腳連接到 Arduino 模擬引腳,以檢查是否有任何組件穿過傳感器。
正如您在上圖中看到的,我在零 PCB 上構(gòu)建了完整的電路,并提供了連接步進(jìn)電機(jī)、伺服電機(jī)、LCD 顯示器和傳感器的插頭引腳。然后我使用 L 型夾和一些螺絲將電路板和 LCD 顯示器安裝到位,如下圖所示 -
使用 Arduino 編程電阻器卷盤切割機(jī)
電阻切割機(jī)的完整代碼 可以在頁面底部找到,在本節(jié)中我將解釋代碼的重要部分。完整的代碼是使用舊的引導(dǎo)加載程序?yàn)?Arduino nano 編寫和測試的,如果您有任何問題,可以將它們留在下面的評(píng)論部分。
在 void setup 函數(shù)中,我們首先定義輸入和輸出引腳的類型。請(qǐng)注意,我們已將按鈕引腳定義為輸入上拉,因此每當(dāng)按下此按鈕時(shí),數(shù)字讀數(shù)都會(huì)給我們一個(gè)零。
// 設(shè)置引腳模式
pinMode(stepPin,輸出);
pinMode(dirPin,輸出);
pinMode(啟用引腳,輸出);
pinMode(pushButton,INPUT_PULLUP);
然后我們將伺服電機(jī)設(shè)置在初始位置,這會(huì)將刀片移出進(jìn)料路徑,并讓我們將電阻卷盤加載到位。您可能想根據(jù)您的要求調(diào)整left_pos和right_pos的值。
//將舵機(jī)移動(dòng)到默認(rèn)位置
left_servo.attach(9); // 將引腳 9 上的伺服附加到伺服對(duì)象
left_servo.write(left_pos);
延遲(1000);
right_servo.attach(10); //將引腳10上的伺服附加到伺服對(duì)象
right_servo.write(right_pos);
延遲(1000);
一切都初始化后,我們使用 while 循環(huán)來保持程序,同時(shí)讀取按鈕的狀態(tài)。只有當(dāng)按下按鈕時(shí),代碼才會(huì)進(jìn)一步移動(dòng)。這樣,用戶將有時(shí)間在機(jī)器開始工作之前對(duì)其進(jìn)行準(zhǔn)備。
while(digitalRead (pushButton) ==HIGH) //在這里等到這個(gè)按鈕被長按
{
}
我們使用了一個(gè)名為step_forward()的函數(shù),它將步進(jìn)電機(jī)向前移動(dòng)一步。在這樣做的同時(shí),它還會(huì)增加一個(gè)名為step_count的變量,并檢查在饋送電阻器卷盤時(shí)是否有任何故障。這意味著當(dāng)電機(jī)旋轉(zhuǎn)時(shí),電阻器卷軸應(yīng)該向前移動(dòng),并且 MOC7811 傳感器應(yīng)該由在它之間移動(dòng)的電阻器觸發(fā),如果盡管步進(jìn)電機(jī)向前移動(dòng)傳感器沒有看到任何組件,則意味著存在故障,我們有停止。下面代碼中的else 循環(huán)對(duì)故障條件進(jìn)行了檢查。
無效 step_forward()
{
如果(步數(shù) 《 Max_steps_before_fault)
{
數(shù)字寫入(dirPin,HIGH);// 使電機(jī)沿特定方向移動(dòng)
數(shù)字寫入(stepPin,LOW);
延遲微秒(1000);
數(shù)字寫入(stepPin,HIGH);
延遲微秒(1000);
步數(shù)++;
}
別的
{
lcd.clear();
lcd.setCursor(3,0);
lcd.print(“步驟錯(cuò)誤”);
數(shù)字寫入(啟用引腳,高);//禁用步進(jìn)電機(jī)
而(1);
}
}
繼續(xù)前進(jìn),我們還有另一個(gè)函數(shù),稱為Chop()。此功能用于在擠出所需數(shù)量的元件后激活伺服電機(jī)并切割電阻卷盤。這里重要的是同時(shí)將兩個(gè)伺服電機(jī)移動(dòng)到相同的距離,我們使用兩個(gè)for 循環(huán)如下所示來實(shí)現(xiàn)相同的效果。
無效斬()
{
for (int 步數(shù) = 0; 步數(shù) 《= 120; 步數(shù) += 1) {
left_pos = 170 步;//將伺服從 160 移動(dòng)到 60
right_pos = 60+步;//將伺服從60移動(dòng)到160
left_servo.write(left_pos);
right_servo.write(right_pos);
延遲(3);
}
延遲(100);
for (int 步數(shù) = 0; 步數(shù) 《= 120; 步數(shù) += 1) {
left_pos = 60+步;//將伺服從60移動(dòng)到160
right_pos = 170 步;//將伺服從 160 移動(dòng)到 60
left_servo.write(left_pos);
right_servo.write(right_pos);
延遲(3);
}
}
在void 循環(huán)中,我們無需做太多事情。我們只需要旋轉(zhuǎn)步進(jìn)電機(jī),直到傳感器接收到一個(gè)電阻。我們還在電機(jī)的每一步之間使用了 20 毫秒的延遲來減慢它的速度。
//旋轉(zhuǎn)步進(jìn)器直到我們找到一個(gè)電阻
if (sensorValue《500)//如果沒有找到電阻
{
向前一步();
延遲(20);
}
如果傳感器被電阻中斷,我們將通過增加變量 Resistor_count 來注冊(cè)它,然后繼續(xù)前進(jìn)。
//IF RESISTOR DETECTED - 前進(jìn)直到電阻通過
if (sensorValue》500)//檢測到電阻
{
Resistor_count = Resistor_count+1;
步數(shù)=0;
while (sensorValue》500)//當(dāng)電阻還在傳感器下面時(shí)
{
向前一步();
傳感器值 = 模擬讀取(A0);
延遲(20);
}
}
如果機(jī)器擠出了所需數(shù)量的電阻器,那么是時(shí)候切斷電阻器卷軸了,下面的代碼完全一樣。可變斬波計(jì)數(shù)可以根據(jù)您希望機(jī)器切割的所需電阻器數(shù)量進(jìn)行更改。
//如果計(jì)數(shù)達(dá)到
if (Resistor_count==Chop_Count)
{
step_forward();step_forward();step_forward();step_forward(); step_forward();step_forward(); //向前邁出幾步,正好切在兩個(gè)電阻器的中間
劈();
Total_cut++;
電阻計(jì)數(shù)=0;
延遲(200);
}
Arduino電阻切割機(jī)在行動(dòng)
使用機(jī)器相當(dāng)簡單。剛開機(jī),機(jī)器就會(huì)初始化,之后會(huì)提示你按一個(gè)按鈕。但是,在此之前,將您的電阻器或任何其他膠帶組件卷起來并將其送入機(jī)器。在這個(gè)階段,步進(jìn)電機(jī)將被禁用,因此您可以手動(dòng)移動(dòng)電機(jī)以將卷軸設(shè)置在正確的位置,如下圖所示。
在此之后,只需按下開始按鈕,我們的機(jī)器就會(huì)啟動(dòng)。如果您想查看完整的工作,可以查看頁面底部鏈接的視頻。
所以,有了這個(gè),我結(jié)束了這篇文章。希望你喜歡閱讀它并學(xué)到一些有用的東西,如果你有任何改進(jìn)它的建議或想法,請(qǐng)?jiān)谠u(píng)論部分提出,我很樂意聽到他們的聲音。此外,如果您想詢問有關(guān)此項(xiàng)目或任何其他類似項(xiàng)目的任何問題,請(qǐng)查看我們的論壇。
代碼
/* 電阻切割數(shù)控機(jī)床
* 伺服連接到 PWM 引腳 9 和 10
* A4988 步進(jìn)驅(qū)動(dòng)器啟用,步進(jìn)和 Dir 引腳分別連接到 D6、D3 和 D4。
* I2C LCD dipslay 連接到 A4 和 A5
* MOC7811 連接到 A0
* 按鈕連接到 D8
*/
#include 《Servo.h》
#include 《Wire.h》
#include 《LiquidCrystal_I2C.h》
// 定義引腳編號(hào)
const int stepPin = 3;
常量 int dirPin = 4;
常量 int enablePin = 6;
常量 int pushButton = 8;
常量 int Max_steps_before_fault=25;
常量 int Job_Complete = 20;
int Chop_Count = 0;
int 電阻計(jì)數(shù) = -1;
int Step_count =0;
int Total_cut = 0;
int left_pos = 170; // 存儲(chǔ)伺服位置的變量
int right_pos =60;
伺服左伺服;
伺服右舵機(jī);
LiquidCrystal_I2C lcd(0x27, 16, 2);
-
電阻
+關(guān)注
關(guān)注
86文章
5476瀏覽量
171696 -
切割機(jī)
+關(guān)注
關(guān)注
4文章
295瀏覽量
18616 -
Arduino
+關(guān)注
關(guān)注
187文章
6464瀏覽量
186677
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論