Gnevko

Электронная гитара для Paulimot 190-V (Arduino)

201 повідомлення у цій темі

Задача ясна. Попытаюсь сделать конфиругацию, что бы можно было использовать тот же код, так как две параллельных версии тянуть - это не рационально.

Это займет некоторое время, так как нужно будет не только переписать, но и протестировать (задизайнить корпус под джойстик и кнопки, напечатать, собрать и немного погонять систему в таком режиме). Усугубляется все это однако тем, что сейчас весна, а моя теплица не совсем еще готова (в частности автоматическая система смещивания удобрений и капельного полива, тоже на шаговых движках ... да я занаю, что извращенец :) ). Но постараюсь не затягивать.

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Не, не, можно не затягивать.

Можно только переписать код, а я обязуюсь довольно быстро всё это проверять на макете.

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

Либо дайте пояснения к коду, чтоб я мог включить мозг в нужном направлении.

Например, мне непонятно где нунчака влияет на экран. Есть нунчака, есть экран, нет нунчаки - экран неполный.

Позже фотки сделаю.

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Фотографии:

Белый и желтый проводки - нунчака в I2C.

Но можно и питание снять, эффект тот же.

 

Нунчака_нет~.jpg

Нунчака_есть~.jpg

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

И ещё подскажите как адаптировать под своё железо. шаг винта, скорость подачи.

Змінено користувачем Вуйко
0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

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

На данный момент перепечатал корпус, добавил джойстик и две кнопки:

 

large.IMG_2354.jpglarge.IMG_2355.jpg

 

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

Змінено користувачем Gnevko
0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Как настроить программу под свой станок?

 

На самом деле есть всего один параметр - это дистанция в миллиметрах, которые проходит суппорт за один микрошаг. Для этого нужно знать собственно кол-во микрошагов, которые вы выставили на своем драйвере шагового двигателя и шаг винта. В моем случае это 800 микрошагов и 2мм соответственно.

 

Настройка осуществляется в файле Config.h в разделе "Z Axe Stepper", название параметра - "MM_PER_Z_STEP":large.5cd47a1c01bb3_2019-05-0921_04_58.png

 

Как вы можете заметить, настройки для 3200, 1600 и 200 микрошагов закоментированы. Пример расчета так же приведен - 2мм деленные на 800 микрошагов, итого получаем 0.0025 мм на один микрошаг. Полученное таким образом ВАШЕ значение прописываем вместо 0.0025 в строчке:

 

#define MM_PER_Z_STEP 0.0025 //2mm / 800 steps;

 

Сохраняем файл, заливаем программу на Ардуино и все.

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
1 час назад, Gnevko сказал:

Как настроить программу под свой станок?

 

Добрый вечер купил недавно станок китаец bl 320 тоже хочу Эл. Гитару продаван комплектующих чпу говорит что на шпиндель пойдет инкрементальный энкодер их связать через шкивы и будет норм и какой шагов к лучше? У меня 160 патрон и мотор 0,75квт 

7d76625aded9caf3a77e1af3b499c6c87f65de19-2.jpg

Змінено користувачем Jeckripper
0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
1 час назад, Jeckripper сказал:

Добрый вечер купил недавно станок китаец bl 320 тоже хочу Эл. Гитару продаван комплектующих чпу говорит что на шпиндель пойдет инкрементальный энкодер их связать через шкивы и будет норм и какой шагов к лучше? У меня 160 патрон и мотор 0,75квт 

7d76625aded9caf3a77e1af3b499c6c87f65de19-2.jpg

И что самое интересное за 1 оборот продольного лимба суппорт передвигается на 26,5 мм

Змінено користувачем Jeckripper
0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
1 час назад, Gnevko сказал:

так как обработка этих двух кнопок реализована пока что только для нунчак.

Алексей, обнадёжьте сколько ждать? У меня как-то всё застыло.:(

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Новая версия программы (V-01-03-00): https://github.com/Gnevko/Lathe-Arduino-Assistant

 

Что нового?

1. Добавлена возможность переключаться между двумя режимами поддержки джойстика: с нунчакой и без. Параметр называется JOYSTICK_TYPE (находиться в файле Config.h, раздел "Joystick") и может принимать два значения:

  •  1 - поддержка нунчак включена
  •  2 - поддержка нунчак полностью удалена.

large.5cd7ef1070f86_2019-05-1212_01_19.png

 

2. Добавлены две новые кнопки:

  • JOYSTICK_BUTTON_A_PIN - кнопка для быстрого перемещения суппорта
  • JOYSTICK_BUTTON_B_PIN - сброс текущей позиции в ноль

Настройка номера пина на ардуине для этих кнопок так же осуществляется в файле Config.h (см предыдущий рисунок)

 

Подключение кнопок:

 

large.5cd7f87ec7895_2019-05-1212_41_06.png

Змінено користувачем Gnevko
0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Не получилось у меня запустить скетч. Точнее всё проверилось, всё загрузилось, но не всё работает.

Попутно возникли вопросы.

В файле config.h

#define JOYSTICK_TYPE 2 // 1 - with nunchuk support; 2 - only joystick
#define JOYSTICK_BUTTON_A_PIN   51 // 
#define JOYSTICK_BUTTON_B_PIN   47 //set to 0 

#define JOYSTICK_Z_FORWARD_PIN  39
#define JOYSTICK_Z_BACKWARD_PIN 35
#define JOYSTICK_X_FORWARD_PIN  51
#define JOYSTICK_X_BACKWARD_PIN 53

 

Смущают строки, что отмечены красным.

И кнопка, и румпель джойстика сидят на одном пине. 

Впрочем, попытка их развести не увенчалась успехом.

Следующее. В версии 2 было так:

#define JOYSTICK_Z_FORWARD_PIN  33
#define JOYSTICK_Z_BACKWARD_PIN 35

Т.е. схема подключения джойстика поменялась, не соответствует рисунку.

Впрочем, перетыкание в другие пины тоже не дало результата.

И последнее. Пока.

GJoystick.cpp

  pinModeFast(JOYSTICK_BUTTON_A_PIN, INPUT_PULLUP);
  pinModeFast(JOYSTICK_BUTTON_B_PIN, INPUT_PULLUP);

Задана подтяжка.

В то же время по схеме подключения новых кнопок (картинка) дополнительные кнопки замыкаются не на землю, а на 5В.

Как-то это неправильно.

Впрочем, оно работает, по крайней мере кнопка сброса в ноль, но при этом притухает экран.

Змінено користувачем OldMan
0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Строки пусть вас не смущают, так как поддержка второго шагового мотора на Х - это песня дааааааалекого будущего, поэтому JOYSTICK_X_FORWARD_PIN  вообще нигде не используется. По идее JOYSTICK_X_FORWARD_PIN и JOYSTICK_X_BACKWARD_PIN можно просто пока что удалить из кода. 

 

По поводу 5 вольт. Не только дополнительные кнопки, но и контакты джойстика замыкаются на +5 вольт. Все 4 пина объявлены как "входящие" и переходят в состояние HIGH, когда на них поступает +5 вольт. Как то так ... (возможно вы контакты джойстика на землю пытаетесь замкнуть?)

 

Схема подключения принципиально не изменилась, а все используемые пины специально вынесены в Config.h, что бы каждому было удобно использовать именно тот пин, до которого дотянется паяльник :) Если у вас JOYSTICK_Z_FORWARD_PIN установлен/припаян на  33ий пин, то пусть так и остается, в программе просто поставьте 33 вместо 39.

 

Перед тем, как выложить код, я его некоторое время все же тестировал на своей машине (как и обещал), так что давайте разбираться, что и куда у вас подключено, и ошибку мы точно найдем!

Змінено користувачем Gnevko
1

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Запустил я скетч. Кнопки я прикрутил сам и к прошлой версии. Работали. Правда я их замыкал но землю. Тогда смысл подтяжки есть.

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

Алексей, всё же остаётся большая просьба выбросить нунчаку из скетча вообще. Ну, чтоб и упоминания не было. Я не буду ставить нунчаку точно, а само её присутствие меня типает. Может без неё я лучше пойму логику скетча. Пока с этим у меня туго. Куча if'ов меня запутывает.

Спасибо.

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Ну вот и славненько. 

 

Лучше всего понимается логика собственноручно написанного скетча, да и то только первые пол года :)  Вы можете спокойно удалить (по очереди) у себя все ненужные If'ы, благо они находятся только в одном единственном файле GJoystick.cpp, за одно и в логике модуля разберетесь, может быть даже и баг какой заметите - все ж польза. 

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Как бороться с такой проблемой, все библиотеки подключены, но скечь их не видит, может не все закачалось?

77777123.jpg

88888123.jpg

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Это не то что бы библиотеки, скорее части одного скетча, который разнесен в несколько файлов (модулей, классов - называйте как хотите). Все ниже приведенные на изображении файлы должны лежать в одной папке вместе с LatheArduinoAssistant.ino:

large.5cdf8efd9c068_2019-05-186_48_40.png

 

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Так всё лежит,

папыпыф.jpg

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Тогда давайте поподробнее, что Вы имеете ввиду под словами "но скетч их не видит"? Компилятор выдает ошибку?

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
7 часов назад, Gnevko сказал:

Тогда давайте поподробнее, что Вы имеете ввиду под словами "но скетч их не видит"? Компилятор выдает ошибку?

Всё разобрался, был мой косяк, буду пробовать на железе, Спасибо,

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Кстати закралась мне в голову такая идея: сейчас скорость вращения шпинделя и дистанция отображается каждые 200 милисекунд, даже если особых изменений и нет, что есть неоправданный расход ресурсов ардуины, но если предположить, что отображение изменения скорости вращения шпинделя с 891 оборотов/мин. до 891,2 не важно, то это обновление экрана можно и опустить.  

1

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
23 часа назад, Gnevko сказал:

Кстати закралась мне в голову такая идея: сейчас скорость вращения шпинделя и дистанция отображается каждые 200 милисекунд, даже если особых изменений и нет, что есть неоправданный расход ресурсов ардуины, но если предположить, что отображение изменения скорости вращения шпинделя с 891 оборотов/мин. до 891,2 не важно, то это обновление экрана можно и опустить.

Наверное правильно,

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

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

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

1

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
8 минут назад, Gnevko сказал:

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

Я ориентируюсь на старую версию N2 там джойстик работал замыканием на землю, у меня даже резисторы подтяжки стоят, если всё управляется плюсом то вопросов нет, хотя минусом было бы наверное лучше.

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
, Gnevko написав:

Кстати закралась мне в голову такая идея: сейчас скорость вращения шпинделя и дистанция отображается каждые 200 милисекунд, даже если особых изменений и нет, что есть неоправданный расход ресурсов ардуины, но если предположить, что отображение изменения скорости вращения шпинделя с 891 оборотов/мин. до 891,2 не важно, то это обновление экрана можно и опустить.  

Так, можна ввести змінну

int minDeltaRPS; //мінімальне значення прирощування RPS для виводу на дисплей

Але тут треба вважати, що буде більш ресурсомістким, зайвий раз вивести значення RPS, чи ввести дві зайві змінні, віднімати поточне значення RPS від попереднього, порівнювати різницю з minDeltaRPS. А, враховуючи, що різниця може бути від'ємною, треба ще або викликати функцію int abs(int x), або робити два порівняння і виконувати логічне OR. Крім того, захаращується код. Тобто, я б просто, для економії ресурсів, не виводив RPS так часто. Можливо, двічі на секунду буде і досить.

Але дозвольте питання. Як саме Ви детектите зупинку шпинделя? Я ламав над цим голову і врешті зробив "тупо, по-воєнному". Можливо, Ви маєте більш елегантне рішення?

Це може бути критичним у нештатній ситуації, коли, наприклад, внаслідок завеликої подачі різця, відбувається просковзування паса на шківі і патрон зупиняється. На моєму ТВ-16 таке пару раз траплялося.

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Алексей меняю нумерацию пинов джойстика  и кнопки ускоренной, в Config.h но они не активируются и не работают может ещё где либо надо что то править?

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Створіть акаунт або увійдіть для коментування

Ви маєте бути користувачем, щоб залишити коментар

Створити акаунт

Зареєструйтеся для отримання акаунта. Це просто!


Зареєструвати акаунт

Увійти

Вже зареєстровані? Увійдіть тут.


Увійти зараз

  • Зараз на сторінці   0 користувачів

    Немає користувачів, які переглядають цю сторінку