Thomas Fischl is very well known for his USBasp AVR programmer. If you are looking for other AVR programming options, take a look at ISPnub stand-alone AVR programmer. This is really small dongle that can be used to flash microcontrollers in the filed without use of PC or other host device. Programmer is build by using Atmega1284p microcontroller which has only one button and couple indicator LEDs.
in order to program target, you only need to connect module to target using ISP connector ant press the button. The rest is taken care of by programmer. The trick of minimal design here is that targets hex file is stored in module microcontroller flash. It can carry max 120kB. In order to load flash in to atmega firmware, there is a special java tool used. So you need to merge target hex with ISPnub’s hex, then flash everything to module with ISP programmer and then module can be used to program micros. ISPnub is equipped with programming counter which allows predefined number writes. This might be useful if you do some commercial applications. In other hand the need to generate hex for any other firmware can be annoying. If so then you should look for other stand alone programmers with SD card or so.
More and more new hobbyists simply start with Arduino when learning microcontrollers. But problem is that most important things are hidden inside processes, libraries. All you get is a place to write some prepared code and click program button to get on microcontroller. I think if you start you journey to microcontrollers then you should learn how those things work and how to program “barebone”.
As all new things you probable should start blinking LEDs with AVR using tools like AVRStudio with GCC compiler, programmer adapter and breadboard. Cl97 wrote very simple guide how to get it done. If you are Arduino fan, do same with Arduino digitalwrite() function and then compare binary size and blinking speed.
Serial interface is very popular in embedded engineering. Almost any microcontroller is equipped with one or several UART interfaces. It can be used to connect several devices together, control things, or debug programs. In order to debug program flow, we connect microcontroller to PC using TTL to RS232 or USB converter. Then with terminal program we can see UART output or send data to control things. One thing is obvious – in order to interface microcontroller to PC you need some sort of level or protocol converter. Another thing is that you always need a computer. Nut sometimes there are situations when you would like to monitor serial interface without computer. Having this in mind, ARPix have designed external serial monitor (ESM), which can be connected to microcontroller based device like Arduino in order to see serial activity.
ESM is based on Atmega328 microcontroller which accepts serial data and displays it on graphical LCD. Menu allows selecting baud rate and then display received values. The functionality is quite limited from the first impression, but it can be easily extended by adding new modes and functions.
The name of the robot is Clap-E which is a sound follower robot and follows you as long as you are clapping. It was designed by students of Cornell University as their final year project. It’s insensitive to normal human voice and other noises in the environment, however if you are able to produce a noise as sharp as clapping, then it will follow you. The bot is able to detect the direction of source of clap by applying ‘time of arrival’ principal. The time of arrival between two waves is calculated and using basic trigonometry the position is identified
The hardware comprises of two circuits mainly sensory circuitry and a servo driver circuit. The sensor circuits comprised of microphone as the main sensor device. A total of three microphone were placed at vertices of an equilateral triangle. The bot is very sensitive to clap sounds, since sound is detected using interrupts. However, if the clap is more than 2 meters away from the robot, the latter cannot respond to the sound due to the quality of sensors with low sensitivity.