Добрый день уважаемые хабрачитатели. Данный топик является пробным озвучиванием моей старой идеи, и я очень буду благодарен за обсуждение в комментариях.
Я общаюсь с компьютерами уже около 15 лет, срок может не такой огромный для помнящих спектрумы, но достаточно приличный. Немного меньший срок я занимаюсь программированием на языках высокого уровня, пробовал php, Delphi, c++, написал несколько программ использующихся в узких кругах.
Жизнь программиста высокого уровня практически вся виртуальная. Всё что он создаёт, может быть неимоверно крутым, но это не выходит за пределы компьютера. Именно поэтому мне всегда казалось волшебством, когда я видел роботов и механизмы, выполняющие команды с компьютера, но это всё в каком то другом мире.
Вы программист высокого уровня, которых хотел бы управлять оборудованием из своих программ, но не хотите паять? Добро пожаловать под кат.
Моя давняя мечта, сделать что-то управляемое программой, всегда разбивалась о суровую реальность жизни. Я ленивый а найденные статьи мне предлагали купить текстолит, хлорное железо, разработать плату, купить детали, спаять, купить программатор, написать прошивку и только тогда я смогу включить лампочку или моргнуть светодиодом. Поэтому я давно хотел устройство, которое позволит взаимодействовать программа с внешним миром, без изучения железной части.
Представим вы программист высокого уровня, и хотите включать настольную лампу когда вам приходит почта. Если вы бегло погуглите, вы найдёте кучу вариантов как его спаять, но блин ни одного предложения просто его купить.
UPD. Нашёл предложение купить в Чип и Дип комплект за 740р, без возможности управлять им напрямую (только через их программу)
Я придумал и разработал прототип устройства со следующими характеристиками:
1. Подключение по USB стандартным miniUSB кабелем.
2. Отсутствие внешнего питания (кроме USB больше ничего не нужно)
3. На плате 1 или 2 реле (ещё не определился, реле очень большие и сильно увеличивают размер платы) которые могут коммутировать 220В
4. На плате 2 или 4 входа для датчиков. Вход это 2 провода, и вы можете узнать, замкнуты они или нет. Это позволяет повесить на них кнопку, выключатель, всякие концевики, и узнавать их состояние.
5. Возможно датчик света или температуры (пока не решил нужно или нет).
Физически устройство будет представлять собой плату примерно 5х5 сантиметров. На ней с одной стороны будет miniUSB разъём, с другой колодочки для подключения устройств и датчиков.
Как это будет выглядеть для программиста.
Устройство представляет собой стандартный HID Device. Это значит:
1. Для него не надо драйверов
2. С ним можно работать в любой ОС поддерживающей HID, например linux или Windows
Для работы с HID во многих языках программирования есть специальные классы или компоненты, но для облегчения работы пользователям windows я разработал dll, которая содержит ровно 3 функции: Connect – находит первое устройство, Read – читает данные с устройства,Write – пишет данные в устройство.
Так как устройство ещё в виде прототипа, то конечная структура данных может поменяться. Например сейчас она такая
Struct sendedData
{
Rele: byte;
Inputs:byte;
}
То есть если вам надо включить реле, вы просто вызываете функцию Write и записываете туда структуру с Rele==1.
Если вам надо узнать, замкнут у вас вход или нет, вы просто вызываете функцию Read, и смотрите значение Inputs, каждый бит соответствует одному из входов. Там будет 1 если замкнут и 0 если разомкнут.
Такой подход позволяет управлять внешними устройствами из любого языка, в котором есть возможность работы с dll. Представляете, вы можете включать силовые цепи нажав кнопочку в excel О_о.
Куда можно применить данное устройство? Тут всё ограничивает только ваше воображение:
Можно сделать панель опросник (может видели в сбербанке) «Удовлетворены ли вы работой» и нужное количество кнопок «Да/нет/наверное».
Можно поставить на дверь охранный датчик, и написать программку автоматически сворачивающую игрушки при открытии двери.
Можно воткнуть в своё кресло датчик как ставят в машинах, и включать/выключать свет когда вы сидите за компьютером, а время уже ночь.
Можно автоматически переключать звук с колонок на наушники, если время больше заданного.
Можно подключить его к роутеру, и нажимать кнопку ресет на сервере, если он завис.
Можно наконец реализовать свои мысли относительно умного дома, которые упирались в железную часть.
Это устройство лишь инструмент, ваши руки которые вылезли из компьютера, а что ими делать, решать вам.
Теперь о материальном. Я договорился о производстве данного устройства, и тут есть несколько нюансов.
Конечная цена с учётом всех накладных расходов и пересылкой почтой россии по РФ, будет порядка 500-550р. Минимальная партия 600 устройств. Я планирую создать сбор средств на сайте «С миру по нитке», если будет достаточно человек кто положительно воспримет идею.
Вот и всё. Жду вопросов, жалоб, предложений, негодований что за эти деньги можно купить ардуины/тектолит/хлорное железо, от тех кто не понимает что можно не хотеть разбираться в ардуинах/микроконтроллерах, но хотеть поуправлять чем либо из любимого Delphi.
Что я планирую добавить:
1. Работа с устройствами по серийным номерам. Хочу это реализовать отдельной dll, если вам надо использовать больше 1 устройства, то есть возможность прочитать их серийный номер и обращаться адресно к конкретному устройству.
2. Примеры работы с устройством из delphi, C++ builder, visual basic, c#
3. Возможность обновления прошивки по usb без сложных манипуляций, для реализации различных вариантов использования устройства (например добавление чтения ключей TM для создания домашнего домофона/скд)
Если данный пост будет положительно принят читателим (200-300 отзывов), то следующий пост будет с демонстрацией работы прототипа, и ссылкой на сайт сбора средств.
Автор: alaev