Hola, yo en hace un par de años participé el Alcabot con un robot para la prueba del laberinto.
La máquina en cuestión estaba basado en un microcontrolador PIC16F876, y lo programaba en lenguaje C (concretamente CSS PIC-C).
Para programar el micro utilicé el JDM extralowcost PIC-PROGRAMMER. Te dejo un LINK a una página desde la que puedes obtener el esquema y algunas indicaciones para usarlo.
PROGRAMADORA SENCILLAUna vez que tengas la programadora hecha, empieza a investigar el tema de usar un bootloader para no tener que estar extrayendo una y otra vez el micro de tu circuito (de tanto meterlo y sacarlo al final se rompe algún pin del integrado)
Lo siguiente que te recomiendo es que te diseñes un sencillo ordenador de abordo con lo justo para manejar un par de motores, unos sensores (analógicos o digitales) y para comunicarse con el PC. Mientras más sencillo sea menos cosas podran fallar (lo digo por experiencia). Para construirte el ordenador de abordo puedes usar el programa Eagle de Cadsoft (tienen una versión de prueba 100% funcional).
Lo siguiente es currarte una buena mecánica y probar y probar hasta conseguir algo que se parezca a un robot. Verás que luego lo jodido son los algorimos para que la máquina haga lo que tu quieres y como tu quieres.
Para proteger los puertos de tu micro, efectivamente puedes usar optoacopladores, aunque a mi me parece que es matar moscas a cañonazos. Hay otras formas... diodos por ejemplo. Hay cada maestrillo tiene sus truquillos.
Bueno, te deseo mucha suerte con tu máquina.
Espero haberte ayudado en algo