Согласно моему техзаданию в исполнительный уровень "умного дома" входят различные датчики, исполнительные устройства и так далее. У всех этих устройств должно быть некое ядро, которое обеспечивает выполнение функций, необходимых для работы устройства в системе "умного дома".
Рассмотрим, для начала, какие действия должно уметь выполнять каждое устройство исполнительного уровня системы...
25 дек. 2010 г.
8 дек. 2010 г.
Техническое задание на создание системы "Умный дом"
Наконец, я закончил написание техзадания... Предлагаю посмотреть его; разумная критика, замечания и предложения приветствуются.
При написании техзадания использовались следующие ГОСТы:
- ГОСТ-34.602-89 - "Техническое задание на создание автоматизированной системы"
- ГОСТ 34.201-89 - "Виды, комплектность и обозначение документов при создании автоматизированных систем"
- ГОСТ 24.601-86 - "Стадии создания автоматизированных систем"
Внимание! Оформление техзадания не соответствует ГОСТу.
Посмотреть PDF-файл с техзаданием (TR.pdf, 204 Кб)
Скачать исходный LaTeX-файл с техзаданием (TR.tex, 45 Кб)
1 дек. 2010 г.
Использование сенсорных сетей при построении систем "умный дом".
При создании системы "умный дом" рано или поздно придется решать проблему обеспечения устойчивой, надежной и главное недорогой связи между всеми устройствами, входящими в "умный дом". Конечно, можно использовать "по старинке" проводную связь, но даже в случае какого-нибудь 1-Wire, объем прокладываемых проводов может быть значительным. А если какой-нибудь из проводов будет перебит, порван или прокушен домашним животным, то смерть если не всей системы, то хотя бы какой-то ее части будет гарантирована (а если все дублировать, то дом будет напоминать логово паука).
Решение данной проблемы лежит на поверхности - нужно использовать беспроводную связь! Но тут сразу появляется ряд вопросов, требующих разрешения...
23 нояб. 2010 г.
Плагин code_complete для Vim'a - автодополнение и сниппеты
Практически во всех современных средах разработки есть пара удобных возможностей - есть возможность видеть список параметров функции, введя имя этой функции и открывающую скобку, и автодополнение стандартных блоков кода, наподобие if () {} else {} и других.
Естественно, подобная функциональность не могла обойти стороной и текстовый редактор Vim (который, стоит отметить, являет собой нечто большее, чем просто текстовый редактор). Сниппеты и автодополнение параметров функций можно найти во множестве плагинов, лежащих на vim.org.
В своей статье, я хочу рассмотреть один плагин, в котором уже реализованы и сниппеты и автодополнение. Плагин называется code_complete (new update).
21 нояб. 2010 г.
Пишем драйвер ЖКИ для стенда SDK1.1
В стенде SDK1.1 есть жидкокристаллический индикатор (ЖКИ), который можно использовать в качестве устройства вывода информации в своих программах. Вот только производитель не поставляет драйверов к SDK1.1 для этого устройства - нужно самим разбираться во внутреннем устройстве ЖКИ и самим писать для него драйвер.
Я уже успел сделать это и в данной статье будет рассмотрен мой драйвер ЖКИ, а также основные принципы работы с ЖКИ, знание которых позволит заинтересованным людям написать свой драйвер.
В статье не будет рассматриваться программная генерация символов - для вывода информации на экран я буду использовать только те символы, что уже "зашиты" в ПЗУ ЖКИ.
Я уже успел сделать это и в данной статье будет рассмотрен мой драйвер ЖКИ, а также основные принципы работы с ЖКИ, знание которых позволит заинтересованным людям написать свой драйвер.
В статье не будет рассматриваться программная генерация символов - для вывода информации на экран я буду использовать только те символы, что уже "зашиты" в ПЗУ ЖКИ.
18 нояб. 2010 г.
Shell в отдельном буфере vim'а
Лично мне, кажется весьма удобной возможность работать в консоли (например в том же bash'е) не отвлекаясь от любимого vim'а. Можно одновременно коммитить код или изменять структуру каталогов проекта или делать прочие подобные вещи не выходя из vim'а и не отвлекаясь на другие окна.
Раньше (пару лет назад), я искал плагин, который позволил бы открывать отдельный буфер с каким-нибудь shell'ом, но натыкался на предложения перекомпилировать vim, предварительно применив к его исходникам набор патчей. Естественно, меня не устраивало подобное положение вещей - мне хотелось простого плагина, а не плясок с бубном.
Оказывается, выход есть! Подобный плагин существует и называется Conque Shell.
Раньше (пару лет назад), я искал плагин, который позволил бы открывать отдельный буфер с каким-нибудь shell'ом, но натыкался на предложения перекомпилировать vim, предварительно применив к его исходникам набор патчей. Естественно, меня не устраивало подобное положение вещей - мне хотелось простого плагина, а не плясок с бубном.
Оказывается, выход есть! Подобный плагин существует и называется Conque Shell.
31 окт. 2010 г.
Литературное программирование в Vim
Недавно, я наткнулся на описание и действующий пример концепции программирования, которая называется литературным или грамотным программированием (literate programming).
Согласно этой концепции программист больше не вынужден мучительно писать код и комментарии к нему. Достаточно написать подробную статью о своей программе, наподобие той, что на IBM developerWorks. После, при помощи специальной утилиты можно получить как готовый файл со статьей, так и исходный код.
Согласно этой концепции программист больше не вынужден мучительно писать код и комментарии к нему. Достаточно написать подробную статью о своей программе, наподобие той, что на IBM developerWorks. После, при помощи специальной утилиты можно получить как готовый файл со статьей, так и исходный код.
2 окт. 2010 г.
Отчет о конференции Russian OpenSource Hardware
Сегодня в Петербурге проходила конференция, посвященная "опенсорсному железу" и конкретно, российскому опенсорсному железу. Будучи человеком любопытным и рьяно обожающим всякие железяки, я конечно же пошел на эту конференцию.
10 сент. 2010 г.
Отладочная плата SK-AT91SAM9260-SIM300
На днях, мне наконец-то пришла отладочная плата с ARM9 на борту, от магазина StarterKit.ru. Небольшой рассказ о ней, под катом.
26 авг. 2010 г.
Завершено портирование TNKernel на SDK2.0 (основан на чипе LPC2292)
За основу был взят уже имеющийся порт на LPC2106. А учитывая то, что TNKernel изначально разрабатывалась для процессоров архитектуры ARM, работа по портированию была не особо затруднительной.
Вот список изменений:
Вот список изменений:
19 авг. 2010 г.
Пишем Hello-world для микроконтроллера архитектуры ARM7.
В этом посте я опишу как написать и скомпилировать Hello-world для микроконтроллера, входящего в состав SDK2.0 - LPC2292 от NXP Semiconductors. Естественно "Hello world!" будет аппаратный - мы подадим высокий уровень напряжения на одну из ног микроконтроллера.
Мое описание не будет изобиловать сложными техническими подробностями - за ними лучше всего обратиться к полезным ссылкам в конце статьи. Пост подойдет для людей, которые хотят просто взять и написать свою первую программу для ARM7 и, в дальнейшем, радоваться этому событию.
Мое описание не будет изобиловать сложными техническими подробностями - за ними лучше всего обратиться к полезным ссылкам в конце статьи. Пост подойдет для людей, которые хотят просто взять и написать свою первую программу для ARM7 и, в дальнейшем, радоваться этому событию.
19 июл. 2010 г.
osd-slider - ползунок состояния для tiling WM и box'ов.
В "больших" DE, таких как KDE или GNOME, при изменении уровня яркости или громкости рисуется красивый ползунок, отображающий текущий уровень изменяемой величины:
К сожалению, подобного ползунка, но для какого-нибудь легковесного WM, как правило не предусмотрено. Например, появление в dwm подобного ползунка противоречит всей философии этого оконного менеджера. Но выход все же есть:
К сожалению, подобного ползунка, но для какого-нибудь легковесного WM, как правило не предусмотрено. Например, появление в dwm подобного ползунка противоречит всей философии этого оконного менеджера. Но выход все же есть:
1 июл. 2010 г.
Скрипт для расшаривания интернета с одного компьютера на другой
Суть работы скрипта:
Есть компьютер-шлюз, у которого две сетевые карты - одна смотрит в интернет, а вторая в "сеть", состоящую из двух компьютеров - хоста и шлюза. Задача - раздавать интернет с шлюза компьютеру-хосту.
Есть компьютер-шлюз, у которого две сетевые карты - одна смотрит в интернет, а вторая в "сеть", состоящую из двух компьютеров - хоста и шлюза. Задача - раздавать интернет с шлюза компьютеру-хосту.
28 июн. 2010 г.
Виджет, отображающий расписание студенческой группы (ИТМО) на текущий день
Иногда (особенно когда плохая память на незначительные мелочи :-) ) бывает полезно постоянно иметь перед глазами расписание своей группы в универе. Ради этого, я написал набор из пары скриптов и конфига к conky, которые выводят на рабочий стол расписание группы на текущий день.
27 мая 2010 г.
Собираем свой кросскомпилятор для ARM.
Для задачи портирования маленькой RT оси на SDK2.0, внутри которого какой-то ARM7, нужно собрать компилятор, который будет собирать исполняемые файлы под архитектуру ARM, работая при этом на машине с x86_64 процессором. К сожалению, в интернете практически отсутствуют руководства по сборке своего кросскомпилятора - в основном, рекомендуется использовать какие-то монстры наподобие Buildroot или crosstool-ng, которые помимо кросскомпилятора собирают еще кучу софта, мне ненужного.
Методом "научного тыка" я похоже набрел на последовательность действий, которая позволила мне наконец-то собрать для себя кросскомпилятор.
Методом "научного тыка" я похоже набрел на последовательность действий, которая позволила мне наконец-то собрать для себя кросскомпилятор.
21 мая 2010 г.
Использование VIm, как IDE для языка C.
Несмотря на утверждение, что Vim это всего лишь текстовый редактор и использовать его как IDE глупо, я довольно продолжительное время успешно использую Vim как IDE для языка C. В этом мне помогает набор удобных плагинов и периодически улучшаемый мною .vimrc.
К сожалению, я не встречал в Интернете статей, посвященных превращению Vim в IDE для C. Поэтому я решил написать свою :-).
17 апр. 2010 г.
Принципиальная схема стенда SDK1.1
Как и было обещано, в этом посте я рассмотрю принципиальную схему стенда. Желающие ознакомиться с ней прямо сейчас могут найти схему здесь.
В подобных принципиальных схемах в принципе нет ничего сложного - достаточно знать схемотехнику на уровне регистров, триггеров и иметь базовую информацию о том, что такое ПЛИС. Ничего страшного...
В подобных принципиальных схемах в принципе нет ничего сложного - достаточно знать схемотехнику на уровне регистров, триггеров и иметь базовую информацию о том, что такое ПЛИС. Ничего страшного...
13 апр. 2010 г.
Чемоданчик для разработок в области сенсорных сетей - CC2530ZDK
Буквально вчера, в мои когтистые лапы попал весьма интересный набор железок - СС2530 ZigBee Development Kit. Этот набор можно применять для разработки приложений, которые используют возможности сенсорных сетей.
Также, Texas Instruments предоставляет на бесплатной основе стек протоколов Z-Stack, который совместим с ZigBee и который используется в CC2530.
Вначале, я вкратце объясню что такое сенсорные сети, ZigBee и прочие непонятные вещи.
Также, Texas Instruments предоставляет на бесплатной основе стек протоколов Z-Stack, который совместим с ZigBee и который используется в CC2530.
Вначале, я вкратце объясню что такое сенсорные сети, ZigBee и прочие непонятные вещи.
21 мар. 2010 г.
Архитектура стенда SDK1.1
Как и было обещано, в этой статье я опишу архитектуру стенда SDK1.1. Начну со структурного описания, затем приведу характеристики стенда и информацию по отдельным узлам SDK1.1. Также будет дано описание используемой модели памяти и регистров ПЛИС.
16 мар. 2010 г.
Введение в SDK1.1
Я решил начать цикл статей, посвященных стенду SDK-1.1. Думаю, мои записи помогут тем, кому необходимо освоить данный стенд.
Все статьи будут отмечаться тегом sdk, для быстрого доступа ко всем статьям цикла.
15 мар. 2010 г.
14 мар. 2010 г.
Скрипт для быстрой активации двухмониторной конфигурации
Нижеприведенный скрипт предлагает пользователю выбрать какую конфигурацию использовать если будет обнаружено, что к системе подключено два монитора; если же подключен только один монитор, то выводится предупреждающее сообщение и скрипт завершается. Скрипт предназначен для использования в составе acpid'а - он должен вызываться при нажатии на определенную Fn кнопку, в соответствии с правилами acpid'а.
Зависимости: bash, xrandr, Xdialog, xosd.
13 мар. 2010 г.
Hello world!
Это реинкарнация недавно почившего h0rr0rr-drag0n.spb.ru, вследствие смерти хостинга plox.tor.hu
Тематика данного блога ровно такая же - IT и размышления об окружающем.
Подписаться на:
Сообщения (Atom)