Innholdsfortegnelse:

Plott av lysintensitet ved hjelp av Arduino og Pythons Arduino Master Library: 5 trinn
Plott av lysintensitet ved hjelp av Arduino og Pythons Arduino Master Library: 5 trinn

Video: Plott av lysintensitet ved hjelp av Arduino og Pythons Arduino Master Library: 5 trinn

Video: Plott av lysintensitet ved hjelp av Arduino og Pythons Arduino Master Library: 5 trinn
Video: 20 товаров для автомобиля с Алиэкспресс, автотовары №31 2024, November
Anonim
Plott av lysintensitet ved hjelp av Arduino og Pythons Arduino Master Library
Plott av lysintensitet ved hjelp av Arduino og Pythons Arduino Master Library

Arduino er et økonomisk, men svært effektivt og funksjonelt verktøy, og programmering av det i Embedded C gjør prosessen med å gjøre prosjekter kjedelig! Arduino_Master -modulen til Python forenkler dette og lar oss utføre beregninger, fjerne søppelverdier og plotte en graf for en visuell fremstilling av data.

Hvis du ikke vet om denne modulen ennå, kan du installere den ved hjelp av kommandoen pip install Arduino_Master

Ikke bekymre deg hvis du ikke vet hvordan du bruker denne modulen, besøk denne lenken => Arduino_Master

Koden for dette prosjektet vil imidlertid alltid være tilgjengelig i denne instruksjonsboken.

Rekvisita

For dette prosjektet trenger du følgende:

  1. En Arduino
  2. En lysavhengig motstand (LDR) og
  3. Python 3 installert på datamaskinen din.

Trinn 1: Bygg kretsen din:

Bygg kretsen din
Bygg kretsen din

Vi bruker pin A1 av Arduino for å få inndata. Du kan også bruke 5V- og GND -pinnene til Arduino i stedet for batteriet. Gjør tilkoblingen som følger:

  1. Koble den ene enden av LDR til den positive kontakten på et 5V batteri eller til 5V pinnen på Arduino.
  2. Koble den andre enden av LDR parallelt med pinne A1 og minuspolen på batteriet eller GND -pinnen til Arduino.
  3. Bruk en motstand for å sikre at all strømmen ikke strømmer til GND, noe som vil føre til at du ikke får et sterkt nok signal til å føle ved A1 -terminalen på Arduino. (Jeg bruker en motstand på 10k ohm).

Trinn 2: Programmering av Arduino:

Arduino_Master -modulen bruker Serial Monitor of Arduino til å sende og motta data. Fordelen med å bruke denne modulen er at når du har programmert Arduino, kan du endre python -programmet alene for forskjellige prosjekter siden programmering i python er relativt enklere!

Kode:

// LDR_1 -variabelen brukes til å betegne pin A1 på Arduino.

int LDR_1 = A1;

// Data mottatt fra A1 blir lagret i LDR_Value_1.

flyte LDR_Value_1;

String input;

ugyldig oppsett ()

{pinMode (LDR_1, INPUT); // LDR_1 er angitt som en INPUT -pin. Serial.begin (9600); // Kommunikasjons baudrate er satt til 9600.}

hulrom ()

{if (Serial.available ()> 0) // hvis noen inngang er tilgjengelig i den serielle skjermen, fortsett. {input = Serial.readString (); // Les inngangen som en streng. if (input == "DATA") {LDR_Value_1 = analogRead (LDR_1) * (5.0 / 1023.0); // (5 /1023) er konverteringsfaktoren for å få verdi i volt. Serial.println (LDR_Value_1); // Hvis inndata er lik "DATA", les deretter inndata fra LDR_1 og skriv den ut på seriell skjerm. } annet int i = 0; // hvis input ikke er lik "DATA", ikke gjør noe! }

}

Trinn 3: Programmering av Python til å tegne data fra Arduino:

Hver eneste LDR ville ha sine egne motstandsverdier, og vi må huske at nei til elektroniske komponenter noensinne er nøyaktig identiske i drift. Derfor må vi først finne spenningen ved forskjellige lysintensiteter.

Last opp følgende program til python IDE og kjør det:

Gjør dette for forskjellige lysstyrker, og bruk grafen til å trekke en konklusjon, for eksempel hvis intensiteten er mindre enn 1, er rommet for mørkt. For intensitet mellom 1 og 2 er rommet betraktelig mørkt. For intensitet større enn 2, slås lyset på.

# Importere Arduino_Master -modul

fra Arduino_Master import *

# samle data

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

# grensen er satt til 5 siden vi bruker et 5V batteri.

# Plotte verdiene

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

Trinn 4: Sluttprogram for å kontrollere lysets intensitet i et rom

Etter å ha kommet til en konklusjon fra dataene du fikk, last opp følgende program og sørg for å endre grensene i henhold til konklusjonen din.

# Importere Arduino_Master -modul

fra Arduino_Master import # innsamling av data data = filter (ardata (8, squeeze = False, dynamic = True, msg = "DATA", lines = 50), expected_type = 'num', limit = [0, 5]) #classifying data basert på konklusjon info = for i i området (len (data)): intensitet = data hvis intensitet 1 og intensitet = 2: info.append ('Light ON') # Plotting the Graph. compGraph (data, info, stl = 'dark_background', label1 = 'Light Intensity', label2 = 'State')

Trinn 5: Resultat:

Resultat
Resultat

Programmet vil ta et minutt eller to å kjøre siden du leser 50 øyeblikkelige verdier fra Arduino.

Hvis du vil fremskynde prosessen, kan du prøve å endre linjeparameteren for ardatafunksjonen. Men husk at jo mindre observasjonene er, desto mindre vil kvaliteten på dataene være.

Merk: Hvis hele grafen på bildet ovenfor ikke er synlig, kan du se grafen over introduksjonsdelen.

Anbefalt: