Eine benutzerdefinierte Schild für die Propeller-ASC - Infrarot Fernbedienung- und mehrere Zahnräder!


In mein erstes Projekt haben wir ein 2-zeiliges LCD-Display an den Arduino Shield kompatibel (ASC) Vorstand hinzugefügt.
(  )

In diesem Projekt werden wir auch die Verwendung von mehreren Zähnen, eine Besonderheit der Parallax Propeller Chip vorstellen.

LCD-Display:
Das Display gibt es bei Radio Shack und benötigt nur drei Leitungen ausgeführt.

IR-Melder:
Nun, um Benutzersteuerelement und Eingang zum ASC-System, einen Infrarot-Detektor also ergänzen wir
dass eine gemeinsame universal TV Fernbedienung verwendet werden kann.  Dieser Code verwendet die SONY-Gerät
Protocalls, so machte die Remotecodeausführung TC an der ersten SONY-Code aufgeführt seiner "Broschüre.

Ich verwende den PNA4602 IR-Detektor-Chip. Es sieht aus wie eine normale drei-legged Transistor, aber es ist nicht.
Es enthält 38 KHZ-Demodulator-Chip und Filter macht es sehr einfach zu bedienen mit gemeinsamen TV
Fernbedienungen.    Sie Kosten ca. $2.
Die faszinierenden technischen Details finden Sie unter Ada Obst an: http://learn.adafruit.com/ir-sensor

Proto-Schild:
Zur Montage des Melders verwende ich eine Seeed "Proto-Shield" von Radio Shack.
Es ist ein wenig übertrieben für eine kleine Schaltung, aber es wird mehr Material in naher Zukunft wachsen.

Ein 3 x 2-Buchsenleiste wurde als eine Steckdose für den Decoder Chip installiert.
Das ist der IR-Detektor, versteckt in der rechten oberen Ecke unter das Gewirr von Kabeln.

Da die Proto-Shield-Pins in die ASC Socket Header Stecker ist es nicht möglich ist, verwenden
normale Wire-Wrap-Techniken.  Das dauern würde zu viel von der Länge des Stifts,
so dass es fraglich, ob das Schild der Gastgeber ASC Board überhaupt gesteckt werden könnte.
Also verwende ich eine modifizierte Technik - ein einzelnes Wrap-around-Pin, dann löten.
Es ist eine heikle Arbeit.  Aber für den Moment. Es ist nur drei Drähte, macht (3,3 v), Boden, und
Signal, also kein Problem hier.  Siehe Foto Drähte.

Software:
Die Demo-Software nutzt mehrere Objekte von Parallax Objekt Exchange (OBEX).
IR remote Treiber: "IR_Remote.Spin"
LCD-Treiber: "serial_lcd.spin"
Zahlen: "simple_numbers.spin"

Diese können von der OBEX heruntergeladen werden, aber ich habe sie in dieser ZIP-Datei angehängt enthalten
zu dieser Instructible.

Diese Demo-Programm liest die Fernbedienungs-Codes und zeigt die Ergebnisse auf dem LCD-Display.
Dieser Teil ist ziemlich einfach und geradlinig.

"ABER..."
Was passiert, wenn wir das LCD-Display-Hintergrundbeleuchtung nach ein paar Sekunden Inaktivität ausschalten wollten?

Normalerweise würden wir einen Interrupthandler verwenden.
Ein periodischer Interrupt böte die Zeitbasis und der Handler würde bestimmen Countdown
Wenn es Zeit zum Herunterfahren der Hintergrundbeleuchtung war.

Aber die Propeller nicht Interrupts verwenden.  Dafür sind mehrere Zahnräder.  Es dauert ein bisschen ein
Paradigmenwechsel, wickeln Sie Ihre Meinung um parallele Verarbeitung, aber es ist die Mühe wert.

In dieser Demo-Programm werden wir spin-off ein kleiner Eingriff an einem anderen Zahn.
Es wird geben eine Zeitbasis und Countdown ein Time-out-Variable.
Sie können diesen Code am Ende der Demonstrationsprogramm finden.
Suchen - PUB Timeout.
Und beachten Sie, dass alles, was warten, bis eine Sekunde, dann überprüfen, um festzustellen, ob die LCDtime-Variable
größer als Null ist, und verringern, wenn es ist.  Thats it /.

Darüber hinaus sollten Sie dies; Was passiert, wenn Sie zwei (oder mehr) völlig unterschiedlichen Zeitbasen benötigt?
Ein anderes Zahnrad jede Aufgabe zuweisen und sie laufen gleichzeitig und völlig unabhängig voneinander.
Einfacher geht es nicht nur.

Spin kann ein bisschen seltsam auf den ersten Blick, aber es ist einfach zu erlernen und macht den Job ganz gut.

Aber denken Sie daran, dass Einrückung die Struktur des Programms und Carelesly ändern definiert die
Einzug wird der Ablauf des Programms völlig verändern!  Seien Sie also vorsichtig davon.

Die Propeller Tool (mit allen Unterlagen) kann kostenlos von Parallax an heruntergeladen werden:
http://www.Parallax.com/tabid/832/default.aspx

Demo-Quellcode:

{{ASC_LCD_IR_TimeOut.spin}}
CON
_CLKMODE = XTAL1 + PLL16X ' 80 Mhz-Takt
_XINFREQ = 5_000_000
IRpin = 23' IR Empfänger - Propeller-Pin
LcdTimeOut = 10
LcdOn1 = $16 ' LCD auf; Cursor aus blinken aus
LcdLine0 = $80 ' in Zeile 1, Spalte 0 verschieben
LcdLine1 = $94 ' verschieben Sie in Zeile 2, Spalte 0
POL = 15' Beweis des Lebens LED

OBJ
IR: "IR_Remote"
LCD: "Serial_lcd"
NUM: "Simple_numbers"

VAR
Byte IRcode "Keycode von IR-Empfänger hier
Byte LCDtime
lange IRcog
lange Stack1 [6] "Raum für LCDtimeout Cog-Stack

PUB Init | Freq, Index, Zahnrad, lcode
"Init LCD
Wenn lcd.start (0, 9600, 2)
LCD.putc(LCD#LcdOn1) "kein Cursor
LCD.CLS
LCD.Backlight(1)
LCD.Str (String (LcdLine0, "IR-Fernbedienung"))

"Proof of Life
Dira [Pol] ~ ~
! Outa [Pol]

"Timeout zu starten
LCDTime: = LCDTimeout ' Timeout zurückgesetzt, wenn eine Taste gedrückt wird
Cognew (TimeOut)

"Init IR-Fernbedienung
IRcog: = Ir. Starten (IRpin, "Pin der IR-Empfänger, die Adresse einer Variablen

Wenn IRcog > 0
Wiederholen Sie die
Wenn LCDtime > 0
LCD.backlight(1) "schalten Sie ihn ein
sonst "Zeitüberschreitung
LCD.backlight(0) "drehen, wenn off
Wenn IRcode <> Ir #NoNewCode "Wir haben einen Schlüssel-Code
Lcode: = IRcode
IR. Starten (IRpin, "für den nächsten Code
Wenn LCDtime: = 0', wenn es ausgeschaltet war
LCD.backlight(1) ' wieder einschalten
LCDTime: = LCDTimeout ' Timeout zurückgesetzt, wenn eine Taste gedrückt wird
LCD.GotoXY(1,1)
Fall lcode
IR #one: lcd.str (String ("< 1 >"))
IR #two: lcd.str (String ("< 2 >"))
IR #three: lcd.str (String ("< 3 >"))
IR #four: lcd.str (String ("< 4 >"))
IR #five: lcd.str (String ("< 5 >"))
IR #six: lcd.str (String ("< 6 >"))
IR #seven: lcd.str (String ("< 7 >"))
IR #eight: lcd.str (String ("< 8 >"))
IR #nine: lcd.str (String ("< 9 >"))
IR #zero: lcd.str (String ("< 0 >"))
IR #chUp: lcd.str (String ("ChUp"))
IR #chDn: lcd.str (String ("ChDn"))
IR #volUp: lcd.str(string("volUp"))
IR #volDn: lcd.str(string("volDn"))
IR #mute: lcd.str (String ("Mute"))
IR #power: lcd.str(string("power"))
IR #last: lcd.str (String ("zuletzt"))
andere: lcd.str (String(""))

Waitcnt ((clkfreq / 1000) * 30 + Cnt)
! Outa [Pol]

PUB Timeout
Wiederholen Sie "Schleife für immer
Waitcnt (Clkfreq + Cnt) ' eine Sekunde warten
Wenn Byte [= > 1' halten zählen
Byte [--"nach unten

In Verbindung stehende Artikel

Erstellen eines benutzerdefinierten Schildes für die Gangster-Gadget-Propeller-Plattform

Erstellen eines benutzerdefinierten Schildes für die Gangster-Gadget-Propeller-Plattform

Breadboards können schnell für eine einfache Schaltung ausprobieren, aber sie sind wirklich ungeschickt, wenn es darum geht, tatsächlich mit dieser Schaltung.Also verstärkt auf die nächste Stufe der Schaltung Prototyping mit einem benutzerdefinierten
Erstellen eine benutzerdefinierte Schild

Erstellen eine benutzerdefinierte Schild

waren wir so bündig mit Eiern hier auf Bean Rock Farm , dass ich versucht war, die Ei-Szene aus Cool Hand Lukenachspielen. Ich brauchte, um ein Zeichen erhalten bis zu helfen, auf die Tatsache aufmerksam machen, dass wir Eiern zu verkaufen haben.Hier
3D-Perspektive Signature-Modell. Ich werde ein benutzerdefiniertes Modell für die ersten drei Menschen design, Kommentar!! (einschließlich Ihrer e-Mail-Adresse)

3D-Perspektive Signature-Modell. Ich werde ein benutzerdefiniertes Modell für die ersten drei Menschen design, Kommentar!! (einschließlich Ihrer e-Mail-Adresse)

ich erinnere mich an eine Skulptur in ein Album, das ich durch Surfen war, und es war ein Mann, ein Klavier von einer Ansicht zu spielen und ein Mann aus einer anderen Ansicht mit dem Geigenspiel. Ich war fasziniert von dem Konzept und beschlossen, e
Erstellen Sie eine benutzerdefinierte Anzeige im LCD-Studio (für G15 Tastatur und LCD-Bildschirmen).

Erstellen Sie eine benutzerdefinierte Anzeige im LCD-Studio (für G15 Tastatur und LCD-Bildschirmen).

Ok, wenn Sie gerade die G15 Tastatur habe und sind hochgradig unbeeindruckt mit den grundlegenden Displays, die mit ihm kamen, dann nehme ich Sie durch die Grundlagen der Verwendung von LCD-Studio zu eigen machen.In diesem Beispiel werden eine Anzeig
Gewusst wie: erstellen eine benutzerdefinierte Größe Tor

Gewusst wie: erstellen eine benutzerdefinierte Größe Tor

Wenn Sie brauchen ein Tor, dann warum nicht bauen selber. Mit dieser Methode machen Sie eine benutzerdefinierte Größe Tor, die noch leicht ist starr und durchaus erschwinglich. Die Maße unterscheiden sich abhängig davon, welche Größe-Tor, die Sie ben
Eine "Einfache"-Multimaterial 3D gedruckt Ornament mit Proto-Pasta, TinkerCAD und die Printrbot einfachem Metall

Eine "Einfache"-Multimaterial 3D gedruckt Ornament mit Proto-Pasta, TinkerCAD und die Printrbot einfachem Metall

' Tis die Jahreszeit für die Herstellung und 3D-Druck ist ein guter Weg, um zu feiern! Erkunden Sie den Schnittpunkt von Kunst und Handwerk mit dieser unkomplizierten aber Technik-kritischen Methode zur Herstellung von-Multimaterial Drucke aus einer
Machen Sie eine benutzerdefinierte Nähtisch

Machen Sie eine benutzerdefinierte Nähtisch

seit Jahren, ich wollte mich zu einem großen machen, gewidmet Nähtisch. Ich habe endlich um es und bin sehr zufrieden, wie sich herausstellte.Die Tabelle ist 32 Zoll groß mit einer 4-Fuß Quadrat Arbeitsfläche.Die große Arbeitsfläche eignet sich hervo
Konstruktion, Montage und Überprüfung der ein 2D DNA Origami Nanostruktur

Konstruktion, Montage und Überprüfung der ein 2D DNA Origami Nanostruktur

DNA-Origami ist eine Methode der Verwendung von DNA als Baustoff erstellen zwei- und dreidimensionale im Nanobereich Strukturen. Bei dieser Methode wird eine lange Einzelstrang der DNA als Basismaterial und verwenden viele kleinere "Heften" Strä
Ihr Arduino BLE Schild anschließen an eine benutzerdefinierte iOS/Android-Anwendung in HTML5 und JavaScript entwickelt.

Ihr Arduino BLE Schild anschließen an eine benutzerdefinierte iOS/Android-Anwendung in HTML5 und JavaScript entwickelt.

Diese instructable zeigt Ihnen, wie man eine mobile Anwendung erstellen, die mit eurem Schild Bluetooth Low Energy (BLE) kommuniziert. In diesem Tutorial habe ich ein BLE Schild aus RedBearLabverwendet, aber in diesem Beispiel soll einfach wieder auf
Ihr Schild Arduino WiFi Anschluss an eine benutzerdefinierte iOS/Android-Anwendung in HTML5/JavaScript entwickelt.

Ihr Schild Arduino WiFi Anschluss an eine benutzerdefinierte iOS/Android-Anwendung in HTML5/JavaScript entwickelt.

Diese instructable zeigt Sie wie eine mobile Anwendung erstellen, die mit Ihrem WiFi-Schild, in diesem speziellen Beispiel kommuniziert eine Anwendung erstellen, die eine LED schalten können/aus an Ihre Arduino angeschlossen. Die mobile Anwendung mit
Wie Sie einen Schild für die Linkit eins bauen

Wie Sie einen Schild für die Linkit eins bauen

Hallo Welt! Reiner Kohlenstoff mit einem anderen Instructable. Heute zeige ich Ihnen wie Sie einen benutzerdefinierten Schild für die Linkit ein Brett zu bauen. Bevor wir in das bekommen aber muss ich Ihnen sagen, warum ich ging auf dieses Unterfange
Wie erstelle ich eine benutzerdefinierte gedruckt Vinyl Skateboard

Wie erstelle ich eine benutzerdefinierte gedruckt Vinyl Skateboard

Fügen Sie Ihre eigenen benutzerdefinierten Kunst zu einem leeren Skateboard Deck und zeichnen Sie sich durch ein Brett, die Sie sonst nirgendwo bekommen!Sie wollen keine benutzerdefinierte Deck? Bleiben Sie und lernen Sie, wie man eine Skateboard zus
Machen Sie eine benutzerdefinierte Chronometers mit eigenen Sounds

Machen Sie eine benutzerdefinierte Chronometers mit eigenen Sounds

Lieben Sie Spiele? Machen Spiele zu? Ändern Spiele? Ja! Dann lieben Sie dieses Instructable, wo Sie lernen werden, um ein benutzerdefiniertes Spiel Timer mit welcher Zeitdauer und Sound-Effekte, die Sie wollen zu machen.In diesem Beispiel werde ich H
Machen eine benutzerdefinierte Mesh Grill für Ihr Auto für $10

Machen eine benutzerdefinierte Mesh Grill für Ihr Auto für $10

veranschaulicht, wie einen Grill aus einem Buck Regal GS (98) biegen in ein benutzerdefiniertes Netz-Grill, der dem Auto das Aussehen gibt es so sehr gut verdient. Es gibt viele verschiedene Möglichkeiten, dies zu tun, und ich entschied mich für die