Satura rādītājs:

Gaismas intensitātes grafiks, izmantojot Arduino un Python Arduino galveno bibliotēku: 5 soļi
Gaismas intensitātes grafiks, izmantojot Arduino un Python Arduino galveno bibliotēku: 5 soļi

Video: Gaismas intensitātes grafiks, izmantojot Arduino un Python Arduino galveno bibliotēku: 5 soļi

Video: Gaismas intensitātes grafiks, izmantojot Arduino un Python Arduino galveno bibliotēku: 5 soļi
Video: CS50 2013 - Week 9 2024, Novembris
Anonim
Gaismas intensitātes grafiks, izmantojot Arduino un Python Arduino galveno bibliotēku
Gaismas intensitātes grafiks, izmantojot Arduino un Python Arduino galveno bibliotēku

Tā kā Arduino ir ekonomisks, bet ļoti efektīvs un funkcionāls rīks, tā programmēšana iegultajā C padara projektu veidošanas procesu garlaicīgu! Python Arduino_Master modulis to vienkāršo un ļauj veikt aprēķinus, noņemt atkritumu vērtības un uzzīmēt diagrammu datu vizuālai attēlošanai.

Ja jūs vēl nezināt par šo moduli, instalējiet to, izmantojot komandu pip install Arduino_Master

Neuztraucieties, ja nezināt, kā izmantot šo moduli, apmeklējiet šo saiti => Arduino_Master

Tomēr šī projekta kods vienmēr būs pieejams šajā pamācībā.

Piegādes

Šim projektam jums būs nepieciešams:

  1. Arduino
  2. No gaismas atkarīgs rezistors (LDR) un
  3. Python 3 ir instalēts jūsu datorā.

1. darbība: ķēdes izveide:

Jūsu ķēdes veidošana
Jūsu ķēdes veidošana

Ievades datu iegūšanai mēs izmantosim Arduino tapu A1. Akumulatora vietā varat izmantot arī Arduino 5V un GND tapas. Izveidojiet savienojumu šādi:

  1. Pievienojiet vienu LDR galu 5V akumulatora pozitīvajam spailim vai Arduino 5V tapai.
  2. Pievienojiet otru LDR galu paralēli A1 tapai un akumulatora negatīvajam spailim vai Arduino GND tapai.
  3. Izmantojiet rezistoru, lai pārliecinātos, ka visa strāva neplūst GND, kā rezultātā jūs nesaņemat pietiekami spēcīgu signālu, lai uztvertu Arduino A1 termināli. (Es izmantoju 10k omu rezistoru).

2. solis: Arduino programmēšana:

Modulis Arduino_Master datu nosūtīšanai un saņemšanai izmanto Arduino sērijas monitoru. Šī moduļa izmantošanas priekšrocība ir tāda, ka, tiklīdz esat ieprogrammējis savu Arduino, jūs varat mainīt tikai python programmu dažādiem projektiem, jo programmēšana python ir salīdzinoši vienkāršāka!

Kods:

// LDR_1 mainīgais tiek izmantots, lai apzīmētu Arduino tapu A1.

int LDR_1 = A1;

// No A1 saņemtie dati tiks saglabāti LDR_Value_1.

pludiņš LDR_Value_1;

Stīgu ievade;

anulēts iestatījums ()

{pinMode (LDR_1, INPUT); // LDR_1 ir iestatīts kā INPUT pin. Sērijas sākums (9600); // Sakaru bitu pārraides ātrums ir iestatīts uz 9600.}

tukša cilpa ()

{if (Serial.available ()> 0) // ja sērijveida monitorā ir pieejama kāda ievade, tad turpiniet. {input = Serial.readString (); // Nolasiet ievadi kā virkni. ja (ievade == "DATI") {LDR_Value_1 = analogRead (LDR_1) * (5.0 / 1023,0); // (5/1023) ir konversijas koeficients, lai iegūtu vērtību voltos. Serial.println (LDR_Value_1); // Ja ievade ir vienāda ar "DATA", tad nolasiet ievadi no LDR_1 un izdrukājiet to seriālajā monitorā. } cits int i = 0; // ja ievade nav vienāda ar "DATA", nedariet neko! }

}

3. darbība: Python programmēšana, lai grafikētu datus no Arduino:

Katram LDR būtu savas pretestības vērtības, un mums jāatceras, ka nē elektroniskajiem komponentiem nekad nav pilnīgi identiski. Tādējādi vispirms mums jāatrod spriegums dažādās gaismas intensitātēs.

Augšupielādējiet šo programmu savā python IDE un palaidiet to:

Dariet to dažādām gaismas intensitātēm un, izmantojot grafiku, izdariet secinājumu, piemēram, ja intensitāte ir mazāka par 1, telpa ir pārāk tumša. Ja intensitāte ir no 1 līdz 2, telpa ir ievērojami tumša. Ja intensitāte ir lielāka par 2, gaisma tiek ieslēgta.

# Arduino_Master moduļa importēšana

no Arduino_Master importa *

# datu vākšana

dati = filtrs (ardata (8, saspiest = nepatiesa, dinamiska = patiesa, msg = "DATA", rindas = 30), paredzamais_tips = 'numurs', limits = [0, 5])

# ierobežojums ir iestatīts uz 5, jo mēs izmantojam 5V akumulatoru.

# Vērtību uzzīmēšana

Diagramma (dati, stl = 'dark_background', label = 'Light Intensity')

4. solis: Noslēguma programma, lai pārbaudītu gaismas intensitāti telpā

Kad esat secinājis no iegūtajiem datiem, augšupielādējiet šo programmu un noteikti mainiet ierobežojumus atbilstoši savam secinājumam.

# Arduino_Master moduļa importēšana

no Arduino_Master import # datu datu vākšana = filtrs (ardata (8, squeeze = False, dynamic = True, msg = "DATA", lines = 50), paredzamais_tips = 'numurs', limits = [0, 5]) # datu klasificēšana pamatojoties uz secinājumu info = i diapazonā (len (dati)): intensitāte = dati ja intensitāte 1 un intensitāte = 2: info.append ('Light ON') # Grafika uzzīmēšana. compGraph (dati, informācija, stl = 'dark_background', label1 = 'Light Intensity', label2 = 'State')

5. darbība. Rezultāts:

Rezultāts
Rezultāts

Programmas palaišana prasītu vienu vai divas minūtes, jo jūs lasāt 50 momentānās vērtības no Arduino.

Ja vēlaties paātrināt procesu, mēģiniet mainīt ardata funkcijas līniju parametru. Bet atcerieties, ka, jo mazāk novērojumu, jo zemāka būs datu kvalitāte.

Piezīme: Ja iepriekš redzamajā attēlā nav redzams viss grafiks, skatiet diagrammu virs sadaļas Ievads.

Ieteicams: