Sisukord:

Valguse intensiivsuse joonistamine Arduino ja Pythoni Arduino Master Library abil: 5 sammu
Valguse intensiivsuse joonistamine Arduino ja Pythoni Arduino Master Library abil: 5 sammu

Video: Valguse intensiivsuse joonistamine Arduino ja Pythoni Arduino Master Library abil: 5 sammu

Video: Valguse intensiivsuse joonistamine Arduino ja Pythoni Arduino Master Library abil: 5 sammu
Video: Контрольная лампа переменного тока с диммером Arduino AC 2024, November
Anonim
Valguse intensiivsuse joonistamine Arduino ja Pythoni Arduino Master Library abil
Valguse intensiivsuse joonistamine Arduino ja Pythoni Arduino Master Library abil

Kuna Arduino on ökonoomne, kuid samas väga tõhus ja funktsionaalne tööriist, muudab selle programmeerimine Embedded C -sse projektide tegemise protsessi tüütuks! Pythoni moodul Arduino_Master lihtsustab seda ja võimaldab meil teha arvutusi, eemaldada prügiväärtused ja joonistada graafiku andmete visuaalseks esitamiseks.

Kui te ei tea sellest moodulist veel, installige see käsuga pip install Arduino_Master

Ärge muretsege, kui te ei tea, kuidas seda moodulit kasutada, külastage seda linki => Arduino_Master

Selle projekti kood on aga selles juhendis alati saadaval.

Tarvikud

Selle projekti jaoks vajate järgmist:

  1. Arduino
  2. Kergest sõltuv takisti (LDR) ja
  3. Python 3 on teie arvutisse installitud.

1. samm: ahela ehitamine:

Oma ringraja ehitamine
Oma ringraja ehitamine

Sisendandmete saamiseks kasutame Arduino tihvti A1. Aku asemel saate kasutada ka Arduino 5V ja GND kontakte. Looge ühendus järgmiselt.

  1. Ühendage LDR -i üks ots 5 V aku positiivse klemmiga või Arduino 5 V kontaktiga.
  2. Ühendage LDR teine ots paralleelselt tihvtiga A1 ja aku negatiivse klemmiga või Arduino GND tihvtiga.
  3. Kasutage takistit, et veenduda, et kogu vool ei voola GND -sse, mille tagajärjel ei saa te piisavalt tugevat signaali, et seda Arduino A1 -klemmis tunda. (Kasutan takisti 10k oomi).

Samm: Arduino programmeerimine:

Arduino_Master moodul kasutab andmete saatmiseks ja vastuvõtmiseks Arduino jadamonitori. Selle mooduli kasutamise eeliseks on see, et kui olete oma Arduino programmeerinud, saate erinevate projektide jaoks üksinda pythoni programmi muuta, kuna pythonis programmeerimine on suhteliselt lihtsam!

Kood:

// LDR_1 muutujat kasutatakse Arduino tihvti A1 tähistamiseks.

int LDR_1 = A1;

// A1 -lt saadud andmed salvestatakse kausta LDR_Value_1.

float LDR_Value_1;

Stringi sisend;

tühine seadistus ()

{pinMode (LDR_1, INPUT); // LDR_1 on seatud INPUT -nööpnõelaks. Seriaalne algus (9600); // Side edastuskiirus on 9600.}

tühine tsükkel ()

{if (Serial.available ()> 0) // kui jadamonitoris on sisend saadaval, jätkake. {input = Serial.readString (); // Sisendi lugemine stringina. if (sisend == "DATA") {LDR_Value_1 = analogRead (LDR_1) * (5,0 / 1023,0); // (5/1023) on ümberarvestustegur väärtuse saamiseks voltides. Serial.println (LDR_Väärt_1); // Kui sisend on võrdne "DATA" -ga, lugege sisendit LDR_1 -st ja printige see jadamonitorile. } muu int i = 0; // kui sisend ei ole võrdne "DATA" -ga, ära tee midagi! }

}

Samm: Pythoni programmeerimine Arduino andmete graafikuks:

Igal LDR -il on oma takistuse väärtused ja me peame meeles pidama, et ei elektroonikakomponentidele pole kunagi täpselt identsed. Seega peame kõigepealt leidma pinge erineva valgustugevusega.

Laadige oma python IDE -sse üles järgmine programm ja käivitage see:

Tehke seda erineva valgustugevuse korral ja tehke graafiku põhjal järeldus, näiteks kui valgustugevus on väiksem kui 1, on ruum liiga pime. Intensiivsuse vahemikus 1 kuni 2 on ruum tunduvalt pime. Kui valgustugevus on suurem kui 2, lülitatakse valgus sisse.

# Arduino_Master mooduli importimine

Arduino_Master import *

# andmete kogumine

andmed = filter (ardata (8, pigista = vale, dünaamiline = tõene, msg = "DATA", read = 30), oodatav_tüüp = 'arv', limiit = [0, 5])

# piir on seatud 5 -le, kuna kasutame 5V akut.

# Väärtuste joonistamine

Graafik (andmed, stl = 'dark_background', label = 'Light Intensity')

Samm 4: Lõplik programm valguse intensiivsuse kontrollimiseks ruumis

Kui olete saadud andmete põhjal järeldusele jõudnud, laadige üles järgmine programm ja muutke kindlasti oma järelduste piiranguid.

# Arduino_Master mooduli importimine

alates Arduino_Master import # andmete kogumine andmed = filter (ardata (8, pigista = vale, dünaamiline = tõene, msg = "DATA", read = 50), oodatud_tüüp = 'arv', limiit = [0, 5]) # andmete liigitamine järelduse põhjal info = i jaoks vahemikus (len (andmed)): intensiivsus = andmed kui intensiivsus 1 ja intensiivsus = 2: info.append ('Light ON') # Graafiku joonistamine. compGraph (andmed, teave, stl = 'dark_background', label1 = 'Light Intensity', label2 = 'State')

5. samm: tulemus:

Tulemus
Tulemus

Programmi käivitamiseks kuluks minut või kaks, kuna loete Arduino 50 hetkeväärtust.

Kui soovite protsessi kiirendada, proovige muuta ardata funktsiooni read parameetrit. Kuid pidage meeles, et mida vähem on tähelepanekuid, seda väiksem on andmete kvaliteet.

Märkus: Kui ülaltoodud pildil olev täielik graafik pole nähtav, vaadake jaotise Sissejuhatus kohal olevat graafikut.

Soovitan: