
Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-23 12:53
MEMS (Micro-Electro-Mechanical Systems) Beschleunigungsmesser sind als Neigungssensoren in Mobiltelefonen und Kameras weit verbreitet. Einfache Beschleunigungsmesser sind sowohl als IC-Chips als auch als günstige Entwicklungsplatinen erhältlich.
Drahtlose Chips sind auch erschwinglich und in zusammengebauten Schaltungen erhältlich, mit angepasstem Antennennetzwerk und Entkopplungskappen an Bord. Schließen Sie sowohl die drahtlose Platine als auch den Beschleunigungsmesser über eine serielle Schnittstelle an einen Mikrocontroller an und Sie haben einen drahtlosen Controller mit Nintendo-Wii-Funktionen. Dann bauen Sie einen Empfänger mit dem gleichen Funkchip und PWM-gesteuerten RGB-LEDs, voila, Sie haben eine drahtlose, neigungsgesteuerte farbige Raumbeleuchtung. Halten Sie die Senderplatine mit dem Steckbrett nach oben waagerecht und die LED leuchtet kühl blau, nur die blaue LED ist aktiv. Neigen Sie dann den Sender in eine Richtung und mischen Sie Rot oder Grün ein, je nachdem in welche Richtung Sie ihn neigen. Neigen Sie ganz auf 90 Grad, und Sie gehen durch alle Mischungen von Rot und Blau oder Grün und Blau, bis bei einer Neigung von 90 Grad nur Rot oder Grün aktiv ist. Neigen Sie ein wenig in x- und y-Richtung und Sie erhalten eine Mischung aus allen Farben. Bei 45 Grad in alle Richtungen ist das Licht eine gleichmäßige Mischung aus Rot, Grün und Blau, also weißem Licht. Die verwendeten Teile sind in Internet-Hobby-Elektronik-Läden erhältlich. Sollte auf einigen Bildern erkennbar sein.
Schritt 1: Sender mit Beschleunigungsmesser
Der Sender basiert auf dem Atmel avr168 Mikrocontroller. Das praktische rote Board mit dem 168 ist ein Arduino-Board mit Spannungsregler und Reset-Schaltung. Der Beschleunigungsmesser ist über einen Bit-Banged-i2c-Bus mit dem AVR verbunden, und die drahtlose Platine ist mit Hardware-SPI (Serial Peripheral Interface) verbunden.
Das Steckbrett ist komplett kabellos mit dem 4, 8V Akkupack darunter geschnallt. Die Wireless-Platine und das Arduino-Wee akzeptieren bis zu 9 V und verfügen über einen integrierten linearen Spannungsregler, aber der Beschleunigungsmesser benötigt 3, 3 V von der regulierten Schiene am Wee.
Schritt 2: Empfänger mit RGB-LED
Der Receiver basiert auf dem atmel avr169 Demoboard namens Butterfly. Das Board hat viele Funktionen, die in diesem Projekt nicht verwendet werden. Der drahtlose Transceiver ist mit PortB verbunden und die PWM-gesteuerte LED ist mit PortD verbunden. Die Stromversorgung erfolgt am ISP-Header, 4,5V reichen aus. Die Wireless-Platine kann 5 V an den E/A-Pins tolerieren, benötigt jedoch eine 3,3-V-Versorgung, die vom Onboard-Regler geliefert wird.
Das modifizierte Header-Kabel für den HF-Transceiver ist wirklich praktisch und verbindet die Wireless-Platine mit der Stromversorgung und dem Hardware-SPI-Controller am Butterfly. Der Shiftbright ist ein RGB-LED-Pulsweitenmodulations-Controller, der einen 4-Byte-Befehl akzeptiert, der an den Ausgangspins eingeklinkt und dann wieder ausgeklinkt wird. Ganz einfach in Reihe zu schalten. Verschieben Sie einfach viele Befehlswörter, und das erste, das herausgeschoben wird, landet in der letzten angeschlossenen LED in der Daisy-Chain.
Schritt 3: C-Programmierung
Der Code ist in C geschrieben, da es mir nicht wichtig war, die "einfachere" Verarbeitungssprache zu lernen, auf der Arduino basiert. Ich habe die SPI- und rf-Tranceiver-Schnittstelle selbst für die Lernerfahrung geschrieben, aber den i2c-Assembler-Code von avrfreaks.net ausgeliehen. Die Shiftbright-Schnittstelle ist in C-Code bitbanged. Ein Problem, auf das ich gestoßen bin, waren kleine irradische Variationen in der Beschleunigungsmesser-Ausgabe, die das Flackern der LED stark verursachten. Ich habe das mit einem Software-Tiefpassfilter gelöst. Ein gleitender gewichteter Durchschnitt der Beschleunigungsmesser-Werte. Der HF-Transceiver unterstützt Hardware crc und ack mit Auto-Retransmit, aber für dieses Projekt war die Echtzeit- und reibungslose Aktualisierung der LEDs wichtiger. Jedes Paket mit Beschleunigungsmesserwerten muss nicht unversehrt beim Empfänger ankommen, solange beschädigte Pakete verworfen werden. Ich hatte keine Probleme mit verlorenen RF-Paketen innerhalb von 20 Metern Sichtlinie. Aber weiter weg wurde die Verbindung instabil und die LEDs aktualisierten sich nicht kontinuierlich. Die Hauptschleife des Senders in Pseudo-Code: initialize (); while (true) { Values = abs (get x, y, z accelerometer values ()); RF_send(Werte); delay(20ms);}Die Hauptschleife des Empfängers in Pseudocode:initialize();while(true){ newValues =blocking_receiveRF()); rgbValues = rgbValues + 0.2*(newValues-rgbValues); rgbValues in shiftbrigth schreiben;}
Schritt 4: Das Ergebnis
Ich war erstaunt, wie reibungslos und genau die Steuerung war. Sie haben wirklich eine genaue Kontrolle über die Farbe. Der PWM-LED-Controller hat 10 Bit Auflösung für jede Farbe, was Millionen von möglichen Farben ermöglicht. Leider hat der Beschleunigungsmesser nur eine 8-Bit-Auflösung, was die Anzahl der theoretischen Farben auf Tausende reduziert. Aber es ist noch kein Schritt im Farbwechsel wahrnehmbar. Ich habe den Empfänger in eine IKEA-Lampe gesteckt und unten ein Bild in verschiedenen Farben gemacht. Es gibt auch ein Video (aber schreckliche Qualität)
Empfohlen:
RGB-Pixel-Weihnachtslichtshow Teil 1: 7 Schritte

RGB-Pixel-Weihnachtslichtshow Teil 1: In dieser Anleitung zeige ich Ihnen, wie Sie eine RGB-Pixel-Lichtshow erstellen. Es gibt VIEL zu decken. Tatsächlich werde ich dies wahrscheinlich in etwa 3-5 verschiedene Anweisungen aufteilen. In diesem geht es um die Grundlagen. Sie haben viel zu lesen
Drahtlose Kopfhörer Teil 2: 3 Schritte

Drahtlose Kopfhörer Teil 2: Für dieses Upgrade verwenden:Neue Bluetooth-EmpfängerTastenDrähte können aus Twisted Pair entnommen werden
RGB-LED-Würfel herstellen – wikiHow

Wie man RGB-LED-Würfel macht: In diesem anweisbaren mache ich einen RGB-LED-Würfel (Charlieplex-Würfel) ok … was ist Charlieplex-Würfel …? Charlieplexing ist eine Technik zum Ansteuern einer Multiplex-Anzeige, in der relativ wenige I / O-Pins eines Mikrocontrollers werden z. B. verwendet einen fahren
RGB-Tutorial: 4 Schritte

RGB-Tutorial: Willkommen! Lassen Sie uns herausfinden, was wir von dieser Website lernen werden! Das folgende Tutorial enthält alle notwendigen Schritte, um ein RGB-LED-Projekt zu erstellen. Es wird ein Bild aller benötigten Materialien geben, dann wird Schritt für Schritt ein Prozess mit
Drahtlose Kommunikation mit billigen 433MHz-HF-Modulen und Pic-Mikrocontrollern. Teil 2: 4 Schritte (mit Bildern)

Drahtlose Kommunikation mit billigen 433MHz-HF-Modulen und Pic-Mikrocontrollern. Teil 2: Im ersten Teil dieser Anleitung habe ich gezeigt, wie man einen PIC12F1822 mit MPLAB IDE und XC8-Compiler programmiert, um einen einfachen String drahtlos mit billigen TX / RX 433 MHz-Modulen zu senden. Das Empfängermodul wurde über einen USB mit UART TTL verbunden Kabel-Werbung