Gnevko

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

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

Приветствую всех!

Учусь писать для ардуино и, в соседней теме ваяю нечто подобное. Но дошел до прерываний и застрял, а без них резьбу не нарезать.

Можете указать участок кода, который отвечает за нарезку резьбы?

Заранее благодарен.

0

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


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

Не проходит верификацию.

Ошибка.JPG

 

Если я правильно догадываюсь, то "No such ..." - это "No such file found" или что то в этом роде.

Очень похоже на то, что вы загрузили (скачали) только сам скетч, но не все остальные файлы программы, такие как Config.h, GDisplay.h, GDisplay.cpp и так далее:

large.5ab1f10ed78a1_2018-03-2106_29_41-GitHub-Gnevko_Lathe-Arduino-AssistantatV-01-02-BETTA.jpg

 

Все файлы должны находиться в той же папке, что и сам скетч "LatheArduinoAssistant.ino".

 

PS: можно было бы конечно все запихнуть и в один файл скетча, то тогда бы он получился просто гиганским, и ни о какой прозрачности и легкочитаемости и удобстве при внесении изменений речи бы уже не шло.

0

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


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

Не проходит верификацию.

Ошибка.JPG

Так воно ж пише що файла немає (Config.h).

0

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


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

Итак всё по порядку с картинками.

1 скачал с сайта архив

2 распаковал архив, на С:/ Arduino в настойках программы указал путь." С:/Arduino"

3 создал папку, и скопировал все файлы в одну папку LatheArduinoAssistant

4 запустил файл LatheArduinoAssistant.ino

5 запустил проверку нажав кнопку с птичкой, "ПРОВЕРИТЬ"

Скачал zip.JPG

Распаковал.JPG

Безымянныйввв.JPG

кггггг.JPG

Ошибка энкодер.2.JPG

0

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


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

Тепер у Вас пішло далі ніж попередній раз, тепер немає "Encoder.h"

0

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


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

@Вуйко , прочитайте уважніше цей пост цієї теми, схоже просто упустили

 

0

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


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

Доречі, в Config.h це описано 9_9

//https://github.com/PaulStoffregen/Encoder
// This optional setting causes Encoder to use more optimized code,
// It must be defined before Encoder.h is included.
#include <Encoder.h>

 

1

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


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

прочитайте уважніше цей пост цієї теми, схоже просто упустили

Это мой первый опыт в программировании, поэтому косяков будет много, заранее спасибо за то что Вы мне помогаете, 

Я так понимаю что надо скачать файл в посте указанным вами добавить в папку со скетчем.

0

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


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

Там є посилання на бібліотеку "encoder", цю бібліотеку треба додати в "arduino ide", і там теж не один файл.

Детальніше про додавання бібліотек:

https://www.arduino.cc/en/Guide/Libraries

0

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


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

Спасибо, Sebra, за помощь! От себя добавлю, что в  Config.h указаны так же и другие библиотеки, которые понадобятся для зборки. 

0

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


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

Спасибо, Sebra, за помощь! От себя добавлю, что в  Config.h указаны так же и другие библиотеки, которые понадобятся для зборки

Cкачал все библиотеки указные начале файла  Config.h подключил, судя по последнему сообщению не хватает библиотеки джойстика?

Сксчал библиотеки и поставил..JPG

Нет джойстика.JPG

0

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


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

Таки да, ускользнула библиотека от зоркого ока :)

 

https://github.com/timtro/wiinunchuck-h

0

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


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

Таки да, ускользнула библиотека от зоркого ока :)

 Это Вы забыли или я проступил? Я так понимаю я первый повторяю вашу разработку, иду по граблям.

0

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


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

Конечно же я, джойстик не задумывался изначально как основной элемент управления, поэтому и "подключение" библиотеки к нему я не вынес в Config.h. Но нет ничего постояннее временного.  

 

Хождение по граблям - дело не благодарное, поэтому вам огромное спасибо! 

0

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


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

Движемся  дальше с библиотеками вроде всё понятно.

выдало такое сообщение

sketch\GStepper.cpp: In member function 'void GStepper::calculateSpeedForHandWheel(long int)':

GStepper.cpp:88: error: 'class TimerThree' has no member named 'attachInterruptFunction'

     Timer3.attachInterruptFunction(callbackTimer, _deltaTimeForNextStep);

            ^

sketch\GStepper.cpp: In member function 'void GStepper::setSpeed(float)':

GStepper.cpp:131: error: 'class TimerThree' has no member named 'attachInterruptFunction'

       Timer3.attachInterruptFunction(callbackTimer, _deltaTimeForNextStep);

              ^

exit status 1

'class TimerThree' has no member named 'attachInterruptFunction'

Ошибка 777.JPG

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

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


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

Что делать:

 

1) Перейти к файлу TimerThree.h в библтотеке TimerThree и переименовать функции:

 

 void attachInterrupt(void (*isr)()) __attribute__((always_inline)) {

и 

void attachInterrupt(void (*isr)(), unsigned long microseconds) __attribute__((always_inline)) {

 

в 

 

void attachInterruptFunction(void (*isr)()) __attribute__((always_inline)) {

и

void attachInterruptFunction(void (*isr)(), unsigned long microseconds) __attribute__((always_inline)) {

 

соответственно (в двух местах).

 

Или скачайте файл TimerThree.h из этого сообщения TimerThree.h.

 

Или скачайте файл по ссылке:

https://github.com/Gnevko/Lathe-Arduino-Assistant/blob/master/ThreeTimeFix/TimerThree.h

 

Откуда эти грабли:

определение функции attachInterrupt конфликтует с другими библиотеками, проблема в инете известная, одно из решений - просто переименовать функции. Возможно кто то подскажет более элегантный способ ее решения.

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

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


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

Скачал ваши файлы, вроде верификацию проходит, пишет какую ту ошибку по папке "Темп" но я думаю это не критично пробовал на ноуте ХР и на планшете W7 на прошивке от Олега с чир ру тоже самое, но мегу прошивает.

Теперь вопрос по джойстику который подключен к выводам    №35 и35 я так понимаю что нужно сделать подтяжку к плюсу через резистор.

0

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


Посилання на повідомлення
Поділитися на інших сайтах
В 21.03.2018 в 05:08, Astrotur сказал:

Приветствую всех!

Учусь писать для ардуино и, в соседней теме ваяю нечто подобное. Но дошел до прерываний и застрял, а без них резьбу не нарезать.

Можете указать участок кода, который отвечает за нарезку резьбы?

Заранее благодарен.

 

Благодарю всех откликнувшихся!

0

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


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

 

Благодарю всех откликнувшихся!

Блин, печально, я бы помог но с вопросом программирования столкнулся только пару недель назад..

1

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


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

 

Благодарю всех откликнувшихся!

Це, вочевидь, був сарказм. Але він тут недоречний.

Ані ТС, ані хто інший Вам нічого не винні. А не відповіли Вам, мабуть, тому, що Ваше запитання не було цілком коректне.

> Но дошел до прерываний и застрял, а без них резьбу не нарезать.

Різьбу не можна нарізати без відповідного інструменту. Без переривань це цілком можливо. Але якщо Ви розумієте, навіщо Вам переривання, тоді дивує Ваша наступна сентенція:

> Можете указать участок кода, который отвечает з а нарезку резьбы?

Я не повторюю шлях ТС з ряду причин. Я навіть не аналізував його код, але маю серйозний сумнів, що в нього є ділянка коду, що "відповідає за нарізання різьби". У мене, наприклад, навіть в меню нема режиму з такою назвою. Поясню чому. З точки зору програми немає значення, ріжете Ви різьбу, чи просто обдираєте матеріал. Але є синхронний режим (мм подачі на обертання шпінделя) і асинхронний (мм подачі на секунду або хвилину).  Різьба ріжеться у синхронному режимі. А там - яку швидкість подачі Ви дасте - те і отримаєте.

Тепер щодо переривань. Ризикну ввімкнути телепата і припустити, що Ви мали на увазі переривання від датчику обертів шпінделя. На жаль, не пишу для Ардуіно, тому використовую інші бібліотеки і можу дати лише загальні поради.

Принцип переривання полягає в тому, що якщо воно сталося (наприклад, прийшов імпульс на певний контакт GPIO), основна програма перериває роботу і виконується так звана функція обробки переривання (яка зазвичай має вищий пріоритет). Після чого продовжується виконання основної програми. Якщо я вірно зрозумів (і запозичив - реверанс в бік ТС) ідею ТС, то функція обробки переривань за сигналом від датчику обертів шпинделя робить часові мітки для вимірювання швидкості його обертання. Таким чином, маючи швидкість обертання шпинделя, Ви можете синхронізувати з нею швидкість подачі.

Щодо конкретної реалізації обробки переривань - це залежить від апаратно-програмних засобів, які Ви використовуєте. Навряд чи хто схоче писати весь цей мотлох на низькому рівні. Зазвичай люди використовують готові бібліотеки, в яких передбачена обробка переривань. На жаль, як я згадував, у мене не Ардуіно, тому не можу запропонувати конкретний приклад. Десь тут у гілці щось таке пробігало... ага знайшов:

> attachInterrupt(0, callbackSpindle, RISING); //PIN2

У мене інакше, але принцип, гадаю, однаковий: Ви "вішаєте" функцію обробки переривання (яку саме - залежить від Вас) на певний пін GPIO (до якого підключений датчик шпинделя), тож коли на нього приходить імпульс, ця функція виконується.

Сподіваюся, пояснив не надто плутано. Зробив, що міг.

З повагою

 

1

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


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

Це, вочевидь, був сарказм.

Каюсь, не сдержался.

 

6 часов назад, lyo сказал:

А не відповіли Вам, мабуть, тому, що Ваше запитання не було цілком коректне.

Сомневаюсь, ведь, Вы ответили, хотя вопрос был адресован не Вам, т.к.

6 часов назад, lyo сказал:

На жаль, не пишу для Ардуіно

 

6 часов назад, lyo сказал:

Ані ТС, ані хто інший Вам нічого не винні.

ТС открыл тему, в которой он делится своими наработками и говорит "Спасибо за отзывы и за то, что не прошли мимо". 

Элементарные правила хорошего тона подразумевают на приветствие отвечать тем-же, а не игнором. Или, если никто никому ничего должен, то можно и не здороваться?! 

 

6 часов назад, lyo сказал:

тоді дивує Ваша наступна сентенція

Вы не правы, в сообщении не было и намека на нравоучения, в отличие от Вашего изречения:

6 часов назад, lyo сказал:

Різьбу не можна нарізати без відповідного інструменту. Без переривань це цілком можливо.

 

 

В любом случае, уважаемый @lyo , благодарю Вас за попытку помочь в решении моего вопроса!

0

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


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

Нема за що.

Ось ще посилання, де написано, як це робиться саме з Ардуіно:

https://doc.arduino.ua/ru/prog/AttachInterrupt

 

З повагою

0

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


Посилання на повідомлення
Поділитися на інших сайтах
В 12 Март 2018 г. в 22:07, Вуйко сказал:
В 12 Март 2018 г. в 09:45, Gnevko сказал:

+ прийдется добавить две кнопки для сброса показаний позиции суппорта в ноль и для ускоренной подачи. 

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

Алексей Вы не ответили на вопрос. Или всё же искать такую нунчаку от Wii. как я понимаю она подсоединяется по шине I2C.

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

 

0

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


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

Итак собрал макет гитары Т/С на столе, но сожалению как гитара она не работает,

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

Не работает ручной энкодер, вообще не реагирует такое впечатление что его нет, энкодер работает проверил осциллографом,

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

Ну и нунчака от  vil просто вешает систему при нажатии любой кнопки. Хотелось что бы Т/С вернулся в тему и рассказал как бороться с косякам.

Кому интересно могу выложить фото или видео.

1

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


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

Владимир, давайте попробуем оживить тему. Я хочу повторить этот вариант гитары.

Поэтому заинтересован в "хождении по граблям".

Выложите, пожалуйста, фото как это выглядит на Вашем макете и как что и куда подключено.

Спасибо.

0

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


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

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

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

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

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


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

Увійти

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


Увійти зараз

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

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