среда, 30 апреля 2008 г.

Стартовал мой блог-проект "Мозаика-2"

Хочу сообщить об открытии моего второго блог-проекта Мозаика-2.
В этом проекте будет вестись создание еще одной программы для раскладки сложной мозаики, элементы которой могут раскладываться не только по "сетке" как в первом проекте, а произвольно и иметь произвольную форму
Адрес проекта

вторник, 29 апреля 2008 г.

Компьютеры PC-Chips для станка с ЧПУ

Предлагаю материнские платы PC-Chips
Практически готовый компьютер - процессор интегрирован,
сеть, видео, звук ,порты USB, LPT,COM
Вариант 1:
Плата VIA PC2500E, VIA™ C7-D 1.5GHz CPU onboard, VIA CN700+VT8237R Plus, FSB400, 2xDDR2 up 2Gb, SVGA Integrated VIA UniChrome Pro IGP(VIA CN700) , 2xPCI, 2xIDE+2xSATA+1xFDD, On Board- Lan, Audio, (4+4)xUSB, 1xCom, 1xLPT, (ID-PCM7E) OEM
Стоимость - 2500 руб!!!!
Вариант2:
Плата VIA PC3500G, VIA™ C7-D 1.5GHz CPU onboard, VIA CN896+VT8237A, FSB400, 2xDDR2 up 2Gb, SVGA Integrated VIA UniChrome Pro IGP(VIA CN896)
, PCIEx16, PCI, 2xIDE+1xCD Audio-in, On Board- Lan, Audio, (4+2)xUSB, 2xCom connect., 1xLPT, (GA-7CN896MH) RTL
Стоимость - 2800 руб!!!!

Начало проекта "Мозаика-1"

Рад сообщить о старте моего проекта "Мозаика-1" или как использовать станки с ЧПУ для раскладки мозаики
Адрес http://mosaic-1.blogspot.com/

среда, 23 апреля 2008 г.

Следующая версия MNC

Вот что умеет новая версия программы:
При ручной калибровке кратковременное нажатие кнопок джойстика перемещает нужную ось на заданое расстояние в милиметрах либо на заданое количество импульсов двигателя.
Порталы теперь можно заносить в таблицу путем считывания текущих координат XYZ. То есть - подвел и записал.
Теперь главное новенькое:
Появилась закладка работа с изображениями. Это простой графический редактор для работы с BMP файлами. Представлены основные и самые простые функции для работы с изображением - zoom, изменение размера, зеркальное отражение, эффект мозаики, преобразование цветов в оттенок одного цвета, преобразование в оттенок серого, увеличение резкости изображения, замена одного цвета другим и альфа эффект.
Вот пока все!
Адрес для загрузки тот же : http://lipkij.narod.ru/DelphiProgram.zip

вторник, 22 апреля 2008 г.

Программа на Delphi для управления станком

Я решил начать писать программу на Дельфи.
Вот первый вариант
Что она сейчас умеет:
Сейчас программа имеет только одну закладку - настроек станка. На ней вы можете настроить программу под свой контроллер. Контроллеры поддерживаются только Step/Dir пока на 3 оси, позже будет на 4 оси. Есть также возможность управления двумя реле. Также 4 конечника и один общий выключатель.
Механические особености станка также вводятся в программе.
Всю эту информацию можно сохранить в файле профиля. Таким образом, если у вас есть несколько разных контроллеров, вы можете загрузить профиль нужного и работать.
В профиле также сохраняются "порталы". Это особые точки на рабочем поле станка, которые используются в программе.
Из живого-двигающего пока только функция калибровки - ручная и автоматическая.
В автоматической калибровке станок ищет нулевую точку по концевым выключателям (должен искать - пока не проверял)
Ручная калибровка - с помощью "джойстика" по все трем координатам. При удерживании кнопки джойстика около 2 секунд станок начинает "двигать" эту координату в нужном направлении. Позже будет написана функция одиночного шага при кратковременном нажатии кнопки джойстика.
Ну и последнее - вверху программы информационное табло, показывающее пока только текущие координаты по X,Y и Z. Позже туда будут выведены дополнительные данные работы станка.
Саму программу и профиль для моего контроллера PLC002 вы можете скачать по адресу http://lipkij.narod.ru/DelphiProgram.zip
Если не получается оттуда - пишите - вышлю по мылу

пятница, 11 апреля 2008 г.

Простая функция для перемещения по двум осям

Вот набросал на python небольшую функцию - основную для работы. Эта функция обеспечивает перемещение из точки x0 y0 в точку x1 y1. При этом проверяется состояние концевых выключателей. Вы можете легко изменить ее под свои нужды, сложного в языке программы ничего нет:

import parallel
import time

Xcu=0
Ycu=0
Xnew=0
Ynew=0
DirXp=1
DirYp=16
Xpulse=2
Ypulse=8
pausetime=0.001
stepkoefX=0.01
stepkoefY=0.01
p=parallel.Parallel()

def GoToXYfunc(x0,y0,x1,y1):
----# absolute moving
----ControlWord=0
----DirX=DirXp
----DirY=DirYp
----dX=0
----dY=0
----dX=x1-x0
----dY=y1-y0
----XSteps=abs(int(dX/stepkoefX))
----YSteps=abs(int(dY/stepkoefY))
----if dX<0:DirX=DirX.__xor__(DirXp)
----if dY<0:DirY=DirY.__xor__(DirYp)
----if XSteps>=YSteps:
--------MaxSteps=XSteps
----else:
--------MaxSteps=YSteps
----ControlWord=ControlWord.__or__(DirX)
----ControlWord=ControlWord.__or__(DirY)
----for i in xrange(MaxSteps):
--------Xph=p.getInAcknowledge()
--------Yph=p.getInBusy()
--------if i<=XSteps and Xph!=0:
------------# step by X
------------ControlWord=ControlWord.__or__(Xpulse)
--------if i<=YSteps and Yph!=0:
------------# step by Y
------------ControlWord=ControlWord.__or__(Ypulse)
------------# zeroing Step Levels
--------p.setData(ControlWord)
--------time.sleep(pausetime)
--------if i<=XSteps and Xph!=0:
------------ControlWord=ControlWord.__xor__(Xpulse)
--------if i<=YSteps and Yph!=0:
------------ControlWord=ControlWord.__xor__(Ypulse)
--------p.setData(ControlWord)
----return (x1,y1)

Xnew=-10
Ynew=10
Xcu=0
Ycu=0
print GoToXYfunc(Xcu,Ycu,Xnew,Ynew)

понедельник, 7 апреля 2008 г.

"Легкий" раскладочный станочек

Итак, пока я собираю основной станок, я также соберу простой деревянный станочек для раскладки деталей. На нем я буду испытывать работу программы. Суть программы проста - разложить детальки в соответствии с заданым массивом. Размеры станка небольшие - 50х50см. Приводы - шаговые двигатели из струйных принтеров.

суббота, 5 апреля 2008 г.

Программка для управления dir step контроллером

Попробуем написать простую программку для управления контроллером PLCoo2.
Я буду использовать язык Python, не спрашивайте почему, просто он мне нравится :)
Итак, для этого нам понадобится распиновка LPT порта и распиновка контроллера.
Вот они:это управление контроллером
1 STROBE ввод и вывод устанавливается PC после завершения каждой передачи
данных
2/9 D0-D7 вывод 8 линий данных
10 АСК ввод устанавливается в "0" внешним устройством после
приема байта
11 BUSY ввод устройство показывает, что оно занято, путем
установки этой линии в “1”
12 Paper out ввод для принтеров
13 Select ввод устройство показывает, что оно готово, путем
установки на этой линии “1”
14 Autofeed
Ввод и
вывод
15 Error ввод индицирует об ошибке
16 Initialize
Ввод и
вывод
17 Select In
Ввод и
вывод
18-25 Ground GND общий провод
а это выводы LPT порта

для работы с LPT портом понадобится дополнительный модуль pyparallel. Его легко найти в сети с помощью google.

Мой контроллер имеет два реле для управления нагрузками типа шпинделя станка или пылесоса или охлаждения.
Попробуем поуправлять одним из реле. Вывод реле 1 находится на первом выводе.
Это вывод Strobe.

Начнем писать программу
сначала импортируем модуль parallel
import parallel
также импортируем модуль time. Он нам пригодится для формирования временных задержек в программе.
import time
Создадим объект для управления портом
p=parallel.Parallel()
для установки бита Strobe используем метод setDataStrobe(значение)
Я приведу готовую программу, которая формирует 10 включений и выключений реле с периодом 1 секунда

import parallel
import time
p=parallel.Parallel()
for i in xrange(10):
____p.setDataStrobe(1)
____time.sleep(1)
____p.setDataStrobe(0)
____time.sleep(1)

Я не разобрался, почему в блоге удаляются пробелы, поэтому вместо 4-х пробелов поставил просто знаки _.
Попробуйте прочитать программу - python очень простой для понимания язык
В следующий раз мы попробуем поуправлять двигателями.

Кстати, совсем забыл сказать что язык Python - кросплатформенный, так что программка эта будет работать как в Windows так и в Linux (само собой, среда Python должна быть установленна в системе)

среда, 2 апреля 2008 г.

Двигатель для Z

У моего основного поставщика purelogic.ru появились интересующие меня шаговые двигатели PL57H76-3.0-6
Их характеристики
Японский униполярный шаговый двигатель (2 обмотки, 6 выводов). Размер 57мм, угловой шаг 1.8 градуса, ток фазы 3,0А, сопротивление фазы 1,0Ом, крутящий момент 18,9кг*см, длина двигателя 76мм, вес 1100г.
Думаю крутящего момента в 18 кг будет достаточно для перемещения по моим "направляющим"
Двигатель оплатил, жду посылки