AVR Programming: Learning to Write Software for Hardware (Make: Technology on Your Time)