Obsah:
- Zásoby
- Krok 1: Budování obvodu:
- Krok 2: Programování Arduina:
- Krok 3: Programování Pythonu pro grafování dat z Arduina:
- Krok 4: Závěrečný program ke kontrole intenzity světla v místnosti
- Krok 5: Výsledek:
Video: Vykreslování intenzity světla pomocí Arduino a hlavní knihovny Arduino Python: 5 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Arduino je ekonomický, ale vysoce účinný a funkční nástroj a jeho programování v Embedded C dělá proces vytváření projektů zdlouhavým! Modul Arduino_Master v Pythonu to zjednodušuje a umožňuje nám provádět výpočty, odstraňovat odpadkové hodnoty a vykreslovat graf pro vizuální reprezentaci dat.
Pokud o tomto modulu ještě nevíte, nainstalujte jej pomocí příkazu pip install Arduino_Master
Pokud nevíte, jak tento modul používat, nedělejte si starosti, navštivte tento odkaz => Arduino_Master
Kód tohoto projektu však bude v tomto pokynu vždy k dispozici.
Zásoby
Pro tento projekt budete potřebovat následující:
- Arduino
- Odpor závislý na světle (LDR) a
- Ve vašem počítači je nainstalován Python 3.
Krok 1: Budování obvodu:
K získání vstupních dat použijeme pin A1 Arduina. Místo baterie můžete také použít 5V a GND piny Arduina. Připojte se následujícím způsobem:
- Připojte jeden konec LDR ke kladnému pólu 5V baterie nebo k 5V pinu Arduina.
- Připojte druhý konec LDR paralelně ke kolíku A1 a zápornému pólu baterie nebo GND pinu Arduina.
- Použijte odpor, abyste se ujistili, že veškerý proud neteče do GND, což by vedlo k tomu, že nedostanete dostatečně silný signál, který by cítil na terminálu A1 Arduina. (Používám odpor 10 kOhm).
Krok 2: Programování Arduina:
Modul Arduino_Master používá k odesílání a přijímání dat sériový monitor Arduina. Výhodou použití tohoto modulu je, že jakmile naprogramujete Arduino, můžete změnit program python sám pro různé projekty, protože programování v pythonu je poměrně jednodušší!
Kód:
// Proměnná LDR_1 se používá k označení kolíku A1 Arduina.
int LDR_1 = A1;
// Data přijatá od A1 budou uložena v LDR_Value_1.
float LDR_Value_1;
Vstup řetězce;
neplatné nastavení ()
{pinMode (LDR_1, INPUT); // LDR_1 je nastaven jako VSTUPNÍ pin. Serial.begin (9600); // Komunikační přenosová rychlost je nastavena na 9600.}
prázdná smyčka ()
{if (Serial.available ()> 0) // if any input is available in the serial monitor then continue. {vstup = Serial.readString (); // Přečíst vstup jako řetězec. if (input == "DATA") {LDR_Value_1 = analogRead (LDR_1) * (5.0 / 1023.0); // (5/1023) je převodní faktor pro získání hodnoty ve voltech. Serial.println (LDR_Value_1); // Pokud se vstup rovná "DATA", přečtěte si vstup z LDR_1 a vytiskněte jej na sériovém monitoru. } else int i = 0; // pokud se vstup nerovná "DATA", nedělejte nic! }
}
Krok 3: Programování Pythonu pro grafování dat z Arduina:
Každý LDR by měl své vlastní hodnoty odporu a musíme si uvědomit, že ne pro elektronické součástky jsou v provozu nikdy úplně identické. Nejprve tedy musíme najít napětí při různých intenzitách světla.
Nahrajte do svého python IDE následující program a spusťte jej:
Udělejte to pro různé intenzity světla a pomocí grafu vyvodte závěr, například pokud je intenzita menší než 1, místnost je příliš tmavá. Pro intenzitu mezi 1 a 2 je místnost značně tmavá. Při intenzitě větší než 2 se světlo zapne.
# Import modulu Arduino_Master
z importu Arduino_Master *
# sbírat data
data = filter (ardata (8, squeeze = False, dynamic = True, msg = "DATA", lines = 30), expect_type = 'num', limit = [0, 5])
# limit je nastaven na 5, protože používáme 5V baterii.
# Vykreslení hodnot
Graf (data, stl = 'dark_background', label = 'Light Intensity')
Krok 4: Závěrečný program ke kontrole intenzity světla v místnosti
Poté, co dospějete k závěru z údajů, které jste získali, nahrajte následující program a nezapomeňte změnit limity podle svého závěru.
# Import modulu Arduino_Master
z Arduino_Master import # sběr dat data = filtr (ardata (8, squeeze = False, dynamic = True, msg = "DATA", lines = 50), expect_type = 'num', limit = [0, 5]) #classifying data na základě závěru info = pro i v rozsahu (len (data)): intenzita = data pokud intenzita 1 a intenzita = 2: info.append ('Světlo ZAPNUTO') # Vykreslení grafu. compGraph (data, informace, stl = 'dark_background', label1 = 'Light Intensity', label2 = 'State')
Krok 5: Výsledek:
Spuštění programu by trvalo minutu nebo dvě, protože čtete 50 okamžitých hodnot z Arduina.
Pokud chcete proces urychlit, zkuste změnit parametr lines funkce ardata. Pamatujte však, že čím menší jsou pozorování, tím menší bude kvalita dat.
Poznámka: Pokud není kompletní graf na výše uvedeném obrázku viditelný, podívejte se na graf nad úvodní částí.
Doporučuje:
Měření intenzity světla pomocí BH1715 a Raspberry Pi: 5 kroků
Měření intenzity světla pomocí BH1715 a Raspberry Pi: Včera jsme pracovali na LCD displejích a při jejich práci jsme si uvědomili důležitost výpočtu intenzity světla. Intenzita světla není důležitá pouze ve fyzické oblasti tohoto světa, ale má svou dobře uvedenou roli v biologickém
Programování Arduina pomocí jiného Arduina pro zobrazení posouvaného textu bez knihovny: 5 kroků
Programování Arduina pomocí jiného Arduina pro zobrazení posouvaného textu bez knihovny: Sony Spresense nebo Arduino Uno nejsou tak drahé a nevyžadují mnoho energie. Pokud má však váš projekt omezení výkonu, prostoru nebo dokonce rozpočtu, můžete zvážit použití Arduino Pro Mini. Na rozdíl od Arduino Pro Micro, Arduino Pro Mi
Jednoduché vzdálené vykreslování dat pomocí Android / Arduino / PfodApp: 6 kroků
Jednoduché vzdálené vykreslování dat pomocí systému Android/Arduino/PfodApp: Pro vykreslování dat podle data/času pouze pomocí milisekund Arduina () viz tento InstructableArduino Vykreslování data/času pomocí protokolů Millis () a PfodAppTento Instructable vám ukáže, jak vykreslit data snímače Arduino na vašem Mobilní telefon Android a zachyťte jej pro
Výpočet intenzity světla pomocí BH1715 a Arduino Nano: 5 kroků
Výpočet intenzity světla pomocí BH1715 a Arduino Nano: Včera jsme pracovali na LCD displejích a při jejich práci jsme si uvědomili důležitost výpočtu intenzity světla. Intenzita světla není důležitá pouze ve fyzické oblasti tohoto světa, ale má svou dobře uvedenou roli v biologickém
Výpočet intenzity světla pomocí BH1715 a fotonu částic: 5 kroků
Výpočet intenzity světla pomocí BH1715 a fotonu částic: Včera jsme pracovali na LCD displejích a při jejich práci jsme si uvědomili důležitost výpočtu intenzity světla. Intenzita světla není důležitá pouze ve fyzické oblasti tohoto světa, ale má svou dobře uvedenou roli v biologickém