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);
}
Ну и запилил немного видео на тему теста:
Еще больше интересных статей
Проверка улучшения от Bondtech, k1/k1c upgrade kit
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Наконец у меня дошли руки поставить набор улучшений от Bondtech на при...
Elegoo Neptune 4. Печать на стекле.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Собираем 3D-принтер своими руками. Пошаговая инструкция. Часть 1.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Как уже анонсировал Серега, я начинаю публиковать цикл статей по сборк...
Комментарии и вопросы
Точно! Вчера невнимательно пос...
Великолепно!
На скрине винда...
Здравствуйте! Подскажите, пожа...
Доброго времени, подскажите пр...
Приветствую друзья, может кто...
попробовал печатать tpu 75 (он...