Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
Железный тред. Станок с нуля.
Хай булка. Я не так давно проходя мимо ночного универмага( читай помойка ) прибрал к рукам старый системник. В нем оказалась материнка 845PE с LPT портом. Потряс знакомых с универа в поисках недостающих деталей для компа - вытряс: видюху MX440 с DVI выходом, ж\д 160 Гб IDE, БП 300 Вт - остальное было в наличии. В итоге за неделю был собран комп средней категории года так 2003 . Поставил винду, обрастил студией( 2005 ). И начал баловать с LPT портом. Думал что прокатит как с COM портом общение через CreateFile\WriteFile\ReadFile. Но винда меня обломала - WriteFile висит на отправке байтиков. Решение проблемы было в дерганье логических уровней на ногах порта - ACK, STROBE. "Ну это тупизм" - подумал я, и нарыл чудо библиотеку Inpout32. В ней всего две важные функции - Out32 и In32( нам не нужен ). И процесс пошел - поморгал светодиодами подцепленными на шину данных. Кароч успех.
Ах да, к чему это всё. А к тому, что в этом треде я буду выкладывать подробное описание как собрать механику 3-х осевого станка + как приспособить Mach3 для управления этой механикой. Или, по желанию пекарей, как написать свой контроллер станка ̶c̶ ̶б̶л̶е̶к̶д̶ж̶е̶к̶о̶м̶ ̶и̶ ̶ш̶л̶ю̶х̶а̶м̶и̶.̶
ПРЕДУПРЕЖДЕНИЕ. Иногда я буду отходить от стандартных подходов в электронике и механике. Не стоит меня тыкать носом в "вот погляди как люди делают" - без вас уже все просмотрено "как люди делают".
ЗАМЕТКА. Если кто захочет следовать за мной в создании и тестировании, то нужно спиратить - Proteus - нужен для отладки схем в реальном времени. Чертежи будут сделаны в Компасе. Позже напишу версию. Также нужно спиратить Sprint Layout 5 - в нем будут нарисованы платы. А также TinyCAD.
НЕОБХОДИМАЯ ПОДГОТОВКА. Нужно шарить в электронике на уровне "нарисовать плату, перенести ЛУТом рисунок, протравить, просверлить, запаять, поймать баги", столярные навыки по минимуму - сделать прямой рез\распил. Инструментов нужно просто дохерища: даже начинать описывать не буду - ибо долго и нудно. Иметь хотя бы одну красную бумажку денег( 5000 р ). Много, много энтузиазма.
ГДЕ ЭТО ВСЕ ДЕЛАТЬ? А где угодно, я дома все делаю - все что нужно под рукой.
А пока о том, что я подготовил для начала. Для начала электроника.
Начнем с пробной схемы контроллера. В протеусе я нарисовал пробную схему на распространенных триггерах К155ТМ2( в инете гуляет схема на К555ТМ7 - у меня в наличии нет ТМ7 поэтому горожу огород )
Красным обведены переключатели задающие двоичный код поступающий на каждые четыре триггера отвечающие за каждый "двигатель"( для наглядности поставлены светодиоды". Желтым обведены переключатели задающие то на какой двигатель пойдет двоичный код. У нас двоичный код - это просто указание того какую из четырех обмоток шагового двигателя включить в данный момент.
Остальными цветами обведены "двигатели". В аттаче есть файл с протеусовской моделью - там можно побаловать и подробнее разобрать что и как работает.
Если же убрать все лишнее из схемы то получится такая предварительная схемка
На этом пока все - ибо поздно уже - спать пора . На днях будет продолжение: силовая электроника для управления шаговыми двигателями. Если на схемах есть баги( а они вероятнее всего есть - сам рисовал ) - пишите сюда.
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
Ответ: Железный тред. Станок с нуля.
Сообщение от mr.DIMAS
"Ну это тупизм" - подумал я, и нарыл чудо библиотеку Inpout32. В ней всего две важные функции - Out32 и In32( нам не нужен ). И процесс пошел - поморгал светодиодами подцепленными на шину данных. Кароч успех.
Меня никто не спрашивал, но не могу промолчать про LаPTи
Пару слов о LPT:
1) Было просто программировать под Win 9x, затем (из соображений безопасности) прямую работу с памятью порта выгородили за дрова.
_outp
2) В NT-ях можно решить проблему и альтернативно, используя готовые библиотеки типа inpout32.dll
Out32
2.2) Другой вариант - использование драйвера GiveIO.sys, снимающего запрет для пользовательских приложений на прямую запись/чтение в порт/из порта. Можно испытать неудобство от собственноручной интеграции системного объекта такого уровня в ОСь: правка ветки реестра, добавление в системную директорию. Зато фигачить работу с портом можно хоть в асм-вставке.
_outp
2.3) С интеграцией функционала inpout32.dll могут возникнуть некоторые проблемы. Уж не помню - в формате библиотеки импорта была проблема или ещё чего, но в итоге для MinGW я решил проблему реализовав динамическую загрузку библиотеки (LoadLibrary / GetProcAddress).
На всякий случай деклс для блитца:
.lib "inpout32.dll"
LPT_WRITE(port%,val%):"Out32"
3) Отдельной проблемой может оказаться поиск компа с рабочим LPT. USB-LPT адаптеры не гарантирую счастья низкоуровневой работы (из-за "абстракции" в работе с адресами), а WriteFile() не всегда обеспечивает необходимые возможности (ситуацию может спасти PCI-LPT переходник).
4) Если вам лень идти в магазин или там таких раритетов нет, то LPT-удлинитель (для Data-секции разъёма, например) вполне можно сделать из Ethernet-кабеля (необходимо учесть заземление, и вообще - на свой страх эксперимент)
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
Ответ: Железный тред. Станок с нуля.
Пока я рисую схемы из электрической части вот вам фотки переделки моих шаговых двигателе( 2 честно куплены у барыг, 1 честно спизжен из родного универа ).
Разбираем двигатель ( справа статор от второго двигателя уже переделанного )
Слева подопытный, справа прооперированный .
Обмоточки :3
Ротор шаговика - в центре кольцевой магнит, по бокам зубцы ротора.
Изначальное соединение обмоток - биполярное извращенное - извращенное потому что требует нестандартного управления. Мы это и будем лечить и сделаем униполярное соединение( google it ).
Снимаем текстолитовую соединялку обмоток.
Начинаем монстрячить.
Соединяем обмотки как у готового движка - ибо двигатели идентичные.
Операция прошла успешно.
Собираем, проверяем выводы на замыкание на корпус - все хорошо.
Спиливаем шестерню с вала - она не нужна. Спиливаем потому, что съемником не располагаю, а вот гравер есть.
Ах да, у меня на фотике установлена неправильная дата поэтому фотки из будущего.
Делаем шлицы на валах, чтобы не было проскальзывания.
Ну и напоследок фотки всех трех движков
Что имеем: два идентичных двигателя с сопротивлением обмотки 4.4 Ома, и один двигатель( правый ) с обмоткой 10 Ом. Все униполярные, с шагом 7,5 *.
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
Ответ: Железный тред. Станок с нуля.
Так как у моих двигателей нет ушек для крепления придется изобретать велосипед.
Берем алюминиевый швеллер
Сверлим
Прикручиваем к двигателю при помощи гаек с шайбой и гровером, чтоб не раскручивалось от вибрации.
Смотрим что получилось
Вот и основная задумка - сделать выступающие ушки для крепления шурупами на фанеру.
Вся семейка в сборе
Электроника и видео работы двигателей от простейшей программы завтра.
ЗЫЖ. Такими темпами загрузки фоток я скоро исчерпаю лимит места для личных файлов - можно его как-нить увеличить? На файлообменники переходить не хочу - ибо недолго они фотки хранят
Вот фотка того что понадобится для электронной части
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
Ответ: Железный тред. Станок с нуля.
Электроника и видео работы двигателей от простейшей программы завтра.
сколько раз зарекался ничего не загадывать на будущее - вот он тот случай когда я слишком себя переоценил. К чему я: переделка двигателя - полностью фейл - обмотки соединяются не так( после выложу полную перемотку двигателей ). Но потратив 2 дня и вдоволь поебавшись с двигателем я его перемотал и правильно соединил все обмотки( хосспади сколько попоболи я испытал - не передать ). Но сегодня не об этом.
Сегодня смотрим на создание контроллера двигателей и создание трех силовых блоков.
Рисуем плату управления двигателями.
Берем текстолит( мне попался в руки говеный советский текстолит - весь окисленный и с пузырьками воздуха под фольгой - пищаль ).
Готовим бумагу с рисунком и кусок текстолита к переносу ЛУТом( google it )
Результат переноса
Травить будем в аммонии надсернокислом( в простонародье персульфат аммония )
Результат травления
Как-то не очень, на самом деле результат позорный для меня, но дальше я возьму реванш.
Начинаем запаивать панельки и перемычки.
Вот тут видно всю фактуру текстолита - фуу гадость, современный текстолит красивее в стотыщ раз.
А вот и первый фейл - расстояние между ножек у LPT от Centronics 2,4 мм вместо обычных 2,54 - в итоге вставить его в предназначенные отверстия не получилось.
Запаиваем остальные компоненты и шлейфы.
Вид снизу
Всё. Контроллер работает ( видео потом, все потом )
Продолжаем продолжать. Делаем три силовых блока - по одному на каждый двигатель. Начинаем с платы.