Wie kann ich meine Schaltung mit einem Computer kommunizieren lassen?

8

Ich bin ein Anfänger im Elektronik-Hacking. Ich möchte wissen, wie ich eine Schaltung mit einem PC kommunizieren lassen kann. Nehmen Sie zum Beispiel eine einfache Schaltung mit einer LED und einem Schalter. Der Schalter an der Schaltung wird jedoch nicht zur Steuerung der LED verwendet. Durch Drücken wird der aktuelle Status der LED angezeigt. Auf meinem Computer läuft ein Programm, das eine Benutzeroberfläche, eine Schaltfläche und ein Grafikobjekt enthält. ein schwarz gefüllter Kreis.

  • Ich sollte in der Lage sein, die LED von meinem Computer aus ein- und auszuschalten, indem ich auf die Schaltfläche auf dem Bildschirm klicke.
  • Durch Drücken des Schalters auf der Platine sollte dem Programm der Status der LED mitgeteilt werden. Wenn die LED leuchtet, sollte der schwarze Kreis grün werden, andernfalls sollte er schwarz werden.

Dies ist eine hypothetische Situation, die ich beschrieben habe, um das Problem zu erklären. Ich bin nicht auf der Suche nach einer Lösung, um diese Sache zu implementieren, sondern möchte wissen, wie diese Kommunikation zwischen meiner Schaltung und dem Computer auf einfache und kostengünstige Weise erreicht werden kann

  1. Draht?
  2. kabellos?

Und wenn Sie vorschlagen könnten, wo ich suchen und was ich lernen sollte, um mit meinem Elektronikprojekt zu beginnen, wäre das eine große Hilfe.

Sauparna
quelle

Antworten:

17

Es gibt verschiedene Möglichkeiten, dies zu erreichen. Hier sind ein paar:

  1. Sie können einen kleinen Mikrocontroller wie einen Microchip PIC16F84A programmieren , um die Taste und die LED zu beobachten. Bei jedem Drücken der Taste sendet der PIC16F84A ein Zeichen über einen seriellen FTDI-Chip an einen USB-Anschluss Ihres Computers. Auf Ihrem Computer überwacht ein in Processing geschriebenes Programm den USB-Anschluss und aktualisiert die Bilder auf dem Bildschirm. Gesamtkosten: 20 USD für einige Chips und ein Steckbrett.

  2. Sie könnten ein Bluetooth Arduino mit einem Prototyping-Schild kaufen . Der Arduino kommuniziert über einen Bluetooth-Chip mit einer Bluetooth-Karte in Ihrem PC. Ein in Python geschriebenes Programm hört auf die Bluetooth-Karte und zeichnet mit der Pygame- Bibliothek das entsprechende Bild auf dem Bildschirm . Gesamtkosten: 150 USD für ein Bluetooth Arduino.

  3. Sie können eine Webcam an Ihren PC anschließen, die Ihre LED und die Taste überwacht. Ein in Ruby geschriebenes Programm analysiert jedes von der Webcam kommende Bild und vergleicht es mit dem vorherigen Bild. Wenn eine Änderung im Bereich des Bildes in der Nähe der Schaltfläche festgestellt wird, wird die Farbe der Pixel im LED-Bereich angezeigt und ein Wert in einer Datenbank aktualisiert . Eine Webseite wird mithilfe des jQuery-Timer-Plugins automatisch aktualisiert und aktualisiert ein Bild auf dem Bildschirm basierend auf dem Wert in der Datenbank. Gesamtkosten: 25 US-Dollar für eine beschissene Webcam.

  4. Sie könnten einen alten PC mit einer parallelen Schnittstelle finden und Ubuntu Linux darauf installieren . Sie verbinden die LED und die Taste mit den Pins am parallelen Anschluss und schreiben dann ein Programm in C , das die Adresse 0x378 liest. Basierend auf den zurückgegebenen Daten wird eine C-Grafikbibliothek aufgerufen , die die entsprechende Bildschirmzeichnung ausführt. Gesamtkosten: kostenlos, wenn Sie einen PC finden, der alt genug ist.

  5. Sie ersetzen den Netzschalter Ihres Computers durch den betreffenden Knopf und die Betriebs-LED durch die betreffende LED. Sie ersetzen Ihr BIOS durch eine Version von OpenBIOS , die so geändert wurde, dass ein grüner Kreis auf dem Bildschirm angezeigt wird, und starten niemals ein Betriebssystem. Gesamtkosten: wahrscheinlich die Kosten eines neuen PCs.

Aber in aller Ernsthaftigkeit

Ich denke, ich würde ein Arduino und Verarbeitung empfehlen . Sie sind einfach und ideal für Anfänger. Gesamtkosten: 30 $ für den Arduino.

Viel Glück.

pingswept
quelle
Sie benötigen kein spezielles BIOS, um den Status des Netzschalters zu lesen. Sie sollten in der Lage sein, dies unter Linux ohne Kernel-Hacking oder ähnliches zu tun. Ich bin mir ziemlich sicher, dass Sie konfigurieren können, was passiert, wenn der Netzschalter gedrückt wird.
Davr
2
Ich denke, Arduino und Processing sollten der beste Anfang sein.
Sauparna
7

Holen Sie sich das Buch "Making Things Talk" von Tom Igoe: http://oreilly.com/catalog/9780596510510

Es geht nicht um Sprache, es geht um all die verschiedenen Methoden, mit denen Ihre verschiedenen Geräte - z. B. Ihr Computer und Ihre Schaltung - miteinander sprechen. Darin finden Sie die wichtigsten Details aller Methoden, die in den anderen Antworten beschrieben werden, einschließlich Schaltplänen und Quellcode (falls zutreffend).

Wenn Sie einige oder alle verschiedenen Möglichkeiten dazu erlernen möchten, könnten Sie keinen besseren Ausgangspunkt haben.

Windell Oskay
quelle
6

Python + FT245

Löschen Sie das PyUSB- Modul, und plötzlich sind nur noch drei Zeilen (also vier, wenn Sie den Import einschließen) Code erforderlich, damit Python über 8 parallele E / A-Zeilen mit dem Meatspace kommuniziert.

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 ist ein kinderleichtes paralleles E / A aus einer Hochsprache.

Als Bonus kostet die Hardware insgesamt 17,95 USD

Connor Wolf
quelle
4

Schauen Sie sich die TI Chronos an

TI macht diese fantastische 16-Bit-Mikrocontroller-Familie basierend auf dem MSP430-Chip. Eine Variante dieses Chips ist der CC430, in dessen Paket drahtlos integriert ist.

Die Chronos sind ein "Entwicklungsboard", das sie für 49 Dollar verkaufen. Es kommt in einem Armbanduhr-Formfaktor (den ich jeden Tag benutze, er ist sogar außerhalb der Geek-Welt in Mode :-)) Es kommt auch mit zwei USB-Dongles, einer für den JTAG (Programmierer) und einer für das drahtlose Gegenstück.

Eines der Beispiele im Devboard ist die drahtlose Steuerung der Maus mit der Uhr, was ziemlich cool ist. Die Uhr wird außerdem mit Beschleunigungsmesser, Barometer (Höhensensor) und Thermometer geliefert.

Padu Merloti
quelle
Mein Chronos kommt am Freitag! Im Ernst, dies ist nur eine etwas komplexere Form des PIC -> FTDI-Setups.
Kevin Vermeer
1

Kabelgebunden oder drahtlos ist heutzutage ziemlich einfach. Sie können Bluetooth-Kits erhalten, mit denen Sie bereits E / A erhalten, und Sie können auch sehr kostengünstige USB-E / A-Karten kaufen. Was Sie verwenden möchten, hängt ganz von Ihren Anforderungen und Ihrem Budget ab.

http://www.hexwax.com/Products/expandIO-USB/

So etwas (hat es nie benutzt, keine Zugehörigkeit zum Unternehmen) würde Sie wahrscheinlich sehr schnell und mit minimalem Aufwand zum Laufen bringen. Sie scheinen bei Digikey und Mouser und wahrscheinlich auch bei anderen erhältlich zu sein.

Akohlsmith
quelle
1

Angenommen, Ihr PC verfügt über eine serielle Schnittstelle, können Sie einfach den USART auf dem Chip und einen RS-232-Transceiver verwenden, um zwischen dem Chip und dem PC zu kommunizieren. Wenn Ihr PC keinen seriellen Anschluss hat, sollten Sie in einen USB <-> RS-232-Konverter investieren.

mjh2007
quelle
1

Wenn Sie hauptsächlich daran interessiert sind, es schnell zum Laufen zu bringen, gibt es eine Reihe von USB-basierten digitalen E / A-Kits, die Programmierbibliotheken zum Lesen / Schreiben der Pins enthalten. Im Gegensatz zur Arbeit mit Arduino oder anderen Mikrokarten müssen Sie sich nur um die Programmierung des PCs kümmern (anstatt den auf der Mikrocontroller-Karte ausgeführten Code schreiben und debuggen zu müssen).

Früher war die Verkabelung der Ein- und Ausgänge über den Joystick oder den parallelen Anschluss eines PCs der richtige Weg. Aber das war in den Tagen von DOS und Windows bis zu ungefähr Windows 95. Seitdem ist es immer schwieriger geworden, direkt auf die Register zuzugreifen, um auf die Hardware zuzugreifen. Das heißt, es ist immer noch machbar - Sie müssen nur durch Programmierrahmen springen, um zu diesen Pins aus Ihrem Programm zu gelangen. Das Laptop-Dock meines ThinkPad verfügt beispielsweise über den parallelen Anschluss im Legacy-Stil und wird vom Betriebssystem weiterhin unterstützt, falls ich mich für den Anschluss eines LaserJet II entscheide. :) :)

Spielzeugbauer
quelle
1

Es gibt einige nette einfache USB-Geräte, die dies tun können, zum Beispiel den Kadtronics USB Digital I / O Commander .

Raketenmagnet
quelle
0

Ihre schnellste und einfachste Methode hierfür ist Labview und die zugehörigen USB-E / A-Geräte. Das ist natürlich nicht billig (Tausende von Dollar). Was Sie beschreiben, ist kein Einstiegsniveau, definitiv kein "Hallo Welt" -Niveau.

Abgesehen davon, dass Sie so viel Geld ausgeben, ist es wahrscheinlich am besten, wenn Sie ein Arduino verwenden, mit Ihrem Programm über eine serielle Verbindung kommunizieren und das Arduino das Licht ein- und ausschalten lassen.

AngryEE
quelle
Oh Mann, es ist nicht so einfach, wie ich es mir vorgestellt habe. Danke für diese Perspektive.
Sauparna
Es gibt ein LabVIEW Home Bundle (lizenziert für nichtkommerzielle Hobby- / Maker-Anwendungen) für 50 US-Dollar. Dies kann mit Arduino, Raspberry Pi oder anderen kostengünstigen Karten verwendet werden, um E / A von einem Computer aus zu erstellen oder eingebettete Software für die Ausführung auf der Karte zu erstellen. Während dieses spezielle Problem im Vergleich zu anderen Antworten wahrscheinlich übertrieben ist, sind die Kosten angemessen und die Tools sollten für viel komplexere Anwendungen sehr geeignet sein.
mbmcavoy