Lesen eines IR-Signals und Betreiben eines von 5 Motoren

Bevor Sie mich verurteilen, ich bin ziemlich neu in der Elektronik, abgesehen von den Grundlagen , also seien Sie sanft. Allerdings bin ich ziemlich kompetent mit Computern auf hohem Niveau; Ich bin gut darin, Code zu schreiben, und habe Erfahrung mit Java, C# und JavaScript.

Grundsätzlich möchte ich ein IR-Signal von einem Computer an einen IR-Empfänger in einer etwa 2-3 Fuß entfernten Box senden. (Ja, es muss IR sein.) Sobald der Empfänger das Signal erhält, muss er einen von fünf kleinen Motoren für, oh, 500 ms einschalten (je nachdem, welches der 5 Signale ~1,5-3 V aufnimmt). wird dazu geschickt.

Nun gibt es mehrere Teile dazu:

1. Senden des IR-Signals

Dieser Sender muss Daten mindestens 2 Fuß, bis zu 5 Fuß senden. (Sollte kein Problem sein, denke ich). Ich muss es über USB steuern. Ich habe zwei gefunden:

http://adafruit.com/products/387 - eine billige ($ 0,75) IR-LED. Ich bin mir jedoch nicht sicher, ob einer davon mehrere Signale senden kann.

Ich kann nicht mehr als 2 Links posten, also suchen Sie bei Amazon nach Syba SD-U1IRDA-NM USB Fast Infra-Red Adapter – einem teureren ($12) IR-Adapter. Einer der Vorteile davon ist, dass es bereits einen USB-Anschluss hat.

2. Empfangen des IR-Signals

Der Empfänger muss ziemlich klein sein ( maximal 2 Kubikzentimeter). Bisher habe ich einen gefunden:

http://www.adafruit.com/products/157 - nur 1,95 $. Es ist klein, scheint zu funktionieren, ist billig usw. Wenn es irgendwelche Probleme bei der Verwendung gibt, würde ich es gerne wissen.

3. Das IR-Signal verarbeiten und Sachen erledigen

Jetzt muss etwas die Motoren bewegen. Ich vermute einen PIC (nicht sicher welcher, bitte schlagen Sie einen vor), da sie billig und beliebt sind, und ein Verwandter gab mir einen PIC-Programmierer, um 2006 (ich nehme an, das spielt keine Rolle), für letzte Weihnachten (sie hatte keine Ahnung, was es war - aber jemand sagte ihr, es sei ein gutes Geschenk für einen Programmierer)

Das ist der Bereich, in dem ich am unscharfsten bin. Ich schätze, ich würde irgendwie Strom an zwei Beine des Sensors anschließen, das dritte Bein an einen Teil des PIC anschließen, den PIC einen einfachen Code ausführen lassen, um herauszufinden, welches der 5 Signale er empfangen hat, und dann den Strom einschalten einen der 5 Motoren und schalte ihn ~ 500 ms (muss in keiner Weise genau sein) später aus.

tl;dr: Welchen PIC sollte ich kaufen, wenn überhaupt? Welcher IR-Sender funktioniert? Funktioniert dieser IR-Empfänger? Wie programmiere ich den PIC und wie soll ich ihn verdrahten, um die Motoren zu steuern?

Noch eine Anmerkung zu den Signalen. IR verwendet normalerweise eine Codierung, wie einen Strichcode. Zum Beispiel hat Ihre Fernsehfernbedienung nur einen IR-Sender, kann aber Dutzende oder Hunderte verschiedener Codes senden. Einfach ausgedrückt wird die gewünschte Operation in einer Reihe von Impulsen codiert, und der Detektor decodiert diese und führt dann die entsprechende Aktion aus.
@JYelton: Sie sagen also im Grunde, dass ich die IR-LED anstelle des USB-Dings verwenden kann - aber ich brauche dort ein anderes Ding, um verschiedene Impulsfolgen zu senden?
Mit einer IR-LED können Sie auf verschiedene Weise Signale senden. Sie könnten einen Mikrocontroller (wie eine Fernbedienung) verwenden oder einfach ein USB-Gerät bauen, das die codierten Pulsinformationen vom Computer erhält. Der Schlüssel hier ist, dass Sie einen Weg brauchen, um die Impulse zu erzeugen. Das einfache Versorgen einer IR-LED mit Strom erzeugt keine aussagekräftigen Daten.

Antworten (2)

Sie können einen einfachen RC5- Decoder mit einem PIC-Mikrocontroller bauen.

Sender: Verwenden Sie eine Universalfernbedienung mit Philips TV-Einstellungen. RC5 ist ein Protokoll, das von Phillips für die Fernbedienungen von Fernsehern, Videorecordern usw. entwickelt wurde. Durch die Verwendung des RC5-Protokolls entfällt die Notwendigkeit, Ihren Sender zu entwerfen. Verwenden Sie einfach eine beliebige Universalfernbedienung und programmieren Sie sie für Phillips TV. Ich habe Universalfernbedienungen gesehen, die nur in Geschäften in Südkalifornien für 99 Cent im Umlauf waren.

Empfänger: Ein RC5-Decoder kann um einen PIC-Mikrocontroller herum gebaut werden. Werfen Sie einen Blick auf RC5 Decoder mit PIC-Mikrocontroller . Dieser Artikel beschreibt das RC5-Protokoll, Hardware und Software, die zum Dekodieren von RC5 benötigt werden. Sie müssen den Code nach Ihrem Geschmack ändern. Verwenden Sie zum Ansteuern von Motoren einfache Transistortreiber an PIC-Ausgängen. Der Motortreiber hängt von der Art des verwendeten Motors ab.

Geben Sie hier die Bildbeschreibung ein

Super, danke! Das einzige Problem bei der Verwendung der Universalfernbedienung als Controller ist, dass der Sender computergesteuert sein muss - und da ich viele davon herstellen muss, kann es eine Weile dauern, bis ich viele kleine USB-Dongles mit der Phillips-Fernbedienung zerlegt und erstellt habe , und ich bin mir nicht sicher, wie ich eine Fernbedienung in ein USB-Gerät umwandeln würde.
Sie können sich auch USB-Infrarotspielzeug ansehen . Es ist ein Open-Source-Design und kann Ihnen bei der Entwicklung einer USB-zu-IR-Schnittstelle helfen.
Das wäre perfekt, wenn da nicht der hohe Preis wäre. Ich denke, ich werde am Ende den IR-Transceiver von Amazon verwenden - er kostet 8 US-Dollar weniger, was sich schnell summiert, wenn Sie viele Geräte haben. Ich denke, dass sourceforge.net/projects/winlirc mir helfen wird, das Gerät zu steuern.
@OwenVersteeg Meiner Meinung nach sollten Kosten / Preise nur bei einer kommerziellen Großproduktion berücksichtigt werden. Ich weiß nicht, ob Ihre Anwendung gewerblich ist. Wenn ja, können Sie definitiv einige USB-Entwicklungskosten auffangen. Sie sollten eine Kosten-Nutzen-Analyse durchführen und prüfen, ob sich ein kommerzielles IR-Produkt lohnt.
Ich mache das nicht kommerziell (obwohl ich es später vielleicht tun werde), aber ich baue 50. Wenn ich mich also für Amazon wähle, spare ich 400 Dollar, wenn es funktioniert - und ich sehe keinen Grund, warum es nicht funktionieren würde.

Ihre Frage stellt eine Reihe von Unterfragen, die wahrscheinlich eigene Fragen sein könnten (und sollten), wenn Sie an diesem Punkt angelangt sind.

Aber um die Dinge in einer Makroperspektive anzusprechen:

Senden des IR-Signals:

In den meisten gängigen Haushaltsfernbedienungen kommt lediglich ein einfacher Infrarotstrahler (IR-LED) zum Einsatz. Sie können diese leicht von jeder seriösen Elektronikquelle finden. Die Entfernung, die Sie zurücklegen müssen (2-5 Fuß), ist für die meisten von ihnen trivial. Schwieriger kann es bei Interferenzen oder IR-Sättigung werden, z. B. im Freien durch Sonnenlicht, aber ich gehe davon aus, dass Ihre Anwendung drinnen / im Büro ist. Sie sollten eine Wellenlänge von 900 nm bis 1000 nm (NIR) verwenden. Meine Empfehlung ist, diejenigen zu vermeiden, die bei 890 nm oder darunter aufgeführt sind, da einige von ihnen sichtbares Licht emittieren können. (Obwohl diese Empfehlung eher für die IR-Beleuchtung von Nachtsichtkameras als für Fernbedienungen gilt.)

Der Betrachtungswinkel der LED ist wichtig, da er sich darauf auswirkt, wie gut Sender und Empfänger ausgerichtet werden müssen. Ein Optek OP265W hat einen Betrachtungswinkel von 90°, der viel Abdeckung bietet, aber die Helligkeit (und damit den Betriebsbereich) verringern kann. Sie sagten jedoch, Ihre Reichweite sei gering (2-5 Fuß). Sie haben auch 18°-Winkelpakete, die ich für eine Anwendung über längere Distanzen verwenden würde.

Empfangen des IR-Signals:

Passen Sie den Emitter hauptsächlich in Wellenlänge und Frequenz an. Der von Ihnen verlinkte ist am empfindlichsten von etwa 900 bis etwa 970 nm. Sein Datenblatt zeigt, dass es verschiedene Trägerfrequenzen gibt, die das eine oder andere Teil mehr oder weniger ideal machen. Beispielsweise wird der TSOP38238 für 38-kHz-Anwendungen empfohlen. (Weitere Informationen zur Häufigkeit als Nächstes.)

Diese Geräte sind klein, normalerweise nicht größer als eine 5-mm-Through-Hold-LED oder ein Standard -TO-92- Transistor. Bedenken Sie jedoch, dass Sie einige unterstützende Schaltkreise benötigen, um den Empfänger anzusteuern und Signale zu dekodieren und auch die Motoren anzutreiben. Was uns zu Folgendem bringt:

Verarbeitung des IR-Signals und Dinge tun:

Nehmen wir an, Sie haben den IR-Empfänger auf einer kleinen Platine, was gibt es sonst noch? Nun, Sie benötigen einen Mikrocontroller, um die Impulse zu decodieren , einige Transistoren oder Relais (oder eine Kombination davon), um Motoren anzutreiben, und natürlich eine Stromversorgung. Vergessen Sie diese kritischen Elemente also nicht, wenn Sie den Platzbedarf für den Empfänger und die zugehörige Elektronik berechnen.

Sie können definitiv einen PIC (oder ein anderes Mikro) verwenden und wahrscheinlich empfohlen, da Sie erwähnt haben, dass Sie bereits einen Programmierer haben. Obwohl ich kein PIC-Experte bin, sollten Sie nach den Programmieraspekten separat fragen.

Das Erzeugen (und Decodieren) der Impulse erfolgt normalerweise mit Impulsbreitenmodulation, bei der Sie die Länge oder Dauer der Impulse auf einer Uhr variieren. Bei dem von Ihnen verknüpften Empfänger liegen die Frequenzen im Bereich von 30 bis 56 kHz. Es gibt viele Artikel über Codierung und PWM, Sie müssen recherchieren, was für Ihre Anwendung richtig erscheint.

Sie verbinden den IR-Sensor mit einigen unterstützenden Filterkomponenten mit dem PIC und verbinden auch einige Ausgangspins mit den Motoren. Sie haben nicht erwähnt, welche Größe die Motoren haben oder ob es sich um Schrittmotoren, Gleichstrom oder Wechselstrom handelt. Diese Attribute wirken sich darauf aus, welche Komponenten Sie auswählen (Leistungstransistoren, Relais usw.). Da Sie 500-ms-Impulse benötigen, würde ich empfehlen, nach Leistungstransistoren oder MOSFETS zu suchen, aber es sind weitere Informationen erforderlich, bevor jemand eine Empfehlung aussprechen kann.

Bearbeiten:

Die von Ihnen erwähnten Motoren haben 1,5-3 Volt, von denen ich annehme, dass es sich um kleine Gleichstrommotoren handelt. Sie werden (mit ziemlicher Sicherheit) immer noch mehr Strom aufnehmen, als das Mikro liefern kann, also müssen Sie Motortreiberschaltungen von Mikros nachschlagen. Hier ist einer von Seattle Robotics .


Zusammenfassend müssen Sie nach Codierungsmethoden für die IR-Übertragung suchen (Pulsweitenmodulation ist am häufigsten). Schauen Sie sich auch Möglichkeiten an, Motoren von Mikrocontrollern anzutreiben (viele Informationen im Netz) - unterm Strich können Sie die Motoren nicht direkt mit dem Mikro ansteuern; es kann nicht genug Strom liefern.

Ich schlage vor, Sie unterteilen das Projekt in kleinere Teile und fragen bei Bedarf gezielt danach, Sie erhalten mehr Details.

Einige nützliche Referenzen:

In Bezug auf die Motoren: Sie haben Recht - sie sind. Aber ich brauche für diese Motoren überhaupt keine konstante Geschwindigkeit, also nehme ich an, dass ich keine Motorsteuerung brauche (versuche, alles sehr klein zu halten).
Die LED, die Sie erwähnt haben, war 890nm. Ist das nah genug? Die LED, die ich ursprünglich gefunden habe, war nur 20 Grad; Ich denke, ich brauche vielleicht einen 90 Grad wie den, auf den Sie verwiesen haben.
Möglicherweise müssen Sie mit dem Betrachtungswinkel experimentieren. Aus der Nähe, von der Sie sprechen, denke ich nicht, dass es von entscheidender Bedeutung ist. Auch bei den Motoren sind Sie nicht ins Detail gegangen, was Sie mit ihnen zu tun versuchen. Eine Motorsteuerung (PWM) kann erforderlich sein oder auch nicht. Es hängt alles ab.
@JYelton Ich könnte den Transciever von Amazon verwenden, einfach weil es weniger Arbeit für mich ist (sonst muss ich 50 Sender von Hand machen) + ich sollte ihn einfach über Windows-APIs steuern können.
Auch für die Motoren: Ich denke, im Moment möchte ich nur Geräte machen, bei denen es den Benutzer über einen Vibrationsmotor benachrichtigt. (Ich hatte eine andere Idee, für die ich vielleicht ein PWM verwenden möchte, aber im Moment bleibe ich bei dieser Idee)