» » Управляем нагрузкой по USB с помощью ПК и ATMega8

 
 
 
6

Управляем нагрузкой по USB с помощью ПК и ATMega8

Разместил hottabi4 28 августа 2013. Просмотров: 22 777


В наше время все больше находят применение устройства, позволяющие управлять нагрузками с помощью ПК. Обычно это некий коммутатор силовых нагрузок, подключаемый к компьютеру и специальное программное обеспечение.

Встречаются готовые образцы, которые позволяют управлять нагрузками удаленно через интернет, например, давая возможность включать свет, ТЭНы в бане, различные клапаны и т.д. Современные технологии позволяют делать устройства миниатюрными и быстродействующими.
Описанное в статье устройство создавалось в рамках учебного курса университета в виде курсового проекта, поэтому начну с самого начала.

Анализ

Для решения задачи я решил применить микроконтроллер, который должен иметь на борту приемопередатчик UART и минимум три свободных порта для трёх каналов управления (количество их может быть увеличено и зависит от числа нагрузок). Вполне подходящим оказался микроконтроллер семейства AVR - ATMega8, как самый распространенный и недорогой.

Для создания связи устройства через USB-порт с ПК я использовал аппаратный преобразователь USB-UART с использованием микросхемы FT232RL.

Схема структурная

Структурную схему можно представить в следующем виде:

Тут все очень просто и почти не требует пояснения. Вся электрическая часть устройства состоит из следующих элементов:
a) Блок управления включения/выключения нагрузки
b) Микроконтроллер
c) Преобразователь USB – UART
d) ПК и программа управления устройством

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

Схема электрическая принципиальная

Связь с компьютером осуществляется с помощью преобразователя USB-UART на FT232RL, для чего используется выводы 3 и 4 порта D микроконтроллера, соответствующие сигналам RxD и TxD. Схема подключения осуществляется согласно документации на FT-232RL и ATMega8. Кварцевый резонатор имеет частоту 7.3728 Мгц. Управление нагрузкой осуществляется с помощью гальванически развязанного ключа на симисторе BT138-600 и оптопаре MOC3061. Такого ключа достаточно для нагрузки до 12А.
Схема выглядит следующим образом:
Исключён фрагмент. Наш журнал существует на пожертвования читателей. Полный вариант этой статьи доступен только меценатам и полноправным членам сообщества. Читай условия доступа!



А как же это все должно работать?

Подойдя к стадии написания программного обеспечения для МК я задался вопросом, а как же это все будет работать. Немного подумав, я решил, что алгоритм работы должен выглядеть следующим образом:

После включения микроконтроллера (его подключения к ПК), инициализируется его работа, устанавливается режим работы приемо-передатчика UART, после чего разрешаются прерывания и МК ждет приема данных от программы, запущенной на ПК.

При запуске программы и удачном подключении устройства, программа обменивается с МК данными иполучает сообщение об удачном подключении. При повторном подключении программы к уже включенной плате, устройство посылает сообщение о количестве и номере включенных устройств.
Работает МК в режиме ожидания, пока не произойдет прерывание по приему данных. Описанный выше цикл повторяется бесконечно, пока включено питание устройства.

Прошивка для МК

Программа, отвечающая за работу МК написана с использованием WinAVR и отлаживалась виртуально на ПК при помощи пакета ISIS 7 Professional. Увидеть исходный код и получить готовую прошивку можно скачав архив внизу статьи.
Если кому-то будет интересен результат компиляции кода, то он представлен ниже:
[/hide]

Программа для ПК

Написание программы для ПК для меня было уже куда более интересным. Т.к. раньше мне уже доводилось встречаться с Delphi изначально был выбран он. Но дойдя до стадии использования в проекте объекта для работы с COM-портом встретился с проблемой (возможно сам не доглядел): ни в одной сборке студий я такой объект не обнаружил.
Тогда я взял самоучитель по С# и, посидев с ним 2 вечера после работы, приступил к написанию пробной версии программы. Внешне вышла она не очень привлекательной, но это не главное. Главное - работает!

В верхнем разделе меню я добавил небольшую справку о том, как должно быть сконфигурировано подключенное к ПК устройство.

В общем, программа получилась такой как я хотел, хотя осталась еще пара идей, которые хотелось бы реализовать позднее.
Для работы программы COM-порт необходимо настроить следующим образом:
Baund Rate - 9600
Data bits - 8
Stop Bits - 1


Сборка


Проект был собран на монтажной плате, ПП не разрабатывалась. Прилагаю к статье файл модели в Proteus 7.6 SP4.

Заключение

В заключении хочется сказать, что работа над проектом продолжается.
В планах:
• реализация FIFO,
• наращивание числа коммутаторов,
• доработка управляющего ПО

Спасибо за внимание!

Файлы

Исходники и прошивка МК:
AVR.zip 🕗 06/08/13 ⚖️ 70,42 Kb ⇣ 50

Программа управления по USBдля Win:
USB-Controll.zip 🕗 07/08/13 ⚖️ 26,83 Kb ⇣ 49

Модель в Proteus 7.6 SP4:
All.zip 🕗 07/08/13 ⚖️ 920,45 Kb ⇣ 43
Артем (hottabi4)
Таганрог
Профиль hottabi4
Студент радитехнического университета
 

Понравилось? Палец вверх!

  • всего лайков: 36

Поделись с друзьями!

Связанные материалы:


Схема на Датагоре. Новая статья Фото-реле на микроконтроллере ATTiny13... Привет датагорцам! Я затеял ремонтные работы дома, и мне понадобилась система автоматического...
Схема на Датагоре. Новая статья Программирование микроконтроллеров в AtmelStudio 6. Часть 2. Одна программа на разных языках.... Для радиолюбителей, которые до определенного времени не использовали микроконтроллеры в своих...
Схема на Датагоре. Новая статья USB-программатор AVR на FT232RL с буффером... Иметь дело с микроконтроллерами (как и вообще с цифровой техникой) мне приходится довольно редко и...
Схема на Датагоре. Новая статья SHT10 + Atmega8: Микроконтроллерный модуль управления вентилятором санузла, v2... Доброго дня, сограждане! Представляю вторую версию блока управления вентилятором для ванной,...
Схема на Датагоре. Новая статья Elect_60: программа микроконтроллерного управления внешними устройствами от ПК... Многие наши коллеги желающие создать микроконтроллерное устройство, управляемое от ПК сталкиваются...
Схема на Датагоре. Новая статья Управление шаговым двигателем с ПК... Драйвер для шагового двигателя, который управляется с персонального компьютера. Привет всем! Решил...
Схема на Датагоре. Новая статья 10 практических устройств на AVR-микроконтроллерах. Книга 2. Кравченко А. В.... 10 практических устройств на AVR-микроконтроллерах. Книга 2. Кравченко А. В. Издательство:...
Схема на Датагоре. Новая статья Миниатюрный полный USB-RS232 адаптер на CP-2102 для подключения микроконтроллера к компьютеру по USB... В продолжение к теме «Программатор AVR910», про маленькое устройство, хочу предоставить вашему...
Схема на Датагоре. Новая статья Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL, Евстифеев А.В.... Издательство: Додэка XXI [М.], 560 стр. 2005 г. Книга посвящена вопросам практического применения...
Схема на Датагоре. Новая статья Регулятор громкости и тембра с ДУ на TDA8425 + ATMEL AT90S4433... Когда-то, в 2005-2006 году, мной был сделан регулятор громкости и тембра на TDA8425 с ДУ. Статья...
Схема на Датагоре. Новая статья ATmega8/L... Представляю вам даташит на микроконтроллер ATmega8/L фирмы Atmel. Если кто рискнёт перевести......
Схема на Датагоре. Новая статья TDA7442D+ATmega8. Микропроцессорный регулятор громкости... Привет ВСЕМ!!! Интересно, кому бы не хотелось, чтобы его усь обладал сервисом промышленных...
  1. <

    AudioKiller

    Игорь Рогов Читатель Датагора
    • Гражданин
    Комментарий # 1 от 28 августа 2013 15:29.
    Ответить
    • С нами с 10.01.2012
    • Ушёл в реал Пользователь offline
    • 292 комментария
    • 3 публикации
     
    Понравилось.
    1. Насколько я понял, связь идет по СОМ порту. Это не айс - его уже не встретишь. Хорошо бы по USB.
    2. В комповую программу надо ввести индикаторы состояния устройств, а то будешь включать уже включенное устройство.
    3. Ну и если светит курсовая по программированию, то можно написать небольшую системку, позволяющую пользователю (почтенной пожилой домохозяйке) самому программировать последовательность включений/выключений во времени, от каких датчиков и т.п.

  2. <

    Datagor

    Игорь Котов Читатель Датагора
    • Главный редактор
    Комментарий # 2 от 28 августа 2013 16:51.
    Ответить
    • С нами с 25.02.2011
    • На сайте Пользователь Онлайн
    • 2 067 комментариев
    • 273 публикации
     
    Уважаемый тёзка, не пишите комменты не уделив ВНИМАНИЯ статье.

    1. Нет, вы не правильно поняли, подключение по USB.
    2. Индикация состояния устройств есть, на скриншоте она отображает фразу "Нет связи с устройством" в каждом канале.
    3. Еще прикольнее сделать web-интерфейс, чтобы рулить через Интернет, удаленно.
    good
    Артём, спасибо!

  3. <

    dimon5000

    Дмитрий Читатель Датагора
    • Гражданин
    Комментарий # 3 от 29 августа 2013 00:41.
    Ответить
    • С нами с 11.08.2011
    • Ушёл в реал Пользователь offline
    • 11 комментариев
    • 0 публикаций
     
    Заинтересовало. Самому нужно было подобное устройство. Правда делал через LPT интерфейс. Мне нужно было минимум на 10 каналов. За основу был взят старый системник, и программа wndLPT. И статья lpt светомузыка. А вот силовая часть - такая же как у Вас. Правда, при первом испытании уже собранного устройства - симисторы почему-то через раз закрывались(.

  4. <

    AudioKiller

    Игорь Рогов Читатель Датагора
    • Гражданин
    Комментарий # 4 от 3 сентября 2013 00:38.
    Ответить
    • С нами с 10.01.2012
    • Ушёл в реал Пользователь offline
    • 292 комментария
    • 3 публикации
     
    1. Насчет USB и правда косякнул, однако в тексте: "Но дойдя до стадии использования в проекте объекта для работы с COM-портом встретился с проблемой..." навевает сомнения.

    2. Фраза "Нет связи с объектом" должна означать отсутствие кабеля, например. А я имею ввиду состояние объекта управления "включено-выключено". Например, горящая "лампочка" в программе означает горящую лампочку (т.е. нагрузка включена) в реале.

  5. <

    Datagor

    Игорь Котов Читатель Датагора
    • Главный редактор
    Комментарий # 5 от 3 сентября 2013 11:15.
    Ответить
    • С нами с 25.02.2011
    • На сайте Пользователь Онлайн
    • 2 067 комментариев
    • 273 публикации
     
    Тёзка, привет!
    1) Чип FT232RL есть преобразователь интерфейсов. Он видится Виндой как устройство на неком COM-порте, даже если физически ни одного порта на новом ПК не выведено наружу.
    Таким же образом опознаются GSM-модемы и подключения сотиков к ПК и т.п.

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

  6. <

    hottabi4

    Артем Читатель Датагора
    • Кандидат
    Комментарий # 6 от 19 сентября 2013 19:22.
    Ответить
    • С нами с 6.08.2013
    • Ушёл в реал Пользователь offline
    • 1 комментарий
    • 1 публикация
     
    Всем добрый день!
    По поводу дискуссий:

    1. Игорь сказал правильно, устройство сидит физически на USB. FT232RL это преобразователь интерфейсов USB - COM.
    2. "нет связи с устройством" это потому что программа находится в неактивном состоянии, т.е. не подключена к плате. Как только происходит сопряжение сообщение меняется на - "Нагрузка включена/выключена" в зависимости от состояния.
    3. После того как произошло управление нагрузкой программу можно закрыть полностью, все останется работать и запустив ее снова в окнах будут отображаться все состояния. ( В будущем хочу доработать чтобы сворачивать в трей и выводить сообщение о нагрузках при наведении мыши)

Добавление комментария


Налетай! Паяльники, станции, жала с доставкой
  • smilelolbyewinkyahoocoollaughing
    crazybadcryingsadirefulsickstraight
    ballooncakegooddrinksmailbombsun
    nightrainstarscolddashguitar-manhandshake
    musicnegativenopardonshoksleepunknown
    wackoyawnblushbullyhashsmokingwhew
Скопируйте текст вашего комментария на случай неверного ответа на контрольный вопрос.