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.