ЧПУ на arduino

igormedia
Offline
Зарегистрирован: 21.06.2014

ветка еще живет???

 

mat
mat аватар
Offline
Зарегистрирован: 05.07.2012

Скорее нет, чем да...

ZagZag
Offline
Зарегистрирован: 08.05.2014

Стоит глянуть https://code.google.com/p/atomcnc/

Immortal
Offline
Зарегистрирован: 28.12.2013

Я в свое время перечитал много постов на форумах по поводу фрезеровки печатных плат, у меня даже есть знакомый собравший такой станочек, вот его комментарий:

У этого метода (фрезеровки) слишком много недостатков. И самый главный из них именно в фрезах. Они перегреваются и садятся. Их ни чем не охладишь. Очень тонкий инструмент а обороты большие. Медь не любит скорости обработки. При меньшей скорости фрезеровки падает качество. Да и сам текстолит сильно садит фрезу. Все кто брался за эту идею, в конечном итоге плевали на это.

Тут проблема не в метале (меди) а именно текстолите,- в его состав входят стекловолокна, которые, во-первых разогревают сильно инструмент при трении, а так же его тупят, именно потому, что стекло значительно прочней метала.

 

Слишком пыльный процесс: приходится тщательно пылесосить ковры от стружки текстолита

 

Но сегодня мне попалось интересное видео с ЧПУ станком для рисования плат:

https://www.youtube.com/watch?v=nQYS7Mc-Pgs

Лазерный принтер у меня как раз умер, а использовал я его только для ЛУТа, замену покупать не хочу. Думаю вместо принтера сделать такой станочек, осталось только найти и опробовать водостойкие маркеры разной толщины, после этого можно браться за механику ЧПУ.

Как вам идея?

Конечно есть недостаток что платы все равно приходится травить, но тем у кого нет принтера этот способ может быть интересен

Nikolaevsk
Nikolaevsk аватар
Offline
Зарегистрирован: 09.06.2014

А ведь это идея!

На ебее продаются специальные маркеры для рисования дорожек плат под травления, дают тоненькую аккуратную линию... А у меня стоит без дела плоттер LIYU-SC630D и к нему в комплекте есть пишущий узел, можно стержень от шариковой ручки поставить а можно и маркер закрепить...

Точно. Теперь я знаю как красиво рисовать платы для однослойного монтажа :) полез на ebay.com закажу пару маркеров :)

Immortal
Offline
Зарегистрирован: 28.12.2013

Описание станка есть в этой теме http://vri-cnc.ru/modules.php?name=Forums&file=viewtopic&t=443

axill
Offline
Зарегистрирован: 05.09.2011

Баловство это. Во первых нет идеальных чернил для маркеров которые бы гарантировали отсутствие подтравов

второе - какой бы не был тонкий маркер им не начертить под SMD ничего толкового. Под SMD много прямоугольников рисовать, а маркером можно делать только пады под дип корпуса как на видео

лазерный принтер сейчас стоит в соседнем магазине дешевле набора деталей для сборки чпу при заказе из китая

я свой лазерник купил за 2900 и то он дороже потому что с wifi. А просто три шаговика в 17-м размере (думаю меньше не куда) стоят в Китае минимум 45 баксов = 1600р, а еще нужны нормальные направляющие, динейные подшиприки, драйвера, блок питания, станина и т.д. Экономически ни разу не оправдано

а вот если дело не в деньгах, а в желании что-то сотворить, то лучше сделать чпу для сверловки плат - вот это тема. Или 3д принтео или два в одном

Immortal
Offline
Зарегистрирован: 28.12.2013

Хотя да, axill прав, недостатков и правда много, проще купить принтер.

А как на счет метода электроискровой резки меди?

Способ интересный и плату травить не нужно, правда непонятно какая у этого метода минимальная ширина дорожки, да и над улучшением чистоты реза нужно еще поработать.

leshak
Offline
Зарегистрирован: 29.09.2011

Immortal пишет:

Хотя да, axill прав, недостатков и правда много, проще купить принтер.

А как на счет метода электроискровой резки меди?

Способ интересный и плату травить не нужно, правда непонятно какая у этого метода минимальная ширина дорожки, да и над улучшением чистоты реза нужно еще поработать.

В теории - может быть. Но пока там до качества даже "очень хренового лута" еще ой как далеко... Мне кажется даже руками/маркером/рейсфедером можно лучше сделать.
И я не совсем уверен что без увеличение цены на порядок ее получится улучшить. Если вообще получится в домашних условиях.

Фоторезисторм - еще и маску можно сделать. Тут - это не светит.
И это не считая того, что сделать подобные плоттер, с нуля, если не занимался этим - тоже далеко не так просто как кажется изначально. И тоже далеко не "копейки".
Вообщем IMHO "для домашнего" - это тупиковая ветвь. А для "заводского" - подозреваю что уже есть аналоги.

Да и, не понимаю что такого страшного в хлорном железе. Купил пищевой судочек с крышкой. Когда не нужен - закрыл и поставил на полку в туалет. Нужно, вынул, бросил плату, погулял....

avton
avton аватар
Offline
Зарегистрирован: 11.05.2014

leshak пишет:

Да и, не понимаю что такого страшного в хлорном железе. Купил пищевой судочек с крышкой. Когда не нужен - закрыл и поставил на полку в туалет. Нужно, вынул, бросил плату, погулял....

Полностью поддерживаю!

Или это,ещё и прозрачный,наблюдать можно :) 

Плюс ещё если капнул куда,то отмыть гораздо прроще хлорного железа

http://www.platan.ru/cgi-bin/qwery.pl/id=285073398

axill
Offline
Зарегистрирован: 05.09.2011

Я персульфат аммония использую, от него пятен нет если сразу отмыть

leshak
Offline
Зарегистрирован: 29.09.2011

axill пишет:

Я персульфат аммония использую, от него пятен нет если сразу отмыть

А я - просто не парюсь. Ну пятно, ну и что? ;) Оденем другую футболку и подумаем "нужно бы передник купить" ;)

art100
Offline
Зарегистрирован: 09.03.2014

ЧПУ-шники дайте кода для?

Потенциометр ->arduinouno->npn или мосфет кандер индуктивность ШИМ -> двигатель постояного тока 3-24в или 5-12в скорость подбирать.

 

Притирку механики произвести.

Из вчерашнего уже "притирающего" моего не пойдет. Берите кто хотите.

//art100 написать 20140725 тест шаговые двигатели pololulu A4988
// при запуске, мигает свет и мотор несколько раз, после этого крутяться двигатели.
// пен---------------------------------------
#define A0 POTPIN0
#define A1 POTPIN1

#define ENABPIN0 5//2//
#define MICRPIN0 6//3//
#define STEPPIN0 7//3//
#define DIR_PIN0 8//4//

#define ENABPIN1 2//5//
#define MICRPIN1 3//6//
#define STEPPIN1 4//7//
#define DIR_PIN1 5//8//
// джойстик --------------------------
//int POTPIN0 = A0; //джойстик pin 
//int POTPIN1 = A1; //джойстик pin
//int joypinf = A2; //джойстик pin
// лазеров, светодиодов----------------
//int led3 = A4;//3; // 
// шаговые двигатели ------------
//int DIR_PIN0 = 4;//
//int STEPPIN0 = 3;//

// константы для джойстика -------------------------------------------
int sp0table= 60;//50;//100;//120;// a4988 1000;//медленный
int sp1table = 60;// a4988 10000;//скорость a3987
int var0 = 0; //varstick
int var1 = 0; //varstick
//int varf = 0; //varstick
//int step0cor =10;// для коррекции >0<
//int step1cor =10;// для коррекции >0<
// usb------------------------------
int commandusb = 0; //
//---------------------------
// шаговый двигатель 1 pololulu A4988-------------------------------
void stepA4988_0(boolean dir0,int steps0,int msec0){
digitalWrite(DIR_PIN0,dir0); // направление
for(int i=0;i<steps0;i++){
digitalWrite(STEPPIN0,HIGH); delayMicroseconds(msec0);
digitalWrite(STEPPIN0, LOW); delayMicroseconds(msec0);
}
}
// шаговый двигатель 1 pololulu A4988 -------------------------------
void stepA4988_1(boolean dir1,int steps1,int msec1){
digitalWrite(DIR_PIN1,dir1); // направление
for(int i=0;i<steps1;i++){
digitalWrite(STEPPIN1,HIGH); delayMicroseconds(msec1);
digitalWrite(STEPPIN1, низкий); delayMicroseconds(msec1);
}
}
//--------------------------------------------------------------------------------------
void setup(){ 
pinMode(POTPIN0, INPUT); //X varstick
pinMode(POTPIN1, INPUT); //Y varstick 
// pinMode(varpinf, INPUT_PULLUP); //varstick огонь pin
// pinMode (сд3), OUTPUT); //лазерная
// digitalWrite(сд3), HIGH); //
pinMode(ENABPIN0, OUTPUT);//
pinMode(MICRPIN0, OUTPUT);// 
pinMode(STEPPIN0, OUTPUT);//
pinMode(DIR_PIN0, OUTPUT);//
pinMode(ENABPIN1, OUTPUT);//
pinMode(MICRPIN1, OUTPUT);// 
pinMode(STEPPIN1, OUTPUT);//
pinMode(DIR_PIN1, OUTPUT);// 
digitalWrite(MICRPIN0, LOW); //
digitalWrite(MICRPIN1, LOW); // 
Serial.begin(9600);
} 
//======================================================================
void loop(){
digitalWrite(ENABPIN0,HIGH);digitalWrite(ENABPIN1,высокий); 
var0 = analogRead(POTPIN0)>>7; // 3 кнопки 0/4/7 0.1.2.3.4.5.6.7 sanks for speed реестра shift Flexi
var1 = analogRead(POTPIN1)>>7; // 3 кнопки 0/4/7 0.1.2.3.4.5.6.7 sanks for speed реестра shift Flexi 
если(var0==0){ digitalWrite(ENABPIN0,LOW); stepA4988_0(false,1,sp0table); Serial.println("stepA4988_0 +1"); }//скорость
если(var0==7){ digitalWrite(ENABPIN0,LOW); stepA4988_0(true ,1,sp0table); Serial.println("stepA4988_0 -1"); }//скорость 
if(var1==0){ digitalWrite(ENABPIN1,LOW); stepA4988_1(false,1,sp1table); Serial.println("stepA4988_1 +1"); }//скорость
if(var1==7){ digitalWrite(ENABPIN1,LOW); stepA4988_1(true ,1,sp1table); Serial.println("stepA4988_1 -1"); }//скорость 

// джойстик ----------------------------------------------------------
// Serial.print('X');Serial.print(varx);Serial.print(';'); Serial.print('Y');Serial.print(отличаться);Serial.println(';'); //тест
//если(varx==0){stepA4988(false,stepxcor,sp1table);}//скорость
//если(varx==7){stepA4988(правда ,stepxcor,sp1table);}//скорость 

// если(отличаться==0){stepA4988(false,stepxcor,sp2table);}//скорость
// если(отличаться==7){stepA4988(правда ,stepxcor,sp2table);}//скорость 
// led --------------------------------------------------------
// if(digitalRead(joypinf)==LOW) { digitalWrite(сд3), LOW); } // лазерная работать
// else { digitalWrite(сд3), HIGH); } // лазерная работать
// Serial.print("joyx joyy sp1table sp2table: "); Serial.print(joyx);Serial.print(joyy);Serial.println(";");//Serial.print(sp1table);Serial.print(sp2table);Serial.println(";");//
// Serial.print("joyx sp1table: "); Serial.print(joyx);Serial.println(";");
// джойстик ---------------------------------------------------------- 

// usb ----------------------------------------------------------------
// if (Serial.available() > 0) { 
// commandusb = Serial.read();
// если (commandusb==76 ) {digitalWrite(сд3), HIGH);} // лазера на L
// если (commandusb==108) {digitalWrite(сд3), LOW);} // laser off l
// если (commandusb==45 ) {stepA4988_0(правда, stepxcor,sp1table);} // вниз+ 
// если (commandusb==43 ) {stepA4988_0(false,stepxcor,sp1table);} // 
// Serial.print("commanda usb received: "); Serial.println(commandusb);
// }
// usb ---------------------------------------------------------------- 
} 

// digitalWrite(STEP_PIN_0, высокий);
// digitalWrite(STEP_PIN_1, высокий);
// delay(1);
// digitalWrite(STEP_PIN_0, низкий);
// digitalWrite(STEP_PIN_1, низкий);
// delay(1);

//========================================================================
// шаговый двигатель 1 Таблица для A3987 easydriver 2 булавки------------------------------------
//void step1(boolean dir1,int steps1,int msec1){
// digitalWrite(DIR_PIN0,dir1); // направление
// for(int i=0;i<steps1;i++){
// digitalWrite(STEPPIN0,HIGH); delayMicroseconds(msec1);
// digitalWrite(STEPPIN0, LOW); delayMicroseconds(msec1);
// }
//}
// шаговый двигатель 2 лазерная для A3987 easydriver 2 булавки------------------------------------
//void step2(boolean dir2,int steps2,int msec2){
// digitalWrite(dir_Pin2,dir2); // направление
// for(int i=0;i<steps2;i++){
// digitalWrite(stepPin2,HIGH); delayMicroseconds(msec2);
// digitalWrite(stepPin2, LOW); delayMicroseconds(msec2);
// }
//}
// для L298 4 контакта--------------------------
//// для (o=0; o<stepsmotor1; o++) { // 360 градус Таблица
// for (m=0; m<step1Laser/8; m++) { // 200step/8=25step 25step*1.8gradus/step = 45 градус сканирование с низким 
// digitalWrite(сд3), HIGH); //лазер и вниз
// //myStepper2.step(+1);
// step2(правда, steptable,speetable);
//// delay(100); //для компьютера tormoz 0,01 sek 
// delay(500); //для компьютера tormoz 0,01 sek 
//// delay(1000); //для компьютера tormoz 1 sek
// } 
// //возвращение на старт
// for (m=0; m<step1Laser/8; m++) { // 200step/8=25step 25step*1.8gradus/step = 45 градус вернуть
// digitalWrite(сд3), низкий);
// //myStepper2.step(-1); // до лазера
// //myStepper1.step(+1); // Таблица 45 градус
// step2(false,steptable,speetable);
// step1(правда, steptable,speetable);
// } 
// delay(1000); //для компьютера tormoz 1 5 sek

//------------------------------------------
//DEC, Char D Ch D Ch Ch D
//0 null 32 64 sp @ 96 ` 
//1 33 ! 65 97 
//2 34", 66 б 98 б 
//3 35 # 67 C 99 c 
//4 36 $ 68 D 100 d 
//5 37 % 69 E e 101 
//6 38 & 70 F f 102 
//7 39 ' 71 г 103 г 
//8 40 ( 72 ч 104 ч 
//9 вкладка 41 ) 73 I 105 i 
//10 строка 42 * 74 J j 106 
//11 43 + 75 K k 107 
//12 44 , 76 л 108 л 
//13 retur 45 - 77 м 109 м 
//14 46 . 78 N 110 n 
//15 47 / 79 111 O O 
//16 48 0 80 стр, 112 стр 
//17 49 1 81 Q q 113 
//18 50 2 82 R r 114 
//19 51 3 83 S 115 s 
//20 52 4 84 T t 116 
//21 53 5 85 U u 117 
//22 54 6 86 V v 118 
//23 55 7 87 W 119 Вт 
//24 56 8 88 X 120 x 
//9 25 57 89 Y y 121 
//26 58 : 90 Z z 122 
//27 59 ; 91 [ 123 { 
//28 60 < 92 \ 124 | 
//29 61 = 93 ] 125 } 
//30 62 > 94 ^ 126 ~ 
//31 63 ? 95 _ 127 
//----------------------------------------

Я что-то писал такое для DC-motor но потерял.

У меня комп в жару сдох. И потерял по видимому много текущего. У нас сейча +31 сижу в трусах.

 

Ермак
Offline
Зарегистрирован: 17.10.2014

Ну вот, еще бы управление с планшета сделали, то не было бы цены.

То есть передача G кода и индикация осей.

 

art100
Offline
Зарегистрирован: 09.03.2014

Ермак пишет:

Ну вот, еще бы управление с планшета сделали, то не было бы цены.

То есть передача G кода и индикация осей.

 

В чем проблема? 

Мне очень хочется посмотреть как ведроиде ну stl-ки я уже плюнул на 7дюймовке смотреть фигня. А вот интересно как разработку формы будешь вести? Я то клаву и мышь имею на своем andorid-е 7 дюймов. А вот Вы наберете такие буквочки?

//art100 20150505 lupa kronshtein on rod M8 M6.5.4
rod    =8;//M8 стержень определяет прочность
offset1=3;//mm отступ(добавка) толщины на прочность rod/3=offset~3mm
bolt   =rod/2;//4;//M4
//куб основа 
y = rod    +rod+rod+rod;//24;// offset+8+8+offset //30;//mm
x = rod    +rod+rod+rod;//24;// offset+8+8+offset //40;//mm
z = offset1+rod+offset1;//offset+8+offset //10;//mm 
//детали

//отступы
rod1offset =rod;//mm
rod2offset =rod*2;//mm
// ------------------------------------------------------------------------------------
rotate([-90, 0, 0]) //translate([0, 0, 0]) //              // rotate and translate into printing position
difference() {
//	union() {
		cube([x, z, y]);//основная форма
//	}

	translate([x/2,  z, rod1offset]) rotate([90, 0, 0]) cylinder(h=y, r=rod/2);//отверстие
   translate([0,  z/2, rod2offset]) rotate([0, 90, 0]) cylinder(h=x, r=rod/2);//отверстие
   translate([x/2,  z, rod*3     ]) rotate([90, 0, 0]) cylinder(h=x, r=bolt/2);//отверстие

   translate([0, z/2, 0]) {		//срежем углы
                                 rotate([0,45,0])	cube([5, z, 5], center=true);
		translate([x,0,     0])rotate([0,45,0])	cube([5, z, 5], center=true);
		translate([0,    0,y])rotate([0,45,0])	cube([5, z, 5], center=true);
		translate([x,0,y])rotate([0,45,0])	cube([5, z, 5], center=true);
	}
}
	// cutout for belt
//	translate([4.3, -0.5, belty])	cube([beltx, z + 1, beltz]);
	// y axis end stop screw hole
//	translate([x / 2, z + 0.5, endStopScrewy])	rotate([90,0,0])	cylinder(h = z + 1, r = screwDiameter/2);
	// y axis end stop screw captured nut indention -- not sure this is necessary.
	//translate([x / 2, 0, endStopScrewy])
//	//rotate([90, 60, 0]) 
//	//hexagon(nutDiameter, nutz + 1);
//	// belt clamp screw holes
//	translate([0, z + 0.5, beltClampy])	rotate([90,0,0])	cylinder(h = z + 1, r = screwHoleDiameter/2);
//	translate([x, z + 0.5, beltClampy])	rotate([90,0,0])	cylinder(h = z + 1, r = screwHoleDiameter/2);
//	// belt tensioning screw hole

Ермак
Offline
Зарегистрирован: 17.10.2014

Ну у вас и фото, ничего не разбрать.

А если на одной ардунио GRBL а на другой хороший мониторчик с тачем и SD картой и там управление?

 

 

 

art100
Offline
Зарегистрирован: 09.03.2014

Ермак пишет:

Ну у вас и фото, ничего не разбрать.

2 500 $ и разберете у себя на столе. :)

Цитата:
А если на одной ардунио GRBL а на другой хороший мониторчик с тачем и SD картой и там управление?

2 750$

еще вопросы?

 

Ермак
Offline
Зарегистрирован: 17.10.2014

art100 пишет:

2 500 $ и разберете у себя на столе. :)

2 750$

еще вопросы?

Не... с ботами не разговариваю.

 

mat
mat аватар
Offline
Зарегистрирован: 05.07.2012

Цитата:

2 750$

еще вопросы?

А что так дёшево ? Сырой ещё ?

OstapL
Offline
Зарегистрирован: 21.12.2015

Здравствуйте! помогите с ЧПУ *( 
Короче решил сделать ЧПУ купил 
arduino mega 2560 
L293D Arduino Dual Motor Shield 2 штуки

купил еще пинов что бы подключить как этот мужик ) https://www.youtube.com/watch?v=BBanpDUTklk 
и тут беда ( 
если запускаю тест моторов через ардуино то моторы работают а если беру скетч с инета для 3 осевого ЧПУ ни фига не работает ((( 
может кто то делал и есть скетч 
или подскажите  как это все запустить ?

alexf122
Offline
Зарегистрирован: 15.08.2016

приятно поучавствовать в проектах

Duet
Offline
Зарегистрирован: 17.01.2015

Как лучше сделать пульт управления под mach3? С клавиатуры управление в ручном режиме это не то. На станке должна быть отдельная панель для удобного использования. Вариант с использованием ардуины в качестве дубляжа клавиатуры по USB хороший, но нет обратной связи нет от мача для реализации индикации работы кнопок. По LPT мало выходов, 13 входов и 4 выхода всего. Делать на LPT , а подсветку кнопок уже на ардуинке сделать? Использовать ардуину для этих целей мне нужно для того чтоб сделать еще и функцию залипания кнопок перемещений осей, так как в самом маче такой функции нет.