Tartalomjegyzék:

Fényintenzitás ábrázolása az Arduino és a Python Arduino Master Library használatával: 5 lépés
Fényintenzitás ábrázolása az Arduino és a Python Arduino Master Library használatával: 5 lépés

Videó: Fényintenzitás ábrázolása az Arduino és a Python Arduino Master Library használatával: 5 lépés

Videó: Fényintenzitás ábrázolása az Arduino és a Python Arduino Master Library használatával: 5 lépés
Videó: Leap Motion SDK 2024, November
Anonim
Fényintenzitás ábrázolása az Arduino és a Python Arduino Master Library használatával
Fényintenzitás ábrázolása az Arduino és a Python Arduino Master Library használatával

Mivel az Arduino gazdaságos, ugyanakkor rendkívül hatékony és funkcionális eszköz, az Embedded C programozásával unalmassá válik a projektek készítésének folyamata! A Python Arduino_Master modulja leegyszerűsíti ezt, és számításokat végez, eltávolítja a szemétértékeket, és grafikont rajzol az adatok vizuális megjelenítéséhez.

Ha még nem ismeri ezt a modult, telepítse azt a pip install Arduino_Master paranccsal

Ne aggódjon, ha nem tudja, hogyan használja ezt a modult, keresse fel ezt a linket => Arduino_Master

Ennek a projektnek a kódja azonban mindig elérhető lesz ebben az utasításban.

Kellékek

Ehhez a projekthez a következőkre lesz szüksége:

  1. Egy Arduino
  2. Fényfüggő ellenállás (LDR) és
  3. Python 3 telepítve a számítógépre.

1. lépés: Az áramkör építése:

A kör építése
A kör építése

Az Arduino A1 tűjét használjuk a bemeneti adatok beszerzéséhez. Az akkumulátor helyett az Arduino 5V és GND csapjait is használhatja. Csatlakoztassa a következőképpen:

  1. Csatlakoztassa az LDR egyik végét az 5 V -os akkumulátor pozitív pólusához vagy az Arduino 5 V -os érintkezőjéhez.
  2. Csatlakoztassa az LDR másik végét párhuzamosan az A1 tűvel és az akkumulátor negatív pólusával vagy az Arduino GND csapjával.
  3. Használjon ellenállást annak biztosítására, hogy az összes áram ne áramoljon a GND -be, ami azt eredményezné, hogy nem kap elég erős jelet az Arduino A1 terminálján történő érzékeléshez. (10 k ohmos ellenállást használok).

Lépés: Az Arduino programozása:

Az Arduino_Master modul az Arduino soros monitorát használja az adatok küldésére és fogadására. Ennek a modulnak az az előnye, hogy miután beprogramozta Arduino -ját, egyedül megváltoztathatja a python programot a különböző projektekhez, mivel a pythonban való programozás viszonylag egyszerűbb!

Kód:

// Az LDR_1 változó az Arduino A1 tűjének jelölésére szolgál.

int LDR_1 = A1;

// Az A1 -től kapott adatok az LDR_Value_1 fájlban lesznek tárolva.

float LDR_Value_1;

String bemenet;

üres beállítás ()

{pinMode (LDR_1, INPUT); // Az LDR_1 INPUT tűként van beállítva. Sorozat.kezdet (9600); // A kommunikációs átviteli sebesség 9600.

üres hurok ()

{if (Serial.available ()> 0) // ha a bemenet elérhető a soros monitoron, akkor folytassa. {input = Serial.readString (); // Olvassa el a bemenetet karakterláncként. if (input == "DATA") {LDR_Value_1 = analogRead (LDR_1) * (5.0 / 1023.0); // (5 /1023) az átváltási tényező az érték megadásához voltban. Serial.println (LDR_Value_1); // Ha a bemenet megegyezik a "DATA" értékkel, akkor olvassa be az LDR_1 bemenetét, és nyomtassa ki a soros monitoron. } else int i = 0; // ha a bemenet nem egyenlő "DATA" -val, ne tegyen semmit! }

}

3. lépés: A Python programozása az Arduino grafikonjainak grafikonjaihoz:

Minden LDR -nek megvannak a saját ellenállási értékei, és emlékeznünk kell arra, hogy az elektronikus alkatrészekre adott nem minden esetben pontosan azonos. Így először meg kell találnunk a feszültséget különböző fényintenzitásoknál.

Töltse fel a következő programot a python IDE -be, és futtassa:

Tegye ezt különböző fényintenzitások esetén, és a grafikon segítségével vonjon le egy következtetést, például, ha az intenzitás kisebb, mint 1, a helyiség túl sötét. Az 1 és 2 közötti intenzitás esetén a szoba jelentősen sötét. 2 -nél nagyobb intenzitás esetén a fény be van kapcsolva.

# Arduino_Master modul importálása

az Arduino_Master importből *

# adatgyűjtés

adatok = szűrő (ardata (8, squeeze = Hamis, dinamikus = igaz, msg = "DATA", sorok = 30), várt_típus = 'szám', limit = [0, 5])

# korlát 5 -re van állítva, mivel 5V -os akkumulátort használunk.

# Az értékek ábrázolása

Grafikon (adatok, stl = 'dark_background', label = 'Light Intensity')

4. lépés: Végső program a szoba fényintenzitásának ellenőrzésére

Miután a kapott adatokból következtetésre jutott, töltse fel a következő programot, és győződjön meg arról, hogy a következtetés szerint módosítja a korlátokat.

# Arduino_Master modul importálása

az Arduino_Master importból # adatgyűjtés adatok = szűrő (ardata (8, squeeze = Hamis, dinamikus = igaz, msg = "DATA", sorok = 50), várt_típus = 'szám', limit = [0, 5]) # adatok osztályozása következtetés alapján info = az i tartományban (len (adatok)): intenzitás = adat ha az intenzitás 1 és intenzitás = 2: info.append ('Light ON') # A grafikon ábrázolása. compGraph (adatok, információk, stl = 'dark_background', label1 = 'Light Intensity', label2 = 'State')

5. lépés: Eredmény:

Eredmény
Eredmény

A program futása egy -két percet vesz igénybe, mivel 50 pillanatnyi értéket olvas az Arduino -ból.

Ha fel akarja gyorsítani a folyamatot, próbálja meg megváltoztatni az ardata függvény lines paraméterét. De ne feledje, hogy minél kevesebb a megfigyelés, annál rosszabb lesz az adatok minősége.

Megjegyzés: Ha a fenti képen látható teljes grafikon nem látható, nézze meg a Bevezetés szakasz fölötti grafikont.

Ajánlott: