¿De qué manera puedo hacer que mi circuito se comunique con una computadora?

8

Soy un novato en la piratería electrónica. Me gustaría saber cómo puedo hacer que un circuito se comunique con una PC. Tomemos, por ejemplo, un circuito simple, con un LED y un interruptor. Sin embargo, el interruptor en el circuito no se utiliza para controlar el LED. Al pulsarlo se comunica el estado actual del LED. Tengo un programa que se ejecuta en mi computadora, que tiene una interfaz de usuario, un botón y un objeto gráfico; un círculo negro lleno.

  • Debería poder encender y apagar el LED de mi computadora haciendo clic en el botón en la pantalla.
  • Al presionar el interruptor en la placa, se debe comunicar al programa el estado del LED. Si el LED está encendido, el círculo negro se volverá verde, de lo contrario, se volverá negro.

Esta es una situación hipotética que he descrito para explicar el problema. No estoy buscando una solución para implementar esto, pero quiero saber cómo se puede lograr esta comunicación entre mi circuito y la computadora, de una manera sencilla y económica, a través de

  1. ¿alambre?
  2. ¿inalámbrico?

Y si pudiera sugerirme dónde debería mirar y qué debería aprender para comenzar con mi proyecto de electrónica, sería de gran ayuda.

    
pregunta sauparna

9 respuestas

17

Hay muchas maneras diferentes de lograr esto. Aquí hay algunos:

  1. Puede programar un pequeño microcontrolador como un Microchip PIC16F84A para ver el botón y el LED. Cada vez que se presiona el botón, el PIC16F84A envía un carácter a través de un chip serie FTDI a un puerto USB en tu ordenador. En su computadora, un programa escrito en Processing mira el puerto USB y actualiza las imágenes en la pantalla. Costo total: $ 20 para algunas papas fritas y una placa de pruebas.

  2. Puedes comprar un Bluetooth Arduino con un escudo de prototipos. El Arduino habla sobre un chip Bluetooth a una tarjeta Bluetooth en su PC. Un programa escrito en Python escucha la tarjeta Bluetooth y dibuja la imagen adecuada en la pantalla con biblioteca de juegos . Costo total: $ 150 para un Bluetooth Arduino.

  3. Puede conectar una cámara web a su PC que observe su LED y el botón. Un programa escrito en Ruby está analizando cada imagen que proviene de la cámara web, comparándola con la imagen anterior. Cuando detecta un cambio en la región de la imagen cerca del botón, mira el color de los píxeles en la región LED y actualiza un valor en un base de datos . Una página web se actualiza automáticamente con el jQuery timer plugin y actualiza una imagen en la pantalla según el valor de la base de datos. Costo total: $ 25 por una cámara web de mierda.

  4. Puede encontrar una PC vieja con un puerto paralelo e instalar Ubuntu Linux en ella. Conecta el LED y el botón a los pines en el puerto paralelo y luego escribe un programa en C que dice dirección 0x378. En función de los datos devueltos, realiza llamadas a una biblioteca de gráficos C que realiza el dibujo de pantalla adecuado. Costo total: gratis, si puede encontrar una PC lo suficientemente antigua.

  5. Usted reemplaza el botón de encendido en su computadora con el botón en cuestión, y el LED de encendido con el LED en cuestión. Reemplaza su BIOS con una versión de OpenBIOS que se modificó para mostrar un círculo verde en la pantalla y nunca arranca ningún sistema operativo . Costo total: probablemente el costo de una PC nueva.

Pero con toda seriedad

Creo que recomendaría un Arduino y procesamiento . Son simples y geniales para principiantes. Costo total: $ 30 para el Arduino.

La mejor de las suertes.

    
respondido por el pingswept
7

Obtenga el libro "Making Things Talk" por Tom Igoe: enlace

No se trata de voz, se trata de todos los métodos diferentes para crear diferentes dispositivos, por ejemplo, su computadora y su circuito, que se comunican entre sí. En él, encontrará los detalles sangrientos de todos los métodos que las personas describen en las otras respuestas aquí, junto con diagramas de circuito y código fuente (donde corresponda).

Si desea aprender alguna o todas las formas de hacerlo, no podría tener un mejor punto de partida.

    
respondido por el Windell Oskay
6

Python + FT245

Descarte el módulo PyUSB , y de repente toma solo tres líneas (bueno, cuatro, si incluye la importación) de código para haz que Python hable con meatspace a través de 8 líneas de E / S paralelas.

import d2xx
hardwareHandle = d2xx.open(0)
#Open the First FTDI device on the computer
hardwareHandle.setBitMode(0xff, 0x01)      
#Put the hardware in Async Bit-bang mode, set all pins as outputs

#Finally
hardwareHandle.write(data)
#And suddenly
#'data' shows up on the FT245 pins!

hardwareHandle.setBitMode(0x00, 0x01)
#set the IO lines to inputs (the first byte is the IO mask)
input = hardwareHandle.read()
#and input is equal to the value on the IO lines!

Es una E / S paralela simple y muerta de un lenguaje de alto nivel.

Como bonificación, el hardware cuesta un total de $ 17.95

    
respondido por el Connor Wolf
4

Echa un vistazo a TI Chronos

TI crea esta impresionante familia de microcontroladores de 16 bits basada en el chip MSP430. Una variante de ese chip es el CC430, que tiene tecnología inalámbrica integrada en el paquete.

Los chronos son una "junta de desarrollo" que se venden por 49 dólares. Viene en un formato de reloj de pulsera (que uso todos los días, incluso está de moda fuera del mundo geek :-)) También viene con dos dongles USB, uno para el JTAG (programador) y otro es el equivalente inalámbrico.

Uno de los ejemplos en el panel de control es controlar el mouse de forma inalámbrica usando el reloj, lo cual es bastante bueno. El reloj también viene con acelerómetro, sensor de barómetro (altitud) y termómetro.

    
respondido por el Padu Merloti
1

Por cable o inalámbrico es bastante sencillo en estos días. Puede obtener kits de bluetooth que ya le dan E / S, y también puede comprar tarjetas de E / S USB muy económicas. Lo que quiera usar depende totalmente de sus necesidades y su presupuesto.

enlace

Algo así (nunca lo usé, ninguna afiliación con la compañía) probablemente lo pondrá en marcha muy rápido y con un mínimo de esfuerzo. Parece que están disponibles en Digikey y Mouser, y probablemente en otros también.

    
respondido por el akohlsmith
1

Suponiendo que su PC tenga un puerto en serie, podría usar USART en el chip y un transceptor RS-232 para comunicarse entre el chip y la PC. Si su PC no tiene un puerto serie, debería invertir en un convertidor USB < - > RS-232.

    
respondido por el mjh2007
1

Si lo que más te interesa es ponerlo en funcionamiento rápidamente, hay un montón de kits de E / S digitales basados en USB que incluyen bibliotecas de programación para leer / escribir los estados de los pines. A diferencia de trabajar con Arduino u otros micro-tableros, esto significa que solo debe preocuparse por la programación de la PC (en lugar de tener que escribir y depurar el código que se ejecuta en el tablero del microcontrolador).

Solía ser que el cableado de las entradas y salidas a través del joystick de la PC o el puerto paralelo era el camino a seguir. Pero eso fue en los días de DOS y Windows hasta aproximadamente Windows 95. Desde entonces, el acceso directo a los registros para acceder al hardware se ha vuelto cada vez más difícil de hacer. Dicho esto, todavía es posible, solo tendrás que saltar a través de los aros de programación para llegar a esos pines de tu programa. La base para computadora portátil de mi ThinkPad, por ejemplo, tiene un puerto paralelo de estilo heredado, y aún es compatible con el sistema operativo, en caso de que decida conectar una LaserJet II. :)

    
respondido por el Toybuilder
1

Hay algunos dispositivos USB sencillos y agradables que pueden hacer esto, por ejemplo, el USB Digital I / O Commander de Kadtrics .

    
respondido por el Rocketmagnet
0

El método más rápido y sencillo de hacerlo sería a través de Labview y dispositivos de E / S USB asociados. Por supuesto, esto no es barato (miles de dólares). Lo que estás describiendo no es el nivel de entrada, definitivamente no es el nivel 'Hola mundo'.

Además de gastar tanto dinero, probablemente sería mejor usar un Arduino y comunicarse con su programa a través de una serie y hacer que Arduino encienda y apague la luz.

    
respondido por el AngryEE

Lea otras preguntas en las etiquetas