Главная » Компьютерная электроника
Призовой фонд
на октябрь 2017 г.
1. Термометр Relsib WT51
Рэлсиб
2. 1000 руб
PCBWay
3. Регулируемый паяльник 60 Вт
Паяльник
4. 100 руб.
От пользователей

USB управляемая розетка

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

USB был выбран потому что, во первых я хотел поэкспериментировать с микроконтроллером PIC18F4550, а во вторых, мощностью USB-порта (500 мА) хватает для питания катушки реле.

Фото USB-розетки

Программное обеспечение МК основывается на SIXCA USBDAQ, который в свою очередь базируется на microchip CDC. USBDAQ очень прост в использовании и позволяет посылать ASCII команды для включения/выключения цифровых выходов, которые используются для управления двумя реле. Мне нужно было только установить значение bMaxPower, чтобы можно было использовать ток в 500 мА и поменять данные "vendor ID" и "name".

Внимание! Хотя в устройстве и предусмотрена изоляция низковольтовой и силовой части, всегда есть риск механического и др. повреждений. Поэтому соблюдайте осторожность!

Принципиальная схема USB-розетки

За основу взята схема USBDAQ, добавлены лишь 2 дополнительных каскада для управления реле. В схеме используется составной транзистор BC517 (аналог КТ645А). Схемы управления реле были взяты отсюда: управление реле через COM-порт.

Печатная плата разделена на 3 части. 2 платы управления можно легко поместить в корпус внешней розетки, колодки или удлинителя.

Печатная плата и расположение элементов

PIC-микропрограмма

Опишу только то, что нужно изменить в оригинальной SIXCA USBDA:

Вначале я установил значение переменной bMaxPower на 250 мА. Файл, который необходимо модифицировать: fw/cdc/autofiles/usbdsc.c:

/* Configuration 1 Descriptor */
CFG01=
{
/* Configuration Descriptor */
sizeof(USB_CFG_DSC),    // Size of this descriptor in bytes
DSC_CFG,                // CONFIGURATION descriptor type
sizeof(cfg01),          // Total length of data for this cfg
2,                      // Number of interfaces in this cfg
1,                      // Index value of this configuration
0,                      // Configuration string index
_DEFAULT,               // Attributes, see usbdefs_std_dsc.h
250,                    // Max power consumption (2X mA) 250 = 500mA
 
...

В этом же файле я изменил Vendor ID, Product ID

/* Device Descriptor */
rom USB_DEV_DSC device_dsc=
{
sizeof(USB_DEV_DSC),    // Size of this descriptor in bytes
DSC_DEV,                // DEVICE descriptor type
0x0200,                 // USB Spec Release Number in BCD format
CDC_DEVICE,             // Class Code
0x00,                   // Subclass code
0x00,                   // Protocol code
EP0_BUFF_SIZE,          // Max packet size for EP0, see usbcfg.h
0xAF01,                 // Vendor ID
0xAF0A,                 // Product ID: CDC RS-232 Emulation Demo
0x0000,                 // Device release number in BCD format
0x01,                   // Manufacturer string index
0x02,                   // Product string index
0x00,                   // Device serial number string index
0x01                    // Number of possible configurations
};
 
...
 
rom struct{byte bLength;byte bDscType;word string[16];}sd001={
sizeof(sd001),DSC_STR,
'a','l','f','e','r','s','o','f','t','.',
'c','o','m','.','a','r'};
 
rom struct{byte bLength;byte bDscType;word string[21];}sd002={
sizeof(sd002),DSC_STR,
'A','l','f','e','r','S','o','f','t',' ',
'U','S','o','c','k','e','t',' ','1','.','0'};

Также отредактировал файл driver/win2k_winxp/mchpcdc.inf, чтобы совпадали данные vendor, product ID и описание:

[DeviceList]
%DESCRIPTION%=DriverInstall, USB\VID_AF01&PID_AF0A
 
...
 
;------------------------------------------------------------------------------
;  String Definitions
;------------------------------------------------------------------------------
 
[Strings]
MCHP="alfersoft.com.ar"
MFGNAME="alfersoft.com.ar"
DESCRIPTION="Communications Port"
SERVICE="AlferSoft USocket 1.0"

Прошивка PIC

Для программирования PIC я использовал WinPic800. На скриншоте ниже параметры.

WinPic800

Команды

Я не модифицировал какие-либо команды USBDAQ. Они все доступны, но мне необходимы только 4 команды:
*A01 (включить реле 1)
*A00 (выключить реле 1)
*A11 (включить реле 2)
*A10 (выключить реле 2)
После каждой команды возврат каретки (chr(13) or '\n').

Установка ПО под Windows

1. Подключите устройство к USB, Windows должна его определить по иконке в трее:

Найденно новое оборудование

2. Windows предложит установить драйвера, соединившись с сервисом Windows Update, нажмите "нет" и перейдите к следующему шагу.

Установка драйверов

3. Выберите пункт "Установка из указанного места" и нажмите Next.

Установка драйверов

4. Выберите пункт "Включить следующее место поиска" и укажите директорию с .inf файлом driver\win2k_winxp:

Установка драйверов

5. Windows обнаружит и установит драйвер:

Установка драйверов

Тестирование (Windows)

1. Откройте диспетчер устройств и посмотрите на какой COM-порт у вас установилось устройство. У меня это был COM10

COM-порт детектед

2. Откройте терминал и задайте имя:

Hyperterminal

3. Выберите COM-порт:

Выбор COM-порта

4. Скорость обмена установите в 115200:

Установка скорости обмена COM-порта

5. Этот шаг необязательный. Для того, чтобы мы видели, что мы набираем, выберите ASCII Setup:

ASCII Setup

6. Поставьте галочку на опции "Echo typed characters locally".

ASCII Setup

7. Настройки готовы. Теперь можно соединиться и попробовать подать какую-нибудь команду на наше USB-устройство:

Команды в терминал

Установка ПО под Linux (Ubuntu)

1. Подключите устройство к компьютеру. Это все! Новое устройство вероятнее всего будет называться /dev/ttyACM0

Тестирование под Linux (Ubuntu)

1. Откройте gtkterm, если у вас этот пакет не установлен, то установите его командой "sudo apt-get install gtkterm"

2. Переходим к Configuration -> Port, устанавливаем порт /dev/ttyACM0, скорость 115200 и нажимаем ОК.

gtkterm

3. Выберите Configuration -> Local echo

4. Теперь можно набирать команды для управления реле.

Фотографии собранного устройства:

Фото USB-розетки

Фото USB-розетки

Фото USB-розетки

Ниже вы можете скачать драйвера, исходники, прошивку, файлы для Eagle

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
IC1 МК PIC 8-бит
PIC18F4550
1 Поиск в LCSCВ блокнот
Q1, Q3 Биполярный транзистор
BC517
2 КТ645АПоиск в LCSCВ блокнот
Q2 Кварц20 МГц1 Поиск в LCSCВ блокнот
D1-D4 Выпрямительный диод
1N4004
4 КД243ГПоиск в LCSCВ блокнот
LED1, LED2 Светодиод2 Поиск в LCSCВ блокнот
C1, C2 Конденсатор22 пФ2 Поиск в LCSCВ блокнот
C3 Конденсатор470 пФ1 Поиск в LCSCВ блокнот
R1 Резистор
4.7 кОм
1 Поиск в LCSCВ блокнот
R2 Резистор
1 мОм
1 Поиск в LCSCВ блокнот
R3, R5 Резистор
150 Ом
2 Поиск в LCSCВ блокнот
R4, R6 Резистор
100 кОм
2 Поиск в LCSCВ блокнот
K1, K3 РелеFRS1B2 5 ВольтПоиск в LCSCВ блокнот
X1 Mini-USB разъемType B1 Поиск в LCSCВ блокнот
Добавить все

Скачать список элементов (PDF)

Оригинал статьи

Прикрепленные файлы:

Теги:

Колтыков А.В. Опубликована: 2011 г. 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (0) | Я собрал (0) | Подписаться

Статью еще никто не комментировал. Вы можете стать первым.
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется сила тока?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

USB-реле (2 канала)
USB-реле (2 канала)
МиниПК MK809V - 4 ядра, Android 4.4.2 Лазерный модуль 650нм 5мВт
вверх