Turinys:
- Prekės
- 1 žingsnis: sukurkite grandinę:
- 2 žingsnis: „Arduino“programavimas:
- 3 veiksmas: „Python“programavimas, norint grafikuoti duomenis iš „Arduino“:
- 4 žingsnis: galutinė programa, skirta patikrinti šviesos intensyvumą kambaryje
- 5 žingsnis: rezultatas:
Video: Šviesos intensyvumo braižymas naudojant „Arduino“ir „Python“„Arduino“pagrindinę biblioteką: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Kadangi „Arduino“yra ekonomiškas, tačiau labai efektyvus ir funkcionalus įrankis, jo programavimas „Embedded C“daro projektų kūrimo procesą nuobodų! „Python“modulis „Arduino_Master“tai supaprastina ir leidžia atlikti skaičiavimus, pašalinti šiukšlių vertes ir sudaryti grafiką, kad būtų galima vizualiai pateikti duomenis.
Jei dar nežinote apie šį modulį, įdiekite jį naudodami komandą pip install Arduino_Master
Nesijaudinkite, jei nežinote, kaip naudotis šiuo moduliu, apsilankykite šioje nuorodoje => Arduino_Master
Tačiau šio projekto kodas visada bus pateiktas šioje instrukcijoje.
Prekės
Šiam projektui jums reikės:
- Arduino
- Nuo šviesos priklausomas rezistorius (LDR) ir
- Python 3 įdiegta jūsų kompiuteryje.
1 žingsnis: sukurkite grandinę:
Norėdami gauti įvesties duomenis, naudosime „Arduino“kaištį A1. Vietoj akumuliatoriaus taip pat galite naudoti „Arduino“5V ir GND kaiščius. Užmegzkite ryšį taip:
- Prijunkite vieną LDR galą prie teigiamo 5V akumuliatoriaus gnybto arba prie „Arduino“5V kaiščio.
- Prijunkite kitą LDR galą lygiagrečiai prie kaiščio A1 ir neigiamo akumuliatoriaus gnybto arba „Arduino“GND kaiščio.
- Naudokite rezistorių, kad įsitikintumėte, jog visa srovė nepatenka į GND, todėl negausite pakankamai stipraus signalo, kad galėtumėte pajusti „Arduino“A1 terminalą. (Aš naudoju 10k omų rezistorių).
2 žingsnis: „Arduino“programavimas:
„Arduino_Master“modulis naudoja „Arduino“serijinį monitorių duomenims siųsti ir gauti. Šio modulio naudojimo pranašumas yra tas, kad užprogramavę „Arduino“, galite pakeisti tik „python“programą skirtingiems projektams, nes programavimas „python“yra palyginti lengvesnis!
Kodas:
// LDR_1 kintamasis naudojamas žymėti „Arduino“kaištį A1.
int LDR_1 = A1;
// Iš A1 gauti duomenys bus saugomi LDR_Value_1.
plūdė LDR_Value_1;
Styginių įvestis;
negaliojanti sąranka ()
{pinMode (LDR_1, INPUT); // LDR_1 nustatytas kaip įvesties kaištis. Serial.begin (9600); // Ryšio duomenų perdavimo sparta nustatyta kaip 9600.}
tuštumos kilpa ()
{if (Serial.available ()> 0) // jei serijiniame monitoriuje yra įvesties, tęskite. {input = Serial.readString (); // Įvestį skaitykite kaip eilutę. if (įvestis == "DUOMENYS") {LDR_Value_1 = analogRead (LDR_1) * (5.0 / 1023,0); // (5/1023) yra konversijos koeficientas, norint gauti vertę voltais. Serial.println (LDR_Value_1); // Jei įvestis yra lygi „DATA“, perskaitykite įvestį iš LDR_1 ir atsispausdinkite ją serijiniame monitoriuje. } else int i = 0; // jei įvestis nėra lygi "DATA", nieko nedarykite! }
}
3 veiksmas: „Python“programavimas, norint grafikuoti duomenis iš „Arduino“:
Kiekvienas LDR turi savo pasipriešinimo vertes ir turime prisiminti, kad „ne“elektroniniams komponentams veikia visiškai vienodai. Taigi pirmiausia turime rasti įtampą esant skirtingam šviesos intensyvumui.
Įkelkite šią programą į savo „python IDE“ir paleiskite ją:
Padarykite tai skirtingo intensyvumo šviesai ir naudodamiesi grafiku padarykite išvadą, pavyzdžiui, jei intensyvumas yra mažesnis nei 1, kambarys yra per tamsus. Jei intensyvumas yra nuo 1 iki 2, kambarys yra labai tamsus. Jei intensyvumas didesnis nei 2, šviesa įjungiama.
# Importuojamas „Arduino_Master“modulis
iš „Arduino_Master import“*
# renka duomenis
duomenys = filtras (ardata (8, suspaudimas = klaidinga, dinamiška = tiesa, žinutė = "DUOMENYS", eilutės = 30), numatomas_ tipas = 'num', riba = [0, 5])
# riba nustatyta į 5, nes naudojame 5 V bateriją.
# Vertybių brėžimas
Diagrama (duomenys, stl = 'dark_background', label = 'Light Intensity')
4 žingsnis: galutinė programa, skirta patikrinti šviesos intensyvumą kambaryje
Padarę išvadą iš gautų duomenų, įkelkite šią programą ir būtinai pakeiskite apribojimus pagal savo išvadą.
# Importuojamas „Arduino_Master“modulis
iš „Arduino_Master import“# duomenų duomenų rinkimas = filtras (ardata (8, squeeze = False, dynamic = True, msg = "DATA", lines = 50), laukiamo_tipo = 'num', limit = [0, 5]) #classifying data remiantis išvada info = i diapazone (len (duomenys)): intensyvumas = duomenys jei intensyvumas 1 ir intensyvumas = 2: info.append ('Light ON') # Grafiko brėžimas. compGraph (duomenys, informacija, stl = 'dark_background', label1 = 'Light Intensity', label2 = 'State')
5 žingsnis: rezultatas:
Programa paleidžiama minutę ar dvi, nes skaitote 50 momentinių „Arduino“verčių.
Jei norite pagreitinti procesą, pabandykite pakeisti ardata funkcijos eilučių parametrą. Tačiau atminkite, kad kuo mažiau stebėjimų, tuo prastesnė bus duomenų kokybė.
Pastaba: Jei visas grafikas aukščiau esančioje nuotraukoje nematomas, žiūrėkite diagramą virš įvado skyriaus.
Rekomenduojamas:
Šviesos intensyvumo matavimas naudojant BH1715 ir Raspberry Pi: 5 žingsniai
Šviesos intensyvumo matavimas naudojant BH1715 ir Raspberry Pi: Vakar dirbome prie LCD ekranų, o dirbdami su jais supratome šviesos intensyvumo skaičiavimo svarbą. Šviesos intensyvumas yra ne tik svarbus šio pasaulio fizinėje srityje, bet ir gerai tariamas biologiniame
Pagrindinė „Arduino“šviesos intensyvumo lempa!: 5 žingsniai
Pagrindinė „Arduino“šviesos intensyvumo lempa!: Šiandienos grandinė yra įdomus mažas „Arduino“projektas karantinui! Ši grandinė orientuota į dvi įdomias medžiagas; relės SPDT & Fotorezistorius. Be to, relės paskirtis yra būti jungikliu grandinėje elektroniniu būdu. Be to, foto
Šviesos intensyvumo skaičiavimas naudojant BH1715 ir „Arduino Nano“: 5 žingsniai
Šviesos intensyvumo skaičiavimas naudojant BH1715 ir „Arduino Nano“: vakar dirbome prie LCD ekranų, o dirbdami su jais supratome šviesos intensyvumo skaičiavimo svarbą. Šviesos intensyvumas yra ne tik svarbus šio pasaulio fizinėje srityje, bet ir gerai tariamas biologiniame
Šviesos intensyvumo skaičiavimas naudojant BH1715 ir dalelių fotoną: 5 žingsniai
Šviesos intensyvumo skaičiavimas naudojant BH1715 ir dalelių fotoną: vakar dirbome prie LCD ekranų, o dirbdami su jais supratome šviesos intensyvumo skaičiavimo svarbą. Šviesos intensyvumas yra ne tik svarbus šio pasaulio fizinėje srityje, bet ir gerai tariamas biologiniame
KAIP PADARYTI IR IR IR ŠVIESOS ŠVIESOS ŠVIESOS ŠVIESOS KAMERĄ: 5 žingsniai (su paveikslėliais)
KAIP PADARYTI IR IR IR ŠVIESOS ŠVIESOS ŠVIESOS KAMERĄ: Supratau infraraudonųjų spindulių kamerą, kad galėčiau ją naudoti judesio fiksavimo sistemoje. Su juo taip pat galite gauti tokių nuostabių vaizdų: blizgių objektų, matomų fotoaparate, kurie yra normalūs realybėje. Už pigią kainą galite gauti gana gerų rezultatų. Jis