USB/Ethernet zu einer (echten) Klingel basierend auf einem Signal

Ich bin ein absoluter Anfänger in Sachen Hardware, aber ich würde gerne ein Stück Material bauen, das eine echte Glocke für eine bestimmte Dauer läuten lässt, oder schließlich anstelle einer Glocke ein Licht, das sich basierend auf einer bestimmten Dauer einschaltet .

Der Start und die Dauer würden über USB oder Ethernet aus der Ferne ausgelöst, codiert in einer Java-Sprache (Teil, mit dem ich am meisten Erfahrung habe).

Ich dachte darüber nach, ein Arduino zu verwenden, aber da ich nichts im Hardwarebereich kenne, bitte ich Sie um Ihren Rat, wie und was Sie kaufen sollten, um dies zum billigeren Weg zu machen.

Außerdem wäre es toll, wenn dieses Gerät alimentiert verkauft würde, ich denke dann am meisten über die Verwendung eines USB nach, habe ich recht?

Vielen Dank für Ihre Hilfe :)

Antworten (4)

Das Wichtigste zuerst: Es gibt keine Möglichkeit, dies nur in Java billig zu tun. Es gibt einige Chips, die Java ausführen können, aber ich habe von keinem gehört, der für Anfänger zugänglich ist.

Also ist es entweder C oder die Arduino-Sprache, wenn Sie sich für diesen Weg entscheiden.

Als nächstes benötigen Sie eine Stromquelle für die Glocke. Dies hängt von der Glocke ab und hat einen großen Einfluss auf die Schaltung, die Sie machen werden. Sie benötigen wahrscheinlich ein Relais und eine Schutzschaltung dafür, die die Klingel steuern, die von einer separaten Stromquelle (wie zum Beispiel Netzstrom) gespeist wird. Sie müssen die Einzelheiten für die Pins von Arduino (oder was auch immer Sie verwenden möchten) nachschlagen und ein Relais erhalten, das von einer solchen Stromquelle ausgelöst werden kann.

Als nächstes benötigen Sie eine Ethernet- oder USB-Verbindung. Matt hat bereits USB-zu-RS-232-Chips empfohlen, und das ist eine einfache Möglichkeit, das Problem zu lösen. Der Chip erscheint als serieller Port und alles, was Sie tun müssen, ist ein Java-Programm zu erstellen, das Daten an den Port an den Mikrocontroller sendet.

Die andere, kompliziertere Option wäre die Verwendung von Ethernet. Für Arduino gibt es ein bereits vorhandenes Ethernet-Schild , das von seiner IDE unterstützt wird. Sie könnten auch ein anderes Ethernet-Board wie dieses oder dieses nehmen . Die positive Seite von Arduino Shield ist, dass Sie damit vorhandene Bibliotheken verwenden können, die sich als hilfreich erweisen könnten. Für eine Drittanbieterlösung müssen Sie den Code selbst schreiben.

Auch ein bisschen Vergleich zwischen Arduino, nackten AVR-Chips oder PIC.

Erstens sind die heutigen PIC- und AVR-Chips in Preis und Leistungsfähigkeit mehr oder weniger ähnlich. Einige Leute werden PIC empfehlen und einige werden AVR empfehlen. Es gibt unzählige wütende Fanboys auf jeder Seite, aber mein Rat ist, sie zu ignorieren. Wenn Sie vorhaben, ernsthaft in die Welt der Mikrocontroller einzusteigen, wäre es eine gute Idee, sich mit beiden Familien vertraut zu machen, da sie beide sehr beliebt sind. Die Chips werden in der Regel in C oder Assembler programmiert und es gibt viele Entwicklungstools (einige davon kostenlos) für beide Linien.

Als nächstes haben wir Arduino. Erstens ist es kein Chip. Es ist eine Entwicklungsboardlinie und das ist ein wichtiger Unterschied. Es verwendet AVR-Chips im Inneren und einen speziellen Bootloader, um die Programmierung zu vereinfachen. Damit haben Sie eine nette IDE gepackt, die eine C++-ähnliche Sprache zum Programmieren verwendet und einem Anfänger einige Dinge erleichtern kann. In letzter Zeit hat es bei Anfängern enorme Popularität erlangt. Sein Hauptproblem besteht darin, dass es einige Betriebskonzepte des chi[ vor dem Benutzer verbirgt und Sie an einem Punkt das Gefühl bekommen, dass Sie gegen die IDE und die Sprache kämpfen.

Auf der anderen Seite haben wir auch die PICAXE, die im Grunde eine PIC-Version von Arduino sind. Sie haben auch IDE und Programmiersprache (ein BASIC-Derivat) und Bootloader. Soweit ich sehen kann, sind PICAXE-Boards aus irgendeinem Grund nicht so beliebt wie Arduino, aber ich habe keine Erfahrung mit ihnen, daher kann ich nicht näher erläutern, warum.

Um das zusammenzufassen: Wenn Sie ein einzelnes Projekt wollen, ziehen Sie Arduino oder PICAXE in Betracht. Auf diese Weise müssen Sie keine Einrichtungskosten (wie Programmierer, Zeitaufwand für Schulung und Board-Design usw.) zahlen, die die Arbeit mit einem einzelnen Mikrocontroller mit sich bringt.

Wenn Sie in Zukunft ernsthaft mit Mikrocontrollern arbeiten möchten, sollten Sie dies mit einem AVR oder PIC-Chip tun. Es wird viel lehrreicher sein, aber es könnte zu kompliziert werden, wenn Sie nur ein einmaliges Projekt durchführen.

Danke für die Antwort, alles scheint sehr verschwommen, aber Ihre Antwort hat mir sehr geholfen.
@cx42net Vergessen Sie nur nicht, dass Sie hier um Klärung bitten können, wenn Sie bei einem Schritt der Lösung stecken bleiben, bei dem es sich nicht um die Programmierung des Java-Programms auf dem Hauptcomputer handelt.
Haben Sie schon von der Javelin-Stempel gehört ? Es ist ein nettes, kleines Mikro mit einer eingebetteten JVM.
@Fake Name Ja, deshalb habe ich erwähnt, dass es einige Chips gibt, die Java ausführen können. Während die Javelin-Marke jetzt im Angebot ist, liegt ihr normaler Preis bei etwa 90 US-Dollar, was meiner Meinung nach zu teuer ist. Für diesen Geldbetrag kann das gesamte Projekt, das OP im Sinn hat, abgeschlossen werden.
Eine Lösung würde nicht unbedingt eine Embedded-Entwicklung erfordern, da geeignete Spezialfunktions-USB-Peripheriegeräte und -Module von der Stange erhältlich sind. Daher ist die einzige Programmierung, die durchgeführt werden muss, auf dem steuernden PC.

Persönlich würde ich dies mit einem kleinen PIC-Mikrocontroller oder ähnlichem tun. Die USB-Seite davon kann für den Anfänger ziemlich mühsam zu programmieren sein (auf dem PIC-Chip) (ich habe es noch nicht ergründet), also ein USB-zu-RS232-Konverter (entweder als USB-Dongle oder als USB-zu-RS232-Chip ) kann die Handhabung erheblich vereinfachen.

Der PIC16F88 ist ein guter Ausgangspunkt, wenn Sie den USB nicht selbst programmieren möchten, und er ist spottbillig (Sie können kostenlose Muster vom Hersteller erhalten ). Wenn Sie USB wollen, sollten Sie sich die PIC18F-Serie von Mikrocontrollern ansehen (ich habe gerade meinen ersten heute zum Laufen gebracht - yippee).

Wenn Sie nicht Ihre eigene Hardware bauen und den PIC selbst programmieren möchten, gibt es viele DIY-Kits, die mit einem vorprogrammierten PIC (wie dem K8055 von Velleman) geliefert werden, in die oft bereits USB eingebaut ist.

Danke für deine Antwort, es scheint für einen Anfänger wie mich viel schwieriger zu sein, als ich zuerst dachte, aber das Mischen aller Antworten wird mir wahrscheinlich helfen :)

Es gibt handelsübliche Lösungen für USB-gesteuerte Relais, normalerweise mit Bibliotheken für eine Vielzahl von Hochsprachen.

Spätere Bearbeitung: Mir fällt ein, dass man, wenn die Timing-Anforderung nicht zu eng ist, einfach einen handelsüblichen USB-Seriell-Konverter verwenden und eines der Steuersignale verwenden könnte.

Es ist wahrscheinlich, dass das Steuerprogramm in Java geschrieben werden kann, wenn die JVM Ihnen Zugriff auf den Port gewährt oder Ihnen erlaubt, so etwas wie das stty-Tool unter Linux/Unix oder ein Windows-Äquivalent auszuführen.

Ihre Antwort ist vielversprechend, haben Sie bitte einen Link für Beispiele/Preise?
Die Beantwortung dieser Frage würde es zu einer "Einkaufs"-Frage machen und einige Leute veranlassen, für das Schließen zu stimmen - aber eine Websuche sollte Ihnen Beispiele finden.

Ich würde empfehlen, PIC18F24J50 zu verwenden. Es ist ein viel besserer Mikrocontroller und er ist einfach zu programmieren. Sie brauchen nicht einmal Hochspannung, um es zu programmieren. Ich habe es geschafft, es von Grund auf neu zu programmieren (Firmware --> DLL --> VB- und C++-Anwendungen). Was es noch lustiger macht, ich habe sogar einen einfachen Programmierer dafür aus einem industriell vorprogrammierten MCP2200-Mikrocontroller gemacht ... Es ist einfach, weil PIC18F24J50 keine Hochspannung (wie 9 V oder 12 V) zum Programmieren benötigt.

Bist du dir sicher mit dem Namen? google.com/search?q=PC18F24J50
Tatsächlich ist es ein PIC18F24J50 Microchip Mikrocontroller.