MMRU (Multi Material Russian Upgrade) Remix on MMU2 (Часть 3: Тест механики и железа)
- Кто не в теме: начало эпопеи, её продолжение...
Мне кажется придумал классное название проекту:
MMRU - Multi Material Russian (или RAMPS) Upgrade!
По моему оригинально? А Вы что думаете?
Итак железо собрано, все кабели готовы для подключения к Orange PI. Но я не стал спешить и решил запилить простой скетч, для тестирования железа.
А для начала немного подробностей, что сделано:
1. Напечатал корпус (верхнюю крышку) + блок управления, на 5 ледов и 5 бутонов. Соответственно для выбора филамента, вручную не обращаясь к средствам клипера или его меню. Быстро, удобно, молодежно.
Светодиоды и кнопки подключил к дисплейному порту, как и описывал ранее. Все прекрасно фунциклирует и радует меня, что этот этап позади - настала пора кодить и получать удовольствие от лагов :)2. Забегая на перед - выяснил что драйверы все таки греются, видимо сказывается ток удержания шаговиков. А без этого никак, особенно у селектора филамента. Может быть потом я буду снимать с них напряжение, но это будет уже ясно только после долгого тестирования в реальной работе. Поэтому был установлен вентилятор, сверху на крышке и запитан от D10 выхода на хотэнд вроде, так что в теории вентилятором можно будет еще и программно управлять.3. Установил для тестов 3 тефлоновых входящих трубки филамента - на первое время тестов пойдет. Если уж крайние будут работать, то и средние тоже.Итак, пока это добро не установлено в шкаф к принтеру, как я и говорил - сделал тестовый скетч для проверки всех датчиков, концевиков, кнопок, светодиодов и конечно же шаговиков.
Светодиоды, по очереди перемигиваются, при нажатии кнопок и срабатывании сенсоров - в терминал валятся сообщения. Ну а для управления моторами, нужно зажать одновременно одну из трех первых кнопок (для каждого мотора соответственно) и 4 или 5 кнопками можно подвигать их туда обратно.
Вот скетч:
/*
MMRU by Sergey Krutyko
*/
#define LED1 39
#define LED2 37
#define LED3 35
#define LED4 33
#define LED5 31
#define KEY1 32
#define KEY2 47
#define KEY3 45
#define KEY4 43
#define KEY5 41
#define STOPX 3
#define FINDA 14
#define STEPS 160
#define FAN 10
#define X_STEP_PIN 54
#define X_DIR_PIN 55
#define X_ENABLE_PIN 38
#define Y_STEP_PIN 60
#define Y_DIR_PIN 61
#define Y_ENABLE_PIN 56
#define E_STEP_PIN 26
#define E_DIR_PIN 28
#define E_ENABLE_PIN 24
long ms;
bool bl;
byte led=4;
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(KEY1, INPUT_PULLUP);
pinMode(KEY2, INPUT_PULLUP);
pinMode(KEY3, INPUT_PULLUP);
pinMode(KEY4, INPUT_PULLUP);
pinMode(KEY5, INPUT_PULLUP);
pinMode(STOPX, INPUT_PULLUP);
pinMode(FINDA, INPUT_PULLUP);
pinMode(FAN, OUTPUT);
digitalWrite(FAN,HIGH);
Serial.begin(115200);
Serial.println('Starting Test');
}
void setled(byte led, byte s) {
if (led==0) digitalWrite(LED1, s);
if (led==1) digitalWrite(LED2, s);
if (led==2) digitalWrite(LED3, s);
if (led==3) digitalWrite(LED4, s);
if (led==4) digitalWrite(LED5, s);
}
void loop_keys() {
if (digitalRead(KEY1)==LOW) Serial.println('KEY 1 Presset');
if (digitalRead(KEY2)==LOW) Serial.println('KEY 2 Presset');
if (digitalRead(KEY3)==LOW) Serial.println('KEY 3 Presset');
if (digitalRead(KEY4)==LOW) Serial.println('KEY 4 Presset');
if (digitalRead(KEY5)==LOW) Serial.println('KEY 5 Presset');
if (digitalRead(STOPX)==HIGH) Serial.println('ENDSTOP Selector ON');
if (digitalRead(FINDA)==LOW) Serial.println('FINDA Sensor ON');
if ((digitalRead(KEY1)==LOW)and(digitalRead(KEY4)==LOW)) {
stepper_left(X_STEP_PIN,X_DIR_PIN,X_ENABLE_PIN,STEPS);
}
if ((digitalRead(KEY1)==LOW)and(digitalRead(KEY5)==LOW)) {
stepper_right(X_STEP_PIN,X_DIR_PIN,X_ENABLE_PIN,STEPS);
}
if ((digitalRead(KEY2)==LOW)and(digitalRead(KEY4)==LOW)) {
stepper_left(Y_STEP_PIN,Y_DIR_PIN,Y_ENABLE_PIN,STEPS/5);
}
if ((digitalRead(KEY2)==LOW)and(digitalRead(KEY5)==LOW)) {
stepper_right(Y_STEP_PIN,Y_DIR_PIN,Y_ENABLE_PIN,STEPS/5);
}
if ((digitalRead(KEY3)==LOW)and(digitalRead(KEY4)==LOW)) {
stepper_left(E_STEP_PIN,E_DIR_PIN,E_ENABLE_PIN,STEPS);
}
if ((digitalRead(KEY3)==LOW)and(digitalRead(KEY5)==LOW)) {
stepper_right(E_STEP_PIN,E_DIR_PIN,E_ENABLE_PIN,STEPS);
}
}
void loop_leds() {
bl=!bl;
if (bl) digitalWrite(LED_BUILTIN, HIGH); else digitalWrite(LED_BUILTIN, LOW);
setled(led,LOW);
led++;
if (led>4) led=0;
setled(led,HIGH);
}
void stepper_left(int p1,int p2,int p3, int st) {
pinMode(p1,OUTPUT);
pinMode(p2,OUTPUT);
pinMode(p3,OUTPUT);
digitalWrite(p3,LOW); // enable
digitalWrite(p2,LOW); // left
for (byte i=0; i
digitalWrite(p1,HIGH);
delay(1);
digitalWrite(p1,LOW);
delay(1);
}
}
void stepper_right(int p1,int p2,int p3,int st) {
pinMode(p1,OUTPUT);
pinMode(p2,OUTPUT);
pinMode(p3,OUTPUT);
digitalWrite(p3,LOW); // enable
digitalWrite(p2,HIGH); // right
for (byte i=0; i
digitalWrite(p1,HIGH);
delay(1);
digitalWrite(p1,LOW);
delay(1);
}
}
void loop() {
if (ms
ms=millis()+500;
loop_leds();
}
loop_keys();
delay(100);
}
Ну и запилил немного видео на тему теста:
Еще больше интересных статей
Умерли термисторы и концевик по y, creality ender 3 s1
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Настройка Marlin для датчика Biqu microprobe для платы BigTreeTech_SKR_mini_E3_V2.0
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Настраиваем прошивку Marlin и заливаем её в 3D принтер
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
если вы будете использовать то...
В общем RepRap надо использова...
Orca разработана на основе Прю...
При автовыравнивании после 12...
Полиамид и полипропилен с 30%...
Неделю назад пришел с сопла 0....
Один из моих принтеров K...