Taula de continguts:

Traçat d'intensitat de llum mitjançant la biblioteca principal Arduino d'Arduino i Python: 5 passos
Traçat d'intensitat de llum mitjançant la biblioteca principal Arduino d'Arduino i Python: 5 passos

Vídeo: Traçat d'intensitat de llum mitjançant la biblioteca principal Arduino d'Arduino i Python: 5 passos

Vídeo: Traçat d'intensitat de llum mitjançant la biblioteca principal Arduino d'Arduino i Python: 5 passos
Vídeo: Scratch Challenge: 2n seminari web 2024, Juliol
Anonim
Traçat de la intensitat de la llum mitjançant Arduino i la biblioteca mestra Arduino de Python
Traçat de la intensitat de la llum mitjançant Arduino i la biblioteca mestra Arduino de Python

Com que Arduino és una eina econòmica però molt eficient i funcional, programar-lo a Embedded C fa que el procés de creació de projectes sigui tediós. El mòdul Arduino_Master de Python ho simplifica i ens permet realitzar càlculs, eliminar valors d’escombraries i traçar un gràfic per a una representació visual de les dades.

Si encara no coneixeu aquest mòdul, instal·leu-lo mitjançant l'ordre pip install Arduino_Master

No us preocupeu si no sabeu utilitzar aquest mòdul, visiteu aquest enllaç => Arduino_Master

Tanmateix, el codi d’aquest projecte sempre estarà disponible en aquesta instrucció.

Subministraments

Per a aquest projecte, necessitareu el següent:

  1. Un Arduino
  2. Una resistència dependent de la llum (LDR) i
  3. Python 3 instal·lat al vostre ordinador.

Pas 1: construir el vostre circuit:

Construint el vostre circuit
Construint el vostre circuit

Utilitzarem el pin A1 d’Arduino per obtenir dades d’entrada. També podeu utilitzar els pins 5V i GND d’Arduino en lloc de la bateria. Feu la connexió de la següent manera:

  1. Connecteu un extrem del LDR al terminal positiu d’una bateria de 5V o al pin de 5V de l’Arduino.
  2. Connecteu l'altre extrem del LDR en paral·lel al pin A1 i el terminal negatiu de la bateria o el pin GND d'Arduino.
  3. Utilitzeu una resistència per assegurar-vos que tot el corrent no flueix cap al GND, cosa que provocaria que no obtingueu un senyal prou fort com per detectar-lo al terminal A1 de l’Arduino. (Estic fent servir una resistència de 10k ohms).

Pas 2: programació del vostre Arduino:

El mòdul Arduino_Master utilitza el monitor sèrie d'Arduino per enviar i rebre dades. L’avantatge d’utilitzar aquest mòdul és que, un cop heu programat l’Arduino, podeu canviar el programa python sol per a diferents projectes, ja que la programació en python és relativament més senzilla.

Codi:

// La variable LDR_1 s’utilitza per indicar el pin A1 d’Arduino.

int LDR_1 = A1;

// Les dades rebudes d'A1 s'emmagatzemaran a LDR_Value_1.

flotació LDR_Value_1;

Entrada de cadena;

configuració nul·la ()

{pinMode (LDR_1, INPUT); // LDR_1 es defineix com a pin INPUT. Serial.begin (9600); // La velocitat de transmissió de comunicació s'estableix en 9600.}

bucle buit ()

{if (Serial.available ()> 0) // si hi ha alguna entrada disponible al monitor sèrie, procediu. {input = Serial.readString (); // Llegiu l'entrada com una cadena. if (entrada == "DADES") {LDR_Value_1 = analogRead (LDR_1) * (5.0 / 1023.0); // (5/1023) és el factor de conversió per obtenir valor en volts. Serial.println (LDR_Value_1); // Si l'entrada és igual a "DADES", llegiu l'entrada de LDR_1 i imprimiu-la al monitor sèrie. } else int i = 0; // si l'entrada no és igual a "DADES", no feu res! }

}

Pas 3: Programació de Python per gràfic de dades des d'Arduino:

Tots i cadascun dels LDR tindrien els seus propis valors de resistència i hem de recordar que el no als components electrònics sempre és exactament idèntic en funcionament. Per tant, primer hem de trobar el voltatge a diferents intensitats de llum.

Pengeu el programa següent al vostre IDE de python i executeu-lo:

Feu això per a diferents intensitats de llum i, mitjançant el gràfic, traieu una conclusió, per exemple, si la intensitat és inferior a 1, l'habitació és massa fosca. Per a intensitats entre 1 i 2, l'habitació és considerablement fosca. Per a intensitats superiors a 2, la llum està engegada.

# Important el mòdul Arduino_Master

des de la importació Arduino_Master *

# recopilació de dades

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

# Límit establert a 5, ja que estem utilitzant una bateria de 5 V.

# Representar els valors

Gràfic (dades, stl = 'dark_background', label = 'Intensitat de llum')

Pas 4: programa final per comprovar la intensitat de la llum en una habitació

Després d'arribar a una conclusió a partir de les dades que heu obtingut, pengeu el programa següent i assegureu-vos de canviar els límits segons la vostra conclusió.

# Importació del mòdul Arduino_Master

d'importació Arduino_Master # recopilació de dades = filtre (ardata (8, squeeze = False, dynamic = True, msg = "DATA", lines = 50), expected_type = 'num', limit = [0, 5]) #classifying data basat en la conclusió info = per a l’interval (len (dades)): intensitat = dades si intensitat 1 i intensitat = 2: info.append ("Llum encesa") # Representació del gràfic. compGraph (dades, informació, stl = 'dark_background', label1 = 'Intensitat de llum', label2 = 'Estat')

Pas 5: Resultat:

Resultat
Resultat

El programa trigaria un o dos minuts a executar-se ja que esteu llegint 50 valors instantanis d'Arduino.

Si voleu accelerar el procés, proveu de canviar el paràmetre de línies de la funció ardata. Però recordeu que, com menys observacions siguin, menor serà la qualitat de les dades.

Nota: Si el gràfic complet de la imatge anterior no és visible, consulteu el gràfic situat a sobre de la secció Introducció.

Recomanat: