Gnevko

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

200 сообщений в этой теме

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

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

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

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

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Фотографии:

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

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

 

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

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

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

#174489 Опубликовано: (изменено)

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

Изменено пользователем Вуйко
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

#178719 Опубликовано: (изменено)

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

#178724 Опубликовано: (изменено)

1 час назад, Gnevko сказал:

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

 

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

7d76625aded9caf3a77e1af3b499c6c87f65de19-2.jpg

Изменено пользователем Jeckripper
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

#178726 Опубликовано: (изменено)

1 час назад, Jeckripper сказал:

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

7d76625aded9caf3a77e1af3b499c6c87f65de19-2.jpg

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

Изменено пользователем Jeckripper
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Gnevko сказал:

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

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

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

#179139 Опубликовано: (изменено)

Новая версия программы (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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

#179815 Опубликовано: (изменено)

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

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

В файле 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

#179821 Опубликовано: (изменено)

Строки пусть вас не смущают, так как поддержка второго шагового мотора на Х - это песня дааааааалекого будущего, поэтому 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас