Persistenz der Vision


die ursprüngliche Idee für dieses Projekt kam aus dem genialen Geist von David Bjanes, der viele Projekte in seinem Projektwarteschlange hat. Die Inspiration kam, als David auf Youtube.com ein Video von einem ähnlichen POV-Display sah. Wir näherten uns Bruce Land, unser Professor zu diskutieren, ob dies tatsächlich ein tragfähiges Projektidee wäre. Als nächstes haben wir Brainstorming über die Ausrichtung unserer POV-Display. Einige Ideen, die wir gesehen hatten orientiert die Anzeige auf einen Propeller oder kreisförmige Uhr, während andere die Anzeige um einen Zylinder gesponnen. Wir entschieden uns für Spaltenformat POV Display zu bauen, um die Komplexität eines Polarkoordinatensystems ein kartesisches Koordinatensystem (gefunden in den meisten rechteckigen Displays) zuordnen zu reduzieren.
Die Logik hinter unserem Projekt ist sehr einfach. Unsere Software muss berechnen, die Umdrehungen pro Minute (u/min) und die Freigabe und Frist Zeiten die Zeitdauer anzuzeigenden jedes "Pixel" im Display (siehe im Abschnitt "Software") gesetzt. Von einer high-Level-Design wir einfach den Zeitraum einer Drehung zu messen, teilen Zeit nimmt der Cantilever drehen durch diesen Abschnitt durch die Anzahl der Pixel wollen wir zeigen und dann berechnen die Höhe der Zeit, die jedes Pixel während der Rotation nimmt. Eine Leuchtdiode (LED) für nur die Dauer der Zeit aktivieren, können wir dann die Pixel anzeigen. So haben wir den gesamten Anzeigebereich zu einer Matrix 14 von 90 zugeordnet, wobei jedes Element in der Matrix einen Pixel darstellt, der roten, grünen und blauen (RGB) Wert haben kann. Die Natur unseres Designs ermöglicht die Soft- und Hardware Design unabhängig voneinander in Bezug auf Kompromisse. Je robuster unsere Hardware wird (d. h. Verzurren Drähte und Bretter zu sichern), desto sicherer unser Projekt wird. Je robuster zu machen wir unsere Software (solide State-Machine und LED-Mapping), desto mehr optimiert und frei von Fehlern wird unser Projekt. Der einzige Fall, wo unsere Entscheidungen darüber, welche, die Hardware wir verwendet Software-Entscheidungen betroffen, war, als wir Speicherprobleme im Arbeitsspeicher, begegneten wenn die Auflösung der unsere Anzeige zu groß gewachsen. Auf unserer Mikrocontroller, ATmega644, damit erhöhen Sie die Auflösung des Displays (d. h. zu eine größeren Matrix enthielt die Pixelinformationen zu speichern), bräuchten wir zusätzliche Arbeitsspeichermodule diese Funktionalität bereitstellen. Wir entschieden uns dagegen durch Zeit und Raum Beschränkungen auf dem Arm selbst. Unser Projekt verwendet zwei Standards, serielle Peripherie-Schnittstelle (SPI) und IEEE 802.11 für unsere Funk-Kommunikation. Der Standard für SPI besteht aus einem 4-Draht seriellen Bus, mit dem eine Master/Slave kann Kommunikationsmodus. Die Drähte sind die folgenden: SCLK: serial Clock (Ausgabe vom Master) MOSI: master-Ausgang, Slave Eingang (Ausgabe vom Master) MISO: master input, Slave-Ausgang (Ausgabe vom Slave) SS: slave Select (Ausgabe vom Master) der IEEE-802.11-Standard ist für den drahtlosen Sender, der von der FCC-Bestimmungen für Hochfrequenz-Geräte gesteuert wird. Dieser Verordnung finden Sie im Title 47 Teil 15 Kapitel 243 auf der FCC-Vorschriften-Website. Da unsere Funksender/-Empfänger im Rahmen der FCC-Vorschriften entwickelt wurde, erfüllt die Spezifikationen, die im Abschnitt, vor allem die 500 Mikrovolt pro Meter auf 30 Meter zur Kenntnis genommen. Unser Projekt beinhaltet keine bestehende Patente, Urheberrechte oder Warenzeichen. Wir haben die Hardware von Grund auf neu entwickelt und die Software ist unsere ursprüngliche Arbeit mit Hilfe von Mitschülern und Professor Land. Top elektrische Design die elektrischen Komponenten sind: Abbildung 2. Onboard ATmega644 Mikrocontroller. On-Board-ATmega644 Mikrocontroller (auf-Entwicklungsboard) stationäre ATmega644 Mikrocontroller (auf-Entwicklungsboard) ausbrechen 5 MAX 6966 Controller chips14 RGB LEDs1 9V battery1 paar IR Sender und receiver2 WI.232FHSS-25-R Radio Transceiver aus Radiotronix2 WI.232FHSS-25-FCC-R Platten aus RadiotronixLP2951 lineare RegulatorLM340-15 lineare RegulatorVarious Widerstände und CapacitorsVarious Drähte und Header PinsThere sind zwei wichtigsten elektrischen Ausführungen zu diesem Projekt, die an Bord (verbunden mit drehenden Arm) und dem stationären System. Der primäre Zweck der Onboard-Runde soll tatsächlich aktivieren bzw. Deaktivieren der LED basiert auf zwei dimensionale Matrix (näher beschrieben im Bereich "Software"). Die integrierte Schaltung besteht aus einem ATmega644 Mikrocontroller (Abbildung 2), die durch eine 9V Batterie (auch onboard) angetrieben wird. Um die LEDs einzuschalten, der Mikrocontroller als ein SPI-Master und MAX 6966 fungiert als SPI-Sklaven. Der Meister, der Mikrocontroller wird auf die Slave-Chips über den SPI-Bus kommunizieren. Er sendet serielle Befehle, die Register auf den MAX6966-Chips zu schreiben. Am Ende Slave erhalten Ziel MAX 6966 Chip einen 4-Bit-Wert, den es eine PWM Duty Zyklus Ausgabe auf bestimmten Port angeschlossen an ein Ziel LED entsprechen wird. Die integrierte Schaltung schematische zeigt alle fünf MAX 6966 Chips Steuern 14 RGB (rot, blau und grün) LED's. Die max-Chips sind powered by 3V3 Regulator aus der 5V Schiene aus der Mikrocontroller und der LEDs wird von dieser Bahn als auch mit Strom versorgt werden. Darüber hinaus wird der integrierte Mikrocontroller u/min (Umdrehungen pro Minute) Berechnung werden bei jeder Umdrehung, passen die Anzeige je nachdem, wie schnell sich der Arm dreht. Schließlich werden die integrierte Mikrocontroller mit der stationären Mikrocontroller über Funkgeräte kommunizieren. Abbildung 3. An Bord MAX 6966 chips, Steuerung der LEDs. Jeder MAX6966-Chip (Abbildung 3) verfügt über 10 Output-Pins und eine Eingabe SPI-Bus. Da jede LED 3 Pins gesteuert wird, kann jeder MAX6966 Chip Steuern 3 LED's. Die SPI-Steuerbus stammt aus der Mikrocontroller (Master) und wählt die MAX 6966 Chip (Slave) mit zu reden und Pin Ausgänge steuern. Jeder Pin auf der MAX6966-Chip kann gewählt werden, zu aktivieren oder eine Farbe für eine bestimmte LED deaktivieren. Da wir 14 haben LEDs (benötigen 42 Fahrer Pins), wir beschlossen, 5 MAX6966-Chips (entspricht 50 Ausgänge) verwenden, jeweils mit eigenem Chip auswählen. Um die u/min für unser Timing Berechnungen benötigten Daten zu sammeln, haben wir den Mikrocontroller an eine Infrarot (IR)-Platine angeschlossen. Diese Schaltung besteht aus einer IR-Sender und Empfänger die sich nach unten stellen. Jedes Mal, wenn die Platine vorbei das weiße Blatt Papier, sendet es ein Signal an den Mikrocontroller, einen Interrupt zur Berechnung der Rotationsperiode auszulösen. Die Wireless-Transceiver verwendet zum Senden von Bildern sind mit ihren jeweiligen Mikrocontroller-Boards mit UART TX und RX-Pins verbunden. Die RX und TX Pins auf dem Funktransceiver sind Pendants TX und RX, bzw. auf dem Mikrocontroller verbunden. Abbildung 4. Stationären Sender an Computer angeschlossen. Alle die Kraft benötigt, durch die elektrische Komponenten (nicht einschließlich den Mikrocontroller) ist von der VCC aus den Mikrocontroller. Um den Mikrocontroller, genug Strom, um alle 14 LEDs, 5 MAX 6966 Chips, IR Schaltung und Funktransceiver mit Strom liefern zu können, haben wir einen hohen aktuellen (1A) LM340-15 Linearregler auf den Mikrocontroller, der 9V Batterie auf 5V zu begrenzen. Darüber hinaus da die MAX 6966 Chips 3,3V nehmen, haben wir eine LP2951 Linearregler die 5V VCC Ausgabe aus den Mikrocontroller 3,3V begrenzen. Die primäre Funktion der stationären Schaltung ist als Benutzeroberfläche zu handeln, so dass der Benutzer hochladen kann, was auch immer Bild werden angezeigt (Abbildung 4). Eine weitere Funktion der stationären Schaltung soll verschiedene Funktionen für die on-Board Board wie z. B. Animationen, Löschen der Anzeige usw. durchführen auswählen. Da unser Motor ein AC-Motor, der bei 1.600 u/min dreht ist, sobald es an die Steckdose angeschlossen ist, ist zu schnell für unsere Anwendung. Also, um die Geschwindigkeit zu reduzieren und zu verhindern, dass den Motor geht von 0 bis 1.600 u/min sofort verwenden wir einen Variable AC-Adapter. Es ist eigentlich ein Lichtdimmer von Lutron Electronics, aber es ist im Wesentlichen eine Variable AC, und es hat ein Zifferblatt für die Wahl wieviel Amplitude wollen wir mit dem Motor geben. Dies ermöglichte uns sicherer Tests durchführen ohne sich Gedanken über Stücke fliegen weg von den drehenden Arm. Hardware Design Bodine Electric Company AC MotorBase Unterstützung PlateVertical Support PlatePlexiglas Unterstützung ArmPlastic arm (für LED) mehrere 3M dual LocksElectrical TapeHot GlueVarious Größe ScrewsThe Hauptbestandteile unserer Hardware-Design ist ein AC-Motor, eine Halterung für den Motor und der drehenden Arm besteht aus einem Plexiglas-Stück und ein Plastikteil. Das Plexiglas fungiert als die wichtigste Stütze für den Arm und an der drehenden Welle des Motors angeschlossen ist, während das Plastikteil für den 90 Grad-Kurve an einem Ende eine Plattform bieten für die Montage der LED hat. Unsere AC-Motor muss keine selbsttragende Komponente aufrecht stehen. So haben wir eine Halterung gebaut, die sicherstellen, dass der Motor steht aufrecht zu halten. Die Halterung besteht aus der Basis und der vertikalen Stütze Stück Stück. Beide Stücke sind etwa einen Zoll dick. Der vertikalen Stütze Stück ist mit der Basis Stück in einem 90 Grad Winkel mit zwei Größe 8-32 Schrauben verbunden. Als nächstes ist der Motor das vertikale Stütze Stück mit vier Größe 10-32 Schrauben in einer quadratischen Ausrichtung beigefügt. Die vier Gewinde Schraube Anschlüsse am Motor war ursprünglich schon da, so mussten wir nur vier Bohrungen in die senkrechte Unterstützung, die mit den mitgelieferten Buchsen am Motor aufgereiht sind. Diese Halterung sorgt für große Stabilität während der Motor mit hohen Geschwindigkeiten dreht. Load balancing der Spinnerei Cantilever ist der Hauptgrund für die Stabilität während des Spinnens. Als Zugabe Vorsichtsmaßnahme sollten der Benutzer die Halterung an einen Tisch während der Spinnerei geklemmt. Abbildung 5. Drehenden Arm Attatched Rotor. Für die Spinnerei-Arm ist ein Stück Plexiglas 1/4 Zoll breit und 1/2 Fuß lang zur drehenden Welle des Motors befestigt. Diese Welle ist etwa eine Größe N Loch mit einem kleinen flachen Rand. Um das Plexiglas fest auf der Welle ohne es gleiten entlang der Welle in irgendeiner Weise zu sichern, bohren wir eine Lochgröße, die nur ein bisschen kleiner als N (zu machen, einen sehr festen Sitz), und ein kleines Loch an der Seite eine Stellschraube einfügen, die gegen die flache Kante schieben wird gebohrt. Wir beschlossen, Plexiglas zu verwenden, da es eine starke, aber dennoch leichte Material ist. Zu guter Letzt wurde ein dünnes Plastikteil bei 90 Grad in der Nähe von einem Ende gebogen und Plexiglas. Wir benutzen dieses Plastikteil, vor allem, weil es leicht biegbar, während auch Licht ist. Um sicherzustellen, dass wir nicht bekommen, zu viel wackeln, wenn mit hohen Geschwindigkeiten zu spinnen, haben wir die elektrischen Komponenten auf dem drehenden Arm bieten gute Gegengewicht auf beiden Seiten (Abbildung 5) positioniert. Software-Design Software-Design dieses Projekts ist relativ einfach. Wir sind drei Aufgaben ausgeführt; Aufgabe1 zu erfassen und berechnen die ISTDREHZAHL bei jeder Umdrehung, task2, die entsprechenden Daten (basierend auf Matrix) an den jeweiligen MAX6966 Chip-Anschluss via SPI und task3, die Animationen laufen zu schreiben. Die Häufigkeit der task2 ausgeführten hängt die Messwerte u/min indem die Freilassung und Termin auf der Höhe der Zeit pro "Segment" (jede Spalte in unserer Matrix). Jedes "Pixel" des Bildes wird durch ein Element in der Matrix dargestellt. Derzeit haben wir eine 14 x 90 Matrix anzeigen nur auf die Hälfte eines Kreises, aber es ist möglich, die Auflösung in der Zukunft zu erweitern. Darüber hinaus ist jedes Element in der Matrix eine 16-Bit-Reihe, wo die ersten 4 Bits sind für den Rotwert, die nächsten 4 sind für den Grünwert und die letzten 4 Bits sind für den Blauwert einer LED. Diese 4-Bit-Werte werden 8-Bit-Werte, die eigentlich die Intensität der LEDs festgelegt zugeordnet. Die größte Schwierigkeit der Software war die SPI-Kommunikation zwischen den Mikrocontroller und die MAX6966 Chips einrichten. Die MAX6966 hat 10 i/o-Ports, jeder in der Lage ist, eine 8-Bit-PWM-Signal ausgeben. Jeder Port wird gesteuert durch registriert an Bord den Chip. Der SPI-Bus dient zur Kommunikation mit der MAX6966 und setzen sowohl die explizite Register die Ports zu steuern und die implizite Registern, die den Zustand der Chip (Schalten Sie Sequenzen, Abschaltmodus, laufen, Modi, etc.) steuern. Die MAX6966 ist eine aktuelle Synchronisierung, was bedeutet, dass eine LED, wir kurz die Port-Pin um Erden Abschluss der Schaltung und der gemeinsame Anode RGB LED einschalten Einschalten. Um den Chip zu programmieren, wir senden Befehle an das Register erlauben maximalen Strom durch jeden Pin (20 mA) und setzen Sie jeden Port hoch (LEDs sind niedrige Logik verdrahtet). Wir setzen den Chip im Ausführungsmodus und dann sind wir bereit die Ausgänge der jeder Pin einstellen und kontrollieren drei RGB LED (pro MAX6966 Chip). Um alles anzuzeigen, muss ein Sender Pixel an den onboard Empfänger übermitteln, die dann die Display-Matrix im Mikrocontroller mit den gesendeten Pixeln gefüllt wird. So gibt es zwei Komponenten: der Sender und der Empfängercode. Der Sendercode ist sehr einfach; Wir übertragen jedes Pixel zu einem Zeitpunkt als Paket. Bevor wir jedes Paket senden, müssen wir ein SYNC Byte und dann eine ADDR Byte senden. Das SYNC-Byte werden die Sender und Empfänger synchronisiert, und die ADDR Byte wird den Empfänger Daten nur von einem Sender mit diesem erwarteten ADDR Byte empfangen lassen. Nachdem diese 2 Bytes gesendet werden, senden wir die Spalten- und Byte. Als nächstes unterteilen wir die 16-Bit-Daten in 3 Bytes, die enthalten die ersten 3 Knabbereien der 16-Bit-Daten und schickt sie über. Zu guter Letzt schicken wir eine antisync Byte, lassen den Empfänger wissen, dass es fertig ist, senden von Daten. Der Code für den Empfänger ist ein bisschen komplizierter. Es geht um eine State Machine mit Staaten WAIT_SYNC, WAIT_ADDR und WAIT_DATA. Staatliche WAIT_SYNC wartet auf das SYNC-Byte vom Sender und wenn er das sieht, geht es in den WAIT_ADDR Zustand. Staatliche WAIT_ADDR wartet das ADDR Byte und wenn er es sieht, geht es in den WAIT_DATA Zustand. Ansonsten geht es zurück in WAIT_SYNC Zustand. In WAIT_DATA Zustand wartet der Prozessor zum Abrufen von Daten für die Spalte und Zeile Byte und dann die Datenbytes. Nachdem alle Datenbytes und das antisync Byte empfangen werden, gehen die Zustandsmaschine erneut kompilieren die einzelnen Bytes zurück, eine 16-Bit-Daten und legen Sie es in das Matrixelement an der empfangenen Zeile und Spalte. Wir haben unser Projekt auch Animationen hinzugefügt. Diese spezifische Animation wurde hartcodiert bewegen die es "in"SEXY"hin und her wiederholt. Wir taten dies durch das Ausschalten der LED am vorherigen Speicherort der ist "und schalten Sie dann der LEDs in der nächsten Lage ist". Ab sofort kann unsere Animation-Code bleibt einprogrammiert werden und eine mögliche Erweiterung für dieses Projekt ein interaktiver Benutzer Animation. Testing-Top Hardware-Tests wurden die tragenden Teile des Designs sehr einfach; Wir brauchten eine Design, die den Motor statt liegend aufrecht stehen lassen würde. So kamen wir schließlich mit dem L-förmigen Montage Struktur. Tatsächlich Bearbeitungsprozesses für dieses Stück gedauert, da ich weder mein Partner viel Bearbeitung Praxis gehabt haben. Jedoch war es nur eine Frage der zwei Bohrungen durch die vertikale Platte, die aufgereiht mit den zwei Bohrungen in der Grundplatte. Der wichtige Schritt war es, tippen Sie auf die Grundplatte, aber für die vertikale Platte für die gleiche Lochgröße Körper Bohrer verwenden. Dadurch kann die Schraube die vertikalen Platte gegen die Bodenplatte fest drücken. Unsere ursprünglichen Bemühungen hatten beide Löcher in der vertikalen und Grundplatte geklopft wird, verursacht das Gelenk sehr schwach befestigt werden. Nachdem die Löcher auf der vertikalen Platte mit dem Körper-Bohrer gebohrt wurden, wurde das Gelenk sehr stark. Nach dem Anbringen des drehenden Arms (die letzte strukturelle Komponente), haben wir getestet, dreht des Motors. Der erste Test bewiesen, dass es notwendig war, Klemmen Sie die Halterung auf den Tisch beim Spinnen. Dies war denn da der Motor nur eine AC-Motor mit der Steckdose als Energiequelle war, die motor-Einstellungen entweder ein- oder Ausschalten bei maximaler Geschwindigkeit. Auch mit der Halterung eingespannt, wenn der Motor eingeschaltet wurde, würde der Motor die gesamte Bank schütteln. Dies war eindeutig zu gefährlich, um wirklich zu prüfen, mit elektrischen Geräten am Arm befestigt. Um eine Variable Drehzahl für den Motor zu ermöglichen, haben wir einen Lichtdimmer, die im Grunde nur eine Variable AC-Controller verwendet. Dies ermöglicht uns schrittweise Anpassung der Drehzahl des Motors ermöglicht es uns, mit viel niedrigeren Drehzahlen zu testen. Als nächstes wurden die elektrischen Komponenten der Arm hinzugefügt. Die elektrischen Bauteile, die wir in unserer ersten Lichttest verwendet bestand eine 9V Batterie, die Target-Board, der IR-Sensor, eine Durchgangsbohrung-Board mit einem MAX6966 Chip und ein anderes Durchgangsbohrung Board mit drei LED's. Abgesehen von der Target-Board wurden alle anderen Komponenten an einem Ende des Armes angebracht. Dies war die einzige praktikable Möglichkeit, weil die Spinnen-Arm auf der Welle an nur einem Ende des Armes, verbunden war, so gab es keinen Platz für Gegengewichte hinzufügen. So, als wir anfingen Spinnsystem bei einer langsamen 200 u/min, sehr instabil und begann zu zittern in der Tabelle. Bei dieser langsamen Geschwindigkeit jedoch war es genug, um ein Proof of Concept zu zeigen, weil wir immer noch das Bild erkennen kann. Sobald dies erfolgreich geschehen war, begannen wir erweitern unser Design sollen 14 LEDs und Load-balancing zu verbessern. Mit 14 LED-Design konnten wir auch das Bodenstück Plexiglas mehr auf die andere Seite, um Platz für den Mikrocontroller und die Batterie zu ermöglichen zu bewegen. Dieses Design ermöglicht es uns, die Arm an in der Nähe von maximale Drehzahl des Motors ohne irgendwelche Anzeichen von struktureller Instabilität zu spinnen. Die nur wichtigste Frage, die wir verlassen hatte war, herauszufinden, die Verdrahtung der elektrischen Bauteile. Da waren wir mit 14 LED's, das heißt, wir brauchten fünf MAX 6966 Chips, montiert auf zwei Brettern durch-Loch. Sobald alles angeschlossen, isoliert und getestet wurde, war es wiederum, um die Software zu testen. Software-Test-Code, der geschrieben und getestet wurde das erste Stück war der SPI-Code. Sobald dies getestet wurde und erfolgreich arbeiten, konnten wir den Code basierend auf TRT Betriebssystem zu schreiben. Als nächstes haben wir den Code, um die Drehzahl des Systems zu messen. Erstaunlich, arbeitete unser Code ohne großen Fehler mit drei LED's. Unsere größte Sorge war, dass TRT möglicherweise mit einem anderen Vorgang springen konnte, während in der Mitte schreiben SPI auf einen der Chips. Dies erwies sich jedoch kein Problem sein, nach der Prüfung. Ein Problem, das nicht in Betracht gezogen wurde war zu diesem Zeitpunkt alle drei Farben für jede LED Anzeige. Für einen schnellen Test, unsere Matrix bestand nur aus entweder ein- oder ausschalten für jede LED, wo nur max. Intensität ist in roter Farbe. Unsere nächste Erweiterung Design beinhaltet die Nutzung aller Farben für jedes Pixel. Ein großes Problem in der aktualisierte Code für 14 LED es wurde ein Problem mit genügend Arbeitsspeicher. Erstellen einer uint32_t Matrix mit Größe 14 von 180, veranlasst uns viermal die Größe des Speichers verwenden, die wir haben. So gingen wir zur Verringerung der Zahl der Spalte Pixel bis 90 unter Beibehaltung der Auflösung gleich. Dies bedeutete gerade schneiden unsere Anzeige nur einen halben Kreis anstelle des gesamten Kreises. Auch anstelle von uint32_t, die 32-Bit ist, wir nutzten uint16_t und 4 Bits für Intensität für jede LED-Farbe verwenden. Diese 4 Bits werden dann logarithmisch skaliert auf eine 8-Bit-Zahl. Ein weiteres großes Problem, denen, das wir begegnet, war zeitweise Empfänger scheitern. Schalten Sie den Empfänger und Sender zurücksetzen würde jedoch das Problem beheben. Andere Bugs wie den Sender ausschalten, während es in der Mitte des Senden von Daten an den Empfänger ist würde auch dazu führen, den Empfänger zu frieren (die LED ist immer noch angezeigt das Bild nach rechts bevor es fror, da die MAX Kontrolle der LED chips um zu debuggen so, hart). Wir konnten das Problem auf unsere Empfänger Zustandsautomaten, schmal, da es mehrere Löcher hatte, die den integrierten Mikrocontroller einfrieren verursachen könnten. Beispielsweise könnte das Ausschalten des Senders in der Mitte die Übertragung den Empfänger lassen stecken im WAIT_DATA Zustand, da es nie das antisync Byte kam. Ein weiteres Problem war, dass wir nicht überprüft, ob Zeilen- und Col innerhalb unserer nutzbar sind. Somit würden wir erhalten Daten durcheinander und Col auf eine Zahl größer als 89, dann unseren Code festlegen würde zum Absturz bringen, denn es versuchen würde, einen Index zuzugreifen, der out of Bounds ist (wir haben 90 Spalten). Ergebnisse oben unser Projekt alle unsere Anforderungen in unserem Vorschlag angelegt erfüllt. Wir konnten erfolgreich einen eindimensionalen-Array von LEDs durch zwei spin dimensionalen Raum (ein Zylinder) auf hohem genügend Frequenz, so dass ein volle 14 x 90 Pixel RGB Anzeigen gesehen werden kann. Wir können erfolgreich drahtlos kommunizieren an die Spinnerei an Bord Mikrocontroller um die Anzeige zu aktualisieren und ändern Sie die Pixel zu jeder Zeit. Unser on-Board-System wurde um 500 u/min gesponnen.. Dies war auf jeden Fall schnell genug für das menschliche Auge, die angezeigten Informationen zu behalten, aber es eine definitive Flimmern, das Auge zu präsentieren. Die Bildwiederholfrequenz (Spinnen der LEDs) ist offensichtlich. Jedoch helfen wir durch drehen die Lichter oder Anzeigen in einem abgedunkelten Raum, das Flimmern reduzieren und die Intensität des Displays zu erhöhen. Sicherheit war ein Anliegen für unser Projekt. Spinning im Wesentlichen eine Klinge mit 500 u/min ist gefährlich genug, und wir waren mehrere Leiterplatten, eine 9V Batterie, ein Funkgerät und eine Reihe von LEDs, unsere Spinnerei Klinge Montage. Wir begannen durch die Montage aller Komponenten auf der Cantilever mit Isolierband. Dies leider nicht lassen Sie uns einfachen Zugriff auf die Hardware zum Testen und Debuggen Zwecke und wir könnten nicht entfernen Sie die Hardware leicht für Aktualisierungen, Änderungen oder Reparaturen. Entfernen das Klebeband Spannungsspitzen so hoch wie 5000V über unsere Schaltungen produzieren könnte, also auf die Gefahr hin Späne ausblasen und die Hardware zu beschädigen, wir vorsichtig das Klebeband entfernt und verlassen diese Methode der Befestigung unserer Hardware an den Freischwinger. Wir nutzten Dual Lock, ein 3M Produkt vergleichbar mit Klettverschluss, die hat eines hohen Reibwert und würde ermöglichen es uns, unsere Boards für Reparaturen zu lösen und Modifikationen sowie hat halten sie während der intensiven g-Kräfte drohen, sie aus der Spinnerei Cantilever schleudern. Als Vorsichtsmaßnahme trugen wir Schutzbrille zum Schutz unserer Augen etwas passieren sollte. Bevor Sie jedes Mal, wenn wir unser Motor eingeschaltet, checkten wir jedes Board um sicherzustellen, dass es sicher befestigt war. Wir haben auch Variable AC Regler die Geschwindigkeit langsam hochgefahren. Dies ermöglichte eine Reduzierung die starke Beschleunigung (beide aus Spinnen und schnell steigender Geschwindigkeit). Wir nutzten die Radio Transceiver identisch mit mehreren Gruppen im Labor. Wir verhindert Störungen durch andere Funk-Kommunikation durch eine feste Adresse in den Anfang der Paketstruktur hinzufügen. Der Empfänger und der Sender hatte diese feste Adresse einprogrammiert und überprüft jedes Paket um sicherzustellen, dass sie es enthielt. Wenn das Paket diese Adresse hatte, wir könnten sicher sein, dass dies unser Paket bei uns, war eingegangen, wenn eine andere Adresse gelesen wurde, könnte man sicher, dass es ein fremdes Paket wir haben versehentlich erhalten. Im Hinblick auf eine Benutzeroberfläche muss die Methode zum Senden von Pixel zu diesem Zeitpunkt manuell erfolgen. Befehle müssen an jedem Pixel Detaillierung genau welche Farbe angezeigt gesendet werden. Der Sender muss auch jedes Mal programmiert werden, muss ein neues Paket oder eine Gruppe von Paketen übertragen werden. Dies führt eine umständliche Benutzeroberfläche, da der Benutzer mit den Mikrocontroller-Programmierung vertraut und mit unserem Code vertraut sein muss. In Zukunft würden wir gerne UART (anstelle der UART zum Senden der Daten an den Transceiver) an den Computer anschließen und schließen Sie den Sender an eine manuell geschriebenen UART auf einen separaten I/O Pin. Seriellen Kommunikation zwischen dem Computer und den Mikrocontroller, eröffnet die Möglichkeit für alle Arten von Benutzeroberflächen gebaut werden könnten. Eine Idee für die künftige Exploration würde das Schreiben ein Programm, das analysiert eine *.BMP oder *.jpg und sendet diese über die UART an den Mikrocontroller werden dann per Funk an den integrierten Mikrocontroller übertragen und auf der LEDs angezeigt. Schlussfolgerungen oben, während wir die Vorgaben erfüllt in unserem Vorschlag detailliert und zufrieden mit der Leistung haben, die wir erreicht, haben wir viele Pläne für aufbauend auf der ersten Stiftung und Weiterbildung mit zusätzliche Verfeinerung des Projekts. Wir bauen eine Proof of Concept, auf dem Prüfstand, ein robustes Design gelungen; Unser Projekt ist jedoch nur ein Fundament auf, während viele andere interessante Projekte gebaut werden konnte. Verbesserungen und der künftige Exploration umfassen ein Upgrade auf eine schnellere Motor, "aktualisieren" oder blinken des Displays zu beseitigen. Dies würde bedeuten, dass einige großen Änderungen am Design einschließlich herauszufinden einen besseren Weg, die Leiterplatten und Batterie, die Spinnerei Freischwinger zu beheben. Vielleicht wäre es besser, nur das Design unserer eigenen PCB, bei dem alle Komponenten Oberfläche wäre, angebracht. Dies würde beseitigen, viel die schwere Kabel und zusätzlichen Leiterplatte trägt das Gewicht des Arms sowie drastisch reduzieren den Platzbedarf (da jedes Bauteil Surface-Mount wäre), die Komponenten enthalten. Reduzierung von Größe und Gewicht würde auch der Cantilever schneller drehen erleichtern. Die RGB-LED haben einen tollen Job gemacht aber ich würde gerne entweder entschärft LEDs (wir haben eine klare LED-Gehäuse) oder LEDs in welcher jeder Farbe Diode im LED-Gehäuse näher zusammen war. Manchmal kann je nach Blickwinkel, es schwierig sein, zu sagen, dass zwei unterschiedliche Farbe Dioden in der gleichen LED zwei nebeneinander LED nicht. Abschließend zeigte dieses Projekt wirklich Kompetenz kombiniert eine schwierige Integration der mechanischen und elektrischen Systeme, eine Persistenz der Vision Display zu bauen. Wir baute ein allgemeine Standalone-System die Eingabe von jedem Gerät drahtlos an ein Display auf Basis der Pixelinformationen erhalten ausdrucken erhalten kann. Wir bewiesen das durch die Verbindung mit dem Alphabet Zeichen Anerkennungssystem. Das on-Board-System ist ein vollständig geschlossenes System, in der Lage, die Ausgabe die Anzeige bei unterschiedlichen Drehzahlen beschleunigt und nicht tragen, über welches System mit Schnittstellen, wie lange es ein standardisiertes Funkprotokoll folgt von uns entwickelt. Dieses Projekt hat auch so viel Platz, weitere spannende Entwicklungen und Ergänzungen zu den vielen Geräten zu erkunden mit dem it-Schnittstelle konnte. Geistiges Eigentum Überlegungen wir möchte Seonwoo Lee (sl787) zu danken, die uns mit Beispiel-Code für die Transceiver. Wir verwendet bei lernen das Protokoll für Aufbau der UART und Transceiver und als Test bestätigen die Transceiver arbeitete seinem Basiscode-Beispiel. Wir dann unsere eigenen Paketstruktur gebaut und entwickelt die Übertragung drahtlos aus dem stationären zum Spinnen an Bord System für unsere Anforderungen am besten entsprechen (senden Sie die Matrix von Pixeln so schnell wie möglich unter Beibehaltung der Integrität der Daten). Wir möchten danken, dass Bruce Land brainstorming Ideen über unser Projekt speziell: seine Hilfe dabei, die SPI-Bus zur Arbeit, Einblick in die Befestigung der Module auf dem drehenden Arm, Verwendung von seinem Labor und seine Ressourcen (einschließlich der Lieferung von uns mit einem kostenlosen Motor und zwei Transceiver) und seine große Sammlung von wissen - die er bereitwillig geteilt - auf fast jedem Thema, das unser Projekt abgedeckt. Seine Vorlesungen auf Mikrocontrollern und richtige Programmierpraktiken waren von unschätzbarem Wert. Wir möchten danken Pavel Vasilev für seine Hilfe im allgemeinen Codierung Fragen und allgemeine Labor wissen, das er uns durch viele Stunden der Erklärung und Beispiele vermittelt. Wir möchten danke Joe von Rhodos Hall-Werkstatt für uns helfen Design und die Hardware-Komponenten für den Motor zu bauen. Wir nicht zurückentwickeln, patentiert oder geschützten Designs; Unsere Inspiration entstammt jedoch gerade YouTube Clips von anderen, die versucht haben, das gleiche zu erreichen, was, das wir taten. Wir nicht kontaktieren jemand um herauszufinden, wie sie ging über die Lösung dieses Problems oder finden Sie ihre gebuchten Lösungen, soweit ihre video-Demos auf Youtube.com zu sehen. In Partnerschaft mit Stephen Wu und Justin Churchill in ihrem Projekt Alphabet Zeichenerkennung von Touchpad-Oberfläche, sind wir interessiert, gemeinsam mit ihnen, ein Patent für eine Persistenz der Vision Display Echtzeit Berührungseingabe Bildschirm erhalten. Wir gaben ihnen das Paketprotokoll zum Senden von Informationen zur Aktualisierung der Anzeigefeldes, und die Funktionalität für ihr Projekt zu senden, dass die Daten, die sie bereits auf einem LCD Drucken wurden angezeigt, um unsere POV-Anzeige stattdessen hinzugefügt. Sie fügten die Funktionalität um freeform zeichnen und senden, was Bild unsere POV-Anzeige auf dem Touchpad gezeichnet ist. Wenn eine patent Idee schmackhaft ist, könnte eine Papier auch aus einer Kombination der Projekte kommen. Ethische Überlegungen laut der IEEE-Code of Ethics, strebten wir tun unser Bestes, um zu wahren und halten sich an Geist und Buchstaben des Codes. Unter Berücksichtigung der Sicherheitsbedenken erwähnt, wir waren vorsichtig, während unserer Testphase, andere Mitglieder im Labor nicht zu gefährden und sorgte dafür, dass jemand in unmittelbarer Nähe zu unserem Projekt sowie Schutzbrille trug. Wir haben nicht bewusst oder unbewusst Pirat niemandes intellektuelle Ideen und alle, die uns von denen geholfen, die aufschlussreiche Feedback in unser Projekt zu denen gegeben, die geholfen haben, unseren Code zu debuggen und bauen unsere Hardware gutgeschrieben. Eifrig suchten wir den Rat unserer TA und Professor auf fast jeden Aspekt des Projekts. Wir strebten, denjenigen, die neben uns durch alles tun, von Hardware-Fragen zu löten, wird ein zweites Augenpaar Debuggen hartnäckige Programme möglichst gearbeitet. Wir haben genau über unser Projekt geschrieben, keine Details unserer Entwicklung weglassen oder Testphasen. Wir haben unser Projekt so viel wie möglich und strebte, um dem Leser alle Informationen, die es aus Sicherheitsgründen notwendig beurteilen in einem objektiven Licht präsentiert. Wir haben alle Gesetze, die uns bekannt, insbesondere im Zusammenhang mit der FCC-Bestimmungen auf die Übertragung von Daten über Funkgeräte verteidigt. In gutem Glauben kann ich getrost sagen, dass wir der IEEE-Code of Ethics verteidigt haben. Rechtliche Erwägungen wir verwendet einen nicht lizenzierte Sender das entspricht mit FCC-Bestimmungen für Sender mit niedriger Leistung. Unsere Sender haben FCC Etiketten identifizieren die Einhaltung der FCC-Bestimmungen. Unsere Sender sind nicht kontinuierlich übertragen und werden nicht geändert, um arbeiten in einem Bereich außerhalb der Frequenzen oder Leistungsstufen für die sie eingestuft werden. Anhang Top MAX6966 Board schematische schematische MAX6966 Board angeschlossen an die LEDs. Mikrocontroller und RF schematischen Schaltplan des Mikrocontrollers mit RF und Radio Transceiver-Schaltungen.
Stichworte: POV

In Verbindung stehende Artikel

Arduino Persistenz der Vision anzeigen

Arduino Persistenz der Vision anzeigen

eine Persistenz der Vision (PoV) Display befindet sich eine Reihe von LED's, die Spalten einer Nachricht zu blinken.  Wenn das Array von LEDs verschoben wird, wie wenn auf ein Fahrrad-Rad montiert, kann die Nachricht gelesen werden, als wären es viel
Persistenz der Vision Display (POV)

Persistenz der Vision Display (POV)

Hi Jungs!!! Dies ist meine erste Instructable also sag mir wenn nur keine Fehler machen. OK, lasst uns loslegen!WAS SIE BENÖTIGEN-Arduino uno-festen Kern Draht oder Band Kabel-9v Batterie Snap-6v Motor (Ich habe mir von einem CD-Spieler)-Altholz-Schr
Globus der Persistenz der Vision

Globus der Persistenz der Vision

Hallo an alle,Dieses Tutorial zeigt Ihnen wie Sie Ihre eigene Welt der Persistenz der Vision zu bauen.Was ist eine Welt der Persistenz der Vision? Die Idee ist, eine Spalte mit LEDs schnell genug für den Eindruck von einer ganzen Welt der Pixel (in d
Persistenz der Vision Christbaumkugel. POV-Dekoration.

Persistenz der Vision Christbaumkugel. POV-Dekoration.

Persistenz der Vision Christbaumkugel. POV-DekorationEs ist die Zeit des Jahres, den Baum aufzustehen und schmücken ihn mit all den wunderbaren Lichter, Lametta und Kugeln. Und es geht um Kugeln, wann immer ich Dekorationen auf einen Baum gesetzt, ic
MACHEN Controller Persistenz der Vision Wirkung mit LEDs

MACHEN Controller Persistenz der Vision Wirkung mit LEDs

Hallo, dies ist mein erster instructable und ich hoffe es gefällt euch. Es ist ein einfaches Projekt mit machen-Controller (ein sehr nützliches Controller von www.makezine.com), das einen Persistenz-des-Vision-Effekt macht mit LEDs. Wenn Sie das Boar
Hard Drive Persistenz der Vision (HDPOV)

Hard Drive Persistenz der Vision (HDPOV)

die Platte einer Festplatte weit über 60 Mal pro Sekunde dreht. Wenn die Platte zu LEDs durchscheinen lassen ein schmaler Schlitz geschnitten wurde, können wir erreichen, Flackern Fusion und dazu das Auge zu sehen, ein stabiles Bild. Dieses Phänomen
Persistenz der Vision Zauberstab für Arduino

Persistenz der Vision Zauberstab für Arduino

In diesem instructable, ich zeige Ihnen wie erstelle ich einen Zauberstab (Art), damit Sie in die Luft schreiben können wie auf dem Bild oben zeigt.Schritt 1: Die Hardware Benötigen Sie:-Lötkolben-Löten-5 3v LEDs grün-Jumper-Kabel fixiertHinweis: Ans
HDD-Clock - Persistenz der Vision

HDD-Clock - Persistenz der Vision

1. einige POV Uhren draußen, warum dies besonders ist?Na ja, vor allem, weil es meins ist. Es gibt nicht wenige POV Uhren draußen im Web mit allerlei Display Mechanismen, Chassis, Controller. Einerseits habe ich beschlossen, zu bauen ist nicht genau
Eine Persistenz der Vision Namensschild LED

Eine Persistenz der Vision Namensschild LED

diese Instructable zeigt ein Namensschild, dass ich für meine Tochter gebaut habe.Ich habe die Defcon Abzeichen gesehen und dachte, sie waren cool. Warum kann meine Kinder haben auch - aber speziell für sie gebaut?Also bitteschön - eine einfache Plak
Ultra low-cost solar-Akkus Persistenz der Vision Display

Ultra low-cost solar-Akkus Persistenz der Vision Display

dieses Gerät erzeugt ein helles und Blickfang zeigt Text und kleine Bilder durch die Luft zu schreiben. Es nutzt unter 2 £ (ca. 3,20 US $ zum Zeitpunkt des Schreibens) Teile und ist ein schönes kleines Wochenendprojekt, Ihre Familie und Freunde zu be
Persistence Of Vision

Persistence Of Vision

Persistenz der Vision ist eine optische Täuschung, es funktioniert auf ein einfaches Phänomen wie unsere täglichen Fernsehen funktioniert. MEINE erste Pov war sechs Monate vor mit Arduino Uno und Motor. Aber es empfiehlt sich, eine kleine, tragbare G
(POV) Persistence Of Vision Globe

(POV) Persistence Of Vision Globe

! Update! Ich habe eine Excel-Programm, die macht es viel einfacher zu zeichnen und code-neue Bilder hinzugefügt!Eine einfache Persistenz der Vision Globe. VIDEO abspielenDies ist ein Projekt, das ich seit geraumer Zeit im Auge gehabt haben und der W
Persistence of Vision (POV)-2 Wege zu spielen -

Persistence of Vision (POV)-2 Wege zu spielen -

nach der Suche POV-Tutorial, das nicht klar, müde und kompliziert, schließlich fand ich die beste. In diesem wird instructable ich einen POV (Persistenz der Vision) Zauberstab inspiriert vom Amandaghassaei des ursprünglichen Design neu zu sein.  Als
Der motorisierte führte Bolas des Todes

Der motorisierte führte Bolas des Todes

The motorisierte führte Bolas Of Doom ist ein einfaches Spielzeug POV (Persistenz der Vision), die ich letzte Nacht gemacht.Von Connecing bis zu zwei kleine Leds angeschlossen ein Motor von Drähten erhalten Sie zwei ziemlich wackelig leuchtende Ringe