Sommario:

Grafico dell'intensità della luce utilizzando Arduino e la libreria master Arduino di Python: 5 passaggi
Grafico dell'intensità della luce utilizzando Arduino e la libreria master Arduino di Python: 5 passaggi

Video: Grafico dell'intensità della luce utilizzando Arduino e la libreria master Arduino di Python: 5 passaggi

Video: Grafico dell'intensità della luce utilizzando Arduino e la libreria master Arduino di Python: 5 passaggi
Video: SMETTILA ADESSO di studiare questi linguaggi di programmazione. 2024, Dicembre
Anonim
Grafico dell'intensità della luce utilizzando Arduino e la libreria master Arduino di Python
Grafico dell'intensità della luce utilizzando Arduino e la libreria master Arduino di Python

Essendo Arduino uno strumento economico ma altamente efficiente e funzionale, programmarlo in Embedded C rende il processo di realizzazione dei progetti noioso! Il modulo Arduino_Master di Python semplifica questo e ci consente di eseguire calcoli, rimuovere valori spazzatura e tracciare un grafico per una rappresentazione visiva dei dati.

Se non conosci ancora questo modulo, installalo usando il comando pip install Arduino_Master

Non preoccuparti se non sai come usare questo modulo, visita questo link => Arduino_Master

Tuttavia, il codice per questo progetto sarà sempre disponibile in questa istruzione.

Forniture

Per questo progetto, avrai bisogno di quanto segue:

  1. Un Arduino
  2. Un resistore dipendente dalla luce (LDR) e
  3. Python 3 installato sul tuo computer.

Passaggio 1: costruire il tuo circuito:

Costruisci il tuo circuito
Costruisci il tuo circuito

Useremo il pin A1 di Arduino per ottenere i dati di input. Puoi anche utilizzare i pin 5V e GND di Arduino invece della batteria. Effettuare il collegamento come segue:

  1. Collega un'estremità dell'LDR al terminale positivo di una batteria da 5V o al pin da 5V dell'Arduino.
  2. Collegare l'altra estremità dell'LDR in parallelo al pin A1 e al terminale negativo della batteria o al pin GND di Arduino.
  3. Usa un resistore per assicurarti che tutta la corrente non fluisca verso il GND, il che comporterebbe la mancata ricezione di un segnale abbastanza forte da rilevare al terminale A1 dell'Arduino. (Sto usando un resistore di 10k ohm).

Passaggio 2: programmazione del tuo Arduino:

Il modulo Arduino_Master utilizza Serial Monitor di Arduino per inviare e ricevere dati. Il vantaggio dell'utilizzo di questo modulo è che, una volta programmato Arduino, è possibile modificare il programma Python da solo per diversi progetti poiché la programmazione in Python è relativamente più semplice!

Codice:

// La variabile LDR_1 viene utilizzata per indicare il pin A1 di Arduino.

int LDR_1 = A1;

// I dati ricevuti da A1 verranno archiviati in LDR_Value_1.

float LDR_Value_1;

Ingresso stringa;

configurazione nulla()

{ pinMode(LDR_1, INPUT); // LDR_1 è impostato come pin INPUT. Serial.begin(9600); // Il baudrate di comunicazione è impostato su 9600. }

ciclo vuoto()

{ if(Serial.available()>0) // se nel monitor seriale è disponibile un input, procedere. { input=Serial.readString(); // Legge l'input come una stringa. if(input=="DATA") { LDR_Value_1=analogRead(LDR_1) * (5.0 / 1023.0); // (5 / 1023) è il fattore di conversione per ottenere il valore in Volt. Serial.println(LDR_Value_1); // Se l'input è uguale a "DATA", leggi l'input da LDR_1 e stampalo sul monitor seriale. } else int i=0; // se l'input non è uguale a "DATA", non fare nulla! }

}

Passaggio 3: programmare Python per rappresentare graficamente i dati da Arduino:

Ogni LDR avrebbe i suoi valori di resistenza e dobbiamo ricordare che i componenti elettronici non sono mai esattamente identici nel funzionamento. Quindi prima dobbiamo trovare la tensione a diverse intensità di luce.

Carica il seguente programma sul tuo IDE Python ed eseguilo:

Fai questo per diverse intensità di luce e usando il grafico trai una conclusione, ad esempio se l'intensità è inferiore a 1, la stanza è troppo buia. Per intensità tra 1 e 2, la stanza è notevolmente buia. Per intensità maggiori di 2 la luce si accende.

# Importazione del modulo Arduino_Master

da importazione Arduino_Master *

# raccolta dati

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

# limite è impostato su 5 poiché stiamo utilizzando una batteria da 5V.

# Tracciare i valori

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

Passaggio 4: programma finale per controllare l'intensità della luce in una stanza

Dopo essere giunto a una conclusione dai dati che hai ottenuto, carica il seguente programma e assicurati di modificare i limiti secondo la tua conclusione.

# Importazione del modulo Arduino_Master

from Arduino_Master import # raccolta dati data=filter(ardata(8, squeeze=False, dynamic=True, msg="DATA", righe=50), tipo_aspettato='num', limit=[0, 5]) #classifying data basato sulla conclusione info= for i in range(len(data)): intensità=data if intensità 1 e intensità=2: info.append('Light ON') # Tracciare il grafico. compGraph(data, info, stl='dark_background', label1='Light Intensity', label2='State')

Passaggio 5: risultato:

Risultato
Risultato

Il programma impiegherebbe un minuto o due per l'esecuzione poiché stai leggendo 50 valori istantanei da Arduino.

Se vuoi velocizzare il processo prova a cambiare il parametro delle righe della funzione ardata. Ma ricorda che minori sono le osservazioni, minore sarebbe la qualità dei dati.

Nota: se il grafico completo nella foto sopra non è visibile, fare riferimento al grafico sopra la sezione Introduzione.

Consigliato: