Electrónica controlada por computadora

Tengo una cantidad razonable de experiencia escribiendo controladores para hardware preexistente y estoy buscando desarrollar mis habilidades y aprender un poco más.

¿Alguien puede recomendar un buen ángulo, recurso o punto de partida para comenzar el desarrollo de la electrónica controlada por computadora?

Me gustaría llegar al punto en el que pueda controlar una serie de motores usando C o C # a través de usb/serial desde mi PC usando un circuito personalizado.

Me doy cuenta de que esta pregunta es un poco vaga, pero sin conocer la terminología, es difícil encontrar un mejor recurso que el buen intercambio de pila.

¿Qué quieres que hagan los motores? ¿Quieres conducir DC sin escobillas o algún otro tipo de motores como servos?
Específicamente, quiero que muevan una palanca hacia arriba y hacia abajo. Pero esperaba un consejo general, como un libro decente u otro recurso, para poder hacer muchas cosas como pasatiempo.
Creo que esta es una muy buena pregunta. A casi todos los aficionados les resultará genial conectar sus dispositivos a una computadora, ¿verdad? ¿No podemos hacer de esto un wiki comunitario sobre cómo conectar sus dispositivos electrónicos a una computadora? Podríamos enumerar diferentes formas como PIC, ARM, puerto paralelo, ...

Respuestas (2)

Su pregunta es probablemente demasiado amplia para permanecer abierta, por lo que seré breve. Existen muchas placas de desarrollo que interactúan con una computadora de alguna forma, como serial, USB o a través de la red.

Serial se está volviendo muy viejo ahora y se usa menos, y no tiene que hacer nada especial para hablar con un dispositivo a través de la red. Si desea llegar a los niveles bajos de hablar con un dispositivo de manera más directa, el USB es probablemente una buena opción para experimentar. El estado de los controladores USB está lejos de ser ideal. Ya no puede crear sus propios controladores en sistemas Windows de 64 bits sin pasar por un montón de problemas y gastos de certificación. Hay un controlador USB genérico que muestra la mayoría de las cosas al nivel de la aplicación, lo que puede permitir que la gente común siga escribiendo el código de la aplicación para sus propios dispositivos USB. Todavía no he mirado esto en detalle, por lo que podría estar un poco fuera de lugar. También hay LibUsb en Linux y Windows. Creo que es un esfuerzo separado de código abierto, pero no sé cuáles son exactamente sus capacidades.

Así que obtenga una placa de desarrollo con algunas capacidades existentes y una interfaz USB documentada, y pruébela. Hay muchos por ahí, incluido nuestro propio ReadyBoard-02 .

Creo que la mejor apuesta por la simplicidad sin tener que obtener una placa de demostración con soporte USB intrínseco es usar algo como RS-232 o RS-485 a un adaptador USB. Obviamente, esta no siempre es una opción, pero permite una interfaz mucho más simple que lidiar con la pila de controladores USB.

El control de motores a menudo no se realiza directamente desde la PC; aunque es potente, el sistema operativo utiliza esa potencia de formas que no son adecuadas para las aplicaciones de control en tiempo real. (Hay actualizaciones "en tiempo real" disponibles para Linux, pero ese es un tema complejo y complicado; y AFAIK, la situación para Windows es mucho peor).

Por lo general, usaría un microcontrolador externo para realizar el control y le daría instrucciones a través de RS232 o USB.

Probablemente el sistema más fácil para aprender los conceptos básicos es Arduino: su comunidad lo hace bien compatible, fácil de encontrar ayuda y no es costoso. Puede programarlo utilizando su propio entorno tipo C, o incluso en Ada si lo prefiere.

En cuanto a los motores que mueven palancas, la forma más simple de eso son los servos para modelos de control de radio, y Arduinos ciertamente lo admite.

Con más experiencia, puede pasar a otros microcontroladores, basados ​​en ARM para tareas más intensivas de CPU o MSP430 para operación de bajo consumo de energía, si lo desea.