Страница 10 из 12 ПерваяПервая ... 456789101112 ПоследняяПоследняя
Показано с 91 по 100 из 115

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Новичок
    Регистрация
    28.10.2012
    Сообщений
    1
    Вес репутации
    0

    По умолчанию Re: Голосовое управление выключателями на Arduino



    а вот еще человеконезависымый пример (вкл при left right, выключает down ) на ATMEGA8 без ардин для CodeVision видео нет , но работает
    кварц на 7.37МГц прерывания по приему и передаче по rs232.
    биты порта С.3 С.4 управляют нагрузками ,а D5,D6,D7 для информации (нужны а процессе настройки)

    ==================
    #include <mega8.h>
    #include <delay.h>
    #ifndef RXB8
    #define RXB8 1
    #endif

    #ifndef TXB8
    #define TXB8 0
    #endif

    #ifndef UPE
    #define UPE 2
    #endif

    #ifndef DOR
    #define DOR 3
    #endif

    #ifndef FE
    #define FE 4
    #endif

    #ifndef UDRE
    #define UDRE 5
    #endif

    #ifndef RXC
    #define RXC 7
    #endif

    #define FRAMING_ERROR (1<<FE)
    #define PARITY_ERROR (1<<UPE)
    #define DATA_OVERRUN (1<<DOR)
    #define DATA_REGISTER_EMPTY (1<<UDRE)
    #define RX_COMPLETE (1<<RXC)
    char m=3;
    char t=1;
    char Q=0;
    // USART Receiver buffer
    #define RX_BUFFER_SIZE 8
    char rx_buffer[RX_BUFFER_SIZE];

    #if RX_BUFFER_SIZE <= 256
    unsigned char rx_wr_index,rx_rd_index,rx_counter;
    #else
    unsigned int rx_wr_index,rx_rd_index,rx_counter;
    #endif

    // This flag is set on USART Receiver buffer overflow
    //bit rx_buffer_overflow;

    // USART Receiver interrupt service routine
    interrupt [USART_RXC] void usart_rx_isr(void)
    {
    char status,data;
    status=UCSRA;
    data=UDR;
    if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
    {
    // rx_buffer[0]=data;
    if(data=='t') {m=1;t=1;return; }
    if(data=='e') { PORTD.5=1; m=1;t=1;return; }
    if ((data=='o')&&(m==3)&&(t==0)){m=1;t=1;return;}
    if((data=='s')&&(t==0)&&(m==1)) {m=2;t=1;return; } //r //s
    PORTD.6=1;
    if(m==2)
    {
    if(data=='D'){PORTC.4=1;PORTC.3=0;m=1;t=1;return; }
    if(data=='B'){ PORTC.3=0;PORTC.4=0;m=1;t=1;return; }
    if(data=='E'){ PORTC.3=1;PORTC.4=1;m=1;t=1;return; }
    PORTD.5=1;
    } // else {m=1;t=1; }


    }
    t=1; data=0;
    }

    #ifndef _DEBUG_TERMINAL_IO_
    // Get a character from the USART Receiver buffer
    #define _ALTERNATE_GETCHAR_
    #pragma used+
    char getchar(void)
    {
    char data;
    while (rx_counter==0);
    data=rx_buffer[rx_rd_index++];
    #if RX_BUFFER_SIZE != 256
    if (rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
    #endif
    #asm("cli")
    --rx_counter;
    #asm("sei")
    return data;
    }
    #pragma used-
    #endif

    // USART Transmitter buffer
    #define TX_BUFFER_SIZE 8
    char tx_buffer[TX_BUFFER_SIZE];

    #if TX_BUFFER_SIZE <= 256
    unsigned char tx_wr_index,tx_rd_index,tx_counter;
    #else
    unsigned int tx_wr_index,tx_rd_index,tx_counter;
    #endif

    // USART Transmitter interrupt service routine
    interrupt [USART_TXC] void usart_tx_isr(void)
    {
    if (tx_counter)
    {
    --tx_counter;
    UDR=tx_buffer[tx_rd_index++];
    #if TX_BUFFER_SIZE != 256
    if (tx_rd_index == TX_BUFFER_SIZE) tx_rd_index=0;
    #endif
    }
    }

    #ifndef _DEBUG_TERMINAL_IO_
    // Write a character to the USART Transmitter buffer
    #define _ALTERNATE_PUTCHAR_
    #pragma used+
    void putchar(char c)
    {
    while (tx_counter == TX_BUFFER_SIZE);
    #asm("cli")
    if (tx_counter || ((UCSRA & DATA_REGISTER_EMPTY)==0))
    {
    tx_buffer[tx_wr_index++]=c;
    #if TX_BUFFER_SIZE != 256
    if (tx_wr_index == TX_BUFFER_SIZE) tx_wr_index=0;
    #endif
    ++tx_counter;
    }
    else
    UDR=c;
    #asm("sei")
    }
    #pragma used-
    #endif

    // Standard Input/Output functions
    #include <stdio.h>

    // 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=0x1F;

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

    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: Timer 0 Stopped
    TCCR0=0x00;
    TCNT0=0x00;

    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: Timer1 Stopped
    // Mode: Normal top=0xFFFF
    // OC1A output: Discon.
    // OC1B output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=0x00;
    TCCR1B=0x00;
    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: Timer2 Stopped
    // Mode: Normal top=0xFF
    // 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=0x00;

    // USART initialization
    // Communication Parameters: 8 Data, 1 Stop, No Parity
    // USART Receiver: On
    // USART Transmitter: On
    // USART Mode: Asynchronous
    // USART Baud Rate: 9600
    UCSRA=0x00;
    UCSRB=0xD8;
    UCSRC=0x86;
    UBRRH=0x00;
    UBRRL=0x2F;

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

    // ADC initialization
    // ADC disabled
    ADCSRA=0x00;

    // SPI initialization
    // SPI disabled
    SPCR=0x00;

    // TWI initialization
    // TWI disabled
    TWCR=0x00;

    // Global enable interrupts
    #asm("sei")
    putchar('b'); putchar('b');

    while (1)
    {
    PORTD.7=1;delay_ms(300);PORTD.7=0; PORTD.5=0; PORTD.6=0; delay_ms(100);

    if(t==1)
    {
    if(m==1){ putchar('i'); putchar('B');t=0;Q=0; } //d //i
    if(m==2){ putchar(' ');t=0;Q=0;}
    if(m==3){ putchar('b');t=0;Q=0;}
    }
    Q=Q+1;
    if (Q>10){t=1;m=3;}
    }
    // PORTC.0=0;


    }
    Последний раз редактировалось Zapla; 28.10.2012 в 19:01.

  2. #2
    Новичок
    Регистрация
    30.11.2012
    Сообщений
    2
    Вес репутации
    0

    По умолчанию Re: Голосовое управление выключателями на Arduino

    Возникли проблемы с приобретением VRBot. На складах нигде нет а под заказ меньше 10шт связываться не хотят может кто что подскажет.

  3. #3
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    56
    Сообщений
    13,381
    Вес репутации
    10

    По умолчанию Re: Голосовое управление выключателями на Arduino

    VRBot уже не производят, а на замену ему пришел EasyVR

  4. #4
    Новичок
    Регистрация
    30.11.2012
    Сообщений
    2
    Вес репутации
    0

    По умолчанию Re: Голосовое управление выключателями на Arduino

    спасибо вопрос решен нашёл EasyVR на 4роботс ру по приемлемой цене возможностей больше чем у VRbot а цена меньше и это радует
    Последний раз редактировалось alexval2007; 30.11.2012 в 23:15.

  5. #5
    Новичок
    Регистрация
    27.11.2013
    Сообщений
    2
    Вес репутации
    0

    По умолчанию Re: Голосовое управление выключателями на Arduino

    прикупил себе EasyVR
    Подключил пока к компу через преобразователь интерфейса, чтобы видеть диалог...
    Вроде немного разобрался в протоколе. осталось неясность как работает распознавание команд SD. Нужно самому опрашивать состояние была какая-то команда или нет. Или модуль должен сам отправить определенный параметр на UART с указанием группы и номера команды?

    ps. работать модуль будет без всяких дуино, напрямую на МК Atmega.

    Заранее благодарю за ответы!

  6. #6
    Новичок
    Регистрация
    26.08.2011
    Возраст
    50
    Сообщений
    2
    Вес репутации
    0

    По умолчанию Re: Голосовое управление выключателями на Arduino

    Здравствуйте господа!
    Никто не сталкивался с данными девайсами ?
    http://ru.aliexpress.com/item/Free-s...7-17bdb1a15a30
    http://ru.aliexpress.com/item/Free-s...0-49cbd0773a2c

  7. #7
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    56
    Сообщений
    13,381
    Вес репутации
    10

    По умолчанию Re: Голосовое управление выключателями на Arduino

    Именно с такими модулями не сталкивался, но как показала практика, китайские распознавалки распознают хуже

  8. #8
    Новичок
    Регистрация
    26.08.2011
    Возраст
    50
    Сообщений
    2
    Вес репутации
    0

    По умолчанию Re: Голосовое управление выключателями на Arduino

    Цитата Сообщение от Chip Посмотреть сообщение
    Именно с такими модулями не сталкивался, но как показала практика, китайские распознавалки распознают хуже
    благодарю за ответ, буду посмотреть

  9. #9
    Новичок
    Регистрация
    09.08.2016
    Сообщений
    1
    Вес репутации
    0

    По умолчанию Re: Голосовое управление выключателями на Arduino

    Добрый день! Подскажите, на Али продают вот такие модули Voice Recognition Module V3. идентичны ли они EasyVR. может кто сталкивался? Не могу понять можно ли средствами модуля установить триггер.

  10. #10
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    56
    Сообщений
    13,381
    Вес репутации
    10

    По умолчанию Re: Голосовое управление выключателями на Arduino

    это другой модуль, распознает хуже чем EASYVR
    Триггеры у него имеются

Страница 10 из 12 ПерваяПервая ... 456789101112 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 5 (пользователей: 0 , гостей: 5)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •