Как я управляю электронными устройствами
Перейти к содержимому

Как я управляю электронными устройствами

Управление устройствами через компьютер

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

С помощью небольшой программы и схемы к ней можно управлять различными бытовыми приборами и устройствами.

Устройство подключают к одному из COM-портов, а управлять приборами можно как с помощью экранных клавиш, так и внешних датчиков.

Принципиальная схема устройства

Управление устройствами через компьютер

Схема управления приборами через COM-порт компьютера.

Его основа — микросхема 74HC595, представляющая собой 8-разрядный сдвиговый регистр с последовательным вводом и последовательным и параллельным выводами информации. Параллельный вывод осуществляется через буферный регистр с выходами, которые имеют три состояния. Информационный сигнал подают на вход SER (вывод 14), сигнал записи — на вход SCK (вывод 11), а сигнал вывода — на вход RSK (вывод 12). На микросхеме DA1 собран стабилизатор напряжения 5 В для питания регистра DD1.

Устройство подключают к одному из COM-портов компьютера. Информационные сигналы поступают на контакт 7 розетки XS1, сигналы записи информации — на контакт 4, а сигналы вывода информации — на контакт 3. Сигналы COM-порта согласно стандарту RS-232 имеют уровни около -12 В (лог. 1) и около +12 В (лог. 0). Сопряжение этих уровней с входными уровнями регистра DD1 выполнено с помощью резисторов R2, R3, R5 и стабилитронов VD1—VD3 с напряжением стабилизации 5,1 В.

Сигналы управления внешними приборами формируются на выходах Q0—Q7 регистра DD1. Высокий уровень равен напряжению питания микросхемы (около 5 В), низкий — менее 0,4 В. Эти сигналы являются статическими и обновляются в момент поступления высокого уровня на вход RSK (вывод12) регистра DD1. Светодиоды HL1—HL8 предназначены для наблюдения за работой устройства.

Управление устройством осуществляется с помощью разработанной автором программы UniCOM. Внешний вид главного окна программы показан на рисунке ниже.

Управление устройствами через компьютер

После ее запуска следует выбрать свободный COM-порт и скорость переключения выходов. В строки таблицы вводят состояние каждого из выходов устройства (высокий уровень — 1, низкий — 0 или пусто). Программа, «перебирая» в рабочем цикле столбцы таблицы, устанавливает на выходах устройства соответствующие логические уровни. Занесенная в таблицу информация автоматически сохраняется при завершении работы программы и загружается вновь при ее последующем запуске. Для наглядности, в левой части окна программы подсвечены номера выходов, на которых установлен высокий уровень.

Управление устройствами через компьютер

Управление приборами можно осуществлять и с помощью внешних контактных датчиков, которые подключают к входам 1—3 и линии питания +5 В. Они должны работать на замыкание или размыкание контактов. Пример схемы подключения датчиков показан на рисунке.

При нажатии на экранную клавишу «Настройка входов» открывается окно «Согласование входов и выходов».

Управление устройствами через компьютер

Управление приборами через COM-порт компьютера. Окно Согласование входов и выходов.

В этом окне выбирают входы, которые будут изменять состояние выходов. Имитировать работу входов можно, нажимая на экранные клавиши «1», «2», «3» основного окна программы. В тех случаях, когда приборами нельзя управлять с помощью логических уровней, следует применить реле или транзисторную оптопару (см. рисунки ниже).

Управление устройствами через компьютер

Управление устройствами через компьютер

Большинство деталей монтируют на печатной плате из односторонне фольгированного стеклотекстолита толщиной 1… 1,5 мм, чертеж которой показан на рисунке.

Управление устройствами через компьютер

Чертеж печатной платы.

Управление устройствами через компьютер

На этапе отработки алгоритма управления светодиоды можно установить на плате (см. рис.), а затем исключить. Резисторы R1, R4, R6 монтируют на выводах розетки XS1.

В устройстве применены резисторы С2-23, МЛТ, оксидные конденсаторы — К50-35 или импортные, розетка XS1 — DB9F. Помимо указанных на схеме стабилитронов, можно применить BZX55C5V1 или отечественные КС147А, светодиоды — любые. Микросхему устанавливают в панель. Питают устройство от стабилизированного или нестабилизированного источника питания напряжением 12 В и током до 100 мА.

Автор: Т.НОСОВ,г.Саратов, Журнал «Радио», 2007г., №11.

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

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

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

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

Содержание / Contents

Камрад, рассмотри датагорские рекомендации

�� Полезные и проверенные железяки, можно брать

Опробовано в лаборатории редакции или читателями.

↑ Анализ

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

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

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

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

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

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

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

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

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

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

> «make.exe» all
——— begin ———
avr-gcc (WinAVR 20100110) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Size before:
AVR Memory Usage
—————-
Device: atmega8

Program: 1666 bytes (20.3% Full)
(.text + .data + .bootloader)

dаta: 581 bytes (56.7% Full)
(.data + .bss + .noinit)

Compiling C: ra1.c
avr-gcc -c -mmcu=atmega8 -I. -gstabs -DF_CPU=7372800UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./ra1.lst -std=gnu99 -MMD -MP -MF .dep/ra1.o.d ra1.c -o ra1.o

Linking: ra1.elf
avr-gcc -mmcu=atmega8 -I. -gstabs -DF_CPU=7372800UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=ra1.o -std=gnu99 -MMD -MP -MF .dep/ra1.elf.d ra1.o —output ra1.elf -Wl,-Map=ra1.map,—cref -lm

Creating load file for Flash: ra1.hex
avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock ra1.elf ra1.hex

Creating load file for EEPROM: ra1.eep
avr-objcopy -j .eeprom —set-section-flags=.eeprom=»alloc,load» \
—change-section-lma .eeprom=0 —no-change-warnings -O ihex ra1.elf ra1.eep || exit 0

Creating Extended Listing: ra1.lss
avr-objdump -h -S -z ra1.elf > ra1.lss

Creating Symbol Table: ra1.sym
avr-nm -n ra1.elf > ra1.sym

Converting to AVR Extended COFF: ra1.cof
avr-objcopy —debugging —change-section-address .data-0x800000 —change-section-address .bss-0x800000 —change-section-address .noinit-0x800000 —change-section-address .eeprom-0x810000 -O coff-ext-avr ra1.elf ra1.cof

Discarding local symbol outside any compilation unit: .do_copy_data_start
Discarding local symbol outside any compilation unit: .do_copy_data_loop
Discarding local symbol outside any compilation unit: .do_clear_bss_start
Discarding local symbol outside any compilation unit: .do_clear_bss_loop
avr-objcopy: —change-section-vma .eeprom+0xff7f0000 never used
avr-objcopy: —change-section-lma .eeprom+0xff7f0000 never used
avr-objcopy: —change-section-vma .noinit+0xff800000 never used
avr-objcopy: —change-section-lma .noinit+0xff800000 never used

Size after:
AVR Memory Usage
—————-
Device: atmega8

Program: 1666 bytes (20.3% Full)
(.text + .data + .bootloader)

dаta: 581 bytes (56.7% Full)
(.data + .bss + .noinit)

> Process Exit Code: 0
> Time Taken: 00:04

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

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

↑ Сборка

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

↑ Заключение

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

Как я управляю электронными устройствами

Управление электрическими цепями через USB

Автор: xkp, x-k-p@mail.ru
Опубликовано 01.09.2014
Создано при помощи КотоРед.
Участник Конкурса «Поздравь Кота по-человечески 2014»

Многие из нас наверно хотели бы управлять электрическими цепями через компьютер. А что? Неплохо было бы. Представь, звонит тебе друг, говорит: «Через 20 мин буду», тут проходит 20 минут, звонок в двери, но как не хочется вставать из-за компьютера, идти открывать двери и т.д. А представь иную ситуацию: звонок в двери, тут у тебя на мониторе выползает сообщение типа «У Вас гости», ты нажимаешь кнопку на компьютере – открывается магнитный замок на дверях, и ты орешь на весь дом: «Заходи», или тебе нужно включить электрочайник, свет или еще что то. В наше время это уже не фантастика, а вполне реалистично, только вот из-за плохой экономики далеко не каждый может позволить себе даже самый простейший «смарт-хаус», но если есть желание и прямые руки, то можно запросто сделать управление электрическими цепями через ПК.

В наше время достаточно много людей умеет программировать, они могут написать программку под компьютер, которая смогла бы управлять внешними устройствами, но как подключить тотже электрочайник к компьютеру? Ну, можно, к примеру, через LPT порт, только вот его уже редко где можно увидеть, что тогда остается? USB.

Давайте сделаем устройство, которое будет подключаться к USB и сможет управлять электроцепями (например, включать освещение), реагировать на замыкание кнопок (например, дверной звонок) и еще что-то.

Итак, из чего же мы будем его делать? Те, кто интересовался данным вопросом, наверно уже слышали о модуле Ke-USB24A.

Описание:

Модуль Ke-USB24A предназначен для сопряжения внешних цифровых и аналоговых устройств, датчиков и исполнительных механизмов с компьютером через шину USB. Определяется как дополнительный (виртуальный) COM порт. Модуль имеет 24 дискретные линии ввода/вывода (либо лог. 0 либо лог. 1) с возможностью настройки направления передачи данных (вход/выход) и встроенный 10-ти разрядный АЦП. Для управления модулем предусмотрен набор текстовых команд управления (KE – команды).

  • интерфейсный модуль для сопряжения по шине USB
  • определяется ОС Windows/Linux как виртуальный COM порт
  • не требует дополнительных схемных элементов, сразу готов к работе
  • 24 дискретные линии ввода/вывода с возможностью независимой настройки направления передачи данных (вход/выход) и сохранения настроек в энергонезависимой памяти модуля
  • встроенный 10-ти разрядный АЦП с гарантированной частотой дискретизации до 400 Гц.
  • динамический диапазон напряжения входного аналогового сигнала для АЦП от 0 до 5 В.
  • набор готовых текстовых команд управления высокого уровня (KE – команды)
  • удобный форм-фактор в виде модуля с DIP-колодкой и разъемом USB-B
  • возможность питания как от шины USB, так и от внешнего источника питания (режим выбирается джампером на плате)
  • возможность сохранения данных пользователя в энергонезависимой памяти модуля (до 32 байт)
  • возможность изменения строкового дескриптора USB устройства
  • каждый модуль имеет уникальный серийный номер доступный программно
  • поддержка ОС Windows 2000, 2003, XP 32/64 bit, Vista 32/64 bit и Windows 7 32/64 bit
  • поддержка OS Linux

Вроде бы это то, что нам нужно, НО… цена этого чуда начинается от $40. Наверно у вас уже пропало желание его покупать.

Давайте лучше сами соберем подобный модуль, только чтобы он был доступный даже голодному студенту!

Из обязательных критериев: дешевизна и легко доступность компонентов, простота сборки.

В качестве микроконтроллера возьмем широко распространенный ATmega8 (без индекса L в конце). Характеристики нашего модуля будут такие:

  • Подключение к ПК через USB.
  • определяется ОС Windows как USB HID устройство, не требующее драйверов.
  • Сразу готов к работе.
  • 7 линий вывода с логическим состоянием (активен / неактивен).
  • 2 линии вывода с плавным управлением напряжения от минимума до максимума. Только это не ЦАП (цифро-аналоговый преобразователь) а ШИМ (широтно-импульсная модуляция). Но с помощью фильтра можно легко превратить в ЦАП.
  • 7 линий ввода с логическим состоянием (активен / неактивен).
  • 1 АЦП (аналогово-цифровой преобразователь) с возможностью подключения внешнего источника опорного напряжения (ИОН).
  • Возможность заливать новую прошивку прямо через USB.

Почему я выбрал именно HID, а не виртуальный COM порт (CDC)? Во-первых, не нужны драйвера, во-вторых, HID в несколько раз меньше грузит микроконтроллер, чем CDC, так как данные запрашиваются не постоянно, а только тогда, когда этого требует хост (компьютер), и вообще, COM порт уже отмирает, сейчас аппаратных COM портов уже практически нет, остались только виртуальные. Логические линии вывода предназначены для управления только двумя состояниями – включенный или выключенный, при выключенном на выходе (ножке микроконтроллера) будет 0В при включенном – 5В, сюда вы можете подключить просто светодиод и управлять ним с ПК, а можете подключить реле (через транзистор) и управлять более мощной нагрузкой (освещение и т.д.). Линии вывода с регулировкой напряжения (ШИМ выход) позволяют плавно менять напряжение на ножке микроконтроллера от 0В до +5В с шагом 5/1024В. Линии ввода с логическим состоянием предназначены для мониторинга состояния кнопок, ключей и т.д. Когда линия замкнута на землю (корпус, GND), ее состояние = 0, если не замкнута – 1. АЦП позволяет измерять напряжение, сюда можно подключить потенциометр, аналоговый термодатчик, или еще что то, только напряжение, на этой ножке не должно превышать напряжение питания. В качестве источника опорного напряжения для АЦП можно использовать как внешний ИОН, так и напряжение питания модуля. Чтобы при перепрошивке не приходилось подключать микроконтроллер к программатору, сделаем возможность заливки прошивки прямо через USB, без использования внешнего программатора.

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

Ну и в результате получилось вот что:

Теперь разберемся, что куда будем подключать.

  1. USB – Порт. Думаю, его все знают.
  2. Индикатор питания.
  3. Кнопка сброса (перезагрузка).
  4. Логический вход 1.
  5. Логический вход 2.
  6. Логический вход 3.
  7. Логический вход 4.
  8. Логический вход 5.
  9. Логический вход 6.
  10. Логический вход 7.
  11. Вход АЦП.
  12. Вход для подключения ИОН.
  13. Этот контакт подключен к питанию устройства. Замкните перемычкой 12 и 13 контакты, чтобы напряжение ИОНа было равно напряжения питания.
  14. Логический выход 1.
  15. Логический выход 2.
  16. ШИМ выход 1.
  17. ШИМ выход 2.
  18. Логический выход 3.
  19. Логический выход 4.
  20. Логический выход 5.
  21. Логический выход 6.
  22. Логический выход 7.

Что такое GND?

Даже начинающий радиолюбитель знает, что такое GND, но некоторым людям это кажется страшным буквами. GND – это, так сказать, общий контакт. Его еще называют землей и массой. Провод обычно черного цвета (иногда белого или еще, какого нить). GND также подключается к металлическому корпусу устройства. На плате в большинстве случаев все свободное место заполняет GND в виде больших полигонов. На нашем модуле есть полигоны в виде сеточки, они так же соединяются с корпусом USB – разъема.

Программа для микроконтроллера.

Так как в статье я хочу рассказать, как управлять цепями через USB с помощью готового модуля, то я не буду объяснять, как работает программа микроконтроллера, снизу можете скачать исходники и посмотреть, там много комментов. Здесь я напишу просто об идентификаторах устройства.

8-канальное управление устройствами по USB с помощью ATiny2313

Как известно, существует достаточное количество интерфейсов, с помощью которых микроконтроллер (МК) может общаться с внешними устройствами. Если необходимо связать МК с персональным компьютером или ноутбуком, то с уверенностью можно сказать, что лучше всего использовать интерфейс COM-порта RS-232.

Вебинар «Решения MORNSUN для промышленных применений: от микросхем до ИП на DIN-рейку» (02.11.2022)

Причина такого выбора очевидна – практически все контроллеры имеют аппаратные модули UART, с помощью которых можно передавать информацию при минимальном расходе ресурсов МК. Кроме того, существует множество хорошо зарекомендовавших себя программ, предназначенных для работы с COM-портом. Поскольку сигналы МК имеют уровни TTL, для согласования с интерфейсом RS-232 необходим преобразователь уровней. Часто его выполняют на основе доступной и популярной микросхемы MAX232.

Рисунок 1.

Представленное устройство (Рисунок 1) предназначено для управления приборами с помощью любого ПК, имеющего порт USB. Современные компьютеры и ноутбуки имеют по несколько таких портов. С помощью этого комплекса можно производить управление светом, телевизором и другими приборами. Исполняющие устройства не обязательно должны находиться в непосредственной близости от ПК.

Прибор состоит из вполне доступных и распространенных элементов. Обе микросхемы – микроконтроллеры ATtiny2313 семейства AVR. Первый контроллер подключен к USB-порту компьютера и выполняет функцию конвертора форматов USB-COM. Второй подключается к первому и все время сканирует команды, которые посылаются с ПК через терминальную программу Terminal v1.9b.

Подключенный к выводу 2 USB резистор R4 переводит устройство в низкоскоростной режим LS, позволяющий при обмене данными со скоростью 1.5 Мбит/с с помощью программы выпонять расшифровку посылок от ПК.

С помощью резисторов R2 и R3 происходит устранение переходных процессов. Конденсатор С5 блокирует импульсные помехи в цепи питания. Стабилитроны D1 и D2 необходимы для согласования логических уровней МК и USB входа ПК. Для безошибочной передачи данных между контроллерами частоты кварцевых резонаторов должны быть равны 12 и 4 МГц.
К выводам /RESET следует подключить подтягивающие резисторы, чтобы в дальнейшем избежать произвольного сброса МК из-за влияния помех и статических напряжений. В данной схеме все команды отображаются на светодиодах, подключенных к порту В. Чтобы управлять какими-либо устройствами, необходимо подключать выходы контроллера к реле (Рисунок 2).

8-канальное управление устройствами по USB с помощью ATiny2313
Рисунок 2.

Собрать устройство можно на макетной плате, хотя лучше, все же, на полноценной печатной плате. Элементы можно разместить, например, так, как показано на Рисунке 3.

8-канальное управление устройствами по USB с помощью ATiny2313
Рисунок 3.

Программа для микроконтроллера U1 разработана товарищем GetChiper в среде Bascom-AVR. Для работы с шиной USB использована библиотека swusb.LBX. С ее помощью выполняется программное декодирование USB протокола в режиме реального времени. Для работы устройства с ПК, нужно установить соответствующие драйверы, скопировав их на жесткий диск. При первом подключении устройство опознается и запросит драйвер. Далее нужно указать путь к папке с файлами, и все заработает.

Рисунок 4.

Программа микроконтроллера U2 была написана мною в среде AVRStudio на языке ассемблера. Блок-схема алгоритма работы МК представлена на Рисунке 4. Аппаратный модуль UART следует настроить на прерывание по завершению приема данных. Сам МК не будет выполнять ни одной функции, пока не наступит прерывание. Для снижения энергопотребления можно воспользоваться режимом sleep, но в данной конструкции этого делать не понадобилось. Как только из терминала ПК последуют команды, МК мгновенно перейдет к их сканированию. На данный момент контроллер поддерживает следующую систему команд:

-on1, on2, on3, on4, on5, on6, on7, on8 – команды установки портов в «лог. 1»;
-off1, off2, off3, off4, off5, off6, off7, off8 – команды установки портов в «лог. 0»;
-ser – установить все порты в активное состояние «лог. 1»;
-clr – сбросить все порты в состояние «лог.0».

После окончания ввода каждой команды необходимо нажимать Enter. Таким образом МК сможет определить конец команды и приступить к ее сканированию. На каждую верную команду контроллер будет отвечать «ok». Если ввести неверные данные, то в терминальную строку вернется «error». Пример выполнения команды показан на Рисунке 5.

8-канальное управление устройствами по USB с помощью ATiny2313
Рисунок 5.

Версия прошивки 1.0. Выставлять фьюзы необходимо в соответствии с Рисунком 6. Разрабатывается следующая версия прошивки, где будет происходить самообучение МК и изменение систем команд в терминале.

8-канальное управление устройствами по USB с помощью ATiny2313
Рисунок 6.

Программное обеспечение МК, виртуальная модель Proteus и драйвер для ПК — скачать
Протокол передачи данных между МК и ПК- скачать

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *