Ngobrol dengan mikrokontroler lewat EasyVR

Inilah ini modul voice command easyVR, menggunakan interface RS232 level TTL, diisi contoh suara atau suara bawaan dari sono nya yang berisi kata kata standar seperti “ROBOT”, “ONE”, “LEFT” dan peintah lainnya yang disimpan dalam grup tertentu. Kita juga bisa melatih mesin ini untuk bisa ngobrol bahasa Indonesia, Sunda, Jawa, atau bahasa monyet sekalipun dengan menggunakan software bawaan dia VR Commander.

Ini ada contoh program untuk C avr nya

/*****************************************************
This program was produced by the
CodeWizardAVR V2.04.4a Advanced
Automatic Program Generator
© Copyright 1998-2009 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date    : 7/14/2012
Author  : NeVaDa
Company : usercorp
Comments:

Chip type               : ATmega128
Program type            : Application
AVR Core Clock frequency: 8.000000 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 1024
*****************************************************/

// ATmega128 I/O register definitions
#include <mega128.h>
// ATmega128 clock [Hz]
#define FCLK 8000000
// Baud rate
#define BAUD 9600
// Calculate the UBRR setting
#define UBRR ((long) FCLK/(16*BAUD)-1)

// Bit definitions from the USART control registers
#define RXB8 1
#define TXB8 0
#define UPE 2
#define OVR 3
#define FE 4
#define UDRE 5
#define RXC 7

#define FRAMING_ERROR (1<<FE)
#define PARITY_ERROR (1<<UPE)
#define DATA_OVERRUN (1<<OVR)
#define DATA_REGISTER_EMPTY (1<<UDRE)
#define RX_COMPLETE (1<<RXC)

// Specify that a new putchar function will be used instead of the one from stdio.h
#define _ALTERNATE_PUTCHAR_

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

// Specify the output types
#define USART0 0
#define USART1 1

// This variable will specify to which peripheral the output of putchar will be directed
unsigned char poutput;

// Define the new putchar function
void putchar(char c)
{
switch (poutput)
{
case USART0: // the output will be directed to USART0
while ((UCSR0A & DATA_REGISTER_EMPTY)==0);
UDR0=c;
break;

case USART1: // the output will be directed to USART1
while ((UCSR1A & DATA_REGISTER_EMPTY)==0);
UDR1=c;
};
}

//—————————————————————
// uart
void InitUart0()
{
UBRR0H=(uint8_t) (UART_BAUD_CALC0(UART_BAUD_RATE0,F_CPU)>>8);
UBRR0L=(uint8_t) UART_BAUD_CALC0(UART_BAUD_RATE0,F_CPU);
UCSR0B = (1<<RXEN0)|(1<<TXEN0);
UCSR0C |= (1 << UCSZ00) | (1 << UCSZ01);
}

void UartPutc0(unsigned char c)
{
while(!(UCSR0A & (1 << UDRE0)));
UDR0 = c;
}

void UartPutS0(unsigned char * ss)
{
while(*ss)
{
UartPutc0(*ss);
ss++;
}
}

void InitUart1()
{
UBRR1H=(uint8_t) (UART_BAUD_CALC(UART_BAUD_RATE,F_CPU)>>8);
UBRR1L=(uint8_t) UART_BAUD_CALC(UART_BAUD_RATE,F_CPU);
UCSR1B = (1<<RXEN1)|(1<<TXEN1);
UCSR1C |= (1 << UCSZ10) | (1 << UCSZ11);
}

void UartPutc1(unsigned char c)
{
while(!(UCSR1A & (1 << UDRE1)));
UDR1 = c;
}

void UartPutChar1(char c)
{
while(!(UCSR1A & (1 << UDRE1)));
UDR1 = c;
}

unsigned char UartGetC1()
{
unsigned long tout=0;
unsigned char dat=0;
for(;;)
{
if(UCSR1A & (1<<RXC1))
{
dat= UDR1;
break;
tout=0;
}
tout++;
if(tout>toutuart1)
{
dat=0;
break;
}
}
return dat;
}

unsigned char UartGetC0()
{
unsigned long tout=0;
unsigned char dat;
for(;;)
{
if(UCSR0A & (1<<RXC0))
{
dat= UDR0;
break;
tout=0;
}
}
return dat;
}

static int UartPutc1_(char c, FILE *stream)
{
if (c == ‘\n’) UartPutc1_(‘\r’, stream);
while(!(UCSR0A & (1 << UDRE0)));
UDR0 = c;
_delay_ms(8);
return 0;
}
//—————————————————
//eeprom
void writeeeprom(unsigned int alamat, unsigned char datana)
{
loop_until_bit_is_clear(EECR,EEWE);
EEAR = alamat;
EEDR = datana;
EECR |= (1<<EEMWE);
EECR |= (1<<EEWE);
}

unsigned char readeeprom(unsigned int alamat)
{
unsigned char dataeeprom;
loop_until_bit_is_clear(EECR,EEWE);
EEAR = alamat;
EECR |= (1<<EERE);
dataeeprom=EEDR;
return dataeeprom;
}
//—————————————————-
//MAIN
unsigned char i;
unsigned char relay;

int main()
{
stdout = &mystdout;
DDRC=0x07;
PORTC=readeeprom(10)&0x07;
_delay_ms(1000);
InitUart1();
InitUart0();
Printf(“heheh %d\n”),2);
while(1)
{
UartPutc1(‘d’);UartPutc1(‘B’);
i=UartGetC1();
if(i==’r’)
{
printf_P(PSTR(“COMMAND OK\n”));
UartPutc1(‘ ‘);
i=UartGetC1();
if(i==’A’)
{
PORTC|=(1<<0);
printf_P(PSTR(“LAMPU 1 ON\n”));
}
if(i==’B’)
{
PORTC&=~(1<<0);
printf_P(PSTR(“LAMPU 1 OFF\n”));
}
if(i==’C’)
{
PORTC|=(1<<1);
printf_P(PSTR(“LAMPU 2 ON\n”));
}
if(i==’D’)
{
PORTC&=~(1<<1);
printf_P(PSTR(“LAMPU 2 OFF\n”));
}
if(i==’E’)
{
PORTC|=(1<<2);
printf_P(PSTR(“LAMPU 3 ON\n”));
}
if(i==’F’)
{
PORTC&=~(1<<2);
printf_P(PSTR(“LAMPU 3 OFF\n”));
}
writeeeprom(10,PORTC);
}
if(i==’e’)
{
printf_P(PSTR(“Command ERROR\n”));
}
if(i==0)
{
printf_P(PSTR(“COMM ERROR\n”));
}
}
}

Skema nya :

Rangkaian easyVR dengan ATMEGA128 , relay dan power supply

Penampakan alatnya:

Modul Voice Command EasyVR ATMEGA128

screenshoot commander nya :

Menambah Perintah baru di EasyVR Commander

~ by den-wam on October 1, 2012.

13 Responses to “Ngobrol dengan mikrokontroler lewat EasyVR”

  1. mau tanya gan easyVR bisa untuk sandi/mengenal karakter suara orang ga? misal yg disave suara si A,dan hanya si A saja yg bisa mengaksesnya,dan si B tidak akan bisa mengaksesnya walaupun kata2nya sama dengan si A …😀 pengen beli easyVR untuk dijadikan sandi suara kira2 bisa ga ya gan..thx responnya

    • pengalaman saya, suara dengan kata tertentu untuk orang yang berbeda tetap dikenali, kecuali dengan intonasi tertentu yang unik susah ditiru

  2. mau nanya mas. easyVR nya belinya dimana dan harganya berapa yaa

  3. bang tolong ajarin saya buat program nya dan perang kayan nya di Mikro kontroler Arduino Uno.?

    Mohon dengan sanggat bang.. !!

    trimkasi

  4. mau tanyak mas, untuk beli easy vrnya dimana ya mas?

  5. belinya di gerai cerdas gan, itu harganya 890 + ongkir bisa sampe 900 rb. ane jg udah beli ini buat TA.

  6. gan mau tanya itu tanpa easy vr shieldnya bisa berdiri sendri ya easy vrnya,,,trus kalo mau connect ke easy vr comandernya tinggal download pakai usb to ttl aja ya gan ? terima kasih

  7. gan eassyVR selain menggunakan ATMEGA 128 bisa pakai ATMEGA yang lain ga msalnya ATMEGA 16

  8. eassy VR bs buat at89s52 ga Gan?

  9. saya gunakan arduino ms,bagaimana ya caranya?

  10. bos, program code dari easyvr tidak bisa di upload di arduino…apa aja yg perlu dirubah agar bisa di upload supaya bs berfungsi.
    saya pakai easyvr 2.0 dan arduino uno R3.

  11. ada yang jual easyvr nya? seken gapapa asal masih bagus dan fungsi.
    belum lama saya beli di gerai cerdas awalnya bisa connect ke laptop tapi sekarang tiba tiba ga mau connect sama sekali..
    mohon pencerahannya gan..
    #masalahmahasiswaTA

  12. mau nanya gan, kalau pengucapan katanya sama tetapi beda orang yang mengucapkannya bagaimana?
    tolong dibalas gan, benar kata yang di atas, masalah mahasiswa🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: