Bueno con respecto a la propuesta y todo lo que se ha hablado por aca. Ya hay un panorama mas claro de lo que intentas hacer.
Vamos a desglozar la parte del Hardware, y la del Software, y vamos a tratarlo independiente unos de otros
Hardware:
* Tenes un robot. Con un controlador que posee un microcontrolador de ST, con un Cortex M3. Y tiene comunicacion RS232 con la PC.
Esto es bueno por que podes comunicarte con la PC, el mayor problema que te enfrentas es que estas intentando agregar hardware a un dispositivo ( tu controlador ) que fue diseñado para que solo se conecten algunas cosas en especial.
Ejemplo tenes puertos para los servomotores y estos no pueden ser cambiados. Ya que el programa que trae el controlador no lo permite.
Se podria decir que tenes 3 opciones a seguir si es que realmente estas interesado en agregar mas sensores y actuadores.
La primera opciones es comprar algun elemento externo que te permita comunicarte con los nuevos sensores y actuadores. Con esto te vas a enfrentar a mas cables saliendo de tu PC y te vas a encontrar con tal ves un mayor desfesaje cuando tomes los datos tanto del robot como del sensor. Vas a tener que crear una una funcion ( task) que te envie los datos.
La segunda opcion es programar el micro que posee tu controlador del robot. Esto te va a permitir sacrificar uno de los puertos de un servomotor, para tener una salida I2C.
Lo bueno es que vas a tener I2C.
Lo malo es que vas a tener que programar todo el micro para que funcione asi
La tercera es comprarse el micro o un micro cualquiera y hacer el hardware a gusto. Ya aqui no tendrias limitantes y podes conectarlo a tu gusto.
Software:
Aqui va a depender de las opciones que elijas con anterioridad.
Si elegiste la primera opcion, entonces vas a poder utilizar tu RoboPlus RoboTask etc.
Si elegis cualquiera de las dos opciones que queda vas a tener que programar por completo el integrado, en un caso vas a estar encerrado en el hardware del controlador. Y el en otro vas a ser libre de poner lo que quieras.
Ahora tu software puede ser algo muy simple o algo muy complejo.
- Simple en el caso que solo agregues el programa como para manejar los servos, tomar los datos y actuar segun los datos que le llegan.
- Complejo si esto lo tiene que hacer todo por si solo el microcontrolador.
Si elegis la opcion "simple" ( que no es tan simple ) vas a poder trabajar con MATLAB. Lo cual va a facilitar todos los calculos y tambien te va a facilitar el programa del microcontrolador.
Si elegis la opcion compleja, tambien podes usar el MATLAB, pero vas a intentar optimizar mas las cosas para reducir un poco el trafico y hacer que sea mas rapida la reaccion del robot. Trabajando mas cosas desde el microcontrolador.
Este programa que va a ir en el microcontrolador lo mas seguro es que lo termines programando en C. Normalmente los compiladores de ARM son de C. Esto lo podes hacer el IDE que mas te guste. Tambien va a depender si usas GCC va a cambiar un poco la forma de definir las interrupciones y algunas cosas mas.
Luego de todo esto vas a tener que trabajar con MATLAB para que calcule todo y envie los movimientos a cada motor. Con los conocimientos que conlleva hacerlo.
Resumen:
Mejor caso:
En C escribir un task para que envie datos del robot y reciba los datos para actualizar los servos
Comprar un dispositivo para comunicarte con los demas sensores que desees.
Escribir en MATLAB el programa para que maneje todo.
Peor caso:
Escribir todo en C partiendo de las librerias que provee el fabricante del controlador
Crear el hardware para comunicarse con los servos/sensores/etc
Crear el programa de MATLAB
Creo que eso es lo mas realista para hacer.
Eso asi tan resumido, no lo es tanto. Te vas a enfrentar a muchas cosas.
Programando el micro (esto no solo en programa, tambien el programador en caso de necesitarlo), haciendo funcionar correctamente los sensores (el acelerometro debe tener unos 30 registros de configuracion masomenos), haciendo funcionar correctamente los servomotores (estos tienen otros 30 cada uno).
Luego tenes que tratar el dato para que te sea util, y finalmente como si fuera poco el MATLAB.
Tus conocimientos actuales.
Yo no se que estas estudiando, seguro que lo que estas estudiando sabes mucho mas que yo.
Pero esto es para que tengas en cuenta a que te vas a enfrentar. Y ya no estamos hablando de "no se que es I2C, no se como conectarlo, tengo salidas ttl como lo conecto a I2C", "como genero una señal X", "que es un SPI, como lo conecto" esto lo vas a tener que tener MUY pero MUY claro si vas a tratar de crear esto. Tambien vas a tener que programar en C correctamente para tu microcontrolador, vas a tener que leerte datasheet de cada sensor de unos 20 a 100 hojas, y ni hablar si tambien agregas al microcontrolador que tiene sus 1000 mas. Podes evitar esto? Si un poco, utiliza arduino, comprate modulos para el arduino asi de esa forma solo bajas el driver y listo. Eso si vas a gastar FORTUNA, pero aun asi vas a tener que tener conocimientos basicos de progrmacion y de hardware.
Para mi es ilogico que me hables de robots, cinematica inversa, tratamiento de imagenes como querias hacer con la camara y tratar de manejar un microcontrolador cuando no podes hacer cosas basicas en ellos, al menos con las preguntas que has realizado, y programas presentados has dado a entender eso mismo. Cuando preguntas, se te dan las soluciones y aun asi no logras entenderlas imagino que es por que estas muy alejado de lo que es la electronica. Para que entiendas mi punto de vista que no soy un experto ni nada por el estilo. Es como si quisiera hacer una casa de madera, con aire acondicionado, calefaccion central, todo automatizado y no se lo que es una serrucho, o no saber que es una llave de paso de gas o no se como hacer el cableado de una casa.
Si este mensaje no te da un mejor panorama de la dificultad y de lo que vas a tener que hacer, no se que pueda hacerlo.
¿Estoy diciendo que NO lo vas a poder hacer? - No, cualquiera lo puede hacer, aca la mayoria son personas autodidactas, que han dedicado tiempo para aprender
Nadie nacio sabiendo. Pero o estas subestimando mucho tu idea,o que te parece que es todo muy simple y que escribir una linea de codigo va a solucionarlo.
Tampoco veo que intentes aprender por vos mismo ya que hay mucha informacion por internet, ejemplos, y hasta proyectos masomenos similares. Y si quisieras realmente aprender buscarias las dudas en google antes de preguntar. Creo que preguntar es el ultimo recurso que deberias tener. Cuando ya agotaste todas tus ideas. Y si no me crees la mayoria de las respuestas aca se contestan buscando en google, un 80-90% seguro.