Inhaltsverzeichnis:

Infrarot-Würfelsensor - Gunook
Infrarot-Würfelsensor - Gunook

Video: Infrarot-Würfelsensor - Gunook

Video: Infrarot-Würfelsensor - Gunook
Video: Eine Verlegte Tv Fernbedienung Wieder Finden 2024, November
Anonim
Infrarot-Würfelsensor
Infrarot-Würfelsensor
Infrarot-Würfelsensor
Infrarot-Würfelsensor

Mein Name ist Calvin und ich zeige dir, wie man einen Infrarot-Würfelsensor baut und erkläre, wie er funktioniert.

Ich studiere derzeit Computertechnik an der Taylor University und mein Team und ich wurde gebeten, einen Mechanismus zu entwerfen und zu bauen, der jedes Objekt sortieren kann, das in ein 1-Zoll-Quadrat passt. Wir hätten den einfachen Weg gehen können und uns dafür entschieden, M&Ms mit einem einfachen Farbsensor zu sortieren, aber wir entschieden uns, darüber hinauszugehen und die Würfel nach der angezeigten Zahl zu sortieren. Nach unzähligen Stunden des Versuchs, eine Anleitung zum Lesen des Gesichtes der Würfel zu finden, bin ich auf diesen Link hier gestoßen:

makezine.com/2009/09/19/dice-reader-version…

Dieser Link gab mir jedoch nicht viel mehr als die Idee, wie man das Gesicht der Würfel liest, also machte ich mich auf den Weg, einen Sensor zu bauen und zu entwickeln, der mit einem Arduino verbunden werden kann mit Leichtigkeit und kann das Gesicht der Würfel so genau wie möglich lesen, wodurch wir diesen Infrarot-Würfelsensor erhalten.

Lieferungen

Nun zu den Vorräten:

Du wirst brauchen:

1 x Arduino Uno

5 x IR-Empfänger

5 x IR-Strahler

www.sparkfun.com/products/241

5 x 270 Ohm Widerstände

5 x 10k Ohm Widerstände

1 x 74HC595N-Chip

verschiedene männliche Header

1 x Prototypenplatine (wenn Sie keine benutzerdefinierte gefräste Platine erhalten)

Schritt 1: Verstehen, wie es funktioniert

Verstehen, wie es funktioniert
Verstehen, wie es funktioniert
Verstehen, wie es funktioniert
Verstehen, wie es funktioniert

Dieser Sensor verwendet 5 Pip-Positionen, um die Gesichter der Würfel zu lesen. Es verwendet Infrarotlicht, um an diesen Pip-Positionen von der Vorderseite der Würfel abzuprallen, und teilt dem Controller mit, ob es weiß oder schwarz ist.

Sie fragen sich vielleicht, warum dann nur 5 Pip-Standorte? Würden Sie nicht alle 9 brauchen, um die Würfel effektiv zu lesen?

Nun, aufgrund der Symmetrie der Würfel kann die Verwendung von 5 bestimmten Stellen auf dem Würfel ausreichen, um den Unterschied zwischen den verschiedenen Zahlen auf den Würfeln unabhängig von der Ausrichtung zu erkennen (Bild 1). Dies macht den Würfelsensor effizienter, da er nur genau das sucht, was er braucht und nichts zusätzliches.

Der Sender geht an jedem dieser 5 Pip-Positionen genau unter den Empfänger des Sensors, der Sensor sendet dann das IR-Licht aus und dann liest der Empfänger die Menge des IR-Lichts, die von der Vorderseite des Würfels abprallt. (Bild 3) Wenn der empfangene Wert größer als die angegebenen Kalibrierungszahlen ist, sieht der Sensor diesen Punkt als Punkt, andernfalls handelt es sich um einen weißen Raum. (Bild 2)

Schritt 2: Entwerfen und Planen

Entwerfen und Planen
Entwerfen und Planen
Entwerfen und Planen
Entwerfen und Planen
Entwerfen und Planen
Entwerfen und Planen
Entwerfen und Planen
Entwerfen und Planen

Der erste Schritt zum Bau eines Würfelsensors besteht darin, die Schaltpläne zu erstellen. Dies kann entweder der schwierigste oder der einfachste Schritt der Entwicklung sein. Sie benötigen zunächst eine Software namens EAGLE von Autodesk, mit dieser Software habe ich die Schaltpläne erstellt.

Ich habe 2 verschiedene Arten von Schaltplänen beigefügt, ein Schaltplan hat einen Schieberegisterchip, um den Sensor genauer zu machen, und der andere ist einer ohne Schieberegisterchip. Dieser Schaltplan funktioniert jedoch nicht mit dem von mir bereitgestellten Code später, also musst du selbst etwas entwickeln.

Ich habe auch mein Platinenlayout für den Sensor, den ich mit dem Schieberegister entworfen habe, beigefügt.

Um mit dem Design der Platine zu beginnen, haben Sie 5 IR-Empfänger und 5 IR-Emitter, die Empfänger benötigen einen 10k-Widerstand und die Sender benötigen einen 270-Ohm-Widerstand. Für jedes dieser Elemente gehen Sie also von:

VCC (5V) -> Widerstand -> Analoger Lesestift -> IR-Empfänger -> GND

VCC (5V) -> Widerstand -> IR-Emitter -> GND

Der analoge Lesestift kommt als weiterer Zweig zwischen dem Widerstand und dem IR-Empfänger heraus und geht zum analogen Stift des Arduino. Sie müssen auch sicherstellen, dass der Sender direkt unter dem Empfänger sitzt. Ich habe diesen Fehler beim ersten Mal gemacht und sehr schlechte Ergebnisse erzielt, also stellen Sie sicher, dass der Empfänger oben ist.

In meiner benutzerdefinierten Platine verwende ich das Schieberegister, um jedes der Sender- und Empfängerpaare nacheinander mit Strom zu versorgen, um ein Ausbluten von IR-Licht von den anderen Sendern zu vermeiden. Dies gibt mir eine noch genauere Ablesung von jedem der Pip-Positionen. Wenn Sie das Schieberegister nicht verwenden möchten, funktioniert es immer noch für Sie, es kann nur etwas weniger genau sein. Am Schieberegister können Sie die Pins 3-4 und 7-8 miteinander verbinden, da diese nicht unbedingt als Header erforderlich sind. Ich habe sie als Header belassen und Jumper auf die Header gesetzt, falls ich in Zukunft entwickeln wollte.

Nachdem Sie den Schaltplan entworfen haben, müssen Sie ein Platinenlayout Ihres Schaltplans erstellen. Dieser Teil kann sehr knifflig werden, da Sie sicherstellen müssen, dass sich Ihre Pfade nicht überlappen und dass Ihre Pfade und Löcher den Spezifikationen Ihrer Maschine entsprechen. Das Board-Layout, das ich angehängt habe, hatte die spezifischen Größen für die Maschine, mit der ich mein Board fräste. Ich verbringe ein paar Stunden damit, das Brett so klein wie möglich zu gestalten. Es gab noch Raum für Verbesserungen an diesem Board, aber es hat für mich funktioniert, also habe ich es so belassen, wie es ist. Es gibt eine Version mit Kupfer-GND, die alle Masseelemente verbindet, und eine Version ohne angeschlossene.

Sie können Ihren Schaltplan auch verwenden, um ihn auf einem Steckbrett oder einer Prototypenplatine zu erstellen, da diese viel einfacher zu bekommen sind und eine billigere Option sind, da Sie keine benutzerdefinierte Platine fräsen lassen müssen.

Sobald Sie das Board-Design haben, können Sie mit dem nächsten Schritt fortfahren!

Schritt 3: Aufbau des Boards

Aufbau des Boards
Aufbau des Boards
Aufbau des Boards
Aufbau des Boards
Aufbau des Boards
Aufbau des Boards

Dieser Teil hängt ganz davon ab, wie Sie das Board erstellen möchten. Ich habe den Sensor auf einer Prototypenplatine erstellt, um zu testen, ob das Konzept funktioniert und wie genau es ist, also folgte ich dem Schaltplan ohne Schieberegister und erstellte die Platine. Sie müssen darauf achten, alles so zu legen, dass sich die Leitungen nicht überlappen und Sie nicht versehentlich Leitungen löten, die nicht verbunden werden sollen. Wenn Sie dies auf einem Prototyp-Board tun, müssen Sie sehr vorsichtig sein, also nehmen Sie sich Zeit und überstürzen Sie es nicht. Sie sollten auch auf offene Kabel achten, da diese sich bewegen und Kurzschlüsse im System verursachen können.

Wenn Sie sich für das Fräsen der Platine entschieden haben, ist dieser Vorgang einfacher. Senden Sie die Platinendatei mit den spezifischen Fräsereinstellungen an den Fräser. Wenn Sie es selbst machen, stellen Sie vor dem Herausnehmen sicher, dass das gesamte Kupfer richtig tief genug gefräst ist.

Stellen Sie sicher, dass alles im gewünschten Layout an die Platine gelötet ist und nehmen Sie sich Zeit. Wenn Sie auf der Platine löten, stellen Sie sicher, dass Sie auf der richtigen Seite der Platine löten.

Achten Sie beim Aufsetzen der IR-Empfänger und -Sender darauf, dass sich der Sender genau unter dem Empfänger befindet. Sie müssen mit dem Biegen der Beine der IR-Komponenten herumspielen, um sie an die richtige Stelle zu bringen. Halten Sie auch einen Würfel bereit, um zu überprüfen, ob die Pip-Positionen dort sind, wo sie sein müssen.

Sobald Sie alles gelötet und auf die Platine hinzugefügt haben, können Sie den Sensor programmieren.

Schritt 4: Programmierung des Boards

Programmierung des Boards
Programmierung des Boards
Programmierung des Boards
Programmierung des Boards

Dies ist der schwierige Teil, um den Sensor so genau wie möglich zu machen und die Platine zu programmieren. Zum Glück habe ich für Sie eine Bibliothek erstellt, die Sie mit Ihrem neu erstellten Sensor verwenden können, um die Programmierung zu erleichtern. Sie müssen den Sensor jedoch je nach Beleuchtung, an der sich dieser Sensor befindet, kalibrieren.

Um zu starten, müssen Sie einen Arduino haben, um sich mit diesem Sensor zu verbinden. Es verwendet 5 analoge Pins und 3 digitale Pins.

Sie haben die Möglichkeit, die von mir erstellte Bibliothek zu verwenden, um Ihre eigenen analogen und digitalen Pins auszuwählen, aber ich werde es mit den Pins erklären, die ich für die Schnittstelle mit dem Sensor gemacht habe. Ich habe das Bild mit Pin-Nummern und farbigen Kästchen um die Pins herum markiert, um leicht zu erklären, welcher Pin wo eingesteckt wird.

Am Sensor gehen die Pins 1-5 Rot zu A0-A4, also geht Rot 1 zu A0 und so weiter. Pins 1-8 White erfordern etwas mehr Erklärung.

Weiß 1 - Datenpin, hier sendet der Arduino die Daten an das Schieberegister. Ich habe diesen Pin auf den digitalen Pin 3 des Arduino gesetzt

Weiß 2 - Q0, in diesem Fall obsolet, ich habe es eingefügt, falls ich mich dazu entschloss, überhaupt zu expandieren

Weiß 3 & 4 - Wird gepaart, Sie können diese beiden entweder zusammenlöten oder wie ich einen Jumper verwenden.

Weiß 5 - Verriegelungsstift, ein sehr wichtiger Stift, der der letzte Schritt im Prozess ist, um zu sehen, wie sich die Pips ein- und ausschalten. Ich habe diesen Pin auf Pin 12 auf dem Arduino gesetzt

Weiß 6 - Clock Pin, Dies liefert den Takt vom Arduino zum Schieberegister. Ich habe dies auf digitalen Pin 13 gesetzt.

Weiß 7 & 8 - Wird gepaart, Sie können diese beiden entweder zusammenlöten oder wie ich einen Jumper verwenden.

Direkt neben der weißen Box befinden sich die Ground- und VCC-Pins. Sie müssen 5 V vom Arduino oder einer anderen Quelle bereitstellen, um diesen Sensor mit Strom zu versorgen.

PIP-Standortnummern finden Sie im Code.

Jetzt, wo Sie es anschließen müssen, müssen wir es kalibrieren. Mein Ziel war es, ein Skript zu erstellen, das es für Sie kalibrieren konnte, aber ich hatte keine Zeit dafür. Bei der Kalibrierung müssen Sie sicherstellen, dass sich der Sensor in einer kontrollierten Beleuchtungsumgebung befindet, da er empfindlich auf von außen abgeleitetes Licht reagiert. Sie müssen einen Wert von jeder Pip-Position mit einem schwarzen und einem weißen Punkt erhalten und die Differenz mitteln. Ich habe nur zwei Seiten des Würfels zum Kalibrieren verwendet, ich habe Seite 1, Seite 6 und Seite 6 um 90 Grad gedreht. Sobald Sie für jede Pip-Position eine Zahl für Weiß und Schwarz haben, müssen Sie den Durchschnitt bilden und die Mitte der beiden Zahlen finden. Wenn ich zum Beispiel 200 für Weiß von der ersten Pip-Position und 300 für den Dunkelwert der ersten Pip-Position erhalten habe, dann wäre die Kalibrierungszahl 250. Sobald Sie dies für alle 5 Pip-Positionen tun, ist Ihr Sensor richtig kalibriert, dann können Sie dice. ReadFace() verwenden; um das aktuelle Gesicht der Würfel zu erhalten.

Schritt 5: Bewerbung

Anwendung
Anwendung
Anwendung
Anwendung
Anwendung
Anwendung

Sie haben nun erfolgreich einen Würfelsensor erstellt! Herzliche Glückwünsche! Es war ein langer Weg von Versuch und Irrtum für mich, diesen Sensor zu entwickeln, daher ist es mein Ziel, jedem zu helfen, der einen Würfelsensor entwickeln möchte.

Ich habe ein paar Beispiele für das Projekt aufgenommen, das wir bauen, das diesen Sensor verwendet. Beim ersten Bild haben wir ein Schaufelrad verwendet, um die Würfel jedes Mal richtig über dem Sensor zu platzieren. Das zweite Bild war das Endprodukt unseres Projekts, und die Basis dreht sich je nachdem, was das Würfelgesicht war, und das dritte Bild ist eine Displaybox, die ich entworfen und gebaut habe, um diese Sensoren zur Schau zu stellen.

Die Möglichkeiten für diesen Sensor sind endlos, wenn Sie sich daran erinnern. Ich hoffe, Sie finden dieses Tutorial unterhaltsam und lehrreich, und ich hoffe, Sie versuchen, selbst eines zu erstellen.

Gott segne!

Empfohlen: