Inhaltsverzeichnis:
- Schritt 1: Was brauchen wir?
- Schritt 2: Prototyping:
- Schritt 3: Code:
- Schritt 4: Nun zum Fall:
- Schritt 5: Das Endergebnis sollte in etwa so aussehen:
- Schritt 6: Löten
- Schritt 7: Wir sind fertig
Video: Interaktives berührungsloses Licht - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
Hallo allerseits! Ich möchte das Projekt, an dem ich gearbeitet habe, hier teilen. Ich wurde durch ein Projekt an meiner Universität inspiriert, mit kapazitiver Berührungssensorik zu experimentieren. Ich habe diese Technologie durch Instructables kennengelernt und die Dinge, die ich hier und an anderen Stellen im Internet gelernt habe, verwendet, um meinen eigenen berührungslosen Controller zu bauen, mit dem ich verschiedene RGB-Werte mische, um interessante Lichtfarben zu erzeugen.
Für den Anfang, als ich dieses Projekt begann, wusste ich so gut wie nichts über Elektronik oder kapazitive Berührungserkennung.
Einige Probleme, auf die ich zu früh gestoßen bin, wurden durch Missverständnisse verursacht, was tatsächlich passiert. Also eine kurze Einführung, wie ich es verstehe:
Ein kapazitiver Sensor verwendet mehrere Komponenten, hauptsächlich:
Ein Kondensator (in diesem Projekt verwenden wir Aluminiumfolie, aber es ist auch möglich, leitfähige Flüssigkeiten usw. zu verwenden), Drähte (natürlich seine Elektronik)
und ein Widerstand, alles unter 10 MOhm ist ein zu kleiner Widerstand für mehr als direkte Berührung.
Die Funktionsweise besteht darin, eine Zeitdifferenz zwischen Punkt A und Punkt B zu messen. Vom Startpin sendet es ein Signal an einen Endpin, die Zeit wird mit einem Timer gemessen. Durch Verringern des Widerstandswerts (indem Sie einen Kondensator (in diesem Fall Ihre Hand) näher an den Kondensator des Sensors (die Aluminiumfolie) heranbewegen, verkürzt sich diese Zeit, die Zeitdifferenz ist das, was der Sensor als Wert zurückgibt.
Da der Sensor von kapazitiven Oberflächen beeinflusst wird, können die Daten aufgrund von Interferenzen sehr sprunghaft sein. Dies kann zum großen Teil durch eine korrekte Isolierung des Kondensators und auch durch eine Erdung gelöst werden (ich werde später zeigen, wie).
Das ist jetzt erledigt, und wir können mit der Inventarisierung all der Dinge beginnen, die wir benötigen:
Schritt 1: Was brauchen wir?
Elektronik:
1. 2 x 22M Ohm + Widerstände (je größer der Widerstandswert, desto weiter entfernt Ihr Sensor, ich persönlich habe 22M Ohm verwendet, das Minimum, um brauchbare Daten zu erhalten, war 10M Ohm)
2. 3x 330 Ohm Widerstände
3. Drähte
4. Steckbrett
5. Platine (meine hatte durchgehende Kupferstreifen)
6. Mehrere gemeinsame Kathoden-RGB-LEDs (ich habe 8 verwendet, aber Sie können mehr oder weniger haben, je nachdem, wie viel Licht Sie möchten)
7. Aluminiumfolie
8. Frischhaltefolie
9. Arduino Uno
10. Band
Der Fall:
1. Holz Ich habe 50 x 50 x 1,8 CM MDF verwendet (Sie können wirklich alles verwenden. Es hängt von dem gewünschten Effekt und den Werkzeugen ab, die Ihnen zur Verfügung stehen)
2. Acryl-Plexiglas habe ich 50 x 50 x 0,3 CM verwendet (oder jedes andere transparente / durchscheinende Material wie Reispapier)
3. Schleifpapier (feines Schleifpapier)
4. Holzleim
5. Furnier (optional)
6. Acrylkleber
Werkzeuge:
Abisolierzange
Lötkolben + Zinn
Stanley Messer
Bohren
Säge (ich habe eine Tischkreissäge verwendet)
Schritt 2: Prototyping:
Jetzt haben wir alles und können mit der Herstellung eines Prototyps beginnen, um zu sehen, wie es funktioniert:
Vorarbeit:
Schneiden Sie 4 Rechtecke aus der Alufolie aus (meine sind ca. 10 x 5 cm groß), wickeln Sie diese in Frischhaltefolie, um sie vor direkter Berührung zu isolieren, und kleben Sie einen Draht auf die Alufolie. Ich habe nur ein abisoliertes Ende auf die Folie geklebt (solange sie in Kontakt bleiben).
Um sicherzustellen, dass das Aluminium sicher isoliert ist, habe ich es in Frischhaltefolie gewickelt und zwischen Papieren gebügelt (nur für ein paar Sekunden, damit es nicht vollständig schmilzt).
Dann die Schaltung wie im Bild zu sehen aufbauen.
Pin 4 wird als Sendepin für beide Sensoren verwendet, während die Empfangspins Pin 2 und 5 sind. Sie könnten mehrere Sendepins verwenden, aber dies verursacht Probleme, da sie nicht perfekt synchronisiert sind.
Verwenden Sie dieses Setup für Debugging-Zwecke, bevor Sie alles zusammenlöten, um sicherzustellen, dass alles wirklich wie beabsichtigt funktioniert.
Schritt 3: Code:
Jetzt haben wir alles und können mit dem Debuggen der Sensoren beginnen.
Um meinen Code zu verwenden, sollten Sie die kapazitive Sensorbibliothek von Arduino herunterladen und gemäß den Anweisungen auf der Referenzseite installieren: Klicken Sie auf mich
Der Code: (Ich bin nicht so gut im Codieren, also wenn Sie wissen, wie es besser geht, tun Sie es bitte)
#include //importiere die Codebibliothek
Kapazitiver Sensor cs_4_2 = Kapazitiver Sensor (4, 2); // Pin senden = 4, empfangen sind 2 und 5 CapacitiveSensor cs_4_5 = CapacitiveSensor (4, 5); const int redPin = 11; const int greenPin = 10; const int bluePin = 9; const int numIndexR = 10; // Arraygröße const int numIndexG = 10; int colorR = 0; int colorG = 0; SchwimmerfarbeB = 0; int indexR [numIndexR]; int posIndexR = 0; lang totalR = 0; //es muss lang sein, weil die Summe meines Arrays für eine ganze Zahl zu groß war. int DurchschnittR = 0; int indexG [numIndexG]; int posIndexG = 0; lange GesamtG = 0; int DurchschnittG = 0; Void setup () { PinMode (redPin, OUTPUT); PinMode (grünPin, AUSGANG); pinMode (bluePin, AUSGANG); for (int thisIndexR = 0; thisIndexR < numIndexR; thisIndexR++) { // setzt das Array auf 0 indexR [thisIndexR] = 0; } for (int thisIndexG = 0; thisIndexG = 4500) {// die Sensorwerte auf ein nutzbares Maximum begrenzen, dies ist nicht für jeden Widerstandswert gleich und kann sich auch von Umgebung zu Umgebung etwas unterscheiden. Möglicherweise müssen Sie dies anpassen Ihre eigenen Bedürfnisse. gesamt1 = 4500; } if (total2 >= 4500) {total2 = 4500; } totalR = totalR - indexR[posIndexR]; // Dies hier erstellt ein Array, das kontinuierlich eine Sensorausgabe hinzufügt und den Durchschnitt erzeugt. indexR[posIndexR] = total1; totalR = totalR + indexR[posIndexR]; PosIndexR = PosIndexR + 1; if (posIndexR >= numIndexR) { posIndexR = 0; } DurchschnittR = totalR / numIndexR; //Wir verwenden den Durchschnitt anstelle der Rohdaten, um die Ausgabe zu glätten, es verlangsamt den Prozess etwas, erzeugt aber auch einen wirklich schönen, reibungslosen Fluss. totalG = totalG - indexG[posIndexG]; indexG[posIndexG] = total2; totalG = totalG + indexG[posIndexG]; PosIndexG = PosIndexG + 1; if (posIndexG >= numIndexG){ posIndexG = 0; } DurchschnittG = totalG / numIndexG; if (averageR >= 2000){ // Wir möchten nicht, dass die LEDs ständig den Wert ändern, es sei denn, es gibt eine Eingabe von Ihrer Hand. Dies stellt also sicher, dass alle niedrigeren Umgebungsmesswerte nicht berücksichtigt werden. colorR = map(DurchschnittR, 1000, 4500, 255, 0); analogWrite (redPin, colorR); aufrechtzuerhalten. Sonst wenn (DurchschnittR = 1000) {FarbeG = Karte (DurchschnittG, 1000, 4500, 255, 0); analogWrite (grünPin, FarbeG); aufrechtzuerhalten. Sonst wenn (DurchschnittG <= 1000) {FarbeG = 255; analogWrite (grünPin, FarbeG); } if (colorR <= 125 && colorG <= 125) {//B funktioniert etwas anders, weil ich nur 2 Sensoren verwendet habe, also habe ich B auf beiden Sensoren zugeordnet colorB = map(colorR, 255, 125, 0, 127.5) + map (FarbeG, 255, 125, 0, 127,5); analogWrite (bluePin, colorB); aufrechtzuerhalten. Sonst {FarbeB = Karte (FarbeR, 255, 125, 127.5, 0) + Karte (FarbeG, 255, 125, 127.5, 0); Wenn (FarbeB>= 255) {FarbeB = 255; aufrechtzuerhalten. Wenn (FarbeB <= 0) {FarbeB = 0; } analogWrite (bluePin, colorB); } Serial.print (millis () - starten); // Dies ist für Debugging-Zwecke Serial.print ("\t"); Serial.print (FarbeR); Serial.print("\t"); Serial.print (FarbeG); Serial.print("\t"); Serial.println (FarbeB); Verzögerung(1); }
Dieser Code extrahiert die Rohdaten aus dem Sensor (diese Daten sind aufgrund all der verschiedenen Faktoren, die den Sensor beeinflussen, immer etwas unregelmäßig) und legt die Rohdaten kontinuierlich in ein Array ab, wenn das Array den maximalen Wert erreicht (in meinem Fall 10) löscht es den letzten Wert und fügt einen neuen hinzu. Jedes Mal, wenn ein Wert hinzugefügt wird, wird der Durchschnittswert berechnet und in eine neue Variable eingefügt. Diese Durchschnittsvariable wird verwendet, um einen Wert einem Wert von 0 bis 255 zuzuordnen. Dies ist der Wert, den wir in die RGB-Pins schreiben, um die Helligkeit jedes Kanals zu erhöhen (die Kanäle sind R G und B).
Wenn Sie nun Ihren Code auf das Arduino hochladen und den seriellen Monitor öffnen, sollten die RGB-Werte niedriger sein, wenn Sie Ihre Hand über jeden Sensor bewegen, auch die Lichtfarbe der LED sollte sich ändern.
Schritt 4: Nun zum Fall:
Der Fall: Ich habe den Fall mit Tools meiner Universität erstellt, daher ist dieser Workflow nicht für jeden anwendbar. Es ist jedoch nichts Besonderes daran, es braucht ein Loch auf einer Seite, damit der USB-Anschluss hindurchpasst, aber ansonsten ist es nur eine offene Box.
Die Maße sind wie folgt:
15 x 15 CM für die transparente Oberseite
und
15 x 8 CM für den Holzsockel (die Dicke des Holzes betrug bei mir 1,8 CM).
Ich benutzte eine Tischkreissäge, um eine MDF-Platte in die richtigen Maße zu schneiden, die ich brauchte (das sind 4 Platten 15 x 8 CM und 1 15 x 15 CM Bodenplatte), wonach ich die Ecken in einen 45-Grad-Winkel schneide. Alle Teile habe ich mit Holzleim und Klammern zusammengeklebt (mindestens 30 Minuten trocknen lassen), ich habe das gleiche Verfahren für das Plexiglas verwendet, jedoch mit einem speziellen Sägeblatt.
1 der Holzseiten sollte ein Loch in der Mitte auf Höhe des Arduino-USB-Steckers haben, damit das Arduino eingesteckt werden kann.
Ich beendete die Basis mit Furnier. Ich schneide es in Stücke, die etwas größer als die Oberfläche jeder Seite sind.
Dies habe ich darauf geklebt, dann 30 Minuten für jede Seite festgeklemmt (besser einzeln, damit Sie sicherstellen, dass es nicht verrutscht, und nachdem es getrocknet ist, schneide ich alles ab, was herausragt.
Die Kappe habe ich mit einem Acrylkleber namens Acryfix zusammengeklebt.
Beachten Sie, dass der Kleber das Plexiglas bei der Verwendung von Acryl-Plexiglas etwas auflöst, seien Sie also so präzise und schnell wie möglich (es trocknet innerhalb weniger Minuten, wird jedoch innerhalb von Sekunden an der Luft ausgesetzt).
Um die Kappe fertig zu stellen, habe ich den Würfel mit einem Sandstrahler mattiert, aber Sie können auch feines Sandpapier verwenden, es dauert nur viel länger, bis es gleichmäßig aussieht. Beachten Sie jedoch, wenn Sie Schleifpapier verwenden, muss es feinkörnig sein und die Teile auch nach dem Frosting-Verfahren zusammenkleben (damit Sie es nicht versehentlich durch zu viel Druck brechen)
Damit die Kappe nicht zu stark rutscht, habe ich ein paar kleine Holzstäbe an die Kanten des Holzwürfels geklebt.
Schritt 5: Das Endergebnis sollte in etwa so aussehen:
Schritt 6: Löten
Wenn Sie eine Platine haben, können Sie alle Teile zusammenlöten, indem Sie das gleiche Setup verwenden, das Ihr Steckbrett hat.
Meine Platine hat durchgehende Kupferstreifen für eine einfache Handhabung.
Für jeden Sensor schneide ich ein kleines Quadrat ab, um die Widerstände und Drähte zu löten.
Die Sendedrähte (die Drähte, die von Pin 4 zu jedem Sensor führen) werden nacheinander an ein separates Quadrat gelötet, wobei 1 Draht in Pin 4 geht.
Ich habe ein langes Rechteck behalten, um einen improvisierten LED-Streifen zu machen (messen Sie ihn so, dass er in die Kappe passt, aber an die Kanten der Basis). Sie können die LEDs einfach nacheinander löten (beachten Sie im Bild, dass ich die LEDs und Widerstände versehentlich auf der falschen Seite der Platine gelötet habe, die Kupferstreifen sollten immer auf der Unterseite sein).
Wenn Sie mit dem Zusammenlöten der Einzelteile fertig sind, passen Sie sie in das Gehäuse ein. Ich habe meine einzelnen Drähte nicht zusammengelötet, damit ich sie bei Bedarf leicht austauschen kann.
Zeit, alles in die Basis zu passen: Dies ist so ziemlich der einfachste Schritt, das Arduino muss zuerst mit dem USB-Anschluss durch das Loch an der Rückseite des Gehäuses platziert werden. Fügen Sie nun die Sensoren hinzu, achten Sie darauf, dass die Sensorfolie auf beiden Seiten am Holz anliegt und die Bodenfolie gerade daran anliegt. Wenn alles gut passt, stecken Sie die RGB-LEDs in die richtigen Pins (9, 10, 11) und lassen Sie sie an den Kanten der Basis anlehnen.
Schritt 7: Wir sind fertig
Wenn Sie dies alles durchgezogen haben, sollten Sie jetzt eine Arbeitsleuchte mit kapazitiver Touch-Farbmischung haben. Spaß haben!
Empfohlen:
Solar-wiederaufladbares Licht herstellen – wikiHow
So stellen Sie wiederaufladbares Solarlicht her:
Machen Sie ein einfaches Bewegungssensor-Licht! (PIR): 13 Schritte (mit Bildern)
Machen Sie ein einfaches Bewegungssensor-Licht! (PIR): Machen Sie eine kleine & Einfaches Bewegungssensorlicht mit weniger Aufwand und weniger Komponenten. Ein Anfänger könnte dies auch machen. Ein einfaches Verständnis der Funktionsweise von Transistoren und Kenntnisse über Anode und Kathode sind nur erforderlich, um es spannungsfrei zu machen
Wie man ein automatisches Licht macht – wikiHow
Wie man ein automatisches Licht macht: Dies ist eine einfache automatische Lichtschaltung
HairIO: Haare als interaktives Material – wikiHow
HairIO: Haare als interaktives Material: HairIO: Echthaar als interaktives MaterialHair ist ein einzigartiges und wenig erforschtes Material für neue tragbare Technologien. Seine lange Geschichte des kulturellen und individuellen Ausdrucks macht es zu einem fruchtbaren Ort für neue Interaktionen. In diesem Instructable w
Interaktives Spielzeug für Kinder. (Lichter und Ton): 6 Schritte
Interaktives Spielzeug für Kinder. (Lichter und Ton): Dies ist eine Schaltung, die ich bei kleinen Kindern (1-3) verwende, sie verwendet LEDs und einen Summer. Wenn das Kind einen Knopf drückt, passiert etwas. Sehen Sie sich das Video an, um mehr zu sehen. (Drehen Sie den Ton auf, um den Summer zu hören, es ist ganz im Video)