Управление самодельным устройством через порт COM или LPT

Odisee
25/08/2005 01:35
Здраствуйте все! Собираю позиционер для спутниковой тарели. Возникла необходимость сопряжения с компьютером. Нужно включать\выключать два двигателя, управлять направлением их вращения, считать сколько оборотов каждый сделал, и несколько других сигналов типа 1/0. Профи, подскажите какую схему можно собрать для этого. В электронике я зеленоват, поэтому буду рад ссылкам на инфу по теме.
Заранее всем благодарен!

China
25/08/2005 17:50
Сколько же всего получится сигналов? Сколько из них будет входных, а сколько выходных (относительно компа)? Это важно. А софт ваять кто будет?

Vmax
25/08/2005 22:45
Через LPT схема проще получится, не понадобится лишнее последовательно-параллельное преобразование.Софт тоже примитивный, на уровне паскаля или С.
Задача для абитуриента техВУЗа..........

johanh
25/08/2005 23:49
А какой смысл подключать к компу?

Odisee
26/08/2005 01:50
Софт ваять буду я - с этим у меня проблем практически не возникает. Подключить к компу хочу потому что у меня плата SkyStar2 (спутниковый интернет и т.п.), кроме того модуль управления, с технической точки зрения, проще - никаких ПЗУ для запоминания позиций, и микроконтроллеров с прошивками (ну не разбираюсь я пока в этом) неодобрение Из ваших советов пока понял только одно - управление лучше реализовать через LPT. Но может ктото поможет более конкретными тех. решениями (извините за наглость) или хоть подскажите ссылки на теорию, я в инете искал - почти ничего нет недовольство, огорчение

Добавлено 26-08-2005 02:04

Количество сигналов:
1) направл. вращ. 1-го двиг. -выходной
2) направл. вращ. 2-го двиг. -выходной
3) пуск 1-го двиг. -выходной
4) пуск 2-го двиг. -выходной
5) сколько об. сделал 1-й двиг. (герконовый счетчик) -входной
6) сколько об. сделал 2-й двиг. (герконовый счетчик) -входной
7) тормоз (вкл\выкл блокировки мех. редуктора) -выходной
Кажется все что нужно сумашествие

johanh
26/08/2005 02:15
Да сейчас за 40-50баков можно приобрести готовый позиционер.И никаких портов.
Включай в разрыв спутникового кабеля и наслаждайся.Расходы на самостоятельную сборку будут выше.СтОит ли это того?
Решай.
PS Сможешь составить алгоритм и программу на 6 каналов порта?
А со схемой разберемся.
2 порта-прием импульсов датчика положения.
2 порта включение питания двигателей
2 порта реверс дигателей.

China
26/08/2005 06:13
Может, человеку, помимо всего прочего, просто интересно сотворить самому такую штуковину. Сигналов немного. Никаких изощрение не потребуется. Обычные ключи или оптронная развязка, если все делать по правилам. В курсе, что винда 2000/XP напрямую работать с портами не даст?
В инете материалов об этом всем куча. Например, примитивные схемы http://kamiaruk.narod.ru/shems/lpt.htm. Суть поймешь и под себя переделаешь.
А здесь http://pccontrol.bib.com.ua/ о программировании портов под NT семейством. Если чего не понятно будет, можешь писать мне на мыло.

Odisee
26/08/2005 23:56
Большое спасибо China улыбка Инфу обработаю, если будут вопросы - напишу в сюда в форум (может кому-нибудь тоже пригодится)

Добавлено 27-08-2005 00:02

С программой разберусь. Был опыт, правда под W95.
Для меня сомое главное - электронику собрать сумашествие

johanh
28/08/2005 00:07
Не вопрос подмигивание

Odisee
30/08/2005 02:14
Еще один немаловажный вопрос: ввод с герконового счетчика. В устройстве стоят двигателя по 4000 об/мин. Герконовые контакты ставить на оси двигателя ? - Поспеют ли за ним герконы? Если ставить на промежуточных осях редуктора - много мороки и потеря в точности установки тарелки. Кто как думает?

China
30/08/2005 20:04
Нда. Трудно сказать. Но, думаю, основная проблема не в этом. Вместо геркона можно прилепить датчик Холла. А вот комп считать все это вряд ли успеет. Винда по своей природе статична. Для работы в реальном времени плохо приспособлена. Если бы это писать в ДОСу и комп только этой задачей и занимался, то базару нет. А так какой-нибудь процесс тормознет комп - и импульсы пропустятся. Все-таки 67 импульсов в сек получается. Думаю, что без дополнительного железа не обойтись. Хотя... Если бы знать приблизительно логику работы всего этого устройства. Постоянно ли нужно следить за датчиками или только дать задачу, мол, крутни в такую сторону на сколько-то оборотов и больше не следить? В этом случае, наверное, можно попробовать.
А проверить успеваемость геркона можно как-нибудь. Слепи простенькую прогу, которая посчитает количество импульсов за минуту работы движка и все дела. Их должно быть около 4000. Работы на минут 15.

Odisee
31/08/2005 00:07
Да, логика работы устройства как раз такая: по команде отсчитать от текущей позиции столько-то оборотов и остановить движки. Удержане зеркала в заданном положении - дело механики. Для калибровки механизма предусмотрены концевые датчики (нулевое положение).

Добавлено 31-08-2005 00:23

Вот по поводу доступа к порту LPT, цитата с http://emfl.nm.ru/menu/soft/articles/lpt_programming.html#intro :
"Проблема Windows NT и иже с ними

До какого-то момента на сиё явление можно было закрывать глаза, но нынче, когда семейству Win9x отводится всё более и более узкая ниша среди ОС для домашних ПК, следует задумываться и о работоспособности программы под Windows 2000/XP.

Итак, в чём вся трагедия. Пока мы жили под всевозможными DOS'ами и, если можно так выразиться, полудосами (т. е. Windows 95, 98...) мы могли, вышеописанным способом, просто писать по нужному адресу, ни о чём другом не задумываясь. Но вот "власть меняется". Во всех NT-совместимых ОС такие действия не допускаются системой, что делает, казалось бы, практически нереальным перенос "старых добрых" программ на новую платформу.

Самым удобным вариантом решения этой проблемы является, по-видимому, использование драйвера-заглушки. Как выяснилось, их существует великое множество. Один из наиболее популярных – giveio.sys. Этот файл и инструкцию по его установке легко найти через поисковые системы, но я предпочёл – и вам советую – самый "ленивый" способ: скачал замечательную программу для мониторинга системы (и управления вентиляторами) под названием SpeedFan, которая ставит этот драйверок при своей установке. Что называется 2 in 1.

После после установки драйвера в результате выполнения магических строчек

h = CreateFile("\\\\.\\giveio", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

мы сможем работать, как обычно. Правда, сильно не лишним будет проверить h на INVALID_HANDLE_VALUE улыбка. А то мало ли чего – драйверок не установлен..."

Попробовать еще не успел, сомневаюсь что будет положительный результат.

Может собрать какой-нибудь аппаратный счетчик, чтобы он значение в порт пересылал, или это слишком сложно?

Кстати раскажите про датчик Холла - как устроен, я раньше слышал но на практике не сталкивался.

4000 об/мин - это на холостом ходу, в реале, под нагрузкой - 2500 - 3000 будет.

China
31/08/2005 07:21
Если начать лепить всякое дополнительное железо, то не будет никакого преимущества от использования компа. Тут вся суть в том, чтобы реализовать все программно почти без аппаратуры. А то придется лепить десятки микросхем или писать прошивку контроллера. Думаю и так получится. А датчик Холла - можно сказать грубо, что полупроводниковый аналог геркона. Практически во всех умных устройствах используется, если есть двигатели. Как датчик оборотов, датчик положения ротора, если двигатель бесколлекторный. Что касается шаманских плясок вокруг драйвера GIVEIO.SYS и иже с им, то не сомневайся. Как его установить, я вышлю инструкцию шаг за шагом. А если софт будет на DELPHI, то и строчки из программы, как драйвер пользовать, как писать в порт и читать из него. Там нужно несколько ассемблерных команд. Проблем не будет.

johanh
01/09/2005 03:58
О каких 4000 идет речь? Это что,двигатель без редуктора!? шок
Там всего-то и нужно около 2048 отсчетов.Это по горизонтали.А повертикали 32 голливудская улыбка
Лично у меня 1 двигатель с 800 отсчетами. улыбка
Как я понял ты и двигатель хочешь собрать.
Геркон 10об/сек свободно потянет.С такой скоростью весь диапазон будет просканирован
за 3мин.Это вполне нормальная скорость и точность.
А у тебя есть опыт в эксплуатации спутникового ТВ?
Датчик Холла-пп элемент изменяющий свое сопртивление под действием магнитного поля.

Odisee
02/09/2005 12:00
ОК China, установлю сразу напишу тебе. В виду своей чайниковатости софт буду писать именно на DELPHI.

johanh, очень надеюсь что опыт в экспл. СТВ скоро появится, пока только немного теории. А данные по поводу количества отсчетов откуда? они ведь завсят от механики. У меня на руках есть мотор-редуктор (причем редуктор не разборный), мотор в холостую делает 4000, под нагрузкой меньше. Датчики я могу поставить либо прямо на оси мотора, либо на выходе редуктора (там 5 об/мин) что, с точки зрения точности абсолютно неподходит. С вертикальной плоскостью проще - там привод уже готов - там есть доступ к промежуточным осям редуктора.

Вобщем я на время удалюсь (несколько дней) соберу схему, механику и будем пробывать. улыбка

johanh
03/09/2005 00:03
Odisee.Мы говорим немного о разных вещах.Ты говоришь о азимутально-угломестном ориентировании
антенны,я же о полярной ориентации.При расположении оси вращения антенны паралельно полярной
оси корректировка угла наклона вторым двигателем составляет несколько единиц градусов.
При азимутально-угломестном ориентировании будет затруднен ручной поиск спутников.
Максимальный угол вращения составляет 180градусов(на экваторе улыбка )Это значит,
что твой редуктор должен сделать всего лишь пол оборота за 6 сек улыбка
или же двигатель сделает 400 оборотов улыбка что недостаточно для отсчета ориентации.
Необходима установка дополнительного редуктора 5кратного замедления(не менее).
Надо расчитывать так пол-оборота за 1-3 минуты.Вот и считай какое замедление должно быть.

Odyssey
03/09/2005 15:29
Пусть безумная идея, не рубите сгоряча...
Почему бы вместо сложных многоступенчатых редукторов (4000 rps) и системы слежения не поставить шаговые двигателя? Для упрощения харда логику управления двигателями можно переложить на софт. Результат -- 4 бита на два двигателя + 2 бита на датчики нулевого положения (оптронные) Аппаратная часть упрощается до безобразия - 4 ключа на транзисторах + 2 усилителя для оптопар - всего около десятка транзисторов. Желательно поставить какой нибудь буфер например 580ВА86 чтобы не вывалить в случае чего LPT-порт.На крайняк можно обойтись эмиттерными повторителями. Набросать схемку сможет даже школьник...

johanh
03/09/2005 21:22
Без редуктора нельзя улыбка
Антенна это не маленькая вещица.Обладает весом и парусностью.
Это каким должен быть шаговый двигатель,чтобы развернуть такую махину шок
Предположим что он есть! классно!
Тогда простым джентлеменским набором транзисторов не обойтись улыбка бяка
Антенна не должна иметь люфта,так как точность настройки антенны в диапазоне 1градуса.
А чтобы "ловить" "ВСЁ" антенна должна быть ого-го!
Придется тебе побыть и слесарем и токарем и сварщиком и электриком....
и Электронщиком голливудская улыбка браво!
Еще есть Идеи? Эврика !

Odisee
04/09/2005 22:14
Я вижу теска появился браво! Тарелка у меня 1.5 метровая и местность на сильный ветер не скупится - есть вероятность получения вместо спутниковой тарелки - летающей улыбка И еще раз говорю: механика у меня уже есть.
А вот по поводу буфера пожалуста поподробнее, я сейчас как раз развязкой между LPT и ключем занят, подбираю оптопары (из доступных на рынке). Может есть сборочка какая-нибудь?

Добавлено 04-09-2005 22:24

johanh, ну в таком случае может лучше понизить напряжение питания двигателя - и считать легче и на выходе скорость меньше?

johanh
09/09/2005 23:47
Питание надо не понижать а подавать порционально (пакетами).
Это я и имел ввиду когда говорил о 6-и каналах.Вначале двигатель работает в полные обороты
а при прближении к конечной точке отсчета скорость уменьшается до нуля.Вот это надо реализовать
в программе.Схемку набросать легко,надо только знать какое питание и мощность двигателей.
Для развязки можно использовать любые оптодиоды и оптотранзисторы.
Полазай по сайтам о спутниковом ТВ.Посмотри какая зона уверенного приема в твоем регионе
на тарелку 150см(если конечно не собираешься ставить побольше)подсчитай на сколько
градусов будет разворачиваться антенна сделай предварительный расчет.
В общем для схемки нужны данные.Выложишь в теме-сляпаем.Удачи. подмигивание

giran
14/10/2005 16:22
в журнале "Радио" за этот год была статья по управлению компьютером тарелкой, номер 6-7-8, точнее надо дома посмотреть.
Я для таких задач пользуюсь VB, у него есть контрол MSCOMM32 , программируется СОМ порт элементарно, работает под ХР без проблем.

Nightmare
23/11/2005 22:07
вообще конечно в инете уже много инфы..валяется.по поводу сопряжения с компом всяких там самоделок..для решения разных задач...можно конечно сказать одно...1 значит...программно...управлять всякими устройствами...особенно под виндами....это точно на уровне....извращения...всё-таки винда...это операционка
не для реалтам всяких..задач......ей как раз в самый неподходяший момент начнёт обрабатывать свои внутренние процессы.....значит...уже потеряешь на это время и контроль и управление своей системой......
2..под дос...это тоже....отживаюший вариант.....
Целесообразно...здесь одно....что бы не терять контроль над системой управления необходимо переложить на микроконтоллер......а с компа....ему будет нужно ток одно
получать задание...данные....и отдавать..назад..тож самое вот и всё .задача для микроконтоллера....что здесь обсуждается очень простая и не сложная даже для самого из слабых семейств ..(например ....там всяких атмелов...или пиков).. его производительность на порядок выше для решения таких задач чем писюк....:-))!
.вот а что бы програмка работала под виндами...можно её написать ..на дельфях...или на вижуале....там есть модули для работы..с компортом..( да .да этим делом..лучше...управлять с компорта это безопасней будет для вашей мамки......убить её таким образом проще простого...потом будет..ужасно обидно досадно...но поздно..).. ..да и стоят эти микроконроллеры сейчас весьма дёшево.( в среднем рублей 30 -60.)и куча софта для его программирования бесплатного ...у самих микроконтролеров...минимум как
последовательный порт имеется.....останется для сопряжения его с сом портом компьютера взять какой нить драйвер рс-232....и всё..достаточно дёшево сердито и надёжно ......также кучу примеров программ
можно найти..как обеспечить передачу данных между контроллером и пс........ваша задача будет в
написании корректной программы для связи компа и контроллера.....а после в обработке этих данных и принятия каких -либо действий по управлению...устройствами...контроль.этих устройств ...он уж точно..успеет много чего обработать...так как в среднем микроконтроллеры за 1 секунду успевают обработать 1-2 мл..команд...этого для многих процессов дофига.........да и появится интересный опыт в использовании и написании программ для микроконтроллеров......так что..дерзайте..:-)))!!!

GRiF
26/11/2005 08:14
Согласен с Nightmare на контроллере лучше всего сделать. Если умеешь писать на делфи то и на котроллер напишешь программу. Можно на паскале, си, ассамблере, компиляторов много.... Для PIC16F84 есть блочное (графичное) написание программы, даже язык ни какой знать не надо, так все понятно. Дерзай...

Nightmare
07/12/2005 20:01
Ух ты.....а подскажите ка..пожалуйста (Girf)!! что за ет такая программка то графическая... ( очень интересно просто пагледеть что это за такое .. сам вот проста привык по старинке всё на асме ...а тут на тибе ) ..для пиков..за ранее спасиба..:-))!

liveinternet.ru RadioTOP Rambler's Top100 –ейтинг@Mail.ru