Пришло время рассказать о новом направление в развитии блога –интерфейсе взаимодействия и настройки ZiChip. Этот интерфейс был задуман и не спеша разрабатывался уже довольно давно, и вот теперь он на такой стадии, когда можно про него говорить какие-то определенные вещи без оглядки на то, что они поменяются.
Для начала, что значит «ZiChip»?
Разработка этой системы ведется двумя людьми – автором ресурса ZiBlog.RU – Денисом Железняковым (Россия) и мною GetChip.net (Украина). Своего рода международный проект :). Части названий ресурсов и составляют слово ZiChip (ЗиЧип). Денисом разработка ведется со стороны микроконтроллеров STM, я занимаюсь AVRами (разделение условное, так как проект изначально не привязывался к какому либо железу).
Что из себя представляет ZiChip? Зачем создавался?
Вот, навскидку, несколько главных положений, от которых мы отталкивались, разрабатывая протокол:
1 Тонкая подстройка устройств под нужды конечного пользователя.
Создаваемые устройства блога, хотя и разрабатываются специально для встраивания в Ваши проекты и предусматривают различные варианты использования, но, по сути, являются готовыми устройствами, которые конечный пользователь не может настроить под себя. Выходом из данной ситуации является создание (как мной, так и другими энтузиастами) различных модификаций устройств блога под определенные нужды, но невозможно сделать модификаций на все случаи, кроме того не всегда есть время (или желание) ковырять старый проект, дабы добавить в него какой-то функционал. Вот если-бы дать пользователю определенный инструмент, при помощи которого он бы смог сам настроить устройство как ему нужно. При этом инструмент не должен требовать от пользователя знания языков программирования – все должно происходить на уровне установки галочек – просто и понятно.
2 Взаимодействие устройств между собой.
Давно хотел реализовать для устройств, создаваемых в блоге, некий протокол общения между собой. Вот, например, есть клавиатура, есть датчики, есть исполнительный механизм – все это отдельные устройства и чтобы заставить их заработать вместе нужно сделать изменения в программах каждого из устройств. А если эти устройства можно будет соединять в сеть для совместной работы не меняя прошивки? Это было-бы здорово! Из готовых устройств-модулей, как из кубиков, создаешь то, что тебе необходимо в данный момент и, если тебе нужно что-то другое, можно использовать эти же модули, ничего не перепрограммируя.
3 Управление устройствами и перенастройка в сети.
Раз уж устройства соединены в сеть, почему бы ими не управлять централизованно? Более того, кроме управления, можно их и настраивать прямо в сети, менять логику поведения. Для изменения функциональности устройства нет необходимости его отключать, доставать, отпаивать – все должно происходить прямо «на ходу» — не ломая нормальной работы остальных устройств в сети.
4 Независимость от «железа».
Если нет необходимости знать языки программирования и не нужно прошивать микроконтроллер для настройки устройства, то для пользователя абсолютно безразлично какой микроконтроллер стоит в устройстве, так как он (пользователь) «видит» лишь функционал устройства, а не его реализацию. Поэтому в сети должны уживаться МК разных производителей – настраиваться и работать они должны одинаково!
Обобщая все выше написанное, устройство ZiChip должно:
— иметь возможность гибкой (и главное простой) настройки своего функционала и логики работы, без перепрошивки кристалла;
— уметь работать в сети подобных устройств, в том числе взаимодействовать между собой, централизованно управляться и настраиваться;
— работать в сети устройств вне зависимости от реализации «железа».
На данный момент протокол реализован процентов на 90, созданы программа-настройщик, различные вспомогательные программы для отладки и ведутся работы по созданию устройств как на AVR, так и STM.
Следите за развитием ZiChip, следующая статья будет о способе реализации сети ZiChip.