Indholdsfortegnelse:

Lysintensitetsplanlægning ved hjælp af Arduino og Pythons Arduino Master Library: 5 trin
Lysintensitetsplanlægning ved hjælp af Arduino og Pythons Arduino Master Library: 5 trin

Video: Lysintensitetsplanlægning ved hjælp af Arduino og Pythons Arduino Master Library: 5 trin

Video: Lysintensitetsplanlægning ved hjælp af Arduino og Pythons Arduino Master Library: 5 trin
Video: Leap Motion SDK 2024, December
Anonim
Lysintensitetsplanlægning ved hjælp af Arduino og Pythons Arduino Master Library
Lysintensitetsplanlægning ved hjælp af Arduino og Pythons Arduino Master Library

Arduino er et økonomisk, men meget effektivt og funktionelt værktøj, og programmering af det i Embedded C gør processen med at gøre projekter kedelig! Arduino_Master -modulet i Python forenkler dette og lader os udføre beregninger, fjerne skraldværdier og plotte en graf til en visuel repræsentation af data.

Hvis du ikke ved om dette modul endnu, skal du installere det ved hjælp af kommandoen pip install Arduino_Master

Bare rolig, hvis du ikke ved, hvordan du bruger dette modul, besøg dette link => Arduino_Master

Koden til dette projekt vil dog altid være tilgængelig i denne instruks.

Forbrugsvarer

Til dette projekt skal du bruge følgende:

  1. En Arduino
  2. En lysafhængig modstand (LDR) og
  3. Python 3 installeret på din computer.

Trin 1: Byg dit kredsløb:

Opbygning af dit kredsløb
Opbygning af dit kredsløb

Vi bruger pin A1 af Arduino til at få inputdata. Du kan også bruge 5V- og GND -benene på Arduino i stedet for batteriet. Forbind forbindelsen som følger:

  1. Tilslut den ene ende af LDR til den positive terminal på et 5V batteri eller til 5V pin på Arduino.
  2. Tilslut den anden ende af LDR parallelt med pin A1 og negative terminal på batteriet eller GND pin på Arduino.
  3. Brug en modstand til at sikre, at al strømmen ikke strømmer til GND, hvilket ville resultere i, at du ikke får et stærkt nok signal til at registrere ved A1 -terminalen på Arduino. (Bruger en modstand på 10k ohm).

Trin 2: Programmering af din Arduino:

Arduino_Master modul bruger Serial Monitor af Arduino til at sende og modtage data. Fordelen ved at bruge dette modul er, når du først har programmeret din Arduino, kan du ændre python -programmet alene til forskellige projekter, da programmering i python er forholdsvis lettere!

Kode:

// LDR_1 -variabel bruges til at angive pin A1 på Arduino.

int LDR_1 = A1;

// Data modtaget fra A1 gemmes i LDR_Value_1.

float LDR_Value_1;

String input;

ugyldig opsætning ()

{pinMode (LDR_1, INPUT); // LDR_1 er angivet som en INPUT -pin. Serial.begin (9600); // Kommunikationsbaudrate er indstillet til 9600.}

hulrum ()

{hvis (Serial.available ()> 0) // hvis der er input på den serielle skærm, skal du fortsætte. {input = Serial.readString (); // Læs input som en streng. hvis (input == "DATA") {LDR_Value_1 = analogRead (LDR_1) * (5.0 / 1023.0); // (5 /1023) er konverteringsfaktoren for at få værdi i volt. Serial.println (LDR_Value_1); // Hvis input er lig med "DATA", skal du læse input fra LDR_1 og udskrive det på Serial Monitor. } else int i = 0; // hvis input ikke er lig med "DATA", gør ingenting! }

}

Trin 3: Programmering af Python til grafdata fra Arduino:

Hver eneste LDR ville have sine egne modstandsværdier, og vi skal huske, at nej til elektroniske komponenter nogensinde er nøjagtig identiske i drift. Således skal vi først finde spændingen ved forskellige lysintensiteter.

Upload følgende program til din python IDE og kør det:

Gør dette for forskellige lysintensiteter, og brug grafen til at tegne en konklusion, f.eks. Hvis intensiteten er mindre end 1, er rummet for mørkt. For intensiteten mellem 1 og 2 er rummet betydeligt mørkt. Ved intensitet større end 2 tændes lyset.

# Import af Arduino_Master -modul

fra Arduino_Master import *

# indsamling af data

data = filter (ardata (8, squeeze = False, dynamic = True, msg = "DATA", lines = 30), expected_type = 'num', limit = [0, 5])

# grænse er sat til 5, da vi bruger et 5V batteri.

# Planlægning af værdierne

Graf (data, stl = 'dark_background', label = 'Light Intensity')

Trin 4: Endeligt program til at kontrollere lysets intensitet i et rum

Når du er kommet til en konklusion fra de data, du har fået, skal du uploade følgende program og sørge for at ændre grænserne i henhold til din konklusion.

# Import af Arduino_Master -modul

fra Arduino_Master import # indsamling af data data = filter (ardata (8, squeeze = False, dynamic = True, msg = "DATA", lines = 50), expected_type = 'num', limit = [0, 5]) #classifying data baseret på konklusion info = for i inden for rækkevidde (len (data)): intensitet = data hvis intensitet 1 og intensitet = 2: info.append ('Light ON') # Plotting of the Graph. compGraph (data, info, stl = 'dark_background', label1 = 'Light Intensity', label2 = 'State')

Trin 5: Resultat:

Resultat
Resultat

Programmet ville tage et minut eller to at køre, da du læser 50 øjeblikkelige værdier fra Arduino.

Hvis du vil fremskynde processen, kan du prøve at ændre linjeparameteren for ardatafunktionen. Men husk, at jo mindre observationer, desto mindre ville datakvaliteten være.

Bemærk: Hvis den komplette graf på ovenstående billede ikke er synlig, kan du se grafen over afsnittet Introduktion.

Anbefalede: