Battle tank - with Voice Control

Hi clcheunghk ,I decided to

Hi clcheunghk ,

I decided to order some sample Atmega88s. I was wondering if you could describe your programmer and the tools you are currently using? I would greatly appreciate any info you might give a complete noobie.

Regards,

GroG

Hi GroGI was also a complete

Hi GroG

I was also a complete noobie half year ago, I am sure you will catch up quickly. Here is my experience to start up with AVR:

1. I pick AVR atmega instead of PIC, mainly because of the availability of free GNU C compiler and, I could not find a good supplier in my region with reasonable prices.

2. If you consider atmega88, you may also think about atmega168. The program memory on atmega88 is only 8K. A bootloader takes about 1K, and if you use floating point library, it will take another 1-2K memory. Sometimes (not always) your robot controllers may need more memory.

However, I can get atmega88 20MHz here, but not atmega168 20MHz. If you plan to run at high speed, may be there are not many choices ?

For speed and cost reason, I would pick atmega88 20MHz, for program size, I would need atmega168 sometimes.

3. I use mainly AVR Studio to develop C programs for atmegas.

4. I believe you are familar with http://www.avrfreaks.net ? Good forums and good help can be found there.

5. I mainly use a mkII compatible programmer. I use it only to initialize the MCUs. I prefer to use TWI (I2C) bootloader to load programs to the MCUs. During development, I may have several MCUs to be programmed at the same time. If you standardize on TWI bootloader, you can easily program them without plug and unplug. Thus I just use the programmer to program the fuse and load the bootloader to MCU. After that, I can download programs via TWI.

6. Because I standardize the communications with TWI, My PC need to communicate with the MCU thru TWI. I have developed a simple USART to TWI gateway, so that on the PC side, all programs are communicating with the MCU thru RS232. I bought a USB RS232 device also, it can run at 1Mbps. (I usually run it at 250kbps).

If you consider also to standard on TWI, you can also get a PC to TWI bridge…I believe at a reasonable cost…with openservo.com

7. Since I don’t have a CRO, I also develop a very simple CRO using atmega88 and python. You can check on my blog for more information.

8. I have also made a “current control module”, after I burnt out some components due to incorrect wiring. It is a module to monitor how much current is using. It will alarm and cut off power when limit exceeded. It is very useful, especially if you are dealing with motor controller development. It safes me a lot of money already !

9. I use mainly python on PC side. Too many packages and tools on the net. I use mainly PyScripter for editing purpose. Very good python editor.

I prefer DIY for most of the above components, not only because of the cost, but also I want a consistent and solid foundation for later development (except the simple CRO, I think bought a small one is justified). Other than C and python, I use specific packages (like opencv, sphinx, …) for the specific purpose. Not many generic tools are used.

Hope this little sharing helps.

 

 

 

Fantastic information

Fantastic information Clcheunghk ! Thank you very much. It will take me a while to put to use all of your excellent information, but I am very excited to begin. Just waiting on parts at the moment.

Thanks !

GroG

voice recognition
i would lik to know the voice recognition part alone…since it might help for my project…can u say how to proceed with sphinx? im new to dis…i ll make my bot to do its particular operation thro rf…but i need to know before how to interact voice to rf through pc…can u please help me

Since shpinx is designed to

Since shpinx is designed to be a speaker independing continuous speech recognition system, it is quite comprehensive and hence complicated. To set it up for a simple commanding system, you can check on my blog:

http://hk.myblog.yahoo.com/jw!afd6dGGRHBRkp2laqwk198fg/article?mid=629

 

I believe some other systems are available and more simple, e.g. the Microsoft Speech SDK. I tried that before I believe it can do the work also. I pick sphinx because it is more flexible and its support on handheld devices.

Use either sphinx or other systems, you need some system integration skills to pass the result back to your robot.

hiiii i am new in robotics

hiiii i am new in robotics and i like ur robot. i also want to make a robot with ATMEGA128 but i dont how to use this…

 

plz send ur reply to [email protected]. i am eagerly waiting for ur reply

 

plz:-

If you are new start small.
If you are new start small. Start making an LED blink, then maybe add a servo, etc until you understand how everythign works. Otherwise you will get frustrated and not make any progress.

It is a big topic. First of

It is a big topic.

First of all, you have to decide what platform to be used, and that should match your skill set. You have to know a bit of electronics. Then try some sample projects with servos and motors.

There are quite a number of tutorials in this site. AVR freaks is very good site if you are interested to use ATmega chips http://www.avrfreaks.net/index.php?name=PNphpBB2&file=index

How is recognized voice transmited from PC to robot?
I’m currently working on Home Automation program using different RF modules and Sphinx on Linux OS. Your robot experiment give me a good idea how to interface Sphinx with RF modules but There are few things that are not quite clear to me yet. <o:p></o:p>My question is based on ram33’s question… What I would like to know is what are the components involved in interacting with sphinx and robot. Mainly, I would like to know what you used for “RF modules”. How .Sph file format is used in transmitting RF signal to receiver (robot)? My guess is the robot plays as RF receiver… correct me if i am wrong.<o:p></o:p> The part that I am really confused and would like to understand is how Sphinx communicates with robot control program (fyi - I’m software Engineer)? After Sphinx recognizes your speech, does it fire up some type of robot control program???<o:p></o:p>Sphinx 3 => robot control program => RF module => robot ???<o:p></o:p> Eager waiting to hear from you soon.<o:p></o:p>Any guidance is appreciated <o:p></o:p>Thanks<o:p></o:p><o:p> </o:p>

 

The design is quite straight

The design is quite straight forward:

 

Sphinx 3 => command receiver (a python program, communicate through name pipe) => RF module transmitter => RF module receiver in Robot

Still lost in RF signal communication

What you mean by conunicate through name pipe? Can you give me a bit detail how Sphinx 3 communicate with comand receiver and how name pipe communicates with RF transmiter? I should be able to use any type of program instead of python, can’t I?

Thanks

Of course you can use

Of course you can use whatever programming language, but I prefer python in general for robot control.

There are many small programs coming with Sphinx 3. I use the one "sphinx3_livedecode.exe". I add some code to allow it to connect to my robot control program through name pipe. You can use whatever IPC protocol as you like.

The robot control program is a simple python program, listening to the name pipe. It generate the corresponding commands to communicate with the RF module. In my case, it just communicate with the RF module through RS232.

You even got me lost!!!
"…I add some code to allow it to connect to my robot control program… what code are you referencing here? And what do you mean by name pipe??? Please guide me to the right direction. Please describe your robot control program in technical from.<o:p></o:p>In general, you lost me with RF module through RS232. All I would like to know is how speech (Sphinx-3) is converted to RF signal (transmitter to receiver in technique) term. My main interest is in how Sphinx communicates with external device through speech. If you describe the technical part (including hardware component envolved) for me, I would really appreciate it. <o:p></o:p>

I was using Sphinx 3 on

I was using Sphinx 3 on Windows. I am not sure about the corresponding sphinx3_livedecode.exe on Linux. Name pipe is just interprocess communication technology on Windows. I believe you can use pipe or socket on Linux.

I am not sure which part you are having problem. May be you can tell me step by step and point out the problems you encounter.

Sphinx communicates TO RF transmitter

The part where Sphinx communicates with RF transmitter is what I mostly dont understand. You mentioned sphinx3_livedecode.exe. How is this executable program come in play to communicate with RS-232 serial port? I guess what I would like to know is the techinical part in detail. Any code used to communicate Shpinx with RS232 will help me to understand.

Fantastic!!!
This is fantastic

This was an old project so I

This was an old project so I am not sure if I remember it 100% correct.

Sphinx comes with a set of library, sample program, configuration tools. You can make speech recognition applications on top.

One of the example program is called sphinx3_livedecode.exe, which is a real time speech recognition example program. It can recognize voice sentences in realtime from the grammar that it learned in the traning section.

But this sample program just output the command to the screen (if I remember it correctly). You have to modify it a little bit so that the commands are fed to your robot program. Here I use name pipe to feed commands to my python robot control program.

Your robot control program can then do whatever you want. Example, control an RF module, send an email or etc.

I suggest you take a look into the programs that come with sphinx, it is not diffcult to figure out how to make change on top of it.

 

Finally Understood…
Thank you so much for breaking it down for me. Now I completely understand how it works. When you mentioned “name pipe”, i kind of got lost. I didn’t think you were referencing name pipe in programming terminology. I am very familiar with name pipe. I’m planning on using Sphinx 4 which is written in Java since I am more of Java and .Net programmer. By the way, do you remember the type of RF Transmitter Module you used? Or do you have any RF modules you recommend?<o:p></o:p><o:p> </o:p>Again thanks for you time to explain how it works.<o:p></o:p>

Named

Named Pipe:

http://msdn.microsoft.com/en-us/library/aa365590(VS.85).aspx

Nothing special, just IPC communcation.

I use a very cheap AM ASK type cost less than $1 each. It is easily interrupted by other electrical appliance so I do not recommend.

 

program

hi  

i am making a voice controlled robot.i have completed the robot vehicle part and if i giv input through the keyboard ,it recieves the signal through a rf reciever and moves accordingly.What i want now is to control the robot by giving voice input.can u give me a program code for speech recognition which can be done by using SDK