Gnevko

Користувачі
  • Продажи

    0/0
  • Покупки

    0/0
  • Публікації

    152
  • Зареєстрований

  • Відвідування

Усі публікації користувача Gnevko

  1. Приветствую всех обитателей форума! Как то так получилось, что увлекли меня видео блоги ДМ, Дмитрия, BrunS, Виктора Леонтьева и прочих творческих людей. Результатом этого увлечения стало приобретение маленького настольного китайца под немецкой маркой Paulimot: И было мне счастье, пока руки не дошли до попыток нарезать резьбу. Оказалось, что менять шестерни в гитаре то еще удовольствие. Поэтому было принято решение от шестерен отказаться вообще и заменить их на связку шаговый двигатель + энкодер + Arduino. В интернете подобные решения встречаются достаточно часто и на какую то особенность моя попытка уж точно не претендует. Комплектующие, которые были заказаны для данного проекта: 1) Шаговый двигатель NEMA 23 (4.2A) + драйвер к нему 2) Электронный "маховик" на 100 импульсов 3) Джойстик 4х позиционный с "залипанием" 4) Энкодер на шпиндель 5) Экран для вывода информации 4х строчный 6) Энкодер для выбора шага резьбы и/или подачи и других плюшек, 20 позиций на оборот 7) Передача 1:1 на ремне 8) и собственно Arduino Mega 2560 (их уж было у меня) Шаговик с драйвером пришли достаточно быстро, и дабы хоть как то приступить к программированию, был сделан небольшой испытательный стенд За неимением пока что джойстика для включения подачи, решил прикрутить нунчаку от Wii, и ... это решение настолько оказалось удобным, что решил его так же включить в будущую финальную версию. Одним этим джойстиком можно управлять не только подачей суппорта, но и поперечными салазками (в будущем). А пока что на данный момент получилось как то так:
  2. Так это ... как его ... что то вы меня озадачили - в новой версии все кнопки: две на джойстике (вперед, назад), ускоренная подача и сброс в ноль управляются как бы через плюс. Может я вас не правильно понял и вы о каких то других кнопках (хотя вроде бы других и нет, не считая энкодера) ?
  3. Кстати закралась мне в голову такая идея: сейчас скорость вращения шпинделя и дистанция отображается каждые 200 милисекунд, даже если особых изменений и нет, что есть неоправданный расход ресурсов ардуины, но если предположить, что отображение изменения скорости вращения шпинделя с 891 оборотов/мин. до 891,2 не важно, то это обновление экрана можно и опустить.
  4. Тогда давайте поподробнее, что Вы имеете ввиду под словами "но скетч их не видит"? Компилятор выдает ошибку?
  5. Это не то что бы библиотеки, скорее части одного скетча, который разнесен в несколько файлов (модулей, классов - называйте как хотите). Все ниже приведенные на изображении файлы должны лежать в одной папке вместе с LatheArduinoAssistant.ino:
  6. З альбому Paulimot Project

  7. Ну вот и славненько. Лучше всего понимается логика собственноручно написанного скетча, да и то только первые пол года Вы можете спокойно удалить (по очереди) у себя все ненужные If'ы, благо они находятся только в одном единственном файле GJoystick.cpp, за одно и в логике модуля разберетесь, может быть даже и баг какой заметите - все ж польза.
  8. Строки пусть вас не смущают, так как поддержка второго шагового мотора на Х - это песня дааааааалекого будущего, поэтому 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. Перед тем, как выложить код, я его некоторое время все же тестировал на своей машине (как и обещал), так что давайте разбираться, что и куда у вас подключено, и ошибку мы точно найдем!
  9. З альбому Paulimot Project

  10. Новая версия программы (V-01-03-00): https://github.com/Gnevko/Lathe-Arduino-Assistant Что нового? 1. Добавлена возможность переключаться между двумя режимами поддержки джойстика: с нунчакой и без. Параметр называется JOYSTICK_TYPE (находиться в файле Config.h, раздел "Joystick") и может принимать два значения: 1 - поддержка нунчак включена 2 - поддержка нунчак полностью удалена. 2. Добавлены две новые кнопки: JOYSTICK_BUTTON_A_PIN - кнопка для быстрого перемещения суппорта JOYSTICK_BUTTON_B_PIN - сброс текущей позиции в ноль Настройка номера пина на ардуине для этих кнопок так же осуществляется в файле Config.h (см предыдущий рисунок) Подключение кнопок:
  11. З альбому Paulimot Project

  12. Как настроить программу под свой станок? На самом деле есть всего один параметр - это дистанция в миллиметрах, которые проходит суппорт за один микрошаг. Для этого нужно знать собственно кол-во микрошагов, которые вы выставили на своем драйвере шагового двигателя и шаг винта. В моем случае это 800 микрошагов и 2мм соответственно. Настройка осуществляется в файле Config.h в разделе "Z Axe Stepper", название параметра - "MM_PER_Z_STEP": Как вы можете заметить, настройки для 3200, 1600 и 200 микрошагов закоментированы. Пример расчета так же приведен - 2мм деленные на 800 микрошагов, итого получаем 0.0025 мм на один микрошаг. Полученное таким образом ВАШЕ значение прописываем вместо 0.0025 в строчке: #define MM_PER_Z_STEP 0.0025 //2mm / 800 steps; Сохраняем файл, заливаем программу на Ардуино и все.
  13. З альбому Paulimot Project

  14. Господа, дело сдвинулось с мертвой точки, проект с теплицой вроде бы завершен, полив работает и есть немного времени продолжить этот проект. На данный момент перепечатал корпус, добавил джойстик и две кнопки: Следующий шаг - подключить это все к плате, потом правка и доработка кода, так как обработка этих двух кнопок реализована пока что только для нунчак.
  15. З альбому Paulimot Project

  16. З альбому Paulimot Project

  17. З альбому Всякое разное

  18. Задача ясна. Попытаюсь сделать конфиругацию, что бы можно было использовать тот же код, так как две параллельных версии тянуть - это не рационально. Это займет некоторое время, так как нужно будет не только переписать, но и протестировать (задизайнить корпус под джойстик и кнопки, напечатать, собрать и немного погонять систему в таком режиме). Усугубляется все это однако тем, что сейчас весна, а моя теплица не совсем еще готова (в частности автоматическая система смещивания удобрений и капельного полива, тоже на шаговых движках ... да я занаю, что извращенец ). Но постараюсь не затягивать.
  19. Ну вот, кажется я вовремя вернулся Спасибо Старому Человеку (OldMan) за сообщение в личку. Сообщения о новых постах в теме на мой эл. почтовый ящик как не доходили так и не доходят, так что я уж подумал, что тема давно умерла и никого не интересует. Ан нет и это отрадно! Дабы не отвечать на уже решенные вопросы предлагаю "начать с чистого листа" и насущные проблемы озвучить еще раз. Я постараюсь разобраться (в силу возможностей и ума). Единственное на что с самого начала стоит обратить внимание во всем этом безобразии - это экранирование всего чего только можно, особенно кабели подключения сенсоров, кнопок, экрана и тд. Даже такой маленький станок как у меня умудряется выдавать не хилые наводящие токи (особенно при включении и остановке) и как следствие этого всевозможные совершенно не предсказуемые зависания, сбои изображения на экране и прочие мелкие пакости. Так же забегая вперед - нунчаки. Панове! Это ж игрушка и была прикручена временно (Правда у меня она как то прижилась, так и осталась - нет ничего постояннее временного!). Тем не менее это I2C подключение, а I2C подключение - это первый враг систем, жизненно зависящих от прерываний ибо I2C подключение само использует прерывания (если я не ошибаюсь). Так что тут палка о двух концах - быстродействие и стабильность взамен удобству (возможно сомнительному) и чем быстрее вы от этой нунчаки избавитесь, тем скорее всего будет лучше.
  20. Что делать: 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 конфликтует с другими библиотеками, проблема в инете известная, одно из решений - просто переименовать функции. Возможно кто то подскажет более элегантный способ ее решения.
  21. Конечно же я, джойстик не задумывался изначально как основной элемент управления, поэтому и "подключение" библиотеки к нему я не вынес в Config.h. Но нет ничего постояннее временного. Хождение по граблям - дело не благодарное, поэтому вам огромное спасибо!
  22. Таки да, ускользнула библиотека от зоркого ока https://github.com/timtro/wiinunchuck-h
  23. Спасибо, Sebra, за помощь! От себя добавлю, что в Config.h указаны так же и другие библиотеки, которые понадобятся для зборки.
  24. Если я правильно догадываюсь, то "No such ..." - это "No such file found" или что то в этом роде. Очень похоже на то, что вы загрузили (скачали) только сам скетч, но не все остальные файлы программы, такие как Config.h, GDisplay.h, GDisplay.cpp и так далее: Все файлы должны находиться в той же папке, что и сам скетч "LatheArduinoAssistant.ino". PS: можно было бы конечно все запихнуть и в один файл скетча, то тогда бы он получился просто гиганским, и ни о какой прозрачности и легкочитаемости и удобстве при внесении изменений речи бы уже не шло.
  25. З альбому Paulimot Project