Obsah:

Plotovanie s intenzitou svetla pomocou hlavnej knižnice Arduino a Python Arduino: 5 krokov
Plotovanie s intenzitou svetla pomocou hlavnej knižnice Arduino a Python Arduino: 5 krokov

Video: Plotovanie s intenzitou svetla pomocou hlavnej knižnice Arduino a Python Arduino: 5 krokov

Video: Plotovanie s intenzitou svetla pomocou hlavnej knižnice Arduino a Python Arduino: 5 krokov
Video: OBDeleven unboxing и обзор 2024, December
Anonim
Svetelné vykresľovanie pomocou hlavnej knižnice Arduino a Python Arduino
Svetelné vykresľovanie pomocou hlavnej knižnice Arduino a Python Arduino

Arduino je ekonomický, ale vysoko efektívny a funkčný nástroj a jeho programovanie v programe Embedded C robí proces vytvárania projektov únavným! Modul Arduino_Master v Pythone to zjednodušuje a umožňuje nám vykonávať výpočty, odstraňovať odpadkové hodnoty a vykresľovať graf pre vizuálnu reprezentáciu údajov.

Ak o tomto module ešte neviete, nainštalujte ho pomocou príkazu pip install Arduino_Master

Ak neviete, ako používať tento modul, nebojte sa, navštívte tento odkaz => Arduino_Master

Kód tohto projektu však bude v tomto návode vždy k dispozícii.

Zásoby

Na tento projekt budete potrebovať:

  1. Arduino
  2. Svetlo závislý odpor (LDR) a
  3. Na vašom počítači je nainštalovaný Python 3.

Krok 1: Budovanie obvodu:

Budovanie obvodu
Budovanie obvodu

Na získanie vstupných údajov použijeme pin A1 Arduino. Namiesto batérie môžete použiť aj 5V a GND piny Arduina. Pripojenie vykonajte nasledovne:

  1. Pripojte jeden koniec LDR k kladnému pólu 5V batérie alebo k 5V kolíku Arduina.
  2. Druhý koniec LDR zapojte paralelne s kolíkom A1 a záporným pólom batérie alebo kolíkom GND Arduina.
  3. Použite odpor, aby ste sa presvedčili, že všetok prúd netečie do GND, čo by malo za následok, že nedostanete dostatočne silný signál na snímanie na svorke A1 Arduina. (Používam odpor 10 kOhm).

Krok 2: Programovanie Arduina:

Modul Arduino_Master používa na odosielanie a príjem údajov sériový monitor Arduino. Výhodou použitia tohto modulu je, že akonáhle naprogramujete svoje Arduino, môžete zmeniť program python sám pre rôzne projekty, pretože programovanie v pythone je pomerne jednoduchšie!

Kód:

// Premenná LDR_1 sa používa na označenie kolíka A1 Arduina.

int LDR_1 = A1;

// Údaje prijaté z A1 budú uložené v LDR_Value_1.

float LDR_Value_1;

Vstup reťazca;

neplatné nastavenie ()

{pinMode (LDR_1, INPUT); // LDR_1 je nastavený ako VSTUPNÝ pin. Serial.begin (9600); // Komunikačná prenosová rýchlosť je nastavená na 9600.}

prázdna slučka ()

{if (Serial.available ()> 0) // if any input is available in the serial monitor then continue. {vstup = Serial.readString (); // Čítajte vstup ako reťazec. if (input == "DATA") {LDR_Value_1 = analogRead (LDR_1) * (5.0 / 1023.0); // (5 /1023) je konverzný faktor na získanie hodnoty vo voltoch. Serial.println (LDR_Value_1); // Ak je vstup rovný „DATA“, prečítajte si vstup z LDR_1 a vytlačte ho na sériovom monitore. } else int i = 0; // ak sa vstup nerovná „DATA“, nič nerobte! }

}

Krok 3: Programovanie Pythonu na grafovanie údajov z Arduina:

Každý LDR by mal svoje vlastné hodnoty odporu a musíme mať na pamäti, že žiadne elektronické súčiastky nie sú v prevádzke nikdy úplne identické. Najprv teda musíme nájsť napätie pri rôznych intenzitách svetla.

Nahrajte do svojho python IDE nasledujúci program a spustite ho:

Vykonajte to pre rôzne intenzity svetla a pomocou grafu vyvodte záver, napríklad ak je intenzita menšia ako 1, miestnosť je príliš tmavá. Pri intenzite 1 až 2 je miestnosť značne tmavá. Pri intenzite vyššej ako 2 sa svetlo zapne.

# Import modulu Arduino_Master

z importu Arduino_Master *

# zhromažďovanie údajov

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

# limit je nastavený na 5, pretože používame 5V batériu.

# Vynesenie hodnôt

Graf (údaje, stl = 'dark_background', label = 'Light Intensity')

Krok 4: Záverečný program na kontrolu intenzity svetla v miestnosti

Po prijatí záveru z údajov, ktoré ste získali, nahrajte nasledujúci program a uistite sa, že zmeníte limity podľa svojho záveru.

# Import modulu Arduino_Master

z Arduino_Master import # zber dát dáta = filter (ardata (8, squeeze = False, dynamic = True, msg = "DATA", lines = 50), expect_type = 'num', limit = [0, 5]) #classifying data na základe záveru info = pre i v rozsahu (len (údaje)): intenzita = údaje ak intenzita 1 a intenzita = 2: info.append ('zapnuté svetlo') # Vynesenie grafu. compGraph (údaje, informácie, stl = 'dark_background', label1 = 'Light Intensity', label2 = 'State')

Krok 5: Výsledok:

Výsledok
Výsledok

Spustenie programu trvá minútu alebo dve, pretože z Arduina čítate 50 okamžitých hodnôt.

Ak chcete proces urýchliť, skúste zmeniť parameter lines funkcie ardata. Nezabudnite však, že čím menšie budú pozorovania, tým nižšia bude kvalita údajov.

Poznámka: Ak nie je viditeľný úplný graf na obrázku vyššie, pozrite si graf nad úvodnou časťou.

Odporúča: