реклама на сайте
подробности

 
 
> Умный дом.
ps1x
сообщение Mar 25 2006, 21:46
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Прошу знающих посоветовать с чего начать. Делать буду для себя.
Идеи такие:
В комнате, корридоре и на кухне в стенах утоплены панели управления каждая представляет из себя:
- дисплей ЖК 16х2
- кнопки управления стрелка вверх, вниз, выбор и назад, т.е. всего 4 кнопки.
- датчик температуры для каждой панели
- управляющая микросхемка (атмега8 или 16 наверное)
- датчик ИК для приема комманд с пульта ДУ
А также есть исполнительные устройства, например в выключателе освещения, которые слушают, что им говорят панели и выполняют команды (например выключить свет).

Вопросы:
Какие мк использовать? (для панелей наверное что нибудь из серии мега а для исполнительных - тини)
Как организовать между мк одноранговую сеть? (желательно удобную для прокладки в стенах)
Как узнать какую систему комманд использует пульт? (от тв-тюнера маленький плоский, на одной таблетке-батарейке)

Сообщение отредактировал ps1x - Mar 25 2006, 21:55
Go to the top of the page
 
+Quote Post
6 страниц V   1 2 3 > »   
Start new topic
Ответов (1 - 76)
vet
сообщение Mar 25 2006, 23:18
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



В ATtiny25/45/85 есть встроенный датчик температуры. А вообще - любые чипы, у которых хватит ног и ресурсов под задачу.
Сеть - 2-проводная шина RS-485, аппаратный UART подключается через м/с-преобразователь (MAX487).
По ИК пультам море информации в интернете.


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post
ps1x
сообщение Mar 26 2006, 00:32
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Цитата
В ATtiny25/45/85 есть встроенный датчик температуры.

- за это спасибо
Цитата
Сеть - 2-проводная шина RS-485, аппаратный UART подключается через м/с-преобразователь (MAX487).
- с ее помощью можно организовать такую связь: исполнительное устройство --- панель---- панель. Нажать кнопку на последне панели, получить результат в виде "выполнено" от исполнительного устройства? т.е. панели имеют одинаковый приоритет, исполнительные устройства подключаются к определенной панели и общаются только с ней. Или лучше совместить исполнительное устройство и панель - налицо экономия, но сразу теряется гибкость системы.

По поводу пульта - информации по этому экземплярчику, к сожалению, не обнаружил, может есть другой метод? Ведь есть же программы которые можно надрессировать на любые пульты... Только как это реализовать в Меге blink.gif
Go to the top of the page
 
+Quote Post
=AK=
сообщение Mar 26 2006, 05:43
Сообщение #4


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Хорошее описание некоторых популярных ИК протоколов
http://www.xs4all.nl/~sbp/knowledge/ir/ir.htm

По поводу интерфейса все намного сложнее. Надо сначала определиться с логикой обмена:

1. Мастер-слэйв, логическая звезда.

В сети есть только один мастер, все остальные - слуги. Разговор всегда происходит между мастером и одним из млуг, слуги между собой сами разговаривать не могут. Мастер по очереди опрашивает всех слуг. Если у слуги есть новая информация (например, нажата кнопка), мастер получает ее, затем по своим таблицам смотрит кому она нужна, и рассылает исполнительным механизмам.

Достоинства: простая реализация; отсутствие столкновений, легкои надежно делается на RS485

Недостатки: для получения хорошего времени реакции скорости обмена должны быть довольно большими (порядка 100кбит/сек); центральный мастер является критическим звеном, если мастер помрет - ничего работать не будет.

2. Peer-to-peer

В каждый момент времени в сети есть один координатор. Координатор по очереди срашивает остальные узлы "тебе нужно управление?". Если да, то узел получает от координатора управление (токен) на какое-то время. После этого узел сам передает другим узлам информацию, по окончании обмена рапортует координатору.
Если координатор помирает, то остальные узлы рано или поздно это обнаруживают по отсутствию опроса. После этого они "договариваются между собой" и назначают нового координатора.

Достоинства: отсутствие столкновений, легко и надежно делается на RS485; обмен может быть ускорен по сравнению с (1), особенно если надо обмениваться большими пакетами; надежность выше, т.к. обмен не зависит от работоспособности одного узла.

Недостатки: довольно сложно реализовать, много возни; скорости обмена все равно должны быть довольно большими, чтобы координатор мог быстро передать токен.

3. Анархия - мать порядка (CSMA)

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

Здесь напридумывано много вариантов, например

3.1. "По фигу, рано или поздно пробьемся"
Узел тупо передает свое сообщение и ждет подтверждения приема. Если ответа нет, исполняется псевдослучайная задержка, и передача повторяется. Надежда на то, что два столкнувшихся узла сделают разную задержку. Это вариант довольно гнилой, зато относительно простой.

3.2. Обнаружение столкновений (CSMA/CD)
Узлы "слушают" линию во время передачи и обнаруживают, что произошло столкновение. В этом случае происходит "разборка" тем или иным способом, один передает, другой встает в очередь. Примерно так работает LON

3.3. Избегание столкновений (CSMA/CA)
Линия работает по принципу "монтажного ИЛИ", один уровень "сильнее" другого. Узлы "слушают" каждый бит во время передачи и обнаруживают, что кто-то передает "сильный" уровень, в то время как они сами транслируют "слабый" уровень. После этого они тихо отцепляются от линии и не мешают "более старшим ребятам" разговаривать (первые биты в пакете задают приоритет).

Последний вариант - самый интересный. Так (или примерно так) работают CAN, EIB, C-Bus. При этом физическая скорость обмена может быть очень низкой (в C-Bus, например, всего 5 кбит/сек), а реактивность получается очень высокой, особенно если информация передается не одному узлу (как в том же LON в обычном режиме), а сразу всем, широковещательно (как в EIB, C-Bus и в кривовато реализованном широковещательном режиме LON).
Go to the top of the page
 
+Quote Post
impuls-v
сообщение Mar 26 2006, 10:04
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 130
Регистрация: 15-01-06
Пользователь №: 13 190



А связь по электропровлдке тебя не устроит и стены долбить не надо.
Go to the top of the page
 
+Quote Post
ps1x
сообщение Mar 26 2006, 10:20
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Большое спасибо за подробное разъяснение протоколов связи, думаю реализовать МАСТЕР - СЛЕЙВ, ибо опыта пока маловато, а поскольку делаю для себя, если что починить всегда можно ) а время реакции не важно.

По поводу электропроводки - есть специальные микросхемки которые этим занимаются? Если прийдется городить - паять то я пас. К томуже зачастую бывает что разные розетки в одной квартире идут от разных фаз - чтобы распределять нагрузку. Думаю, этот вариант окажется дорогим, сложным и малопригодным в моем случае (ИМХО).

По поводу ИК - еслиб я знал какой протокол в нем используется, я и не спрашивал бы ))
Есть программа для кпк которая с помошью встроенного в кпк ИРДА может натренироваться пулять в любой телевизор. Там это работает так - нажимаем вирт. кнопку на кпк, которую нужно запрограммировать, затем жмем соответствующую кнопку на пульте д.у. она запоминает последовательность импульсов, думаю, прийдется делать что-либо подобное, но как это запихнуть в мегу? ресурсов то мало.... glare.gif

И еще как будет выглядеть физически подключение мастер-слейв?
Вот так?::
Цитата
слейв...... _______ ...........слейв
=======|.мега...|=========
................|мастер|....................
................|..........|....................
=======|..........|....................
слейв........---------.....................


Сообщение отредактировал ps1x - Mar 26 2006, 10:30
Go to the top of the page
 
+Quote Post
ps1x
сообщение Mar 26 2006, 11:28
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



и еще как будет физически реализована панель управления (как я предполагаю):
PORTD - дисплей
PORTB - cвязь и кнопки
PORTC- датчики и устройства

Хватит ли ножек у Меги8 для всего этого хозяйства?
Go to the top of the page
 
+Quote Post
=AK=
сообщение Mar 26 2006, 11:34
Сообщение #8


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(ps1x @ Mar 26 2006, 19:50) *
И еще как будет выглядеть физически подключение мастер-слейв?
Вот так?::

Например, вот так
Код
RS485
|
|--master
|
|--slave
|
|--slave
|
...
|
|--slave


Сообщение отредактировал =AK= - Mar 26 2006, 11:38
Go to the top of the page
 
+Quote Post
ps1x
сообщение Mar 26 2006, 11:39
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Тоесть, насколько я понял, все подключены к одному проводу, и посылать данные может только мастер?
Т.е. Мастер циклически опрашивает слейвы, если есть флаг наличия данных, то он общается с этим слейвом более детально?
Go to the top of the page
 
+Quote Post
ps1x
сообщение Mar 26 2006, 15:27
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Есть ли у кого нибудь ссылка на понятный для неокрепшего разума алгритм меню?
Тоесть меню вида:
Главное меню
--Время
... --Уст. Дата
... --Уст. Время
--Устройства
... --Чайник
...... --Включить
...... --Выключить
...... --Таймер
... --Обогрев
...... --Включить
...... --Выключить
...... --Таймер
... --Кондер
...... --Включить
...... --Выключить
...... --Таймер
--Будильник
... --Время
--Температура
--Свет
... --Включить
... --Выключить
... --Таймер

Если используются кнопки вниз-вверх, выбор, отмена.

Сообщение отредактировал ps1x - Mar 26 2006, 15:28
Go to the top of the page
 
+Quote Post
ps1x
сообщение Mar 26 2006, 16:37
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Почему код:
Цитата
unsigned char kod;
char disp1[16],disp2[16];
unsigned int cur;
struct menu // Declare PERSON struct type
{
char menu1[16];
char menu2[16];
char menu3[16];
char menu4[16];
char menu5[16];
} family_member; // Define object of type PERSON


// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
switch (kod) {
case 'u':
if (cur==0){cur=4;}
cur--;
switch (cur) {
case 0:
disp1="d";
disp2='Preferences';
break;
};

break;
case 'd':

break;
case 's':

break;
case 'c':

break;

};

}

выдает ошибку в строчках:
disp1="d";
disp2='Preferences

--- must be lvalue
????
Go to the top of the page
 
+Quote Post
Petka
сообщение Mar 26 2006, 16:49
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(ps1x @ Mar 26 2006, 19:37) *
выдает ошибку в строчках:
disp1="d";
disp2='Preferences

--- must be lvalue
????


вы перепутали понятие строки и понятие одного символа.
в ДВОЙНЫХ ковычках пишутся СТРОКИ
в ОДИНАРНЫХ ковычках пишется ОДИН символ
Go to the top of the page
 
+Quote Post
ps1x
сообщение Mar 26 2006, 17:07
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Цитата
unsigned char kod;
char disp1[16];
unsigned int cur;
struct menu // Declare PERSON struct type
{
char menu1[16];
char menu2[16];
char menu3[16];
char menu4[16];
char menu5[16];
} family_member; // Define object of type PERSON


// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
switch (kod) {
case 'u':
if (cur==0){cur=4;}
cur--;
switch (cur) {
case 0:
disp1="Dsad";

break;
};


При двойных кавычках тоже ругается... (
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 26 2006, 18:16
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(ps1x @ Mar 26 2006, 19:07) *
При двойных кавычках тоже ругается... (

Либо:
char *disp1;

либо, если нужен именно буфер для других целей:

strcpy( &disp1[0], "abracadabra" );

либо, дабы избежать потенциальных ошибок:
strncpy( &disp1[0], "abracadabra", sizeof(disp1)-1 );


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
ps1x
сообщение Mar 26 2006, 18:39
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Код

char *disp1;
disp1="Не работает";

- такой код выдает ошибку "pointers are to different memory classes"

ДОБАВЛЕННО:
а такой вроде как работает
Код
char *disp1;
*disp1="Не работает";


Сообщение отредактировал ps1x - Mar 26 2006, 18:41
Go to the top of the page
 
+Quote Post
vet
сообщение Mar 26 2006, 20:01
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



flash char *disp1;
disp1="Не работает";


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 26 2006, 20:30
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(ps1x @ Mar 26 2006, 20:39) *
1)
char *disp1;
disp1="Не работает";
- такой код выдает ошибку "pointers are to different memory classes"

2)
а такой вроде как работает
char *disp1;
*disp1="Не работает";

1. Это уже конкретные AVRовские заморочки с flash - я не в курсе, как я понимаю Вам "vet" ответил.

2.Бред, если компилятор на такое хотя-бы одно предупреждение не выдал, то хреновый компилятор,
либо ему все предупреждения задавили.
Ну а сделать он мог, максимум, в память по адресу на который указывает указатель disp1 (кстати в пределах данного фрагмента не инициализированный! ) запихнуть один байт 'Н'. И выдать пару варнингов:
- неинициализированный указатель;
- хрен знает какое преобразование строки к байту;


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
ps1x
сообщение Mar 26 2006, 21:01
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



В общем правильны вариант оказался:
Код
        char *mainm[7]={"  Time","  Date","  Preferences","  Devices","  Info","  Time",">>"};
        lcd_puts(mainm[cur]);

- работает полностью в полном обьеме cheers.gif

Вот недоделаное меню:
Код
/*****************************************************
This program was produced by the
CodeWizardAVR V1.24.5 Standard
Automatic Program Generator
© Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
e-mail:office@hpinfotech.com

Project :
Version :
Date    : 26.03.2006
Author  : ps1x                            
Company : ccc                            
Comments:


Chip type           : ATmega8
Program type        : Application
Clock frequency     : 1,000000 MHz
Memory model        : Small
External SRAM size  : 0
Data Stack size     : 256
*****************************************************/
#asm
   .equ __lcd_port=0x18;PORTB
#endasm
#include <mega8.h>
#include <stdio.h>
#include <STRING.h>
#include <lcd.h>
#include <delay.h>

unsigned char kod,m;//kod- код нажатой кнопки, м - флаг в каком меню находимся
char *mainm[7]={"  Time","  Date","  Preferences","  Devices","  Info","  Time",">>"};//пункты главного меню
int cur,temp;//сur-текущий пункт меню, temp - температура (на будущее)
unsigned int hour,min,sec;//переменные для показа часов (на будущее)


void showmm(int cur) //функция показа главного меню, в зависимости от значения активного пункта
{
        lcd_clear();
        lcd_gotoxy(0,0);
        lcd_puts(mainm[cur]);//выводим текущ. пункт меню
        lcd_gotoxy(0,0);    
        lcd_puts(mainm[6]);//выводим символ ">>" для обозначения активного пункта.
        lcd_gotoxy(0,1);
        lcd_puts(mainm[cur+1]);//следующий пункт

}
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
switch (kod) { //в зависимости от нажатой кнопки

    case 'u'://если кнопка вверх
        if (cur==0){cur=5;}//ограничене для закольцовывания меню ))
        cur--;//уменьшение указателя
    switch (m) {//если активно главное меню
    case 'm':
        showmm(cur);//отображение гл. мен.
    break;
    }
    break;
    case 'd'://кнопка вниз
        if (cur==4){cur=-1;}//ограничение
        cur++;
        showmm(cur);
    break;
    case 's'://нажатие кнопки селект
        switch(cur){
        case 3:
        lcd_clear();
        lcd_putsf("Выполняем этот пункт!");//если активен пункт 3 то выполняем этот код
        };
    break;
    case 'c':

    break;
    case 'z':
        
    break;

    };
kod='z';
}

// Declare your global variables here



void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTD=0x00;
DDRD=0xFF;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 3,906 kHz
TCCR0=0x04;
TCNT0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 3,906 kHz
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
TCCR1A=0x00;
TCCR1B=0x04;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x01;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// Global enable interrupts
#asm("sei")
lcd_init(16);
while (1) //опрашиваем клавиатуру
      {
if (PIND.0==1)
{kod='u';delay_ms(250);}

if (PIND.1==1)
{kod='d';delay_ms(250);}

if (PIND.2==1)
{kod='s';delay_ms(250);}

if (PIND.3==1)
{kod='c';delay_ms(250);}


      };
}


как вам такая реализация???

p.s. КОД НЕЗАКОНЧЕН!

Как заставить ISIS показывать русские буквы?
И будет ли реальное устройство их показывать (имеется в виду что дисплей АНГ/РУС) если компилировать в CVAVR?

Сообщение отредактировал ps1x - Mar 26 2006, 21:12
Go to the top of the page
 
+Quote Post
bezobraznic
сообщение Mar 26 2006, 21:35
Сообщение #19


Частый гость
**

Группа: Участник
Сообщений: 169
Регистрация: 26-05-05
Пользователь №: 5 441



Цитата(ps1x @ Mar 27 2006, 00:01) *
Как заставить ISIS показывать русские буквы?
И будет ли реальное устройство их показывать (имеется в виду что дисплей АНГ/РУС) если компилировать в CVAVR?


#pragma rl+
lcd_putsf("Что-то на русском");
#pragma rl-
Go to the top of the page
 
+Quote Post
ps1x
сообщение Mar 26 2006, 22:27
Сообщение #20


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Как я понял, ИСИС с русским не дружит... )
Тем не менее остаются вопросы:
Как общаться Мегам между собой - rs232 насколько я почерпнул из интернета - самый простой метод.
Например:
мастер-пульт посылает каждому пульту-слейву по байту вида
хххxzzzz - где xxxx-идентификатор устройства(слейва) zzzz- комманда
например
00011010 - посылает первому слейву запрос на наличие у слейва информации для кого нибудь другого устройства, и слушает....
потом ему приходит:
00000010 - типа хочу что-то послать второму слейву
мастер ему говорит - 00010001 - готов к приему (говорит первому слейву), слушает...
слейв отвечает 00010010, 10110110 - типа передай второму слейву (00010010), что я его люблю (10110110).
Мастер кричит в эфир 00101111 - второй слейв, слушай сюда!
Второй отвечает - 00000001 - слушаю!
Мастер говорит - 00100010, 10110110.
Вот такая история...
Кто нибудь осуществлял подобного ттипа задачки? Поделитесь опытом, пожалуйста!
Go to the top of the page
 
+Quote Post
TamTam
сообщение Mar 27 2006, 12:35
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 293
Регистрация: 14-03-06
Пользователь №: 15 254



Цитата(ps1x @ Mar 27 2006, 00:01) *
В общем правильны вариант оказался:
Код
        char *mainm[7]={"  Time","  Date","  Preferences","  Devices","  Info","  Time",">>"};
        lcd_puts(mainm[cur]);

- работает полностью в полном обьеме cheers.gif

Вот недоделаное меню:
Код
/*****************************************************
This program was produced by the
CodeWizardAVR V1.24.5 Standard
Automatic Program Generator
© Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
e-mail:office@hpinfotech.com

Project :
Version :
Date    : 26.03.2006
Author  : ps1x                            
Company : ccc                            
Comments:


Chip type           : ATmega8
Program type        : Application
Clock frequency     : 1,000000 MHz
Memory model        : Small
External SRAM size  : 0
Data Stack size     : 256
*****************************************************/
#asm
   .equ __lcd_port=0x18;PORTB
#endasm
#include <mega8.h>
#include <stdio.h>
#include <STRING.h>
#include <lcd.h>
#include <delay.h>

unsigned char kod,m;//kod- код нажатой кнопки, м - флаг в каком меню находимся
char *mainm[7]={"  Time","  Date","  Preferences","  Devices","  Info","  Time",">>"};//пункты главного меню
int cur,temp;//сur-текущий пункт меню, temp - температура (на будущее)
unsigned int hour,min,sec;//переменные для показа часов (на будущее)


void showmm(int cur) //функция показа главного меню, в зависимости от значения активного пункта
{
        lcd_clear();
        lcd_gotoxy(0,0);
        lcd_puts(mainm[cur]);//выводим текущ. пункт меню
        lcd_gotoxy(0,0);    
        lcd_puts(mainm[6]);//выводим символ ">>" для обозначения активного пункта.
        lcd_gotoxy(0,1);
        lcd_puts(mainm[cur+1]);//следующий пункт

}
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
switch (kod) { //в зависимости от нажатой кнопки

    case 'u'://если кнопка вверх
        if (cur==0){cur=5;}//ограничене для закольцовывания меню ))
        cur--;//уменьшение указателя
    switch (m) {//если активно главное меню
    case 'm':
        showmm(cur);//отображение гл. мен.
    break;
    }
    break;
    case 'd'://кнопка вниз
        if (cur==4){cur=-1;}//ограничение
        cur++;
        showmm(cur);
    break;
    case 's'://нажатие кнопки селект
        switch(cur){
        case 3:
        lcd_clear();
        lcd_putsf("Выполняем этот пункт!");//если активен пункт 3 то выполняем этот код
        };
    break;
    case 'c':

    break;
    case 'z':
        
    break;

    };
kod='z';
}

// Declare your global variables here



void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTD=0x00;
DDRD=0xFF;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 3,906 kHz
TCCR0=0x04;
TCNT0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 3,906 kHz
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
TCCR1A=0x00;
TCCR1B=0x04;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x01;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// Global enable interrupts
#asm("sei")
lcd_init(16);
while (1) //опрашиваем клавиатуру
      {
if (PIND.0==1)
{kod='u';delay_ms(250);}

if (PIND.1==1)
{kod='d';delay_ms(250);}

if (PIND.2==1)
{kod='s';delay_ms(250);}

if (PIND.3==1)
{kod='c';delay_ms(250);}


      };
}


как вам такая реализация???

p.s. КОД НЕЗАКОНЧЕН!

Как заставить ISIS показывать русские буквы?
И будет ли реальное устройство их показывать (имеется в виду что дисплей АНГ/РУС) если компилировать в CVAVR?


А можно на скриншот ISIS посмотреть ???
Go to the top of the page
 
+Quote Post
ps1x
сообщение Mar 27 2006, 14:10
Сообщение #22


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



ОБНАРУЖЕНЫ СЛЕДУЮЩИЕ ОШИБКИ
Произошла ошибка при загрузке файла, в связи с тем, что директория 'uploads' имеет неправильные атрибуты. Если Вы получили эту ошибку, просим Вас обратиться к Администратору форума и сообщить об этой ошибке.

---вот такая лажа случилась, щас залью на хостинг...

http://www.annesemonin.ru/scr.jpg -- вот адрес картинки.

Добавленно:
http://www.annesemonin.ru/scr1.jpg -- с русскими буквами.

Сообщение отредактировал ps1x - Mar 27 2006, 14:13
Go to the top of the page
 
+Quote Post
Balaganov
сообщение Mar 27 2006, 17:54
Сообщение #23


Участник
*

Группа: Свой
Сообщений: 41
Регистрация: 16-02-05
Пользователь №: 2 688



Цитата(ps1x @ Mar 27 2006, 00:27) *
Как я понял, ИСИС с русским не дружит... )
...

Качаеш отсюда редактор симоволов LCDALPHA и отредактируеш шрифты в нем.
Quick Help: сохранить .BMP, открыть LCDALPHA.DLL, загрузить сохраненную .BMP и сохранить LCDALPA.DLL.

Удачи!

Сообщение отредактировал Balaganov - Mar 27 2006, 17:55
Go to the top of the page
 
+Quote Post
ps1x
сообщение Mar 27 2006, 17:54
Сообщение #24


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Не смог я всетаки со своим меню разобраться, посему прошу помощи. Какой самый простой метод организации многоуровнего меню? Есть-ли у кого нибудь ссылки на алгоритмы работы меню (реализации GUI)?
з.ы. Все что нашел - под винду, т.е. совершенно не подходит (используют оконные меню и иже с ними)
Go to the top of the page
 
+Quote Post
_artem_
сообщение Mar 27 2006, 18:26
Сообщение #25


учащийся
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 29-10-05
Из: города контрастов
Пользователь №: 10 249



Для начала вот это достаточно будет .:

http://rapidshare.de/files/16570538/gui.rar.html


--------------------
Зачем лаять на караван , когда на него можно плюнуть?

Go to the top of the page
 
+Quote Post
ps1x
сообщение Mar 27 2006, 18:31
Сообщение #26


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Cпасибо! ценная информация!
Go to the top of the page
 
+Quote Post
Laptop
сообщение Mar 27 2006, 18:41
Сообщение #27


Частый гость
**

Группа: Свой
Сообщений: 142
Регистрация: 19-11-05
Пользователь №: 11 103



Цитата(ps1x @ Mar 27 2006, 20:54) *
Не смог я всетаки со своим меню разобраться, посему прошу помощи. Какой самый простой метод организации многоуровнего меню? Есть-ли у кого нибудь ссылки на алгоритмы работы меню (реализации GUI)?
з.ы. Все что нашел - под винду, т.е. совершенно не подходит (используют оконные меню и иже с ними)

ИМХО, самый простой метод с организацией списка и хождения по его элементам, в полях элемента хранишь все что тебе необходимо. Реализация проста до безобразия, а всю рутину берет на себя компилятор. И главное, что потом добавив поля можешь хоть картинки к каждой менюшке подвесить.
Go to the top of the page
 
+Quote Post
ps1x
сообщение Mar 27 2006, 18:54
Сообщение #28


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Цитата(Laptop @ Mar 27 2006, 22:41) *
Цитата(ps1x @ Mar 27 2006, 20:54) *

Не смог я всетаки со своим меню разобраться, посему прошу помощи. Какой самый простой метод организации многоуровнего меню? Есть-ли у кого нибудь ссылки на алгоритмы работы меню (реализации GUI)?
з.ы. Все что нашел - под винду, т.е. совершенно не подходит (используют оконные меню и иже с ними)

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

Дык а есть исходники с комментариями на русском для дебилов? С удовольствием бы поизучал.
Насколько я понял из некоторых примеров, надо создать несколько структур - для пункта меню, для меню и для вбранного пункта меню, так?
Go to the top of the page
 
+Quote Post
Laptop
сообщение Mar 27 2006, 19:23
Сообщение #29


Частый гость
**

Группа: Свой
Сообщений: 142
Регистрация: 19-11-05
Пользователь №: 11 103



Цитата(ps1x @ Mar 27 2006, 21:54) *
Дык а есть исходники с комментариями на русском для дебилов? С удовольствием бы поизучал.
Насколько я понял из некоторых примеров, надо создать несколько структур - для пункта меню, для меню и для вбранного пункта меню, так?

Исходников к сожалению нет. Несколько структур создавать не обязательно, все элементы могут быть одинаковы, надо только определить для себя каким будет отображение на экране.
Самый простой вариант когда отображается один уровень, с вложенностью (точнее с одновременным отображением нескольких уровней вложенности) чуть сложнее, больше работы процессору.

Структура элемента следующая:
предыдущий пункт
следующий пункт
вход в нижний уровень вложенности, если есть
признак активного пункта
поле возможно указателя на функцию, возвращающую значение пункта меню(On, Off, etc.)

Необходимо только предусмотреть затычки для неиспользуемых полей.-
Вся работа сводится к беготне по ссылкам внутри спискаsmile.gif
Go to the top of the page
 
+Quote Post
ps1x
сообщение Mar 27 2006, 21:45
Сообщение #30


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Ну, отображаться будут две строки меню (на дисплее 16*2), причем перед одной из них символ ">>" как индикатор активного пункта, вобщем можете взглянуть на скрин-шот из эмулятора
http://www.annesemonin.ru/scr.jpg
Максимальная вложенность - 3, тоесть:

Главное меню
----настройки
---------контраст
---------яркость
---------идентификатор
----таймер
---------проверить
---------установить

и т.п.

Гы, а как собственно "бегать" по элементам? (switch?)
Go to the top of the page
 
+Quote Post
ps1x
сообщение Mar 28 2006, 11:44
Сообщение #31


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Ну что, неужели не у кого нет идей или своих наработок?

з.ы. просто самому в этом разобраться трудно...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 28 2006, 13:24
Сообщение #32


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(ps1x @ Mar 28 2006, 13:44) *
Ну что, неужели не у кого нет идей или своих наработок?

Может просто тему сменить? А то уж больно издалека и неожиданно 'умный дом' начинается :-)


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
ps1x
сообщение Mar 28 2006, 13:52
Сообщение #33


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Просто перешел от главной темы, к частностям, т.е. например после меню перейдем к соединению панелей между собой, потом к датчикам и так далее до полность разобранной темы по умному дому, получиться "все в одном" - удобно для других будет (имхо)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 28 2006, 14:57
Сообщение #34


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(ps1x @ Mar 28 2006, 15:52) *
удобно для других будет (имхо)

Тогда ждите. Может и подтянется кто-то для кого создание "умного дома" и написание
"Hello World" (утрирую, естественно) одинаково интересны.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Laptop
сообщение Mar 28 2006, 17:11
Сообщение #35


Частый гость
**

Группа: Свой
Сообщений: 142
Регистрация: 19-11-05
Пользователь №: 11 103



Цитата(ps1x @ Mar 28 2006, 00:45) *
Ну, отображаться будут две строки меню (на дисплее 16*2), причем перед одной из них символ ">>" как индикатор активного пункта, вобщем можете взглянуть на скрин-шот из эмулятора
http://www.annesemonin.ru/scr.jpg
Максимальная вложенность - 3, тоесть:

Главное меню
----настройки
---------контраст
---------яркость
---------идентификатор
----таймер
---------проверить
---------установить

и т.п.

Гы, а как собственно "бегать" по элементам? (switch?)

Просто активный пункт выбираешь стрелками для беганья по меню и именно его тображаешь как активный, вроде проосто. Дополнительно вычисляешь кто сверху от этого уровня меню, сосед или родитель сверху и в соответствии с отступами отбражаешь. Вся информация содержится в выбранном активном пункте или элементе списка если проще.
Go to the top of the page
 
+Quote Post
BVU
сообщение Mar 29 2006, 06:02
Сообщение #36


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Вообще-то подобный комплекс (умный дом) основанный на коммуникационной технологии BlueTooth и предпологает построение максимально интелектуальной и автоматизированной системы применительно к различным домашним и прочим электро-приборам управляемых от единого мастера (ПК). Об этом еще толковали в момент зарождения BlueTooth, как технологии. Средства коммуникации могут быть различны: USB, прочие разновидности сети, но BlueTooth изначально преспособлена под данный вариант использования, это как идеология, так и беспроводной способ передачи. Так что рекомендую рассмотреть данный вариант, тем более, что он является перспективным как сейчас, так и в будущем.


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Mar 29 2006, 10:39
Сообщение #37


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(BVU @ Mar 29 2006, 10:02) *
Вообще-то подобный комплекс (умный дом) основанный на коммуникационной технологии BlueTooth и предпологает построение максимально интелектуальной и автоматизированной системы применительно к различным домашним и прочим электро-приборам управляемых от единого мастера (ПК). Об этом еще толковали в момент зарождения BlueTooth, как технологии. Средства коммуникации могут быть различны: USB, прочие разновидности сети, но BlueTooth изначально преспособлена под данный вариант использования, это как идеология, так и беспроводной способ передачи. Так что рекомендую рассмотреть данный вариант, тем более, что он является перспективным как сейчас, так и в будущем.


енто Вы откель прочитали ? smile.gif Насколько в курсе - просто на сегоднешний момент времени НЕТ единого комуникационного стандарта в данной плоскости. Идёт грызня (или более мягше - перетягивание одеяла на ся) между различными протоколами...1Wire, голубой зуб, WiFi, x-10, LonWorn и т.д.. Более прикольно это всё наблюдать на фоне просьб буржуев-заказчиков - сделать расширитель RS232 к покупаемому у нас в России оборудованию. Очень уж смахивает на обычный пиар различных фирм своих технологий. Или по другому - захват рынка сбыта...


удачи Вам
(круглый)
Go to the top of the page
 
+Quote Post
ps1x
сообщение Mar 29 2006, 10:56
Сообщение #38


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Думаю я для себя буду делать на rs232 - проще и дешевле. Всего два провода можно и под плинтусом спрятать )) А Ви-Фи и блютусы это для профи и для массового производства (затраты на установку в квартире меньше.)
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Mar 29 2006, 11:03
Сообщение #39


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(ps1x @ Mar 29 2006, 14:56) *
Думаю я для себя буду делать на rs232 - проще и дешевле. Всего два провода можно и под плинтусом спрятать )) А Ви-Фи и блютусы это для профи и для массового производства (затраты на установку в квартире меньше.)


лучший с точки зрения "модернизирования" и развития - всё таки rs485 если уж в последовательный канал близкий к rs232... Но рекомендую глянуть 1Wire - его плюс в 1 проводе данных (в принцепе 485 то же самое даёт), и (на мой взгляд) больше оконечных устройств. Всяких там таблеток, доступ, и прочей лабуды... Но как говориться - хозяин барин... Мы в своих установках юзаем 1Wire (по установке) - просче в мантаже, да и стоимость решения - достаточно низкая... Хотя на плате есть и i2c (ну енто совсем короткие шлейфы) к примеру...Дальнии подключения - то обычно rs232, 485, ethernet...

с уважением
(круглый)
Go to the top of the page
 
+Quote Post
ps1x
сообщение Mar 29 2006, 11:06
Сообщение #40


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



подключения- максимум метров 6. 1 wire имеется ввиду всеже что там 2 провода? Так у rs232 тоже 2 data+ и data- или нет?
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Mar 29 2006, 11:08
Сообщение #41


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(ps1x @ Mar 29 2006, 15:06) *
подключения- максимум метров 6. 1 wire имеется ввиду всеже что там 2 провода? Так у rs232 тоже 2 data+ и data- или нет?


у RS232 - 3 проводка...
уровни -12, +12, GND (земля по нашенски)...

с уважением
(круглый)
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Mar 29 2006, 11:27
Сообщение #42


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



rs232 я бы не рекомендовал. Ограничение на расстояние, и интерфейс точка-точка.
Можно попробовать rs485 - расстояние поболее и многоточечный, однако ИМХО это не для дома.
1-wire разработан именно для подобных вещей - надо зайти на maxim-ic.com и посмотреть документацию - там и системы доступа, и контроль температуры. Плюс в рунете любимая фича 1-wire термометры - доки и примеров море.
Для полного блезиру советую посмотреть LIN - упрощенный CAN - если не ошибаюсь есть у Атмела соответствующая аппликуха.


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Mar 29 2006, 11:43
Сообщение #43


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(beer_warrior @ Mar 29 2006, 15:27) *
rs232 я бы не рекомендовал. Ограничение на расстояние, и интерфейс точка-точка.......


расстояние звучало - около 6 метров. правда не понятно насколько много помех будет... а вот точка-точка, это решаемо...с помощью пару-тройки милкосхем на рассыпухи (к примеру) , немного поколдовать над протоколом...и штук 8 RS232 уже дышат в шинной топологии... Цена вопроса - затраты на программирование...

удачи Вам
(круглый)
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Mar 29 2006, 14:34
Сообщение #44


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Цитата
немного поколдовать над протоколом...и штук 8 RS232 уже дышат в шинной топологии... Цена вопроса - затраты на программирование...


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


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


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
александр_в
сообщение Mar 29 2006, 20:05
Сообщение #45


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 7-01-06
Пользователь №: 12 918



Хотелось-бы поговорить об функциях умного дома, а реализация это уже дело техники.
Например:
- охранная сигнализация
- управление отоплением в зависимости от времени суток и выходных
- управление кондиционером по времени
- при открывании калитки музыкальный звонок и включение освещения (на каждую калитку своя мелодия)
- вечерний свет (имитация присутствия дома)
- измерение температуры в каждой комнате, на улице и в подвале (актуально при хранинии овощей)
- набор будильников для включения различных устройств по времени
- администрирование всех контроллеров с ПК
Какие будут еще предложения ?
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Mar 30 2006, 11:44
Сообщение #46


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(александр_в @ Mar 30 2006, 00:05) *
Хотелось-бы поговорить об функциях умного дома, а реализация это уже дело техники.
Например:
- охранная сигнализация
- управление отоплением в зависимости от времени суток и выходных
- управление кондиционером по времени
- при открывании калитки музыкальный звонок и включение освещения (на каждую калитку своя мелодия)
- вечерний свет (имитация присутствия дома)
- измерение температуры в каждой комнате, на улице и в подвале (актуально при хранинии овощей)
- набор будильников для включения различных устройств по времени
- администрирование всех контроллеров с ПК
Какие будут еще предложения ?


+пожарная тематика
+аварийная тематика(протечка трубы, обмерзание канализации)
+идентификация людей в жилище(метка, СО и т.д.)
+управление вентиляцией (не только вкл-выкл)
+отопление(не только поддержание температуры)
+-администрирование не с ПК а с удобной консоли. Одной, регулируя масштабность. ПК - это вчерашний день.Либо переносной ПК...
+домашняя метеостанция
+анализатор распорядка дня и необходимых действий (например проверить давление в шинах, т.к. температура на улице ушла более чем на 10 градусов)
+видеофон

ну там ышо наверное куча всяго... фантазировать мона бесконечно...или хотя бы поднять книгу (например) Войцеховского "Радиоэлектронные игрушки"

с уважением
(круглый)
Go to the top of the page
 
+Quote Post
defunct
сообщение Mar 31 2006, 00:59
Сообщение #47


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(kolobok0 @ Mar 30 2006, 13:44) *
Цитата(александр_в @ Mar 30 2006, 00:05) *



Мда, неплохая задумка, лет эдак на "надцать", если самому все это делать.
Я бы предложил для начала простенькую задачку:
Голосовое управление освещением во всех комнатах. Хотя бы вкл/откл, хотя лучше и яркость регулировать.
Go to the top of the page
 
+Quote Post
александр_в
сообщение Mar 31 2006, 14:13
Сообщение #48


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 7-01-06
Пользователь №: 12 918



Частично уже реализовано.
Голосовое управление очень заманчиво, но ставить под это дело ПК не совсем разумно. А как сделать по другому не знаю.
Go to the top of the page
 
+Quote Post
defunct
сообщение Mar 31 2006, 14:27
Сообщение #49


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(александр_в @ Mar 31 2006, 16:13) *
Частично уже реализовано.
Голосовое управление очень заманчиво, но ставить под это дело ПК не совсем разумно. А как сделать по другому не знаю.

Не надо ПК! Смысл реализовать такую штуку на AVR. Реакцию на последовательность звуков разных частот.
Go to the top of the page
 
+Quote Post
Himik_2
сообщение Dec 1 2006, 15:13
Сообщение #50





Группа: Новичок
Сообщений: 2
Регистрация: 1-12-06
Из: Санкт-Петербурга
Пользователь №: 22 995



А такой вариант не подойдёт ? У меня собрано: центральный контроллер с дисплеем 320х240 точек (можно вывести простейшую графику), имеет 2 - RS232, 2 - I2c, а-ля SPI, шесть кнопок; влево-вправо, вверх-вниз, ввод и сброс процессора (Z84). IR - порт (RC5), ик светодиод, часы реального времени. подсветка кнопок, возможность перепрограммирования (с компа).
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Dec 1 2006, 16:51
Сообщение #51


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(defunct @ Mar 31 2006, 00:59) *
Я бы предложил для начала простенькую задачку:
Голосовое управление освещением во всех комнатах. Хотя бы вкл/откл, хотя лучше и яркость регулировать.

Голосовое? Что за примитив?!
А тайные желания уловить AVRом и их исполнить? biggrin.gif


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Dec 1 2006, 17:14
Сообщение #52


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Смотрел я давече по euronews как за данную идею в европе берутся... и вспоминается как я на i8748 сваял дистанционное управление к телевизору в 1989 году. Тогда дифицит на это был страшный. Я только окончил институт продавать их собирался. smile.gif

Там на прозрачное стекло двери выводится менюшка с картинками. Ну точпад конечно smile.gif Ну например посудомоечная машина к интернету подключена.

У Вас есть посудомоечная машина? А интернет? smile.gif

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

Не унывайте выбирите тему по "изящней" и занимайтесь. smile.gif
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Dec 1 2006, 17:55
Сообщение #53


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(SasaVitebsk @ Dec 1 2006, 17:14) *
Не унывайте выбирите тему по "изящней" и занимайтесь. smile.gif

Для хобби "само то".
Для бизнеса разработчика - бесперспективно, так как все уже разработано.
Для бизнеса внедрения - разве только в Москве, богатых разводить.
В Европе многие фирмы, которые занимались этой темой, сменили тему.
Дорого и сложно.
Не для специалиста, а для монтажника и пользователя.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
viael
сообщение Dec 2 2006, 11:13
Сообщение #54


Местный
***

Группа: Свой
Сообщений: 200
Регистрация: 10-04-06
Из: Украина,Запорожье
Пользователь №: 15 979



Цитата(ps1x @ Mar 29 2006, 11:56) *
Думаю я для себя буду делать на rs232 - проще и дешевле. Всего два провода можно и под плинтусом спрятать )) А Ви-Фи и блютусы это для профи и для массового производства (затраты на установку в квартире меньше.)


Как мне кажется наилучшим вариантом для умного дома будет X-10 т.к. не всегда удобно долбить стены или ковырять плинтуса для того чтобе подключить к.л. устройство в сеть. А так где есть 220 есть и сеть.
Go to the top of the page
 
+Quote Post
demaven
сообщение Dec 2 2006, 13:37
Сообщение #55


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 10-05-05
Из: Киргизия Бишкек
Пользователь №: 4 886



Покувыркались мы недавно с передачей по сети 220. Выяснили следующее - если в доме нет китайских импульсных преобразователей (компы, зарядки) то по сети можно управлять и даже с фазы на фазу прыгает практически без проблем. Но стоит появиться представителю Великого Желтого соседа, как сеть становится слишком шумной и по ней устойчиво передать данные оченно тяжело, иногда невозможно. А Великий сосед уже в каждом доме и не только у нас. Так что вот так, подобную задачу пробуем пробить на 433 МГц, но в небольшом объеме. У многих клиентов уже все установлено и замазано-покрашено-заклеено, ковырять не хотят, а управлять хотца, скажем, обогревателями. вешаем на стенку хозяина, он меряет температуру и командует обогревателям включить-выключить. На обогревателях приемник и простенькая мега - расшифровали кому и что, выполнили. Вот вроде и все
Go to the top of the page
 
+Quote Post
Mack
сообщение Dec 20 2006, 13:12
Сообщение #56





Группа: Новичок
Сообщений: 1
Регистрация: 20-12-06
Пользователь №: 23 714



есть ли у кого-то опыт подключения самых разных датчиков (охранных, температуры итд) в сеть ETHERNET ?
Может быть есть датчики с Ethernet - интерфейсом (со встроенным ВЕБ-интерфейсом) ? или Ethernet - адаптеры ?
Кто-нибудь может, что-нибудь сказать по этому поводу ?
Go to the top of the page
 
+Quote Post
o-henry
сообщение Dec 20 2006, 15:11
Сообщение #57


Местный
***

Группа: Свой
Сообщений: 435
Регистрация: 8-03-06
Из: степей Украины
Пользователь №: 15 069



Цитата(Mack @ Dec 20 2006, 12:12) *
есть ли у кого-то опыт подключения самых разных датчиков (охранных, температуры итд) в сеть ETHERNET ?
Может быть есть датчики с Ethernet - интерфейсом (со встроенным ВЕБ-интерфейсом) ? или Ethernet - адаптеры ?
Кто-нибудь может, что-нибудь сказать по этому поводу ?


Опыта применения пока нет, но в сторону XPort поглядываю
http://www.rodnik.ru/htmls/pr_110403.htm
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Dec 20 2006, 16:57
Сообщение #58


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(o-henry @ Dec 20 2006, 15:11) *
Опыта применения пока нет, но в сторону XPort поглядываю
http://www.rodnik.ru/htmls/pr_110403.htm

Использую, но в контексте умного дома - 80 долларов за точку против 15 долларов LonWorks, 5 долларов CAN и 2 долларов LIN ?
Дом придется продать, а сеть проложить laugh.gif


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Snowmen
сообщение Dec 22 2006, 21:02
Сообщение #59





Группа: Новичок
Сообщений: 8
Регистрация: 22-12-06
Из: Киев
Пользователь №: 23 789



Здравствуйте!
Я давно читаю этот форум. И очень много для себя нашел полезного (выражаю всем участникам и создателям сайта свою огромную благодарность), а написать решился впервые. Уж больно тема мне близка. Я как раз сейчас занимаюсь этим. Сразу скажу что я не профессионал ни в электронике ни в программировании, правда радиотехникой увлекаюсь с детства ( а оно было ну очень давно…) так что паяльник держать умею.
С вашего позволения немножко пред истории почему у меня возник интерес по данной теме. Где то больше пол года назад купил GSM сигнализацию что бы установить в доме который достался от родителей в наследство и находится где то за 300 км. Продавать не хочется. Так вот посмотрел я на возможности этого устройства (4 канала для дискретных датчиков и 4 канала для управления) и возник вопрос а можно ли сделать покруче? Дальше пошло поехало… Что надо? Как это можно реализовать? После прочтения множества информации ( сразу оговорюсь что решал конкретную свою задачу и не претендую на универсальность хотя есть элементы расширения ) пришел к следующему :

Задачи:
1. контроль дискретных датчиков ( движения, пожарные и т.д.);
2. аналоговые датчики ( наличия 220В, состояния резервных источников АКБ, электростанции и т.д.) ;
3. температурные датчики;
4. управление дискретными устройствами;
5. управление аналоговыми устройствами;
6. возможность дистанционного мониторинга и управления системой
( GSM, Интернет, локальная сеть) ;

Условия:
1.Возможность простого расширения системы (увеличения портов контроля и управления)
2. Малое потребление энергии от резервных источников ( для меня это актуально).

Решение:
Мое мнение, что п.п.1-5 оптимально реализовать на микроконтроллерах семейства AVR Mega. Шестой пункт особый он как бы «сердце» его можно реализовать по разному. Я для себя решил ( и уже приобрел ) что это будет плата DSTINIm400+DSTINIs-005 и GSM модем Wavecom Integra M2106 (сразу прошу не бить, я понимаю что это не дешево) . Просто в моем случае это самое то… что нужно.

Топология:
Можно все это рассредоточить как здесь предлагается…Но возникает вопрос интерфейса
связи, а это на мой взгляд не простая задача и только экономия проводов (я понимаю что не всегда их можно проложить но для меня не проблема). Поэтому я решил что проще все (кроме датчиков и исполнительных устройств разумеется) расположить все в одном месте тем более что это решает проблему интерфейсов и ограничения доступа (хотя с применением TINI это тоже не проблема у нее есть CAN).
Думаю что подключение дискретных и аналоговых датчиков вопросов не вызывает.
(провод для сигнализации 3-х или 5 парный). В качестве интерфейса между блоками I2C (дает возможность маштабирования системы), между TINI и модемом RS232.
Теперь почему TINI? Но во первых это то что я смог приобрести, и то пришлось заказывать в Москве через знакомых (я живу в Киеве и здесь ее нет, не говоря уже о более продвинутых решениях). Не спорю можно сделать все это на микроконтроллере, но еще раз повторюсь я не спец а только учусь. Для тех кому лень искать инфу о TINI: это по сути микрокомпьютер, и основное назначение это сопряжение высокоскоростных интерфейсов с низкоскоростными. В кратце, имеет порты: Ethernet, CAN, 1-Wire, RS232, 8bit paralell. Имеет файловую систему и Java машину.

На каком я этапе сейчас:
Во первых мое начальное знакомство с микроконтроллерами AVR заканчилось года 3-4 назад когда делал FUN карту для просмотра спутникового ТВ. Поэтому пришлось начинать с нуля. Сделал сначала подобие STK200/300 после нескольких неудачных экспериментов с Atmega 8 решил что нужен аналог STK500. При изучении программирования понял что и без JTAG не обойтись (Как оказалось симуляторы это одно а в железе часто бывает другое). Таким образом некоторое время ушло на создание железа в том числе отладочных плат (о чем совсем не жалею, хотя могу позволить купить себе готовые решения - наборы STK50Х и JTAG). Когда привезли Тиньку немножко поковырялся- запустил посмотрел пару примеров программ в том числе WEB сервер и отложил. Так же с модемом проверил пару AT команд вошел в GPRS сеть и все. Этим буду заниматься позже. Сейчас приступил к отладке программы для контроллера дискретных датчиков (Atmega16), так все вроде бы работает, но есть проблема в проверке правильно ли он шлет информацию по I2C. Пришлось ваять I2C<->RS232. Затык с USARTом, не пойму почему он шлет абракадабру. Интерфейс I2C работает нормально проверил (USB осциллограф с логическим анализатором).
Для чего все это я написал? А для того чтобы найти единомышленников и тех кто считает что «мы рождены что бы сказку сделать былью…» . Скептиков и прочих критиков прошу больно не реагировать. Я знаю что здесь много профи которые всегда подходят с точки зрения практически выгодного дела. Но думаю что есть и не мало любителей для которых главное реализация идей, а не сколько денег это принесет и есть ли в этом смысл. Ведь каждый человек имеет право на свои «причуды». Как говорится мир без чудаков скучен а без дураков не возможен…Я ни в коей мере не претендую на истину и на единственно правильный способ решения просто поделился своими идеями. Потому что считаю что все таки эта тема заслуживает внимания.

P.S. Как можно выложить фото «железа» дабы показать что это не треп и фантазии…


--------------------
8 бит = 1 Хоббит
Go to the top of the page
 
+Quote Post
asf
сообщение Dec 22 2006, 21:51
Сообщение #60


Участник
*

Группа: Новичок
Сообщений: 29
Регистрация: 19-12-05
Пользователь №: 12 407



Цитата(Snowmen @ Dec 22 2006, 21:02) *
Здравствуйте!
Я давно читаю этот форум. И очень много для себя нашел полезного (выражаю всем участникам и создателям сайта свою огромную благодарность), а написать решился впервые. Уж больно тема мне близка. Я как раз сейчас занимаюсь этим. Сразу скажу что я не профессионал ни в электронике ни в программировании, правда радиотехникой увлекаюсь с детства ( а оно было ну очень давно…) так что паяльник держать умею.
С вашего позволения немножко пред истории почему у меня возник интерес по данной теме. Где то больше пол года назад купил GSM сигнализацию что бы установить в доме который достался от родителей в наследство и находится где то за 300 км. Продавать не хочется. Так вот посмотрел я на возможности этого устройства (4 канала для дискретных датчиков и 4 канала для управления) и возник вопрос а можно ли сделать покруче? Дальше пошло поехало… Что надо? Как это можно реализовать? После прочтения множества информации ( сразу оговорюсь что решал конкретную свою задачу и не претендую на универсальность хотя есть элементы расширения ) пришел к следующему :

Задачи:
1. контроль дискретных датчиков ( движения, пожарные и т.д.);
2. аналоговые датчики ( наличия 220В, состояния резервных источников АКБ, электростанции и т.д.) ;
3. температурные датчики;
4. управление дискретными устройствами;
5. управление аналоговыми устройствами;
6. возможность дистанционного мониторинга и управления системой
( GSM, Интернет, локальная сеть) ;

Условия:
1.Возможность простого расширения системы (увеличения портов контроля и управления)
2. Малое потребление энергии от резервных источников ( для меня это актуально).

Решение:
Мое мнение, что п.п.1-5 оптимально реализовать на микроконтроллерах семейства AVR Mega. Шестой пункт особый он как бы «сердце» его можно реализовать по разному. Я для себя решил ( и уже приобрел ) что это будет плата DSTINIm400+DSTINIs-005 и GSM модем Wavecom Integra M2106 (сразу прошу не бить, я понимаю что это не дешево) . Просто в моем случае это самое то… что нужно.

Топология:
Можно все это рассредоточить как здесь предлагается…Но возникает вопрос интерфейса
связи, а это на мой взгляд не простая задача и только экономия проводов (я понимаю что не всегда их можно проложить но для меня не проблема). Поэтому я решил что проще все (кроме датчиков и исполнительных устройств разумеется) расположить все в одном месте тем более что это решает проблему интерфейсов и ограничения доступа (хотя с применением TINI это тоже не проблема у нее есть CAN).
Думаю что подключение дискретных и аналоговых датчиков вопросов не вызывает.
(провод для сигнализации 3-х или 5 парный). В качестве интерфейса между блоками I2C (дает возможность маштабирования системы), между TINI и модемом RS232.
Теперь почему TINI? Но во первых это то что я смог приобрести, и то пришлось заказывать в Москве через знакомых (я живу в Киеве и здесь ее нет, не говоря уже о более продвинутых решениях). Не спорю можно сделать все это на микроконтроллере, но еще раз повторюсь я не спец а только учусь. Для тех кому лень искать инфу о TINI: это по сути микрокомпьютер, и основное назначение это сопряжение высокоскоростных интерфейсов с низкоскоростными. В кратце, имеет порты: Ethernet, CAN, 1-Wire, RS232, 8bit paralell. Имеет файловую систему и Java машину.

На каком я этапе сейчас:
Во первых мое начальное знакомство с микроконтроллерами AVR заканчилось года 3-4 назад когда делал FUN карту для просмотра спутникового ТВ. Поэтому пришлось начинать с нуля. Сделал сначала подобие STK200/300 после нескольких неудачных экспериментов с Atmega 8 решил что нужен аналог STK500. При изучении программирования понял что и без JTAG не обойтись (Как оказалось симуляторы это одно а в железе часто бывает другое). Таким образом некоторое время ушло на создание железа в том числе отладочных плат (о чем совсем не жалею, хотя могу позволить купить себе готовые решения - наборы STK50Х и JTAG). Когда привезли Тиньку немножко поковырялся- запустил посмотрел пару примеров программ в том числе WEB сервер и отложил. Так же с модемом проверил пару AT команд вошел в GPRS сеть и все. Этим буду заниматься позже. Сейчас приступил к отладке программы для контроллера дискретных датчиков (Atmega16), так все вроде бы работает, но есть проблема в проверке правильно ли он шлет информацию по I2C. Пришлось ваять I2C<->RS232. Затык с USARTом, не пойму почему он шлет абракадабру. Интерфейс I2C работает нормально проверил (USB осциллограф с логическим анализатором).
Для чего все это я написал? А для того чтобы найти единомышленников и тех кто считает что «мы рождены что бы сказку сделать былью…» . Скептиков и прочих критиков прошу больно не реагировать. Я знаю что здесь много профи которые всегда подходят с точки зрения практически выгодного дела. Но думаю что есть и не мало любителей для которых главное реализация идей, а не сколько денег это принесет и есть ли в этом смысл. Ведь каждый человек имеет право на свои «причуды». Как говорится мир без чудаков скучен а без дураков не возможен…Я ни в коей мере не претендую на истину и на единственно правильный способ решения просто поделился своими идеями. Потому что считаю что все таки эта тема заслуживает внимания.

P.S. Как можно выложить фото «железа» дабы показать что это не треп и фантазии…


я вот тоже примерно по этому пути шел iasf.narod.ru только теперь смотрю на zigbee
Go to the top of the page
 
+Quote Post
Snowmen
сообщение Dec 22 2006, 22:56
Сообщение #61





Группа: Новичок
Сообщений: 8
Регистрация: 22-12-06
Из: Киев
Пользователь №: 23 789



to ASF
Признаю титанический труд. И очень интересный путь. Но к сожаленью ( а может к счастью) мне Zegbee не совсем подходит да и нет ее в Киеве. Мне не нужны беспроводные технологии, а тем более мне не под силу написать WEB сервер для микроконтроллера. Тут дай бог с более простыми вещами разобраться. Хотя у меня в перспективе есть подключение ASUS WL-HDD2.5 (Wifi точка+ HDD 40Gb+Ethernet, есть такая у меня штука) к Тини с целью получить доступ в интернет через GPRS и иметь в системе хард. По этому и купил модем с IP стеком. Да действительно есть очень классные вещи но увы не все у нас так быстро появляется...А пока появится то уже устаревает, прогресс не стоит...


--------------------
8 бит = 1 Хоббит
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Dec 23 2006, 12:34
Сообщение #62


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Snowmen @ Dec 22 2006, 21:02) *
сразу прошу не бить…


Никто не собирается никого бить smile.gif
Но структура системы не самая удачная, на мой взгляд.
Tini - вполне нормальная система, хотя и медленная.
Она должна быть ядром системы, и вся логика управления должна быть сосредоточена в ней.
Все прочие датчики и исполнительные устройства могут быть подключены по последовательному интерфейсу к Tini по какому-нибудь стандартному протоколу.
Мне кажется, что Вы идете по пути распределения интеллекта, а при нехватке опыта создания многопроцессорных систем Вы можете долго его накапливать.
Кстати, где Вы используете I2C? Он используется как внешний интерфейс? Он не очень помехоустойчивый.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Snowmen
сообщение Dec 25 2006, 01:14
Сообщение #63





Группа: Новичок
Сообщений: 8
Регистрация: 22-12-06
Из: Киев
Пользователь №: 23 789



Цитата(Dog Pawlowa @ Dec 23 2006, 11:34) *
Цитата(Snowmen @ Dec 22 2006, 21:02) *

сразу прошу не бить…


Никто не собирается никого бить smile.gif
Но структура системы не самая удачная, на мой взгляд.
Tini - вполне нормальная система, хотя и медленная.
Она должна быть ядром системы, и вся логика управления должна быть сосредоточена в ней.
Все прочие датчики и исполнительные устройства могут быть подключены по последовательному интерфейсу к Tini по какому-нибудь стандартному протоколу.
Мне кажется, что Вы идете по пути распределения интеллекта, а при нехватке опыта создания многопроцессорных систем Вы можете долго его накапливать.
Кстати, где Вы используете I2C? Он используется как внешний интерфейс? Он не очень помехоустойчивый.


Да я согласен Тини не ПК но для работы в медленых сетях она и предназначена...И поэтому логикой грузить ее не стоит. Тем более что параллельный порт у нее один. А делать расширенее на мой взгляд не оправдано. Добавить пару (даже на пару) логичеких микросхем и усложнить программы Тини? Какой смысл? Я просто в первом посте не описал структуру (он и так большой получился). На мой взгляд то что не требует НЕОДНОЗНАЧНОГО принятия решения надо оставить микроконтролерам

Структура:

1. Контроллер дискретных датчиков (Atmega16)
24 порта.
функции:
-отслеживание состояния и информирование системы о событии на портах
-ответ на запрос системы о своем состоянии.
-временые задержки включения датчиков
-отключенее (включение) отдельных портов
-проверка связи с системой (самодиагностика)

2. Контроллер исполнительных дискретных устройств (Atmega16)
-включение (отключение) портов
-ответ системе о своем сотояниии
-проверка связи с системой (самодиагностика)

3. Контроллер (назову его главный который и обеспечивает связь и подготовку информацию для Тини)
-связь с контролерами 1 и 2
-отслеживание 8 ми аналогових датчиков
-управление аналоговыми устройствами
-управление ЖКИ
-связь с DTMF (тональное управление с телефона)
-диагностика котроллеров 1 и 2

На мой взляд здесь оптимально Atmega32 (обьема ОЗУ больше)

Связь между микроконтроллерами и Тини (общая) - I2C. Посколько предполагается что все это находится в одном месте. Для связи с еще одним микроконтроллером (можно и не одним, это перспектива) управления электростанцией- CAN (Поставить микроконтроллеру 3 преобразователь TX<->CAN) или задействовать CAN Тини. Ну в общих чертах я вижу так.
По поводу многопроцесорных систем:
На мой взгляд проще написать отладить каждый узел системы отдельно (тем более что он становиться законченым узлом) нежели ломать голову где же рвет программма и программа ли? Я убедился что экономя $4 убиваешь несколько вечеров работы. А самое главное что чем сложнее программа тем больше вероятность баггов которые не всегда обнаружишь ( не все связи между подпрограммами и прерываниями можно предусмотреть, я убедился в этом с USART наконец его победил!). Одним словом мой хоть и не большой опыт программирования убедил меня в том что отказ (технический) нескольких микроконтроллеров имеет меньшую вероятность нежели скрытые багги программы (ну может я плохой програмист... Но я и не претендую на профи). Для меня такой путь кажется проще, я не говорю что он эффективный...


--------------------
8 бит = 1 Хоббит
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Dec 25 2006, 10:45
Сообщение #64


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Snowmen @ Dec 25 2006, 01:14) *
Для меня такой путь кажется проще, я не говорю что он эффективный...

Проще и эффективнее - это скорее синонимы wink.gif
Я предпочитаю открытость системы, возможность диагностирования и мониторинга каналов связи, и возможность симуляции любого устройства.
Посмотрите - в соседней теме анализатор I2C ищут. А Вы как будете отлаживать всю систему, если Вы даже не будете знать, что там происходит?
И еще. Достоверность передачи данных как-то проверяется? Контрольные суммы и так далее?


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Snowmen
сообщение Dec 25 2006, 15:16
Сообщение #65





Группа: Новичок
Сообщений: 8
Регистрация: 22-12-06
Из: Киев
Пользователь №: 23 789



To Dog Pawlowa

Скажите пожалуйста какой внутренний интерфейс предпочли бы Вы? Что бы была и открытость системы и простая диагностика "каналов" связи? Я взял слово каналы в кавычки не зря. Нету у меня каналов связи, нету и все... У меня есть внутрений интерфейс ( шина) между блоками, а он может быть
параллельным либо последовательным увы третьего не дано. Паралельный мне не подходит слишком много "ног" микроконтроллера заберет. Что остается? Правильно, последовательный...CAN, Ethernet и т.д. прочие промышленные стандарты мне не нужны (ну не нужны мне сотни метров пока...) таким образом имеем: 1-Wire,I2C,RS232,SPI (USB и прочая шина это уже слишком). Почему из этих четырех именно I2C уже не трудно догадаться.
По поводу диагностики I2C. Да нет ничего проще, сделал я энтот монитор на PCF8584 еще месяц назад. Да только на фиг он мне оказался нужен. Не буду расписывать почему он мне не подходит. Скажу вкратце не предусмотрен в программе монитора адрес этого самого монитора. Вот и все. Я каждый раз как вспоминаю об этом так начинаю злиться...Я вначале приобрел USB осциллограф с логическим анализатором потому что там в описании возможностей говорилось что есть терминал 1-Wire,I2c,RS232 и SPI. А оказалось что оно ни фига не работает как терминал а только как анализатор. Я от расстройства погорячился и собрал монитор на PCF8584 особо не вникая в работу программы, как оказалось опять зря. А вот недавно меня "осенило" а не проще ли взять любую AVR с TWI и UART хотя бы Atmega8 и сделать программный RS232<->TWI? Так я и сделал. И есть теперь у меня счастье...
Теперь о достоверности. Ничто не мешает програмно реализовать контрольные суммы и прочую лабуду (да хоть 3-des шифрование) на что фантазии хватит...Да только я строю не шатл и даже не самолет, и при передаче нескольких десятков байт стоит ли огород городить?


--------------------
8 бит = 1 Хоббит
Go to the top of the page
 
+Quote Post
proba
сообщение Dec 25 2006, 16:10
Сообщение #66


Местный
***

Группа: Участник
Сообщений: 358
Регистрация: 29-05-05
Пользователь №: 5 526



Вам уже советовали LIN. I2C с длинными линиями себя плохо ведет, кроме того, зависание одного элемента исключает работоспособность всеи сети. конечно, если RESET по отделному проводу вести то систему всегда поднимать можно ( а Вы случаино некогда не размышляли зачем PCF8584 Reset вывод ?) можете и свои интерфеис сделать, примеров много, удобно делать "монтажный ИЛИ" из входов-выходов USART в 9битном режиме- 9ый бит указатель адрес/дата.
Go to the top of the page
 
+Quote Post
Snowmen
сообщение Dec 25 2006, 18:46
Сообщение #67





Группа: Новичок
Сообщений: 8
Регистрация: 22-12-06
Из: Киев
Пользователь №: 23 789



Вот все больше убеждаюсь что почему то у многих прям ненависть к I2C. А вот у разработчиков телевизоров, мониторов и прочей техники совершенно противоположное мнение. И чего то не замечал что бы мои телевизоры "висли". Да и сейчас при отладке программы контроллера дискретнных датчиков не замечаю ни чего подобного...Ладно поживем увидим.


--------------------
8 бит = 1 Хоббит
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Dec 26 2006, 11:32
Сообщение #68


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Snowmen @ Dec 25 2006, 15:16) *
To Dog Pawlowa
Скажите пожалуйста какой внутренний интерфейс предпочли бы Вы? Что бы была и открытость системы и простая диагностика "каналов" связи?

Я бы взял RS485. Да собственно почему "БЫ" - я взял RS485 smile.gif
Открытость можно трактовать как простое добавление нового устройства в параллель.
Простая диагностика - возможность постоянного ведения логов обмена и визуализация текущего состояния. Скриншот программки визуализации приаттачен.
Прикрепленное изображение

Цитата(Snowmen @ Dec 25 2006, 15:16) *
Да только я строю не шатл и даже не самолет, и при передаче нескольких десятков байт стоит ли огород городить?
Шаттл чужой. А дача своя smile.gif Разморозить систему отопления из-за сбоя ? Объявить ложную пожарную тревогу? w00t.gif Это не телевизор мигнет.

Цитата(Snowmen @ Dec 25 2006, 15:16) *
Вот все больше убеждаюсь что почему то у многих прям ненависть к I2C. А вот у разработчиков телевизоров, мониторов и прочей техники совершенно противоположное мнение.
Вы путаете ненависть с пониманием области применения - телевизоры, мониторы и прочая ПОДОБНАЯ техника. smile.gif


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Dec 26 2006, 15:45
Сообщение #69


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(Mack @ Dec 20 2006, 13:12) *
есть ли у кого-то опыт подключения самых разных датчиков (охранных, температуры итд) в сеть ETHERNET ?
Может быть есть датчики с Ethernet - интерфейсом (со встроенным ВЕБ-интерфейсом) ? или Ethernet - адаптеры ?
Кто-нибудь может, что-нибудь сказать по этому поводу ?



работаем и с Ethernet.
Связка 51(основной) + 51(сетевой) + CS8900A(в набор входит и трансик и разьёмчик) + ОЗУ(32). Стэк свой (ARP, ICMP, IP, UDP) с поддержанием дефрагментации на IP уровне и иже. Управляются установки из под форточек (UDP). Так же сканируем параметры работы установок (приточно-вытяжные). Сканируются более десятка параметров, в том числе и температурные датчики с шагом от 1 с. до 10 с.. В экселе получаются красивые графики аднака...

плюсы - не бум...(система не закончена и имеет не только одно направление по применению).
минусы - наверное трудозатраты я бы отметил. ну можно ышо скорости..до 10 не дотягиваем...

с уважением
(круглый)

Сообщение отредактировал kolobok0 - Dec 26 2006, 15:47
Go to the top of the page
 
+Quote Post
MaxVovk
сообщение Dec 27 2006, 00:50
Сообщение #70





Группа: Новичок
Сообщений: 9
Регистрация: 8-08-05
Пользователь №: 7 436



Сам недавно столкнулся и был приятно удивлен. Все сейчас сильно подешевело и обрело благородные черты smile.gif.

CAN и только CAN !!! Максимум 150руб на устройство - зато никакой мороки с протоколами и прочими арбитражами. Сказал "послать кадр для 15-го" - и он послался. Все.
Про качество интерфейса, думаю, говорить не надо. Конечно, подороже ср485 от Sipex, зато удобства выше крыши.
Go to the top of the page
 
+Quote Post
atmel45
сообщение Jun 4 2009, 07:53
Сообщение #71





Группа: Новичок
Сообщений: 3
Регистрация: 20-04-09
Пользователь №: 47 981



Идеологии промышленности несколько отличаются от заявленной темы - "умный дом"
Дом сам должен ( пусть относительно медленно) проверять , перепроверять себя и принимать решения.
Сигнализировать об ошибке, нарушении , или временно оставить без внимания некоторые "не доступные" датчики.
Во главу угла - не жестокие протоколы типа CAN, а идеология - что делать если ответ от датчика не тот, что ожидали.
Программное решение разрулит и I2C и RS485. И вообще простота установки иполнительных и следящих систем -
применение радио канала. Вот найти ("изобрести") приемопередатчики этак за 200-300 руб., да протокол связи с упором на
идеологию , а не "ченоящечную зигбю"!
Умный дом - это объем в реальных границах (желательно не конфликтующий с соседним умным домом). Вот и нужно
заполять этот объем радио (эфиром) , где дотупность -не дыра в стене, или провода по плинтусу, а наличие розетки (или
батарейки).
Go to the top of the page
 
+Quote Post
Serega Doc
сообщение Sep 7 2009, 15:04
Сообщение #72


Местный
***

Группа: Свой
Сообщений: 267
Регистрация: 11-11-04
Из: Одесса
Пользователь №: 1 103



У меня возник вопрос как нужно реализовывать управление что бы при отказе автоматического исполнительного устройства оставалось ручное управление?
В качестве среды думаю самое актуальное радио (не нужно долбить стены) или RS-485 (много устройств автоматизации работает на MODBUS).
В плане дешового радио поднималась тема тут на форуме
Оттуда взял вот этот передатчик возник вопрос для "Умного дома" как реализовать маршрутизацию пакета при малой дальности передачи в помещении:
Если есть пять точек одна видит до двух соседей как от первого передать пакет пятому
1-2-3-4-5
1 видит 2 и 3
2 видит 1, 3 и 4
3 видит всех
...
5 видит 3 и 4
Go to the top of the page
 
+Quote Post
Rst7
сообщение Sep 7 2009, 15:19
Сообщение #73


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
как реализовать маршрутизацию пакета при малой дальности передачи в помещении:


Ооо... Тут, понимаете ли, есть некоторое количество проблем. Если пробовать решать экстремально дешево, то в устройствах негде хранить таблицы маршрутизации. А значит, адрес устройства должен определять маршрут. Есть несколько способов (описание одного из них постараюсь завтра выложить).

Идея с координатором (ZigBee, например) конечно хороша, но если ложится координатор - ложится сеть. А так как все остальные устройства координатором не могут являться (это я про острый случай бюджетного варианта - нет ресурсов), и подхватить упавшее знамя не могут, то получается (_*_). Конечно, можно резервировать координатор, но, лично у меня, душа к такому решению не лежит.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
xelax
сообщение Sep 7 2009, 15:40
Сообщение #74


Местный
***

Группа: Свой
Сообщений: 370
Регистрация: 7-11-06
Пользователь №: 22 035



Цитата(Rst7 @ Sep 7 2009, 19:19) *
Идея с координатором (ZigBee, например) конечно хороша, но если ложится координатор - ложится сеть. А так как все остальные устройства координатором не могут являться (это я про острый случай бюджетного варианта - нет ресурсов), и подхватить упавшее знамя не могут, то получается (_*_). Конечно, можно резервировать координатор, но, лично у меня, душа к такому решению не лежит.


Это откуда такая инфа??? Координатор нужен для первоначального постороения сети, состоящей из роутеров и конечных устройств. И если в такой работающей сети отключить координатор, то она продолжет спкойно функционировать. Естественно, данные на координатор не будут доходить, но все остальные узлы будут между собой нормально общаться.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Sep 7 2009, 16:18
Сообщение #75


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Это откуда такая инфа???


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


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Serega Doc
сообщение Sep 7 2009, 17:16
Сообщение #76


Местный
***

Группа: Свой
Сообщений: 267
Регистрация: 11-11-04
Из: Одесса
Пользователь №: 1 103



Цитата
... но, лично у меня, душа к такому решению не лежит

А к чему лежит? Я пока нашел построение таких вещей только в Zig Bee
И еще вопрос периемо передатчик который я преводил выше можно применять для Zig Bee. Диапазон вроде совпадает?
Go to the top of the page
 
+Quote Post
Rst7
сообщение Sep 8 2009, 05:14
Сообщение #77


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
И еще вопрос периемо передатчик который я преводил выше можно применять для Zig Bee. Диапазон вроде совпадает?


Ну я так понимаю, подходящего вида модуляции там нет.

Кстати, обещанный патент:
Прикрепленный файл  Method_and_apparatus_for_routing_messages_in_a_network_of_nodes_with_minimal_resources.pdf ( 616.36 килобайт ) Кол-во скачиваний: 259


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post

6 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 01:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.02374 секунд с 7
ELECTRONIX ©2004-2016