Голосовое управление на Voice Recognition Module
Голосовое управление на Voice Recognition Module
винда у меня 7, запустить так и не получилось...(((
Мой проект http://pccar.ru/showthread.php?t=16010
Мой проект http://pccar.ru/showthread.php?t=16010
сам помню маялся)))не мог подключить. сейчас нашел модуль опять подзабыл)))
первое: с пролифика рх тх подключаем рх к тх и тх к рх и скорость надо выбрать 9600
второе: отправлять надо не 0xaa11 ,а aa 11 через HEX
а дальше все по инструкции, как закончили писать отправляем aa 21 или aa 22 или aa 23 смотря в какую группу надо
http://youtu.be/6bVTCpYFJeM
Последний раз редактировалось utking; 06.08.2012 в 14:45.
Мой проект http://pccar.ru/showthread.php?t=16010
Здравствуйте, а если нету USB TTL конвертера? вроде я слышал где-то, что можно саму ардуину использовать как USB TTL, загрузив какойто скетч . Может кто подскажет как это сделать?
Попытался подключать! Были ответы от ардуины Start но после записи - всегда выдавало No voice/
И вообще возможно ли это?
Я через ардуину подключался, скетч в шапке темы
Или в теме про Arduino USB UART мост
Последний раз редактировалось Chip; 16.08.2012 в 21:31.
Ребят сделал все по вашей инструкции а Rx у меня не приходят что делать(((
все отлично разобрался опять путаница с ком портами как только я воткнул в др порт винда автомотически поставила на него драйвера с интернета и все в одночасье заработало уже записал 5 команд а по поводу групп пока что не понял мож кто пояснит)))
а вот еще человеконезависымый пример (вкл при 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.
Эту тему просматривают: 3 (пользователей: 0 , гостей: 3)