Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Aufbau Ihrer Schaltung:
- Schritt 2: Programmierung Ihres Arduino:
- Schritt 3: Programmieren von Python zur grafischen Darstellung von Daten von Arduino:
- Schritt 4: Abschließendes Programm zur Überprüfung der Lichtintensität in einem Raum
- Schritt 5: Ergebnis:
Video: Lichtintensitäts-Plotting mit Arduino und Pythons Arduino Master Library - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
Arduino ist ein wirtschaftliches, aber hocheffizientes und funktionales Werkzeug. Die Programmierung in Embedded C macht den Prozess der Erstellung von Projekten mühsam! Das Arduino_Master-Modul von Python vereinfacht dies und ermöglicht es uns, Berechnungen durchzuführen, Müllwerte zu entfernen und ein Diagramm für eine visuelle Darstellung von Daten zu zeichnen.
Wenn Sie dieses Modul noch nicht kennen, installieren Sie es mit dem Befehl pip install Arduino_Master
Machen Sie sich keine Sorgen, wenn Sie nicht wissen, wie man dieses Modul verwendet, besuchen Sie diesen Link => Arduino_Master
Der Code für dieses Projekt wird jedoch immer in diesem instructable verfügbar sein.
Lieferungen
Für dieses Projekt benötigen Sie Folgendes:
- Ein Arduino
- Ein lichtabhängiger Widerstand (LDR) und
- Python 3 auf Ihrem Computer installiert.
Schritt 1: Aufbau Ihrer Schaltung:
Wir verwenden Pin A1 von Arduino, um Eingangsdaten zu erhalten. Sie können anstelle der Batterie auch die 5V- und GND-Pins von Arduino verwenden. Stellen Sie die Verbindung wie folgt her:
- Verbinden Sie ein Ende des LDR mit dem Pluspol einer 5V-Batterie oder mit dem 5V-Pin des Arduino.
- Verbinden Sie das andere Ende des LDR parallel mit Pin A1 und dem Minuspol der Batterie oder dem GND-Pin von Arduino.
- Verwenden Sie einen Widerstand, um sicherzustellen, dass nicht der gesamte Strom zum GND fließt, was dazu führen würde, dass Sie kein stark genug Signal erhalten, um am A1-Anschluss des Arduino zu erkennen. (Verwende einen Widerstand von 10k Ohm).
Schritt 2: Programmierung Ihres Arduino:
Das Arduino_Master-Modul verwendet den seriellen Monitor des Arduino, um Daten zu senden und zu empfangen. Der Vorteil bei der Verwendung dieses Moduls besteht darin, dass Sie nach der Programmierung Ihres Arduino das Python-Programm allein für verschiedene Projekte ändern können, da die Programmierung in Python vergleichsweise einfacher ist!
Code:
// Die Variable LDR_1 wird verwendet, um Pin A1 von Arduino zu bezeichnen.
int LDR_1 = A1;
// Von A1 empfangene Daten werden in LDR_Value_1 gespeichert.
float LDR_Value_1;
String-Eingabe;
Void-Setup ()
{ PinMode (LDR_1, EINGANG); // LDR_1 ist als INPUT-Pin eingestellt. Serial.begin (9600); // Kommunikationsbaudrate ist auf 9600 eingestellt. }
Leere Schleife ()
{ if(Serial.available()>0) // Wenn eine Eingabe im seriellen Monitor verfügbar ist, fahren Sie fort. { input=Seriell.readString(); // Lesen Sie die Eingabe als String. if(input=="DATA") { LDR_Value_1=analogRead(LDR_1) * (5.0 / 1023.0); // (5 / 1023) ist der Umrechnungsfaktor, um den Wert in Volt zu erhalten. Serial.println (LDR_Value_1); // Wenn die Eingabe gleich "DATA" ist, dann lesen Sie die Eingabe von LDR_1 und drucken Sie sie auf dem Serial Monitor. } sonst int i=0; // wenn Eingabe nicht gleich "DATA" ist, nichts tun! }
}
Schritt 3: Programmieren von Python zur grafischen Darstellung von Daten von Arduino:
Jeder einzelne LDR hätte seine eigenen Widerstandswerte und wir müssen bedenken, dass keine elektronischen Komponenten jemals exakt gleich in der Funktion sind. Daher müssen wir zunächst die Spannung bei verschiedenen Lichtintensitäten ermitteln.
Laden Sie das folgende Programm in Ihre Python-IDE hoch und führen Sie es aus:
Tun Sie dies für verschiedene Lichtintensitäten und ziehen Sie anhand des Diagramms eine Schlussfolgerung, beispielsweise wenn die Intensität kleiner als 1 ist, ist der Raum zu dunkel. Bei Intensitäten zwischen 1 und 2 ist der Raum ziemlich dunkel. Bei einer Intensität größer 2 wird das Licht eingeschaltet.
# Importieren des Arduino_Master-Moduls
aus Arduino_Master-Import *
# Daten sammeln
data=filter(ardata(8, Squeeze=False, dynamic=True, msg="DATA", lines=30), Expected_type='num', limit=[0, 5])
# limit ist auf 5 gesetzt, da wir eine 5-V-Batterie verwenden.
# Plotten der Werte
Graph(data, stl='dark_background', label='Lichtintensität')
Schritt 4: Abschließendes Programm zur Überprüfung der Lichtintensität in einem Raum
Nachdem Sie aus den erhaltenen Daten eine Schlussfolgerung gezogen haben, laden Sie das folgende Programm hoch und stellen Sie sicher, dass Sie die Limits gemäß Ihrer Schlussfolgerung ändern.
# Importieren des Arduino_Master-Moduls
aus Arduino_Master importieren # Daten sammeln data=filter(ardata(8, Squeeze=False, dynamic=True, msg="DATA", lines=50), Expected_type='num', limit=[0, 5]) #Daten klassifizieren basierend auf der Schlussfolgerung info= für i in range(len(data)): Intensität=data wenn Intensität 1 und Intensität=2: info.append('Light ON') # Plotten des Graphen. compGraph(data, info, stl='dark_background', label1='Light Intensity', label2='State')
Schritt 5: Ergebnis:
Das Programm würde ein oder zwei Minuten dauern, da Sie 50 Momentanwerte von Arduino lesen.
Wenn Sie den Vorgang beschleunigen möchten, versuchen Sie, den Zeilenparameter der ardata-Funktion zu ändern. Denken Sie jedoch daran, dass die Qualität der Daten umso geringer ist, je geringer die Beobachtungen sind.
Hinweis: Wenn die vollständige Grafik im obigen Bild nicht sichtbar ist, beziehen Sie sich auf die Grafik über dem Abschnitt Einführung.
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Bewegungsaktivierte Cosplay Wings mit Circuit Playground Express - Teil 1: 7 Schritte (mit Bildern)
Bewegungsaktivierte Cosplay-Flügel mit Circuit Playground Express - Teil 1: Dies ist Teil 1 eines zweiteiligen Projekts, in dem ich Ihnen meinen Prozess zur Herstellung eines Paars automatisierter Feenflügel zeige. Der erste Teil des Projekts ist der Mechanik der Flügel, und der zweite Teil macht es tragbar und fügt die Flügel hinzu
Schnittstellentastatur mit Arduino. [Einzigartige Methode]: 7 Schritte (mit Bildern)
Schnittstellentastatur mit Arduino. [Einzigartige Methode]: Hallo, und willkommen zu meinem ersten instructable! :) In diesem instructables möchte ich eine fantastische Bibliothek für die Schnittstelle der Tastatur mit Arduino teilen - 'Password Library' einschließlich 'Keypad Library'. Diese Bibliothek enthält die besten Funktionen, die wir wi
SCARA-Roboter: Lernen über Vorwärts- und inverse Kinematik !!! (Plot Twist Erfahren Sie, wie Sie mit PROCESSING eine Echtzeitschnittstelle in ARDUINO erstellen !!!!): 5 Schritte (mit Bildern)
SCARA-Roboter: Lernen über Vorwärts- und inverse Kinematik !!! (Plot Twist Learn How to Make a Real Time Interface in ARDUINO Using PROCESSING !!!!): Ein SCARA-Roboter ist eine sehr beliebte Maschine in der Industriewelt. Der Name steht sowohl für Selective Compliant Assembly Robot Arm als auch für Selective Compliant Articulated Robot Arm. Es ist im Grunde ein Roboter mit drei Freiheitsgraden, da er die ersten beiden Displ
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 3 - Nano V2-Ersatz - Rev 3: 7 Schritte (mit Bildern)
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 3 - Nano V2-Ersatz - Rev 3: Update: 7. April 2019 - Rev 3 von lp_BLE_TempHumidity, fügt Datums- / Zeitdiagramme mit pfodApp V3.0.362+ hinzu und automatische Drosselung beim Senden von DatenUpdate: 24. März 2019 – Rev 2 von lp_BLE_TempHumidity, fügt weitere Plotoptionen hinzu und i2c_ClearBus, fügt GT832E