Talaan ng mga Nilalaman:

Light Intensity Plotting Gamit ang Arduino at Python's Arduino Master Library: 5 Mga Hakbang
Light Intensity Plotting Gamit ang Arduino at Python's Arduino Master Library: 5 Mga Hakbang

Video: Light Intensity Plotting Gamit ang Arduino at Python's Arduino Master Library: 5 Mga Hakbang

Video: Light Intensity Plotting Gamit ang Arduino at Python's Arduino Master Library: 5 Mga Hakbang
Video: What is Real-Time Kinematic (RTK) and how does it work? 2024, Nobyembre
Anonim
Banayad na Intensity Plotting Gamit ang Arduino at Python's Arduino Master Library
Banayad na Intensity Plotting Gamit ang Arduino at Python's Arduino Master Library

Ang Arduino ay isang matipid ngunit lubos na mahusay at gumagana na tool, ang pag-program nito sa naka-embed na C ay gumagawa ng proseso ng paggawa ng mga proyekto na nakakapagod! Pinapasimple ito ng Arduino_Master module ng Python at hinahayaan kaming magsagawa ng mga kalkulasyon, alisin ang mga halaga ng basura, at magplano ng isang grap para sa isang visual na representasyon ng data.

Kung hindi mo pa alam ang tungkol sa modyul na ito, i-install ito gamit ang command pip install Arduino_Master

Huwag magalala kung hindi mo alam kung paano gamitin ang modyul na ito, bisitahin ang link na ito => Arduino_Master

Gayunpaman, ang code para sa proyektong ito ay laging magagamit sa itinuturo na ito.

Mga gamit

Para sa proyektong ito, kakailanganin mo ang sumusunod:

  1. Isang Arduino
  2. Isang Light Dependent Resistor (LDR) at
  3. Ang Python 3 na naka-install sa iyong computer.

Hakbang 1: Pagbuo ng Iyong Circuit:

Pagbuo ng Iyong Circuit
Pagbuo ng Iyong Circuit

Gagamitin namin ang pin A1 ng Arduino upang makakuha ng data ng pag-input. Maaari mo ring gamitin ang 5V at GND na mga pin ng Arduino sa halip na ang Baterya. Gawin ang koneksyon tulad ng sumusunod:

  1. Ikonekta ang isang dulo ng LDR sa positibong terminal ng isang 5V na baterya o sa 5V pin ng Arduino.
  2. Ikonekta ang kabilang dulo ng LDR kahanay sa pin A1 at negatibong terminal ng baterya o GND pin ng Arduino.
  3. Gumamit ng isang risistor upang matiyak na ang lahat ng kasalukuyang ay hindi dumadaloy sa GND na magreresulta sa iyo na hindi makakuha ng isang sapat na malakas na signal upang maunawaan sa A1 terminal ng Arduino. (Gumagamit ako ng isang risistor ng 10k ohms).

Hakbang 2: Pag-program ng Iyong Arduino:

Ang module ng Arduino_Master ay gumagamit ng Serial Monitor ng Arduino upang magpadala at tumanggap ng data. Ang bentahe ng paggamit ng modyul na ito ay, kapag na-program mo ang iyong Arduino, mababago mo nang mag-isa ang programa ng sawa para sa iba't ibang mga proyekto dahil ang programa sa sawa ay medyo madali!

Code:

// LDR_1 variable ay ginagamit upang ipahiwatig ang pin A1 ng Arduino.

int LDR_1 = A1;

// Ang natanggap na data mula sa A1 ay itatabi sa LDR_Value_1.

lumutang LDR_Value_1;

Pag-input ng string;

walang bisa ang pag-setup ()

{pinMode (LDR_1, INPUT); // LDR_1 ay itinakda bilang isang INPUT pin. Serial.begin (9600); // Ang baudrate ng komunikasyon ay nakatakda sa 9600.}

walang bisa loop ()

{if (Serial.available ()> 0) // kung mayroong anumang magagamit na input sa serial monitor pagkatapos ay magpatuloy. {input = Serial.readString (); // Basahin ang input bilang isang string. kung (input == "DATA") {LDR_Value_1 = analogRead (LDR_1) * (5.0 / 1023.0); // (5/1023) ay ang factor ng conversion upang makakuha ng halaga sa Volts. Serial.println (LDR_Value_1); // Kung ang input ay katumbas ng "DATA", pagkatapos basahin ang input mula sa LDR_1 at i-print ito sa Serial Monitor. } iba int i = 0; // kung ang input ay hindi katumbas ng "DATA", huwag gumawa! }

}

Hakbang 3: Programing Python upang Mag-grap ng Data Mula sa Arduino:

Ang bawat LDR ay magkakaroon ng sariling mga halaga ng paglaban at dapat nating tandaan na hindi sa mga elektronikong sangkap ay eksaktong eksaktong magkapareho sa pagpapatakbo. Sa gayon muna kailangan nating hanapin ang boltahe sa iba't ibang mga intensidad ng ilaw.

I-upload ang sumusunod na programa sa iyong python IDE at patakbuhin ito:

Gawin ito para sa iba't ibang mga intensidad ng ilaw at paggamit ng grap na gumuhit ng isang konklusyon sabihin halimbawa kung ang kasidhian ay mas mababa sa 1, ang silid ay masyadong madilim. Para sa tindi sa pagitan ng 1 at 2, ang silid ay lubos na madilim. Para sa intensity na higit sa 2, ang ilaw ay nakabukas Sa.

# Pag-import ng module ng Arduino_Master

mula sa Arduino_Master import *

# nangongolekta ng datos

data = filter (ardata (8, pisil = Mali, pabago-bago = Totoo, msg = "DATA", mga linya = 30), inaasahang_type = 'num', limit = [0, 5])

Ang # limit ay nakatakda sa 5 dahil gumagamit kami ng isang 5V na baterya.

# Plotting ang mga halaga

Grap (data, stl = 'dark_background', label = 'Light Intensity')

Hakbang 4: Pangwakas na Programa upang Suriin ang Lakas ng Liwanag sa isang Silid

Pagkatapos makarating sa isang konklusyon mula sa data na nakuha mo, i-upload ang sumusunod na programa at tiyaking baguhin ang mga limitasyon ayon sa iyong konklusyon.

# Pag-import ng module ng Arduino_Master

mula sa Arduino_Master import # pagkolekta ng data ng data = filter (ardata (8, pisilin = Mali, pabago-bago = Totoo, msg = "DATA", mga linya = 50), inaasahang_type = 'num', limit = [0, 5]) #classifying data batay sa konklusyon info = para sa i in range (len (data)): intensity = data kung intensity 1 at intensity = 2: info.append ('Light ON') # Plotting the Graph. compGraph (data, impormasyon, stl = 'dark_background', label1 = 'Light Intensity', label2 = 'State')

Hakbang 5: Resulta:

Resulta
Resulta

Ang programa ay tatagal ng isang minuto o dalawa upang tumakbo dahil nagbabasa ka ng 50 mga agarang halaga mula sa Arduino.

Kung nais mong mapabilis ang proseso subukang baguhin ang mga parameter ng mga linya ng pagpapaandar ng ardata. Ngunit tandaan na mas kaunti ang mga obserbasyon, mas mababa ang magiging kalidad ng data.

Tandaan: Kung ang kumpletong grap sa larawan sa itaas ay hindi nakikita, tingnan ang graph sa itaas ng seksyon ng Panimula.

Inirerekumendang: