Gnevko

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

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

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

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

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

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

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

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


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

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

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

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

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

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


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

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

Что делать:

 

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 просто вешает систему при нажатии любой кнопки. Хотелось что бы Т/С вернулся в тему и рассказал как бороться с косякам.

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

0

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


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

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

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

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

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


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

Войти

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


Войти сейчас