- •Лазерный гравер с чпу на Arduino
- •Длина волны и мощность лазера для гравировки
- •Оптика лазерного гравера на Ардуино
- •Сборка и загрузка прошивки для Ардуино
- •Исходный код прошивки Ардуино
- •Прошивка Ардуино для станка с чпу, драйверы uln2003, двигатели 28byj-48-5v Краткое описание
- •Подробное описание
- •Исходный код прошивки Ардуино
- •Настройка / конфигурирование программы управления станком с чпу на Ардуино
- •Подготовка изображения для 2d-фрезерования / рисования
- •Изменение разрешения изображения в зависимости от требований к результату
- •Изменение палитры изображения, перевод в черно-белый формат
- •Работа с самодельным станком с чпу на Ардуино Настройка размеров области фрезеровки, установка начального положения фрезы
- •Непосредственно 2d-фрезерование / рисование на самодельном станке с чпу
- •Подготовка изображения для 3d-фрезерования
- •Изменение разрешения изображения в зависимости от требований к результату
- •Работа с самодельным станком с чпу на Ардуино Настройка размеров области фрезеровки, установка начального положения фрезы
- •Непосредственно 3d-фрезерование на самодельном станке с чпу
- •Где и как купить детали для изготовления простого станка с чпу
- •Электроника
- •Механика
- •Общая стоимость
- •Установка ременной передачи на станок с чпу на Ардуино
- •Покупка деталей
- •Крепление шаговых двигателей
- •Изготовление натяжного ролика прокрутки ремня
- •Крепление ремня к платформе станка с чпу
- •Монтаж ролика и шагового двигателя на раму станка с чпу
- •Гибридные шаговые двигатели 17hs3404n в корпусе Nema 17 с четырьмя проводами
- •Драйвер управления гибридными шаговыми двигателями dm420a. Подключение к Ардуино.
- •Драйвер dm420a. Управление отрицательным сигналом
- •Драйвер dm420a. Подключение к Arduino и управление сигналами low-high цифровых пинов в режиме output.
- •Замечания по работе шагового двигателя 17hs3404n и драйвера шд dm420a, подключенного к Ардуино в режиме управления значениями low-high.
- •Делаем контактный 3d-сканер из дешевого станка с чпу на базе Ардуино
- •Изготовление контактного датчика для 3d-сканера
- •Описание работы 3d сканера на базе Ардуино
- •Настройка и запуск программы для работы 3d-сканера на базе Ардуино
Исходный код прошивки Ардуино
int motorPins[3][4] = {{2, 3, 4, 5},{6, 7, 8, 9},{10, 11, 12, 13}}; int count; int count2[3] = {0,0,0}; int delayTime; int val = 0; int rot=0; int incomingByte = 0; int sign=1; //Процедура настройки прошивки void setup() { int i; Serial.begin(9600); for (i=0; i<3; i++) { for (count = 0; count < 4; count++) { pinMode(motorPins[i][count], OUTPUT); //установка режима работы цифровых pin'ов Ардуино } } delayTime=3; //задержка между шагами 3 мс (2 мс - время реакции ШД на подачу напряжения) } //Поворот двигателя с номерм sm на один шаг вперёд void moveForward(int sm) { if ((count2[sm] == 0) || (count2[sm] == 1)) { count2[sm] = 16; } count2[sm]>>=1; for (count = 3; count >= 0; count--) { digitalWrite(motorPins[sm][count], count2[sm]>>count&0x01); } } //Поворот двигателя с номерм sm на один шаг назад void moveBackward(int sm) { if ((count2[sm] == 0) || (count2[sm] == 1)) { count2[sm] = 16; } count2[sm]>>=1; for (count = 3; count >= 0; count--) { digitalWrite(motorPins[sm][3 - count], count2[sm]>>count&0x01); } } //Одновременный поворот двигателей 0, 1, 2 на x, y, z шагов соответственно void MoveSM(long x, long y, long z) { long c[3], c2[3]; double c1[3], d[3]; long m, i; boolean flg; c[0] = x; c[1] = y; c[2] = z; m = 1; for (i=0; i<3; i++) { if (m < abs(c[i])) m = abs(c[i]); } for (i=0; i<3; i++) { c1[i] = 0; d[i] = 1.0 * c[i] / m; c2[i] = 0; } flg = false; for (i=0; i<3; i++) { if (abs(c1[i]) < abs(c[i])) flg=true; } while (flg) { flg=false; for (i=0; i<3; i++) { if (abs(c1[i]) < abs(c[i])) c1[i] += d[i]; if (abs(c1[i]) - abs(c2[i]) >= 0.5) { if (c[i]>0) { c2[i]++; moveForward(i); } else { c2[i]--; moveBackward(i); } } if (abs(c1[i]) < abs(c[i])) flg=true; } delay(delayTime); } } //Основной цикл void loop() { if (Serial.available() > 0) { //Пришла команда long c[3]={0,0,0}; int i; sign=1; i=0; incomingByte = Serial.read(); while (incomingByte!=';') { //Читаем входящую строку, признак конца строки знак "точка с запятой" if (c[i]==0) { if (incomingByte=='-') sign=-1; } if (incomingByte==',') { c[i]*=sign; sign=1; i++; } else if (incomingByte>='0' && incomingByte<='9') { c[i]=c[i]*10+incomingByte-'0'; } while (Serial.available() == 0) { delay(2); } incomingByte = Serial.read(); } c[i]*=sign; MoveSM(c[0],c[1],c[2]); //Вращаем двигатели на заданное число шагов Serial.println("OK"); //Отправляем компьютеру сообщение "OK", значит можно высылать новую команду } else delay(100); //Если ничего не пришло, ждём 1/10 секуды. }
Прошивка Ардуино для станка с чпу, драйверы uln2003, двигатели 28byj-48-5v Краткое описание
Контроллер: Ардуино
Драйверы ШД: ULN2003
Шаговые двигатели: 28BYJ-48-5V
Назначение: лазерная гравировка / выжигание
