Sisukord:
- Tarvikud
- 1. samm: ahela ehitamine:
- Samm: Arduino programmeerimine:
- Samm: Pythoni programmeerimine Arduino andmete graafikuks:
- Samm 4: Lõplik programm valguse intensiivsuse kontrollimiseks ruumis
- 5. samm: tulemus:
Video: Valguse intensiivsuse joonistamine Arduino ja Pythoni Arduino Master Library abil: 5 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
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:
- Arduino
- Kergest sõltuv takisti (LDR) ja
- Python 3 on teie arvutisse installitud.
1. samm: ahela ehitamine:
Sisendandmete saamiseks kasutame Arduino tihvti A1. Aku asemel saate kasutada ka Arduino 5V ja GND kontakte. Looge ühendus järgmiselt.
- Ühendage LDR -i üks ots 5 V aku positiivse klemmiga või Arduino 5 V kontaktiga.
- Ühendage LDR teine ots paralleelselt tihvtiga A1 ja aku negatiivse klemmiga või Arduino GND tihvtiga.
- 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:
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:
Temperatuuri ja valguse intensiivsuse logimine - Proteuse simulatsioon - Fritzing - Liono Maker: 5 sammu
Temperatuuri ja valguse intensiivsuse logimine | Proteuse simulatsioon | Fritzing | Liono Maker: Tere, see on Liono Maker, see on minu ametlik YouTube'i kanal. See on avatud lähtekoodiga YouTube'i kanal. Siin on link: Liono Makeri YouTube'i kanal Siin on videolink: Temp & Kerge intensiivsusega logimine Selles õpetuses õpime, kuidas temperit valmistada
Valguse intensiivsuse mõõtmine BH1715 ja Raspberry Pi abil: 5 sammu
Valguse intensiivsuse mõõtmine BH1715 ja Raspberry Pi abil: Eile töötasime LCD -ekraanide kallal ja nende üle töötades mõistsime valguse intensiivsuse arvutamise tähtsust. Valguse intensiivsus pole oluline mitte ainult selle maailma füüsilises valdkonnas, vaid sellel on hästi öeldud roll bioloogilises
Temperatuurianduri (TMP006) reaalajas andmete joonistamine MSP432 LaunchPadi ja Pythoni abil: 9 sammu
Temperatuurianduri (TMP006) reaalajas andmete joonistamine MSP432 LaunchPadi ja Pythoni abil: TMP006 on temperatuuriandur, mis mõõdab objekti temperatuuri, ilma et oleks vaja objektiga ühendust võtta. Selles õpetuses joonistame Pythoni abil BoosterPackist (TI BOOSTXL-EDUMKII) reaalajas temperatuuri andmed
Valguse intensiivsuse arvutamine BH1715 ja Arduino Nano abil: 5 sammu
Valguse intensiivsuse arvutamine BH1715 ja Arduino Nano abil: Eile töötasime LCD -ekraanide kallal ja nende üle töötades mõistsime valguse intensiivsuse arvutamise tähtsust. Valguse intensiivsus pole oluline mitte ainult selle maailma füüsilises valdkonnas, vaid sellel on hästi öeldud roll bioloogilises
Valguse intensiivsuse arvutamine BH1715 ja osakeste footoni abil: 5 sammu
Valguse intensiivsuse arvutamine BH1715 ja osakeste footoni abil: Eile töötasime LCD -ekraanide kallal ja nende üle töötades mõistsime valguse intensiivsuse arvutamise tähtsust. Valguse intensiivsus pole oluline mitte ainult selle maailma füüsilises valdkonnas, vaid sellel on hästi öeldud roll bioloogilises