Ну почему не пользовался, пользуюсь. Только не на 399 позиций...
Хорошо, тогда такой вопрос, какой же всё- таки выбрать индикатор ? Мне что- то кажется что 16х2 хоть и бюджетный но, и по возможностям тоже, бюджетный. А 20х4 будет удобнее. Или взять графический, с тачскрином ? Там наверное ещё больше удобств ? Ну, нет у меня сейчас денег на всё. И не знаю ни фига про МК... Может, когда дисплей подключу и смогу поэкспериментировать с разными способами ?
На компьютере очень удобно производить мелкие вычисления в экселе... Но с тем же успехом их можно выполнить и на калькуляторе.
Подумайте, что Вам нужно отображать на индикаторе - выбирайте достаточный, если здесь и нужен запас, то совсем не большой - на дальнейшее развитие. Судя по задачам, можно вообще обойтись 4-х разрядным 7-сегментным индикатором... Не пойму, почему 16х2 мало, Вы туда что выводить то собрались?
Я представления не имею, как и что будет выводиться ?. Хотел бы так, на дисплее есть строка: подача продольная- поперечная, в мм на оборот или резьба. И выбор типа - метрическая, Withwort, питчевая, модульная. Следующая строка, шаг резьбы в мм . В дюймовых, нитки на дюйм, в модульных - модуль. Выбор конуса.
Потом нужен шаг. Его нужно выбрать. Из чего ? Либо табличная, либо перебор по декадам. Можно хоть как реализовать или есть определённые ограничения ? Я же понятия не имею. Как я могу что сказать ? Когда начну работать, тогда и буду знать, а пока... Вот, сейчас нашёл индикатор от бытовой аудиоаппаратуры, думаю, как его подключить ? Подсветку нашёл, синхронизацию вроде тоже нашёл, попозже попробую подключить к Arduino. И понятия не имею, как дальше буду двигаться ? Там же нужно с библиотекой разобраться... В общем мне пока эта проблема абсолютно не ясна. Пока ясно одно, голые цифры мне не достаточны. Нужна ещё инфа, подсказывающая, что это за цифры ?
Вот, как то так думаю.
Думайте, что Вам нужно. Если недостаточно 2 строк, берите 4. Если нужно одновременно выводить одновременно 4 строки, конечно. Я на 8х2 индикаторе выводил название режима и 2 параметра. Пользовался сокращениями, естественно. Но это - дело вкуса. Но с тем, что и как нужно выводить на экран, нужно определиться ДО выбора индикатора. Лучше нарисовать "экраны" на бумаге с клеточками - очень для дизайна вывода информации помогает.
Некоторые дисплеи не имеют кирилицы, но все имеют программируемые символы. Вообще знакогенератор в дисплеях весьма оригинальный, там русские буквы есть только те, которых нет в англиском (по начертанию). Например, нет русской буквы А, используется англиская А, что создает трудности только на этапе программирования. Но есть программульки, конвертирующие русский в то, что нужно дисплею. Например, "Привет, мир!" будет выглядеть как "Ёpёіeї, јёp!" Это потому, что там такой знакогенератор:
Иначе говоря, любая русская фраза - это смесь латинских и русских символов, так что одновременно кирилицу и латиницу выводить можно :)
Спасибо всем за советы, но остался ещё один нерешенный вопрос. Допустим купил я ардуину, а дальше?
1. Какую прогу выбрать для печати 3D объектов? Например Mach3, но как подружить с ней ардуину???
2. Как зарпограммировать ардуину чтобы она понимала что её передаётся с этой проги на печать? Библиотека Stepper на www.arduino.cc есть, управлять как-то можно, но надо подружить прогу которая будет пересылать байты на печать с самой ардуиной.
Если Вы берете MACH3, то дуина Вам не потребуется, потому что мач сам рулит шаговыми двигателями. Прочитайте ветку сначала, я выкладывал прогу для ардуины (свою) и клиента для отсылки G-кодов. Ардуина нужна только если в ней зашить интерпретатор и посылать в нее G-коды по USB (или по сети, если с ethernet-шилдом). Я пока своим интерпретатором недоволен (нет режима разгон-торможение шаговиков, из-за этого сильно занижена скорость холостого прохода). Буду переписывать с использованием библиотеки AF-stepper/
Обычно в Поиске надолго вязну, поэтому решил спросить здесь, в надежде на быстрый ответ. Не оправдались, надежды...
С темой, конечно, не связано, связано с человеком, который помогает. Прошу прощения.
Если Вы берете MACH3, то дуина Вам не потребуется, потому что мач сам рулит шаговыми двигателями. Прочитайте ветку сначала, я выкладывал прогу для ардуины (свою) и клиента для отсылки G-кодов. Ардуина нужна только если в ней зашить интерпретатор и посылать в нее G-коды по USB (или по сети, если с ethernet-шилдом). Я пока своим интерпретатором недоволен (нет режима разгон-торможение шаговиков, из-за этого сильно занижена скорость холостого прохода). Буду переписывать с использованием библиотеки AF-stepper/
Хотелось бы взять нечто недорогое, и вполне работоспособное с Mach3.
Давайте по порядку. Сам по себе Mach3 не может рулить шаговыми двигателями, потому что Mach3 это программа, а шаговики - это железо, и между ними нужна прослойка. Для шаговиков нужны как минимум драйверы шаговых двигателей, а так же железяка, которая будет с компа с USB порта принимать данные и отправлять их на драйвер шаговых двигателей. Я нашел следующее железо:
Драйвер для шаговых двигателей, рассчитан на 2 ампера, на микросхеме L298N:
Так же хотел взять один драйвер помощнее, ампера на 3 - 4, чтобы самую тяжелую часть вдоль станины тягать, и мотор NEMA 23 (2.4A), он посильнее будет, а остальные двигателя (NEMA 17, 1.8A) чтобы работали через недорогой драйвер.
Так же нашел ещё один драйвер, кто-то на нем даже собирал маленький ЧПУ, но у него мощность маловата для моих целей:
Далее, основной мозг, который будет принимать команды с компа и раздавать команды драйверам. Вначале думал сделать на Arduino 2560, но нужна программа, самому писать времени много нету. Альтернативный вариант - нашел несколько таких железяк на www.ebay.com, какую выбрать пока не определился. Основным кртерием выбора - работа Mach3 через USB, ибо ноутбук и всё такое, LPT не актуален, объём данных пересылаемых с Mach3 очень мал, никакая параллельность не нужна. Вобщем вот железяки что я нашел:
Остаётся главный вопрос. Я собираю 3D принтер и мне нужно будет подавать материал (пластиковые стержни) на разогрев, а оттуда уже будет вылазить платик и печататься. Надо подавать пластик всё время, скорость подачи пластика должна зависеть от скорости подачи печатающей головки по 3-м осям. в Mach3 это можно настроить, или надо писать свою прогу для чтения файлов с командами (посути там строки) и передачи в порт? Или всё же заюзать ардуино 2560? Вобщем я немного в растерянности...
Есть предложение. Я могу доработать прогу для ардуины, сделать ускорение и торможение и т.д. чтобы управлять через неё. Ардуина 2560 стоит всего 18 баксов, самый недорогой вариант, + можно прошить все G-коды и М-коды. Там софтину и интерпретатором назвать трудно, примитивный парсер посути нужен, а так же управление шаговиками через интерполяцию. А софтину на комп хотел бы написать на WPF. Смотреться будет приятно, можно добавить любой функционал под любой станок... вобщем, преждагаю скооперироваться. Можем договориться о том что скинете мне последнюю версию исходников, пообщаемся о + и - по скайпу и напишем что-то полудобнее чем Mach3. Интерфейс последнего Mach3 у меня вызвал только отвращение.
Заниматься своим станком пока нет времени. Вернусь к нему не раньше сентября. Пока экспериментировал - изрядно расшатал механику. На скорую руку сделал компенсацию люфта для сверловки и сверлю платы. Исходников не жалко:
1. Проект для ардуины
2. клиент для PC на VS2010
Заниматься своим станком пока нет времени. Вернусь к нему не раньше сентября. Пока экспериментировал - изрядно расшатал механику. На скорую руку сделал компенсацию люфта для сверловки и сверлю платы. Исходников не жалко:
1. Проект для ардуины
2. клиент для PC на VS2010
Спасибо, будет больше свободного времени - опишу всё. Я больше ориентируюсь на много осей а не на 3, т.к. хочу сделать 3D принтер, хотя конечно фрезер (плоттер) тоже интересно, те же платы делать. В принтере надо ещё подавать материал (например пластик), следить за температурой и куча всего другого.
LPT себя ещё долго не изживёт. Как писал форумчанин, USB - это транспорт. Мы купили однажды переходник USB-LPT. Он не заработал. Так как отсылает команды "пакетом", а для ЧПУ нужно иметь возможность управлять отдельными пинами независимо друг от друга. Тут подойдёт переходник PCI-LPT, стоит ок 800 руб. Он полноценно эмулирует LPT - проверено неоднократно. Вообще лучше взять платку DCM4AXIC (http://www.cnccontrollers.ru/) стоит ок. 2300 руб., а всю остальную обвязку сделать на Ардуине. Платка нелохая, но иногда реле "глючат". Впрочем, их (платы) москвичи меняют. Но один небольшой минус - требуется LPT кабель с распайкой Центроникс и кроме того, распиновка в плате "зашита" жёстко. Ну и не надо забывать, что Винда тоже хочет иногда работать с LPT портом, поэтому возможны "глюки" (для этого лучше брать Windows ХР Embedded)
Эксплуатирую китайский станок. Для управление пришлось собрать простенький комп. Нехорошо это... Станок должен быть самодостаточен. Продаются, конечно, блоки управления, но стоят столько же, сколько и мой станок :)
Закладываю на стапеля новый станок, с более мощным шпинделем. Управление буду делать на ардуине - интерпретатор G-кода уже есть, нужно сделать правильные разгон/торможение, ну и читать G-код не через USB с компа, а с флешки или SD-карточки. Ну и экранчик, соответственно. Вот только по шаговым пока думаю... Может буду пробовать коллекторные с энкодерами.
Здесь даже думать не нужно, шаговику на шпинделе не место. Мало того что, ресурсов у него не хватает для этого дела, так ещё и орёт, аки свинья на бойне. Коллекторник тут самымй уместный.
И почему вы все так упираетесь в этот G-код ? Станок должен работать самостоятельно, без компьютера. Компьютер подключается только в случае сложной или серийной работы. Но, тогда и Arduino отключается и всё управление передаётся компьютеру.
Во-первых, шаговик не на шпиндель, а на его таскание (оси перемещений), во-вторых, на шпинделе более уместен все же безколлекторник, но за неимением...
А G-код - это просто. Интерпретатор простенький, код в ардуину загрузил - она и работает по нему самостоятельно, не буду же я ардуининой DXF обсчитывать!
Ребята, ну что, сдвинется дело с мёста ? Сколько времени прошло и ни какого прогресса... Сам я на программировании застрял, не моё это. Может кто- нибудь набросает, хотя бы фрагмент, скетча, как в Arduino ввести инфу с энкодера на 16 импульсов и как он её выдаст на выход, после вычислений, скажем, для шага резьбы 3 мм ? У самого есть мысль сигналы с энкодера подать на вход прерываний но, нет уверенности. Да и спалить, почём зря, боязно... Я уж не говорю про сами вычисления, для меня это вообще чудо.
Скетч делают не чтобы как ввести инфу, а чтобы ввести, а как - это Вы должны определиться самостоятельно . Так что это Вы сами себе вопросы написали. А то даже не понятно, про какой выход идет речь (выходов на ардуине много), и уж тем более никто не знает, что должен контроллер сделать с импульсами, чтобы они стали похожи на шаг резьбы 3мм :)
Написал же в начале, что я ожидаю... Вот что время делает.
Попробую ещё раз. На станке хочу поставить энкодер, (сначала хотел многопозиционный переключатель поставит ) с помощью которого можно было бы выбирать, подачу-шаг, после нажатия Пуск вся инфа должна сохраниться в памяти. Для точки отсчёта используется инфа о частоте вращения шпинделя. Arduino должен выдать сигнал Step/Dir на контроллер. Ну и, само собой индикатор.
На основании такой инфы, можете написать скетч ? Или ещё что- то нужно ?
Ну... времени прошло прилично, к какой схеме Вы пришли в результате - неизвестно.
Информации, конечно, недостаточно. Но, в результате понструктивного диалога, всю информацию можно получить :)
Я могу написать, но сейчас уже взялся за интересный проект. Освобожусь недельки через 2. Если к тому времени ничего не решится - обращайтесь, договоримся.
Куда ж я денусь ? Конечно подожду. По поводу схемы. Ну как я могу создать схему, если понятия не имею, какие выводы Arduino для чего нужно использовать ? По моим представлениям, ШИМ- выводы будут использованы для подключения к контроллеров, индикатора. Прерывания будут завязаны на один энкодер ввода и другой энкодер шпинделя. А это действительно, единственно приемлемый вариант ? На этот вопрос я ответить пока не могу. Когда научусь , тогда отвечу. Концевые и прочие атрибуты, будут потом подключаться, сейчас я даже над этим и не пытаюсь думать.
Если говорить откровенно то, я даже нашёл схему, которая почти подходит под мои требования, нужно только внести некоторые изменения и под Arduino подправить и программа там написана на C. Без плюсов. Я её пробовал в CodeVisionAVR загружать но, на этом мои познания заканчиваются. Самому переписать её для Arduino мне пока не по зубам. Скачал книгу CodeVisionAVR Пособие для начинающих М.Б.Лебедев 2008-600M.djvu, а STDU- viewer её не может открыть
Я имел в виду механическую схему, ну, может, электро-механическую, т.е. где что стоит, что ха сигналы подает, чем управляется... Короче "организационные мелочи". А вообще, задача мне довольно близка. А по поводу "подождать", я же не против, если кто другой возмется.
Пришли шаговики из китая. Буду ими крутить ходовые винты, но хочу обратную связь на энкодерах все равно, потому что под нагрузкой могут шаги пропускать.
Срвы с нужными характеристивами дорого. А обратную связь хочу не с ходового вала, а с объекта, им перемещаемого. Что-типа измерения люфтов, вибраций, калибровки ускорений... Со временем можно попробовать заменить шаговик на коллекторник.
Да какие там нужные характеристики ? Что Вы будете, лопатки турбин обрабатывать ? Первый попавшийся коллектроник, печка с того же автомобиля, удовлетворит любые амбиции, для токарного станка. Тихо и не дорого. Только, энкодер должен стоять всё таки на валу двигателя. Попытка поставить его в другом месте, доставит много неожиданных эффектов и не мало удивления, только не точность. Это будут и вибрации и могучие удары и даже звуки, похожие на завывания ветра в трубе. Проходили, слышали... Токарный станок, это не тот объект, в который нужно вкладывать уйму денег, чтобы создать нечто, способное поразить воображение, точностью обработки. Не упоминая про то, что это домашняя мастерская. Ребята, будьте реалистами.
Tosha_info, ну, Вам теперь отступать некуда, деньги потрачены, задуманное куплено. Только, imho, достанут Вас эти вопли и скрежет шаговиков. На микро шаг надежды мало, не те режимы на токарном станке.
Будем надеяться что у Вас, всё получится так, как задумано.
Ну, во первых, CNC - это не токарный станок, во-вторых, на микрошаге движки работают практически бесшумно.
Чтобы получить хороший результат, система должна быть охвачена общей обратной связью. А чтобы не было неожиданностей типа "стучит" или "пошло в разнос", есть такая наука - автоматика, где все считается. Заумная, конечно, но очень действенная.
Я хочу ввести общую обратную связь в основном для контроля и автокалибровки, основная работа будет вестись "по старинке"
Я не обсуждаю, что такое CNC, я просто говорю что, дома CNC НЕ НУЖЕН. На CNC нужно зарабатывать, а не развлекаться. Конечно, если у Вас есть в достаточном количестве денежные знаки то, да, можете сделать домой. Только, я бы, при наличии такого количества этих же знаков, сделал иначе.
Что такое автоматика прекрасно знаю. Мне бы скетч, а остальное я сам сделаю. Помогите пожалуйста.
Проблема в том, что я в этом деле полный нуль. Мне бы хотя бы скелет скетча, а мясо я бы поробовал нарастить. Конкретно, я не знаю как в скетче расписать ввод в контроллер данных с энкодера, запись и сохранение введённых параметров в память. Из этих ( введённых ) данных сформировать сигнал для управления контроллером и сравнивать инфу с энкодера шпинделя и винтов подач. Имеются в виду не энкодеры на винтах, а энкодеры на двигателях винтов подач. И ещё нужно выводить на индикатор инфу. В общем, мне кажется тут готовыми библиотеками не отделаться. Нужно ещё как- то эти библиотеки к делу пристроить... Мне это не по зубам, не моё это. Обещали помочь и, похоже, времени нет у людей. Ребята, может кто набросает блоки и связи между ними. А я бы попытался содержимое сотворить... Ну, надо же что- то делать. Сколько времени прошло,а дело с места даже не сдвинулось.
По отделности все эти примеры с подключением дисплея, энкодера, движков я проделал. Только пользы от них никакой. Ну, или я не могу их использовать с пользой. Помогите пожалуйста, если можете.
Тогда для начала посоветую AFCE - во-первых очень удобно писать алгоритмы, а во-вторых - она сразу по ним пишет код на с++ - если подойти с умом кнопок жать придется в 10 раз меньше))))
Энкодер вешаете исключительно на прерывание т.к. иначе вы будете пропускать с него сигналы
По алгоритму - читай выше. Пишешь, например в нем отдельные фукции-заглушки (пустые, которые ничего не делают) в нужных местах - типа тут сделать это, тут сделать то. Потом Пишешь каждую отдельную функцию как программу, вылизываешь её, и вставляешь вместо очередного блока в программу. И когда делаешь всё так по шагам - всё оказывается не так уж и сложно. По энкодеру скоро буду писать кусок - могу поделиться, но у меня он будет выполнять не контролирующую функцию как должен по идее, а управляющую - у меня вся система пляшет от показаний другого энкодера.
Если я правильно понимаю, AFCE это какая то программа ? Хорошо, поищу.
Я уже думал над таким вариантом, сначала написать заглушки, а потом наполнять их содержимым. Только, дальше этих размышлений, я не смог продвинуться. Ну, как например будет выглядеть заглушка, для управления контроллером ? Управлять двигателем можно, imho, по заранее составленной таблице подач- шагов и по расчёту на лету. Как я слышал, по таблицам якобы Arduino будет быстрее обрабатывать но, это всё, что я смог понять. Или, набрал я на энкодере величину подачи, скажем 0,05мм/об. На индикаторе я это могу показать, хотя не совсем так, как хочу но, это пока можно пропустить. А вот, как эту подачу теперь занести в память и в заглушку уравления контроллером ? И как из контроллера получить ( вывести ) сигнал ? В общем, на каждом шагу, передо мной как и перед любым новичком, встаёт масса вопросов и непоняток ? А ответы на них я сам, конечно же не смогу дать, ибо знаний нет. А у кого эти знания есть, нет времени или желания, возиться с такой ерундой. И со мной тоже.
Пойду, поищу AFSE, может и вправду, стану программистом ? Кстати, а программа, созданная в AFSE, совместима с Arduino ? Или потом ещё нужно будет её переводить для Arduino ?
На 95% совместима. По поводу сложности - вот вы опять пытаетесь режить всё и сразу - а надо решать постепенно. Большую задачу разбивайте на меньшие, эти меньшие ещё на меньшие и по итогу вы будете задавать четкие конкретные вопросы. Попробую объяснить на пальцах: первый оператор "если режим работы" - и у нас пошла ветка по управлению шаговиками, иначе - ветка по считыванию клавиатуры и подготовке параметров к работе. Забываем про одну ветку и занимаемся второй - точно так же разбиваем её на части из которых будет состоять наш рабочий режим - отдельно чтение параметров, отдельно анализирование положения, отдельно шагание и тд.
Вам, с Вашим уровнем знаний кажется что, всё просто и Вы не понимаете, почему другие, не могут этого понять ?
Ну например: подключил я энкодер, дисплей, по схемам и скетчам, взятыми с инета. И даже работают, могу менять по своим параметрам. А вот как сделать выбор позиции в строке и выбор параметра в этой позиции, в скетче нет. И как теперь я смогу это сам сделать ? Да ни в жисть ! Сначала нужно научиться.
Ладно, оставим как есть и попробуем другую заглушку, управление контроллером. И что я теперь могу придумать, если я никогда этого не делал ? О.К. для начала привяжем верёвки, между контроллером и Arduino. Энкодеры как положено привяжем на прерывания, здесь ума много не надо. Вход контроллера Step и Dir, привяжем к свободным ногам Arduino. В скетче назначин эти ножки выходами. Дык, я даже понятия не имею, какие и сколько нужно поставить скобок. А уж про пробелы перед ними и после них для меня вообще тайна, покрытая мраком. Сколько раз уже сталкивался, в одном скетче так пишут, в другом по другому и никаких комментариев. Пробовал сам писать и ничего не заработало, какую- то ошибку находит. А как эту ошибку устранить никто не знает. Ясное дело, после таких мучений фиг чего поймёшь...
А такой вопрос, скачал я AFCE и теперь думаю, из готовой программы, можно создать алгоритм ? Т. е. проделать обратное. Есть у меня программа, написанная для AVR AtMega644 вот её бы, переписать на Arduino, чтобы можно было по ней вникать в дебри программирования ?
По поводу знаний. Простите, новы лезите в прокраммирование микроконтроллеров, хоть и упрощенное, но всё же. И тут хочешь - не хочешь, а придется учит С++ хотя бы минимально - т.е базовые вещи
. И тут хочешь - не хочешь, а придется учит С++ хотя бы минимально - т.е базовые вещи
Иными словами: первая "функция-заглушка", которую необходимо реализовать - синтаксис языка. И это совсем не страшно. Там всего-то с десяток конструкций.
Ребята, вот например для Вас, перевести программу с языка С++ на котором пишут для AVR, на тот же C++, только для Arduino, трудная задача ?
Программа для AVR - это и есть программа для ардуино, потому что ардуино - суть AVR с некоторым обвесом. А программирование для ардуино возможно и на чистом с, есть тема и есть ссылки на материалы. Arduino IDE - это программирование на Wiring - это надстройка над с, облегчающая программирование за счет использования специализированных библиотек. При этом синтаксис и методы программирования (даже с-шные функции) остаются такими же.
Вот только когда пишешь на с, приходится учиться "заливать" программу в контроллер через программатор или через штатный avrdude, но с коиандной строки.
Кстати, я готов Вам помогать. Если пожелаете. Пришлите мне механическую и электрическую схемы - начнем разбираться.
Ну почему не пользовался, пользуюсь. Только не на 399 позиций...
Хорошо, тогда такой вопрос, какой же всё- таки выбрать индикатор ? Мне что- то кажется что 16х2 хоть и бюджетный но, и по возможностям тоже, бюджетный. А 20х4 будет удобнее. Или взять графический, с тачскрином ? Там наверное ещё больше удобств ? Ну, нет у меня сейчас денег на всё. И не знаю ни фига про МК... Может, когда дисплей подключу и смогу поэкспериментировать с разными способами ?
На компьютере очень удобно производить мелкие вычисления в экселе... Но с тем же успехом их можно выполнить и на калькуляторе.
Подумайте, что Вам нужно отображать на индикаторе - выбирайте достаточный, если здесь и нужен запас, то совсем не большой - на дальнейшее развитие. Судя по задачам, можно вообще обойтись 4-х разрядным 7-сегментным индикатором... Не пойму, почему 16х2 мало, Вы туда что выводить то собрались?
Я представления не имею, как и что будет выводиться ?. Хотел бы так, на дисплее есть строка: подача продольная- поперечная, в мм на оборот или резьба. И выбор типа - метрическая, Withwort, питчевая, модульная. Следующая строка, шаг резьбы в мм . В дюймовых, нитки на дюйм, в модульных - модуль. Выбор конуса.
Потом нужен шаг. Его нужно выбрать. Из чего ? Либо табличная, либо перебор по декадам. Можно хоть как реализовать или есть определённые ограничения ? Я же понятия не имею. Как я могу что сказать ? Когда начну работать, тогда и буду знать, а пока... Вот, сейчас нашёл индикатор от бытовой аудиоаппаратуры, думаю, как его подключить ? Подсветку нашёл, синхронизацию вроде тоже нашёл, попозже попробую подключить к Arduino. И понятия не имею, как дальше буду двигаться ? Там же нужно с библиотекой разобраться... В общем мне пока эта проблема абсолютно не ясна. Пока ясно одно, голые цифры мне не достаточны. Нужна ещё инфа, подсказывающая, что это за цифры ?
Вот, как то так думаю.
Думайте, что Вам нужно. Если недостаточно 2 строк, берите 4. Если нужно одновременно выводить одновременно 4 строки, конечно. Я на 8х2 индикаторе выводил название режима и 2 параметра. Пользовался сокращениями, естественно. Но это - дело вкуса. Но с тем, что и как нужно выводить на экран, нужно определиться ДО выбора индикатора. Лучше нарисовать "экраны" на бумаге с клеточками - очень для дизайна вывода информации помогает.
Ну, хорошо, тогда вопрос, а кириллицу можно организовать на дисплее ? Или только латиница ? А смешанную т.е. одновременно кириллицу и латиницу ?
Некоторые дисплеи не имеют кирилицы, но все имеют программируемые символы. Вообще знакогенератор в дисплеях весьма оригинальный, там русские буквы есть только те, которых нет в англиском (по начертанию). Например, нет русской буквы А, используется англиская А, что создает трудности только на этапе программирования. Но есть программульки, конвертирующие русский в то, что нужно дисплею. Например, "Привет, мир!" будет выглядеть как "Ёpёіeї, јёp!" Это потому, что там такой знакогенератор:
Иначе говоря, любая русская фраза - это смесь латинских и русских символов, так что одновременно кирилицу и латиницу выводить можно :)
Ясно, попробую сегодня вечером подключить дисплейчик от бытовой аудиоапаратуры. Спасибо за инфу.
Спасибо всем за советы, но остался ещё один нерешенный вопрос. Допустим купил я ардуину, а дальше?
1. Какую прогу выбрать для печати 3D объектов? Например Mach3, но как подружить с ней ардуину???
2. Как зарпограммировать ардуину чтобы она понимала что её передаётся с этой проги на печать? Библиотека Stepper на www.arduino.cc есть, управлять как-то можно, но надо подружить прогу которая будет пересылать байты на печать с самой ардуиной.
Благодарю за ответ!!!
Если Вы берете MACH3, то дуина Вам не потребуется, потому что мач сам рулит шаговыми двигателями. Прочитайте ветку сначала, я выкладывал прогу для ардуины (свою) и клиента для отсылки G-кодов. Ардуина нужна только если в ней зашить интерпретатор и посылать в нее G-коды по USB (или по сети, если с ethernet-шилдом). Я пока своим интерпретатором недоволен (нет режима разгон-торможение шаговиков, из-за этого сильно занижена скорость холостого прохода). Буду переписывать с использованием библиотеки AF-stepper/
Выкроил сегодня время, запустил индикатор от бытового аудиоцентра. Сейчас попробую поэкспериментировать с выводом символов...
Попутно вопрос, а семисегментные индикаторы, как подключать к Arduino ?
Попутно вопрос, а семисегментные индикаторы, как подключать к Arduino ?
Встречно ответ http://bit.ly/Oovkkk
И бурчание в догонку: а так ли уж это связанно с темой "Станок ЧПУ"?
Обычно в Поиске надолго вязну, поэтому решил спросить здесь, в надежде на быстрый ответ. Не оправдались, надежды...
С темой, конечно, не связано, связано с человеком, который помогает. Прошу прощения.
Если Вы берете MACH3, то дуина Вам не потребуется, потому что мач сам рулит шаговыми двигателями. Прочитайте ветку сначала, я выкладывал прогу для ардуины (свою) и клиента для отсылки G-кодов. Ардуина нужна только если в ней зашить интерпретатор и посылать в нее G-коды по USB (или по сети, если с ethernet-шилдом). Я пока своим интерпретатором недоволен (нет режима разгон-торможение шаговиков, из-за этого сильно занижена скорость холостого прохода). Буду переписывать с использованием библиотеки AF-stepper/
Хотелось бы взять нечто недорогое, и вполне работоспособное с Mach3.
Давайте по порядку. Сам по себе Mach3 не может рулить шаговыми двигателями, потому что Mach3 это программа, а шаговики - это железо, и между ними нужна прослойка. Для шаговиков нужны как минимум драйверы шаговых двигателей, а так же железяка, которая будет с компа с USB порта принимать данные и отправлять их на драйвер шаговых двигателей. Я нашел следующее железо:
Драйвер для шаговых двигателей, рассчитан на 2 ампера, на микросхеме L298N:
www.ebay.com/itm/Dual-H-Bridge-DC-Stepper-Motor-Drive-Controller-Board-Module-L298N-arduino-/251080674810
www.buyincoins.com/details/new-v3-arduino-driver-motor-controller-shield-l298n-2a-2-motors-module-product-11952.html
Так же хотел взять один драйвер помощнее, ампера на 3 - 4, чтобы самую тяжелую часть вдоль станины тягать, и мотор NEMA 23 (2.4A), он посильнее будет, а остальные двигателя (NEMA 17, 1.8A) чтобы работали через недорогой драйвер.
Так же нашел ещё один драйвер, кто-то на нем даже собирал маленький ЧПУ, но у него мощность маловата для моих целей:
www.ebay.com/itm/EasyDriver-Drive-Stepper-Motor-Driver-Board-For-Arduino-A112-/251104515746
Основные двигателя для всех осей кроме привода самой тяжелой части:
www.ebay.com/itm/5pcs-NEMA17-78-oz-in-CNC-stepper-motor-1-8A-/290701903974
www.ebay.com/itm/3pcs-NEMA17-78-oz-in-CNC-stepper-motor-stepping-motor-1-8A-/300740288327
Далее, основной мозг, который будет принимать команды с компа и раздавать команды драйверам. Вначале думал сделать на Arduino 2560, но нужна программа, самому писать времени много нету. Альтернативный вариант - нашел несколько таких железяк на www.ebay.com, какую выбрать пока не определился. Основным кртерием выбора - работа Mach3 через USB, ибо ноутбук и всё такое, LPT не актуален, объём данных пересылаемых с Mach3 очень мал, никакая параллельность не нужна. Вобщем вот железяки что я нашел:
www.ebay.com/itm/ws/eBayISAPI.dll - самый недорогой, всего 20 баксов, 5 осей, работает с Mach3...
www.amazon.com/Sabrent-DB25F-Parallel-Printer-USB-DB25F/dp/B000CRWRZ2 - переходник, чтобы LPT не пугал
www.ebay.com/itm/DIY-Engraving-Machine-MACH3-USB-CNC-4-Axis-Interface-Breakout-Board-Adapter-/180904632361 - 4 оси
www.ebay.com/itm/CNC-Router-5-Axis-TB6560-3-5A-Stepper-Motor-Driver-Board-Controller-/180869830251 - 5 осей
www.ebay.com/itm/6-Axis-MACH3-Isolated-Interface-Breakout-Board-Adapter-High-Speed-Optocoupler-/170831830940 - 6 ОСЕЙ!!!!!!!!!!!!!!!, целых 6, как поддерживает Mach3 !!!
www.ebay.com/itm/5-Axis-CNC-Kit-TB6560-Stepper-Motor-Driver-LED-Display-Handle-Controller-/170831202095 - а этот хоть и на 5 осей, но в нем в комплекте есть индикатор в цифре и выносной пульт... не знаю на сколько это вообще нужно, но оно есть )))
===================================================
Остаётся главный вопрос. Я собираю 3D принтер и мне нужно будет подавать материал (пластиковые стержни) на разогрев, а оттуда уже будет вылазить платик и печататься. Надо подавать пластик всё время, скорость подачи пластика должна зависеть от скорости подачи печатающей головки по 3-м осям. в Mach3 это можно настроить, или надо писать свою прогу для чтения файлов с командами (посути там строки) и передачи в порт? Или всё же заюзать ардуино 2560? Вобщем я немного в растерянности...
ОЧЕНЬ ЖДУ КОНКРЕТНЫХ СОВЕТОВ!!!
За что заранее весьма признателен :)
Вы ничего не путаете, с этими железками ?
Вы ничего не путаете, с этими железками ?
Вроде бы нет, если хотите узнать что-то конкретное то задавайте конкретные вопросы, от абстрактных мало пользы.
Есть предложение. Я могу доработать прогу для ардуины, сделать ускорение и торможение и т.д. чтобы управлять через неё. Ардуина 2560 стоит всего 18 баксов, самый недорогой вариант, + можно прошить все G-коды и М-коды. Там софтину и интерпретатором назвать трудно, примитивный парсер посути нужен, а так же управление шаговиками через интерполяцию. А софтину на комп хотел бы написать на WPF. Смотреться будет приятно, можно добавить любой функционал под любой станок... вобщем, преждагаю скооперироваться. Можем договориться о том что скинете мне последнюю версию исходников, пообщаемся о + и - по скайпу и напишем что-то полудобнее чем Mach3. Интерфейс последнего Mach3 у меня вызвал только отвращение.
Заниматься своим станком пока нет времени. Вернусь к нему не раньше сентября. Пока экспериментировал - изрядно расшатал механику. На скорую руку сделал компенсацию люфта для сверловки и сверлю платы. Исходников не жалко:
1. Проект для ардуины
2. клиент для PC на VS2010
Заниматься своим станком пока нет времени. Вернусь к нему не раньше сентября. Пока экспериментировал - изрядно расшатал механику. На скорую руку сделал компенсацию люфта для сверловки и сверлю платы. Исходников не жалко:
1. Проект для ардуины
2. клиент для PC на VS2010
Спасибо, будет больше свободного времени - опишу всё. Я больше ориентируюсь на много осей а не на 3, т.к. хочу сделать 3D принтер, хотя конечно фрезер (плоттер) тоже интересно, те же платы делать. В принтере надо ещё подавать материал (например пластик), следить за температурой и куча всего другого.
LPT себя ещё долго не изживёт. Как писал форумчанин, USB - это транспорт. Мы купили однажды переходник USB-LPT. Он не заработал. Так как отсылает команды "пакетом", а для ЧПУ нужно иметь возможность управлять отдельными пинами независимо друг от друга. Тут подойдёт переходник PCI-LPT, стоит ок 800 руб. Он полноценно эмулирует LPT - проверено неоднократно. Вообще лучше взять платку DCM4AXIC (http://www.cnccontrollers.ru/) стоит ок. 2300 руб., а всю остальную обвязку сделать на Ардуине. Платка нелохая, но иногда реле "глючат". Впрочем, их (платы) москвичи меняют. Но один небольшой минус - требуется LPT кабель с распайкой Центроникс и кроме того, распиновка в плате "зашита" жёстко. Ну и не надо забывать, что Винда тоже хочет иногда работать с LPT портом, поэтому возможны "глюки" (для этого лучше брать Windows ХР Embedded)
Эксплуатирую китайский станок. Для управление пришлось собрать простенький комп. Нехорошо это... Станок должен быть самодостаточен. Продаются, конечно, блоки управления, но стоят столько же, сколько и мой станок :)
Закладываю на стапеля новый станок, с более мощным шпинделем. Управление буду делать на ардуине - интерпретатор G-кода уже есть, нужно сделать правильные разгон/торможение, ну и читать G-код не через USB с компа, а с флешки или SD-карточки. Ну и экранчик, соответственно. Вот только по шаговым пока думаю... Может буду пробовать коллекторные с энкодерами.
Здесь даже думать не нужно, шаговику на шпинделе не место. Мало того что, ресурсов у него не хватает для этого дела, так ещё и орёт, аки свинья на бойне. Коллекторник тут самымй уместный.
И почему вы все так упираетесь в этот G-код ? Станок должен работать самостоятельно, без компьютера. Компьютер подключается только в случае сложной или серийной работы. Но, тогда и Arduino отключается и всё управление передаётся компьютеру.
Во-первых, шаговик не на шпиндель, а на его таскание (оси перемещений), во-вторых, на шпинделе более уместен все же безколлекторник, но за неимением...
А G-код - это просто. Интерпретатор простенький, код в ардуину загрузил - она и работает по нему самостоятельно, не буду же я ардуининой DXF обсчитывать!
Ребята, ну что, сдвинется дело с мёста ? Сколько времени прошло и ни какого прогресса... Сам я на программировании застрял, не моё это. Может кто- нибудь набросает, хотя бы фрагмент, скетча, как в Arduino ввести инфу с энкодера на 16 импульсов и как он её выдаст на выход, после вычислений, скажем, для шага резьбы 3 мм ? У самого есть мысль сигналы с энкодера подать на вход прерываний но, нет уверенности. Да и спалить, почём зря, боязно... Я уж не говорю про сами вычисления, для меня это вообще чудо.
Скетч делают не чтобы как ввести инфу, а чтобы ввести, а как - это Вы должны определиться самостоятельно . Так что это Вы сами себе вопросы написали. А то даже не понятно, про какой выход идет речь (выходов на ардуине много), и уж тем более никто не знает, что должен контроллер сделать с импульсами, чтобы они стали похожи на шаг резьбы 3мм :)
Написал же в начале, что я ожидаю... Вот что время делает.
Попробую ещё раз. На станке хочу поставить энкодер, (сначала хотел многопозиционный переключатель поставит ) с помощью которого можно было бы выбирать, подачу-шаг, после нажатия Пуск вся инфа должна сохраниться в памяти. Для точки отсчёта используется инфа о частоте вращения шпинделя. Arduino должен выдать сигнал Step/Dir на контроллер. Ну и, само собой индикатор.
На основании такой инфы, можете написать скетч ? Или ещё что- то нужно ?
Ну... времени прошло прилично, к какой схеме Вы пришли в результате - неизвестно.
Информации, конечно, недостаточно. Но, в результате понструктивного диалога, всю информацию можно получить :)
Я могу написать, но сейчас уже взялся за интересный проект. Освобожусь недельки через 2. Если к тому времени ничего не решится - обращайтесь, договоримся.
Ну что ж, придётся подчиниться, грубому нажиму.
Куда ж я денусь ? Конечно подожду. По поводу схемы. Ну как я могу создать схему, если понятия не имею, какие выводы Arduino для чего нужно использовать ? По моим представлениям, ШИМ- выводы будут использованы для подключения к контроллеров, индикатора. Прерывания будут завязаны на один энкодер ввода и другой энкодер шпинделя. А это действительно, единственно приемлемый вариант ? На этот вопрос я ответить пока не могу. Когда научусь , тогда отвечу. Концевые и прочие атрибуты, будут потом подключаться, сейчас я даже над этим и не пытаюсь думать.
Если говорить откровенно то, я даже нашёл схему, которая почти подходит под мои требования, нужно только внести некоторые изменения и под Arduino подправить и программа там написана на C. Без плюсов. Я её пробовал в CodeVisionAVR загружать но, на этом мои познания заканчиваются. Самому переписать её для Arduino мне пока не по зубам. Скачал книгу CodeVisionAVR Пособие для начинающих М.Б.Лебедев 2008-600M.djvu, а STDU- viewer её не может открыть
Runtime Error!
Program: C:\Program Files\STDU Viewer\STDUViewerApp.exe
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
Прям невезуха какая- то... В общем, буду ждать и надеяться.
Я имел в виду механическую схему, ну, может, электро-механическую, т.е. где что стоит, что ха сигналы подает, чем управляется... Короче "организационные мелочи". А вообще, задача мне довольно близка. А по поводу "подождать", я же не против, если кто другой возмется.
Железо уже купил, только пока нет времени этим заняться. Как только освобожусь - буду делать, скину результаты ;-)
Да я всякому рад, только ведь, нет никого... Ладно, сколько ждал, подожду ещё.
Пришли шаговики из китая. Буду ими крутить ходовые винты, но хочу обратную связь на энкодерах все равно, потому что под нагрузкой могут шаги пропускать.
Не могут, а будут. Спрашивается, зачем ставить шаговик, если энкодер будете применять ? Тогда уж ставьте серво... В чём смысл Вашего выбора ?
Срвы с нужными характеристивами дорого. А обратную связь хочу не с ходового вала, а с объекта, им перемещаемого. Что-типа измерения люфтов, вибраций, калибровки ускорений... Со временем можно попробовать заменить шаговик на коллекторник.
Я планирую на шаговых всё делать. Двигло уже есть, контроллеры и интерфейсы тоже, осталось CNC железо взять (рельсы и т.д.)
Да какие там нужные характеристики ? Что Вы будете, лопатки турбин обрабатывать ? Первый попавшийся коллектроник, печка с того же автомобиля, удовлетворит любые амбиции, для токарного станка. Тихо и не дорого. Только, энкодер должен стоять всё таки на валу двигателя. Попытка поставить его в другом месте, доставит много неожиданных эффектов и не мало удивления, только не точность. Это будут и вибрации и могучие удары и даже звуки, похожие на завывания ветра в трубе. Проходили, слышали... Токарный станок, это не тот объект, в который нужно вкладывать уйму денег, чтобы создать нечто, способное поразить воображение, точностью обработки. Не упоминая про то, что это домашняя мастерская. Ребята, будьте реалистами.
Tosha_info, ну, Вам теперь отступать некуда, деньги потрачены, задуманное куплено. Только, imho, достанут Вас эти вопли и скрежет шаговиков. На микро шаг надежды мало, не те режимы на токарном станке.
Будем надеяться что у Вас, всё получится так, как задумано.
Ну, во первых, CNC - это не токарный станок, во-вторых, на микрошаге движки работают практически бесшумно.
Чтобы получить хороший результат, система должна быть охвачена общей обратной связью. А чтобы не было неожиданностей типа "стучит" или "пошло в разнос", есть такая наука - автоматика, где все считается. Заумная, конечно, но очень действенная.
Я хочу ввести общую обратную связь в основном для контроля и автокалибровки, основная работа будет вестись "по старинке"
Я не обсуждаю, что такое CNC, я просто говорю что, дома CNC НЕ НУЖЕН. На CNC нужно зарабатывать, а не развлекаться. Конечно, если у Вас есть в достаточном количестве денежные знаки то, да, можете сделать домой. Только, я бы, при наличии такого количества этих же знаков, сделал иначе.
Что такое автоматика прекрасно знаю. Мне бы скетч, а остальное я сам сделаю. Помогите пожалуйста.
Так а что там вашего скетча то? В библиотеках для драйвера двигателья есть всё, что вам надо.
Проблема в том, что я в этом деле полный нуль. Мне бы хотя бы скелет скетча, а мясо я бы поробовал нарастить. Конкретно, я не знаю как в скетче расписать ввод в контроллер данных с энкодера, запись и сохранение введённых параметров в память. Из этих ( введённых ) данных сформировать сигнал для управления контроллером и сравнивать инфу с энкодера шпинделя и винтов подач. Имеются в виду не энкодеры на винтах, а энкодеры на двигателях винтов подач. И ещё нужно выводить на индикатор инфу. В общем, мне кажется тут готовыми библиотеками не отделаться. Нужно ещё как- то эти библиотеки к делу пристроить... Мне это не по зубам, не моё это. Обещали помочь и, похоже, времени нет у людей. Ребята, может кто набросает блоки и связи между ними. А я бы попытался содержимое сотворить... Ну, надо же что- то делать. Сколько времени прошло,а дело с места даже не сдвинулось.
По отделности все эти примеры с подключением дисплея, энкодера, движков я проделал. Только пользы от них никакой. Ну, или я не могу их использовать с пользой. Помогите пожалуйста, если можете.
Тогда для начала посоветую AFCE - во-первых очень удобно писать алгоритмы, а во-вторых - она сразу по ним пишет код на с++ - если подойти с умом кнопок жать придется в 10 раз меньше))))
Энкодер вешаете исключительно на прерывание т.к. иначе вы будете пропускать с него сигналы
По алгоритму - читай выше. Пишешь, например в нем отдельные фукции-заглушки (пустые, которые ничего не делают) в нужных местах - типа тут сделать это, тут сделать то. Потом Пишешь каждую отдельную функцию как программу, вылизываешь её, и вставляешь вместо очередного блока в программу. И когда делаешь всё так по шагам - всё оказывается не так уж и сложно. По энкодеру скоро буду писать кусок - могу поделиться, но у меня он будет выполнять не контролирующую функцию как должен по идее, а управляющую - у меня вся система пляшет от показаний другого энкодера.
Если я правильно понимаю, AFCE это какая то программа ? Хорошо, поищу.
Я уже думал над таким вариантом, сначала написать заглушки, а потом наполнять их содержимым. Только, дальше этих размышлений, я не смог продвинуться. Ну, как например будет выглядеть заглушка, для управления контроллером ? Управлять двигателем можно, imho, по заранее составленной таблице подач- шагов и по расчёту на лету. Как я слышал, по таблицам якобы Arduino будет быстрее обрабатывать но, это всё, что я смог понять. Или, набрал я на энкодере величину подачи, скажем 0,05мм/об. На индикаторе я это могу показать, хотя не совсем так, как хочу но, это пока можно пропустить. А вот, как эту подачу теперь занести в память и в заглушку уравления контроллером ? И как из контроллера получить ( вывести ) сигнал ? В общем, на каждом шагу, передо мной как и перед любым новичком, встаёт масса вопросов и непоняток ? А ответы на них я сам, конечно же не смогу дать, ибо знаний нет. А у кого эти знания есть, нет времени или желания, возиться с такой ерундой. И со мной тоже.
Пойду, поищу AFSE, может и вправду, стану программистом ? Кстати, а программа, созданная в AFSE, совместима с Arduino ? Или потом ещё нужно будет её переводить для Arduino ?
На 95% совместима. По поводу сложности - вот вы опять пытаетесь режить всё и сразу - а надо решать постепенно. Большую задачу разбивайте на меньшие, эти меньшие ещё на меньшие и по итогу вы будете задавать четкие конкретные вопросы. Попробую объяснить на пальцах: первый оператор "если режим работы" - и у нас пошла ветка по управлению шаговиками, иначе - ветка по считыванию клавиатуры и подготовке параметров к работе. Забываем про одну ветку и занимаемся второй - точно так же разбиваем её на части из которых будет состоять наш рабочий режим - отдельно чтение параметров, отдельно анализирование положения, отдельно шагание и тд.
Вам, с Вашим уровнем знаний кажется что, всё просто и Вы не понимаете, почему другие, не могут этого понять ?
Ну например: подключил я энкодер, дисплей, по схемам и скетчам, взятыми с инета. И даже работают, могу менять по своим параметрам. А вот как сделать выбор позиции в строке и выбор параметра в этой позиции, в скетче нет. И как теперь я смогу это сам сделать ? Да ни в жисть ! Сначала нужно научиться.
Ладно, оставим как есть и попробуем другую заглушку, управление контроллером. И что я теперь могу придумать, если я никогда этого не делал ? О.К. для начала привяжем верёвки, между контроллером и Arduino. Энкодеры как положено привяжем на прерывания, здесь ума много не надо. Вход контроллера Step и Dir, привяжем к свободным ногам Arduino. В скетче назначин эти ножки выходами. Дык, я даже понятия не имею, какие и сколько нужно поставить скобок. А уж про пробелы перед ними и после них для меня вообще тайна, покрытая мраком. Сколько раз уже сталкивался, в одном скетче так пишут, в другом по другому и никаких комментариев. Пробовал сам писать и ничего не заработало, какую- то ошибку находит. А как эту ошибку устранить никто не знает. Ясное дело, после таких мучений фиг чего поймёшь...
А такой вопрос, скачал я AFCE и теперь думаю, из готовой программы, можно создать алгоритм ? Т. е. проделать обратное. Есть у меня программа, написанная для AVR AtMega644 вот её бы, переписать на Arduino, чтобы можно было по ней вникать в дебри программирования ?
Обратно оно не работает.
По поводу знаний. Простите, новы лезите в прокраммирование микроконтроллеров, хоть и упрощенное, но всё же. И тут хочешь - не хочешь, а придется учит С++ хотя бы минимально - т.е базовые вещи
Иными словами: первая "функция-заглушка", которую необходимо реализовать - синтаксис языка. И это совсем не страшно. Там всего-то с десяток конструкций.
Да где ж эти конструкции почитать ?! Я скачал несколько книг в формате .djvu но, они почему- то не желают открываться, run time error...
Ребята, вот например для Вас, перевести программу с языка С++ на котором пишут для AVR, на тот же C++, только для Arduino, трудная задача ?
Ребята, вот например для Вас, перевести программу с языка С++ на котором пишут для AVR, на тот же C++, только для Arduino, трудная задача ?
Вот только когда пишешь на с, приходится учиться "заливать" программу в контроллер через программатор или через штатный avrdude, но с коиандной строки.
Кстати, я готов Вам помогать. Если пожелаете. Пришлите мне механическую и электрическую схемы - начнем разбираться.
Я честно говоря уже и не надеялся на Вас, думал, достал Вас своими вопросами и Вы просто отошли в сторонку.
Но, раз такое дело, поехали. Отправил.
2 laputakoshte
Ну за...... уже одинаковыми постами! ОДНОГО было вполне достаточно. А так, это уже СПАМ!
Призываю его игнорировать!
AlexFisher, Вы бы отмашку дали, получили или нет, схему ? Я вроде как, жду...