Управление с помощью ПК
Поставлена задача: Управление лабораторной печкой (вкл./вьікл.) с помощью комп"ютера.
Кое что почитать подкиньте... я так понимаю в сторону стьіковки СОМ порта и контроллера... схема контроллера (простого)...
одним словом аппаратная часть.. и програмная отвечающая за аппаратную стьіковку...
но только не очень сложно с аппаратной частью...
нашел правда нечто но только заголовок в интернете..
http://www.radio.ru/archive/2002/07/
В. Володин. ПК измеряет частоту и температуру
http://home.sinn.ru/~nick507/comport.htm
подскажите где можно в Инете чтото почитать...
СПАСИБО!
1) «МК? Это просто!», том 1, А.В.Фрунзе
2) «Проектирование цифровых устройств», В.В.Сташин, Москва 1990
Это так, для общего ознакомления с МК. В принципе на этом можно и остановиться, но лучше делать что-нибудь на AVR (фирма Atmel) – сравнительно новое, широко используемое семейство. Очень много представителей (не самая крутая ATMega может работать на 12МГц, выполняя за такт четыре операции + АЦП, UART и т.д. Стоит ~300р.)
Литература: «AVR – от простого к сложному», М.С.Голубцов, М.2003
Также есть жутко прикольная книга по цифровой электронике: «Основы цифровой электроники», Р.Токхейм, «Мир» 1988. Вся вышеупомянутая литература у меня есть отфотканная/отсканированная, весит 380мб. Если есть идеи, как переслать, то «пишите письма» (АСЯ, мыло).
Да, ещё прекрасная книга просто по электронике: «Искусство схемотехники», П.Хоровиц и У.Хилл, последнее издание в 2003.
Ну, а в и-нете:
http://www.atmel.ru - ATMEL Russian Home
http://www.atmel.com - Atmel Corporation
http://www.gaw.ru - Самый информированный сервер по микроэлектронике
я так понимаю в сторону стьіковки СОМ порта и контроллера... схема контроллера (простого)...
одним словом аппаратная часть.. и програмная отвечающая за аппаратную стьіковку...
но только не очень сложно с аппаратной частью...
V_oron i - полный респект! Согласен абсолютно во всем (а многих источников даже не знал - спасибо).
Lorex - к высказыванию предыдущего оратора могу добавить следующее:
- со стороны программирования контроллера: если вам больше нравится асм, то одинаково подойдут оба семейства (i51или AVR), хотя у AVR-овского асма возможностей больше чем у 51-го. Если же вы соображаете в C (не C++), то однозначно AVR - для него можно писать на C.
- со стороны программирования ПК: тут практически однозначно придется на C++ или Pascal (Delphi). Вы скорее всего пишите для современных компов на базе Win NT / 2000 / XP, а не для доси или 9x. Если я угадал, то настройка портов и передача информации через них должна производится функциями API Windows. Т.е. если писать на асме для x86, то все равно придется прибегать к вызову функций операционной системы. На прямую - никак: система блокирует подобные обращения. Таким образом написав на асме выигрыш будет только в объеме программы, что для современных компов не существенно, а вот сложностей в написании программы прибавится в N раз. Объем программы выполняющей функции управления контроллером через СОМ-порт составляет примерно 750К (включая некислый интерфейс) - совсем немного (C++Builder6).
По работе с портами (COM,LPT) при помощи API функций посоветую хорошую статью Титова Олега (см. архив).
Начнете ваять программу с применением API, или на 51-ом семействе - можете кинуть мне сообщение на профиль или мыло. Постараюсь помочь т.к. на днях написал подобную для ПК, и сейчас начну работу над следующей, в которую входит как контроллерная часть, так и ПК.
З.Ы. ИМХО: Т.к. задача для контроллера чрезвычайно проста - вкл/вкл, я все-таки выбрал бы 51: дешево, просто и сердито.
но ...
во первьіх переименуй как то файл в архиве... а то не откроет никак...
во вторьіх можно и под DOS написать..
ето как бьі сказать в свободное время проектик.. попробовать...
Сенкс.... но, прошу... как бьі отнеситесть к етому вопросу, как к новичку в ентом деле... :-)
Спасибо
но, прошу... как бьі отнеситесть к етому вопросу, как к новичку в ентом деле...
Да я и сам не знаток. С 51-м эксперементировал на готовом макете. Могу дать исходники часиков (на АСМе). Творческую в школе делал на симуляторе (см. далее). Вот летом спаял устройство, а оно не работает! В 1-ом семестре не до него было, но грядут каникулы... Так что, у меня тоже есть встречный вопрос: может кто подкинет схемку приёмника ИК сигналов от ПДУ, которая точно работает? Спаял как здесь(на К1056УП1), но - облом...
Lorex - к высказыванию предыдущего оратора могу добавить следующее...
Ну и я ещё добавлю:
1) Советую посмотреть AVRPascal (если что, у меня есть crack к v247. Сам Паскаль этой версии, чуток кастри*, весит 4Мб) - у него прекрасный симулятор. Не сочтите за хвастовство, а из лудших побуждений прикрепляю прогу на Паскале и её эквивалент на Асме.
2) Согласен с pacific_7: надо начать с 51-ого. Но, ИМХО, потому, чтобы экспы поднабрать: это семейсво идеально подходит для изучения контроллеров. А потом - на AVR!
С 51-м эксперементировал на готовом макете. Могу дать исходники часиков (на АСМе).
В общем то аналогична ситуация - пока сам ничего не напаял (зачем? - макет лежит рядом на системнике). Сейчас буду делать диплом - я программную часть верхнего уровня (со стороны ПК), а коллега как раз паять и асмить на 51-ом, так что если нужна будет схемка работоспосбоной системы на контролере семейства 51 (конкретно - Siemens SAB80C535) и время не поджимает, то когда будет готова - можно и выслать.
1) Советую посмотреть AVRPascal
Со своей стороны советую AVR Studio. В ней как раз и на асме, и на сях можно программить. Лично я С уважаю больше Паскаля.
А симулятор в нем встроен просто замечательный - все, что угодно душе разработчика!
во первьіх переименуй как то файл в архиве... а то не откроет никак...
Пардон уважаемый - архив создал под Линухом, и при этом создал неправильно (формат не тот задал). Сейчас исправился.
во вторьіх можно и под DOS написать
А может вообще не стоит к этому делу комп привлекать: если собака зарыта в том, как задавать время срабатывания, то это в легкую можно сделать и без компа. Приделать к контроллеру клавиатуру с дисплеем и все дела. Дисплей можно подобрать самый примитивный - семисегментный (типа как на часах электронных), с ним работать проще некуда. Ну и клаву из 12 - 16 клавиш. Куда больше - для цифер и задания команд вполне хватает.
Ну а если все таки с компом - то в программировании СОМ-портов на асме я вам не помощник: понятно, что в DOS'е нет никаких функций API Windows и все придется "врукопашную" асмом делать.
OffTop: V_oron i - Где учитесь? Если есть время ответить, то ответьте на [EMAIL=pacific_7@mail.ru]мыло[/EMAIL]
Со своей стороны советую AVR Studio.
Ну, это классика! Хотя я не понял - там симулятор как в AVRPascal`е? В той версии, какая у меня он представляет следующие: бегает стрелочка по строчкам кода и отображаются изменения в состоянии контроллера. А вот в Паскале: рисуется клавиатура, ЖК дисплейчик можно добавить, можно крутить ручки, изменяя тем самым потенциал на входах АЦП, есть терминал для UART. Т.е. как будто у тебя есть готовое устройство, и ты на нем кнопочки нажимаёшь и смотришь, что произойдёт. Во как! Хотя и мне Си как-то больше по душе.:)
А вот в Паскале: рисуется клавиатура, ЖК дисплейчик можно добавить, можно крутить...
Угу, и осциллограф еще есть, ну и конечно состояния всех регистров, создание файла трассировки и т.д.
суть в том что как електронщику мне не фортило... не состоялся... ну ето такое дело.. мне просто проще управлять програмно...
А вообще может кто накинет или тьікнет носом в схемку такого плана (только ПОПРОЩЕ)...
нужно снимать температуру (миливольтметром) .. оцифровьівать (наверное с АЦП тут самьій сложньій блок)... передавать на COM .... комп реагирует и по етому же или другому порту включает или вьіключает печку...
нужно снимать температуру (миливольтметром) .. оцифровьівать (наверное с АЦП тут самьій сложньій блок)
А может проще это делать через звуковую карточку, принимая сигнал через вход для микрофона или через линейный вход, предварительно усиливая(ослабляя) сигнал, и защищая звуковую карточку(если в этом есть необходимость)
суть в том что как електронщику мне не фортило... не состоялся...
Аналогично. Основы соображаю более-менее, только не интересно: программирование рулит!
А если серьезно, то со строны электроники тут много знаний и не нужно - например вполне работоспособная система на Siemens SAB80C535 состоит из двух модулей памяти (одна - ОЗУ, вторая - ПЗУ), нескольких микросхем обвязки, пары десятков резисторов, ну и прочая мелочь. При наличии схемы эту дребедень можно за пару часов собрать. А возможности у нее обширные - зависят от таланта программиста, максимально адресуемой памяти и количества свободных портов.
Т.е. что у автоматизированного самогонного аппарата, что у вашей печки принципиальная схема может быть абсолютно одинакова. Главная разница в программе зашитой в ПЗУ. Таким образом вам подойдет практически любая работоспособная схема. А для того, что бы обойтись без компа - как раз не нужно особых знаний в электронике. Схемы для этого самые примитивные (детекторный приемник сложнее). Наоборот - усложнится программная часть, за то система получится полностью самостоятельная, без ПК. Если интересны схемные реализации клавиатуры и дисплея, то могу выслать.
Постараюсь найти в колледже схемку от вышеприведенной системы, но ничего не гарантирую.
С этим как раз ни каких проблем: тот же Siemens SAB80C535 имеет встроенный АЦП - обрабатывает сигналы с одного из портов по записанной в ПЗУ программе. А уж если делать на AVR - то насколько я понимаю, в нем обязательно должен быть АЦП.
А может проще это делать через звуковую карточку, принимая сигнал через вход для микрофона или через линейный вход, предварительно усиливая(ослабляя) сигнал, и защищая звуковую карточку(если в этом есть необходимость)
Хм... Оригинальное решение, что-то в этом есть, вот только помоему придется без звука сидеть, а самое главное драйверок оригинальный придется накатать - ведь нужно сделать перенаправление полученной информации. Но если взятся, то можно сделать, правда тут есть один непредсказуемый фактор - ОС. Неизвестно как она на такой изврат отреагирует: звуковая есть, но пользовать ее нельзя.
А может проще это делать через звуковую карточку...
Термо-датчик (наиболее простой => дешёвый) - это резистор с R(t). Зависимость будем считать линейной. Тогда какие способы считывания данных с резистора? Я могу предложить анализ падения напряжения на нём. Но что будет, если ко входу звуковой карты приложить некое постоянное напряжение (которое будет, если температура не меняется): его можно будет анализировать? На сколько я понимаю - нет. Тогда придётся делать генератор переменного напряжения и термо-резистором модулировать его выходной сигнал по частоте или амплитуде. Стоит ли такая игра свеч? К тому же, я думаю входные характеристики не навороченной звуковухи не очень хорши: вот у меня, даже когда в гнёздах входа ничего нет, SoundForge рисует замысловатый АЧ-график.
А вообще может кто накинет или тьікнет носом в схемку такого плана (только ПОПРОЩЕ)...
нужно снимать температуру (миливольтметром) .. оцифровьівать (наверное с АЦП тут самьій сложньій блок)... передавать на COM .... комп реагирует и по етому же или другому порту включает или вьіключает печку...
Собственно говоря, кроме инфой в первом посте и RAR`ом во втором, могу ещё помочь только, выложив свой отчёт о работе. Там немного полезной инфы есть. Но обязательно поизучайте те 2 русскоязычных сайта!(начните с Атмелевского). Да, и АЦП не самый сложный блок: все преобразования он будет делать сам, его надо только запустить. Со спектром представителей 51-ого семейства я слабо знаком: прогал только "что-то-там52". Вроде у Aduc`а есть встроенный АЦП... Но вот у AVR`ов он точно есть!(смотрите сайт Atmel`а). Я его вроде-как использовал.:)(прога на авр-асме ни разу не попадала в МК, только в симулятор). Но, моё глубокое убеждение, если Вы собираетесь и в будущем иметь дело с МК, то прочитайте книгу Фрунзе (том1 - обязательно), а затем - Сташина(там описываются решения многих стандартных задач).Погоняйте какую-нибудь прогу (те же часики, с использованием таймера/счетчика (ТС) и без) на симуляторе, типа PDS-51 или из ADuCkit. А потом - на AVR. Если будут какие-нибудь неразрешимые проблемы - мыльте. Буду жив - постараюсь после сессии ответить.
Здесь постараюсь выложить, что смогу. Проги числа 13-ого.
ета металлическая пара создает ЄДС...которую хапать миливольтметром... может есть какой миливольтметр с цьіфровьім вьіходом... или как нить к цьіфровьім индикаторам подпаятся...
есть емпирические таблицьі:
значение мВ -> температура
может есть какой миливольтметр с цьіфровьім вьіходом...
Похоже мой предыдущий пост проигнорировали...
Там же написано, что все более-менее уважающие себя, современные контроллеры содержат встроенный АЦП.
Т.е. что у автоматизированного самогонного аппарата, что у вашей печки принципиальная схема может быть абсолютно одинакова. Главная разница в программе зашитой в ПЗУ.
Спрашиваю для общего развития, а как загнать в ПЗУ программку, вроде как раньше программатор нать был позарез, а сейчас?
Похоже мой предыдущий пост проигнорировали...
.
Сорри! не игнорировали... простолично мне сложно еще с контроллером разобратся... в микросхемах не силен...
В даном случае иду по линии найменьшего сопротивления...
Сенкс
Спрашиваю для общего развития, а как загнать в ПЗУ программку, вроде как раньше программатор нать был позарез, а сейчас?
А что сейчас изменилось? Разьве что, раньше (примерно когда я родился) были ПЗУ-шки с УФ-стиранием(EPROM), а сейчас (давно уже - примерно когда я пошел в детсад) с электрическим(EEPROM/E2PROM).
Ну, еще программаторы сейчас идут в одной связке с компом, и напряжение программирования изменилось. А так - все по старому.
В даном случае иду по линии найменьшего сопротивления...
При помощи контроллера как раз и будет путь наименьшего сопротивления: достаточно поставить усилитель на термопару, а с контроллера снимать оцифрованное напряжение, и в зависимости от варианта решения проблемы - либо выдавать его в порт и по таблицам интерпретировать в компе, либо никуда не выдавать, а интерпретировать там же в контроллере и уже это выдавать на дисплей МК системы.
Программу собственно для оцифровки сигнала в контроллере писать не нужно. Нужно только задать режимы работы АЦП (сколько пробразований в секунду и т.п.), а это 8-10 строчек асмовского кода. И не более.
Сорри! не игнорировали... простолично мне сложно еще с контроллером разобратся... в микросхемах не силен...
В даном случае иду по линии найменьшего сопротивления...
Сенкс
Используй модули распределённого ввода-вывода c интерфейсом RS-485. Тебе потребуется преобразователь интерфейса ком-порта в RS-485, модуль ввода сигнала с термопар и дискретного ввода-вывода. Я бы использовал модули I-7011 (1 аналоговый вход 24bit /10Hz, 1 дискретный вход, 2 дискретных выхода, 140$) с реле и контактором и преобразователь I-7520 ( 52$). Для защиты от глюков и подвисаний Windows и злобных ламеров можно (но не обязательно) поставить модуль контроллера I-7188 (120-150$). Модуль соединен с преобразователем, а преобразователь - с ком-портом. Программирование простейшее. И НИКАКОЙ САМОДЕЛЬЩИНЫ! Будут вопросы – пиши [email]andranick@mail.ru[/email]
I-7520 ( 52$).
I-7188 (120-150$).
И НИКАКОЙ САМОДЕЛЬЩИНЫ!
А самое главное - дешево! ;)
Не надо ни каких модулей распределенного вв/выв. - все и так к СОМ-у замечательно подключается! И программный интерфейс совсем не сложный, и деталей лишних нет. Из коммуникационного оборудования только шнур для компорта - самый обычный.
А самое главное - дешево! ;)
Не надо ни каких модулей распределенного вв/выв. - все и так к СОМ-у замечательно подключается! И программный интерфейс совсем не сложный, и деталей лишних нет. Из коммуникационного оборудования только шнур для компорта - самый обычный.
Оценка стоимости - сложный вопрос, его решает сам разработчик в зависимости от ситуации.
Типичная ошибка - оценивать стоимость разработки по стоимости комплектующих. Необходимо учитывать стоимость рабочего времени на разработку, изготовление, пуско-наладку, изготовление документации и ремонтно-регламентные работы и стоимость самого нагреваемого объекта. Стоимость комплектующих, как правило, меньшая часть в общей стоимости разработки.
Действительно, интерфейсы современных микроконтроллеров предельно просты. Но человеку, который не сталкивался с разработкой устройств на микроконтроллерах, придется изучить схемотехнику, методы и средства их программирования и сделать выбор, какой контроллер лучше. А это опять время и деньги.
Почему я говорю об интерфейсе RS-485.
1) программно это тот же ком-порт, методы программирования те же.
2) ограничения в размещении оборудования нет, длина линии связи может быть очень большой.
3) возможно легко изменить конфигурацию оборудования простым присоединением модуля к витой паре RS-485.
Да, для домашних поделок можно посидеть с паяльником и что-нить залабать, и это будет дешевле, интереснее и полезнее, не спорю. Но когда речь заходит об автоматизации технологического процесса моё мнение то же - никаких самоделок. :)
Да, для домашних поделок можно посидеть с паяльником и что-нить залабать, и это будет дешевле, интереснее и полезнее, не спорю.
Во всем вы правы, только тут как раз помоему идет речь о домашних посиделках:
ето как бьі сказать в свободное время проектик.. попробовать...
Следовательно - время можно сказать неограничено, а деньги: если даже самому накупить литературы по всей этой кухне, и элементную базу на свои кровные закупать, то все равно выйдет значительно дешевле чем предложенный вами вариант.
Могу сказать, что это укладывается в рамки обычного дипломного проекта: время - 3 месяца, деньги - наше мин.образование щедростью не славится.
Могу сказать, что это укладывается в рамки обычного дипломного проекта: время - 3 месяца, деньги - наше мин.образование щедростью не славится.
Может и так, не знаю. Я предложил свой взгляд на решение задачи, другой, нежели обсуждался ранее, и попроще, о чем и просил Lorex. Да и на диплом это решение тянет вполне, тем более, что в этом случае и покупать-то ничего не надо.