Kazalo:
- Zaloge
- 1. korak: Zgradite vezje:
- 2. korak: Programiranje vašega Arduina:
- 3. korak: Programiranje Pythona v grafične podatke iz Arduina:
- 4. korak: Končni program za preverjanje jakosti svetlobe v sobi
- 5. korak: Rezultat:
Video: Načrtovanje intenzivnosti svetlobe z uporabo Arduino in Pythonove glavne knjižnice Arduino: 5 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
Ker je Arduino ekonomično, a zelo učinkovito in funkcionalno orodje, njegovo programiranje v Embedded C otežuje proces oblikovanja projektov! Arduino_Master modul Pythona to poenostavi in nam omogoča, da izvedemo izračune, odstranimo vrednosti smeti in narišemo graf za vizualno predstavitev podatkov.
Če o modulu še ne veste, ga namestite z ukazom pip install Arduino_Master
Ne skrbite, če ne veste, kako uporabljati ta modul, obiščite to povezavo => Arduino_Master
Koda za ta projekt pa bo vedno na voljo v tem navodilu.
Zaloge
Za ta projekt boste potrebovali naslednje:
- Arduino
- Svetlobno odvisen upor (LDR) in
- Python 3 je nameščen na vašem računalniku.
1. korak: Zgradite vezje:
Za vnos podatkov bomo uporabili pin A1 Arduina. Namesto baterije lahko uporabite tudi 5V in GND zatiče Arduino. Povezavo vzpostavite na naslednji način:
- En konec LDR priključite na pozitivni priključek 5V baterije ali na 5V pin Arduina.
- Drugi konec LDR vzporedno priključite na zatič A1 in negativni priključek baterije ali zatič GND Arduina.
- Uporabite upor, da zagotovite, da ves tok ne teče v GND, zaradi česar ne boste dobili dovolj močnega signala, ki bi ga zaznali na priključku A1 Arduina. (Uporabljam upor 10k ohmov).
2. korak: Programiranje vašega Arduina:
Modul Arduino_Master za pošiljanje in sprejemanje podatkov uporablja serijski monitor Arduina. Prednost uporabe tega modula je, da ko programirate svoj Arduino, lahko program python spremenite samo za različne projekte, saj je programiranje v pythonu sorazmerno lažje!
Koda:
// Spremenljivka LDR_1 se uporablja za označevanje zatiča A1 Arduina.
int LDR_1 = A1;
// Podatki, prejeti od A1, bodo shranjeni v LDR_Value_1.
plavajoča LDR_Value_1;
Vnos niza;
void setup ()
{pinMode (LDR_1, INPUT); // LDR_1 je nastavljen kot vhodni pin. Serial.begin (9600); // Komunikacijska hitrost prenosa je nastavljena na 9600.}
void loop ()
{if (Serial.available ()> 0) // če je v serijskem monitorju na voljo kateri koli vnos, nadaljujte. {input = Serial.readString (); // Preberite vnos kot niz. if (input == "DATA") {LDR_Value_1 = analogRead (LDR_1) * (5,0 / 1023,0); // (5 /1023) je pretvorbeni faktor, da dobimo vrednost v voltih. Serial.println (LDR_Value_1); // Če je vnos enak "DATA", preberite vnos iz LDR_1 in ga natisnite na serijskem monitorju. } else int i = 0; // če vnos ni enak "DATA", ne storite ničesar! }
}
3. korak: Programiranje Pythona v grafične podatke iz Arduina:
Vsak LDR bi imel svoje vrednosti upora in ne smemo pozabiti, da so elektronske komponente med delovanjem popolnoma enake. Zato moramo najprej najti napetost pri različnih jakostih svetlobe.
Naložite naslednji program v svoj python IDE in ga zaženite:
To naredite za različne jakosti svetlobe in z grafom naredite zaključek, na primer če je intenzivnost manjša od 1, je soba preveč temna. Za intenzivnost med 1 in 2 je soba precej temna. Pri intenzivnosti večji od 2 se lučka prižge.
# Uvoz modula Arduino_Master
iz uvoza Arduino_Master *
# zbiranje podatkov
podatki = filter (ardata (8, stiskanje = napačno, dinamično = res, sporočilo = "DATA", vrstice = 30), pričakovani_tip = 'število', omejitev = [0, 5])
# omejitev je nastavljena na 5, ker uporabljamo 5V baterijo.
# Izris vrednosti
Graf (podatki, stl = 'dark_background', label = 'Intenzivnost svetlobe')
4. korak: Končni program za preverjanje jakosti svetlobe v sobi
Ko zaključite s pridobljenimi podatki, naložite naslednji program in spremenite omejitve glede na vaš zaključek.
# Uvoz modula Arduino_Master
iz Arduino_Master uvoz # zbiranje podatkovnih podatkov = filter (ardata (8, stiskanje = napačno, dinamično = res, msg = "DATA", vrstice = 50), pričakovani_tip = 'num', limit = [0, 5]) # razvrščanje podatkov na podlagi zaključka info = za i v razponu (len (podatki)): intenzivnost = podatki , če je intenzivnost 1 in intenzivnost = 2: info.append ('Light ON') # Izris grafa. compGraph (podatki, informacije, stl = 'dark_background', label1 = 'Intenzivnost svetlobe', label2 = 'Stanje')
5. korak: Rezultat:
Program bi trajal minuto ali dve, ker berete 50 trenutnih vrednosti iz Arduina.
Če želite pospešiti postopek, poskusite spremeniti parameter linij funkcije ardata. Vendar ne pozabite, da manj ko je opazovanj, slabša bo kakovost podatkov.
Opomba: Če celoten graf na zgornji sliki ni viden, si oglejte graf nad razdelkom Uvod.
Priporočena:
Meten Aan Voda: Merilnik intenzivnosti dežja: 6 korakov
Meten Aan Water: Dein Intensity Meter: Intro Ta naprava je ustvarjena za merjenje intenzivnosti padavin. Obstaja veliko načinov za merjenje količine padavin. Če pa je želena količina intenzivnosti padavin, je večina merilnih naprav zelo draga. Ta naprava je poceni in enostavna za
Sledilnik intenzivnosti sončne svetlobe: 3 koraki
Sunlight Intensity Tracker: Obstaja veliko projektov, ki temeljijo na sončni toploti ali svetlobi. Npr. sušenje sadja in zelenjave. Intenzivnost sončne svetlobe ni vedno konstantna in se spreminja čez dan. Ta projekt poskuša preslikati sončno svetlobo
Programiranje Arduina z uporabo drugega Arduina za prikaz drsnega besedila brez knjižnice: 5 korakov
Programiranje Arduina z uporabo drugega Arduina za prikaz drsnega besedila brez knjižnice: Sony Spresense ali Arduino Uno nista tako draga in ne zahtevata veliko energije. Če pa ima vaš projekt omejeno moč, prostor ali celo proračun, razmislite o uporabi Arduino Pro Mini. Za razliko od Arduino Pro Micro, Arduino Pro Mi
Arduino načrtovanje datuma/časa/beleženje z uporabo Millisa () in PfodAppa: 11 korakov
Arduino načrtovanje datuma/časa/beleženje z uporabo Millis () in PfodApp: programiranje Arduino ali Android ni potrebno. Podprti so tudi moduli RTC in GPS. Samodejno popravljanje časovnih pasov, premikanja RTC in GPS manjkajoče preskočne sekunde Uvod Ta vadnica vam pokaže, kako uporabljati svoj Arduino millis ( ) časovne oznake za prikaz podatkov ag
Uporaba pragov intenzivnosti variabilne lestvice sive za vizualizacijo in prepoznavanje nenormalnosti na slikah mamografa: 9 korakov
Uporaba pragov intenzivnosti na lestvici sivih lestvic za vizualizacijo in prepoznavanje nenormalnosti pri slikah mamogramov: Namen tega projekta je bil identificirati in uporabiti parameter za obdelavo slik mamografa v sivih tonih različnih klasifikacij tkiv v ozadju: Fatty, Fatty Glandular in & Gosto tkivo. Ta razvrstitev se uporablja, ko radiologi analizirajo