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

 
 
 

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

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

6

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

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

Анализ

Для решения задачи я решил применить микроконтроллер, который должен иметь на борту приемопередатчик 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 | Файл 70,42 Kb загружен 42 раз.

Программа управления по USBдля Win:
USB-Controll.zip | Файл 26,83 Kb загружен 39 раз.

Модель в Proteus 7.6 SP4:
All.zip | Файл 920,45 Kb загружен 36 раз.
Артем (hottabi4)
Таганрог
Профиль hottabi4
Студент радитехнического университета
 

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

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

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

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


Фото-реле на микроконтроллере ATTiny13

Привет датагорцам! Я затеял ремонтные работы дома, и мне понадобилась система автоматического...

Программирование микроконтроллеров в AtmelStudio 6. Часть 2. Одна программа на

Для радиолюбителей, которые до определенного времени не использовали микроконтроллеры в своих...

USB-программатор AVR на FT232RL с буффером

Иметь дело с микроконтроллерами (как и вообще с цифровой техникой) мне приходится довольно редко и...

SHT10 + Atmega8: Микроконтроллерный модуль управления вентилятором санузла, v2

Доброго дня, сограждане! Представляю вторую версию блока управления вентилятором для ванной,...

Elect_60: программа микроконтроллерного управления внешними устройствами от ПК

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

Управление шаговым двигателем с ПК

Драйвер для шагового двигателя, который управляется с персонального компьютера. Привет всем! Решил...

10 практических устройств на AVR-микроконтроллерах. Книга 2. Кравченко А. В.

10 практических устройств на AVR-микроконтроллерах. Книга 2. Кравченко А. В. Издательство:...

Миниатюрный полный USB-RS232 адаптер на CP-2102 для подключения микроконтроллера к

В продолжение к теме «Программатор AVR910», про маленькое устройство, хочу предоставить вашему...

Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL, Евстифеев А.В.

Издательство: Додэка XXI [М.], 560 стр. 2005 г. Книга посвящена вопросам практического применения...

Регулятор громкости и тембра с ДУ на TDA8425 + ATMEL AT90S4433

Когда-то, в 2005-2006 году, мной был сделан регулятор громкости и тембра на TDA8425 с ДУ. Статья...

ATmega8/L

Представляю вам даташит на микроконтроллер ATmega8/L фирмы Atmel. Если кто рискнёт перевести... ...

TDA7442D+ATmega8. Микропроцессорный регулятор громкости

Привет ВСЕМ!!! Интересно, кому бы не хотелось, чтобы его усь обладал сервисом промышленных...
<
  • Гражданин
28 августа 2013 15:29

Игорь / AudioKiller

  • С нами с 10.01.2012
  • Ушёл в реал Пользователь offline
  • 293 комментария
  • 3 публикации
 
  • 0
Понравилось.
1. Насколько я понял, связь идет по СОМ порту. Это не айс - его уже не встретишь. Хорошо бы по USB.
2. В комповую программу надо ввести индикаторы состояния устройств, а то будешь включать уже включенное устройство.
3. Ну и если светит курсовая по программированию, то можно написать небольшую системку, позволяющую пользователю (почтенной пожилой домохозяйке) самому программировать последовательность включений/выключений во времени, от каких датчиков и т.п.

<
  • Главный редактор
28 августа 2013 16:51

Игорь Петрович Котов / Datagor

  • С нами с 25.02.2011
  • Ушёл в реал Пользователь offline
  • 1 607 комментариев
  • 256 публикаций
 
  • 0
Уважаемый тёзка, не пишите комменты не уделив ВНИМАНИЯ статье.

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

<
  • Гражданин
29 августа 2013 00:41

Дмитрий / dimon5000

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

<
  • Гражданин
3 сентября 2013 00:38

Игорь / AudioKiller

  • С нами с 10.01.2012
  • Ушёл в реал Пользователь offline
  • 293 комментария
  • 3 публикации
 
  • 0
1. Насчет USB и правда косякнул, однако в тексте: "Но дойдя до стадии использования в проекте объекта для работы с COM-портом встретился с проблемой..." навевает сомнения.

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

<
  • Главный редактор
3 сентября 2013 11:15

Игорь Петрович Котов / Datagor

  • С нами с 25.02.2011
  • Ушёл в реал Пользователь offline
  • 1 607 комментариев
  • 256 публикаций
 
  • 0
Тёзка, привет!
1) Чип FT232RL есть преобразователь интерфейсов. Он видится Виндой как устройство на неком COM-порте, даже если физически ни одного порта на новом ПК не выведено наружу.
Таким же образом опознаются GSM-модемы и подключения сотиков к ПК и т.п.

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

<
  • Кандидат
19 сентября 2013 19:22

Артем / hottabi4

  • С нами с 6.08.2013
  • Ушёл в реал Пользователь offline
  • 1 комментарий
  • 1 публикация
 
  • 0
Всем добрый день!
По поводу дискуссий:

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

Информация
Вы не можете участвовать в комментировании. Вероятные причины:
— Администратор остановил комментирование этой статьи.
— Вы не авторизовались на сайте. Войдите с паролем.
— Вы не зарегистрированы у нас. Зарегистрируйтесь.
— Вы зарегистрированы, но имеете низкий уровень доступа. Получите полный доступ.