Table des matières:

Traçage de l'intensité lumineuse à l'aide d'Arduino et de la bibliothèque principale Arduino de Python : 5 étapes
Traçage de l'intensité lumineuse à l'aide d'Arduino et de la bibliothèque principale Arduino de Python : 5 étapes

Vidéo: Traçage de l'intensité lumineuse à l'aide d'Arduino et de la bibliothèque principale Arduino de Python : 5 étapes

Vidéo: Traçage de l'intensité lumineuse à l'aide d'Arduino et de la bibliothèque principale Arduino de Python : 5 étapes
Vidéo: High Density 2022 2024, Novembre
Anonim
Traçage de l'intensité lumineuse à l'aide d'Arduino et de la bibliothèque principale Arduino de Python
Traçage de l'intensité lumineuse à l'aide d'Arduino et de la bibliothèque principale Arduino de Python

Arduino étant un outil économique mais très efficace et fonctionnel, le programmer dans Embedded C rend le processus de création de projets fastidieux ! Le module Arduino_Master de Python simplifie cela et nous permet d'effectuer des calculs, de supprimer les valeurs parasites et de tracer un graphique pour une représentation visuelle des données.

Si vous ne connaissez pas encore ce module, installez-le à l'aide de la commande pip install Arduino_Master

Ne vous inquiétez pas si vous ne savez pas comment utiliser ce module, visitez ce lien => Arduino_Master

Cependant, le code de ce projet sera toujours disponible dans cette instructable.

Fournitures

Pour ce projet, vous aurez besoin des éléments suivants:

  1. Un Arduino
  2. Une résistance dépendante de la lumière (LDR) et
  3. Python 3 installé sur votre ordinateur.

Étape 1: Construire votre circuit:

Construire votre circuit
Construire votre circuit

Nous utiliserons la broche A1 d'Arduino pour obtenir les données d'entrée. Vous pouvez également utiliser les broches 5V et GND d'Arduino au lieu de la batterie. Faites la connexion comme suit:

  1. Connectez une extrémité du LDR à la borne positive d'une batterie 5V ou à la broche 5V de l'Arduino.
  2. Connectez l'autre extrémité du LDR en parallèle à la broche A1 et à la borne négative de la batterie ou à la broche GND d'Arduino.
  3. Utilisez une résistance pour vous assurer que tout le courant ne circule pas vers le GND, ce qui vous empêcherait d'obtenir un signal suffisamment fort pour être détecté à la borne A1 de l'Arduino. (J'utilise une résistance de 10k ohms).

Étape 2: Programmation de votre Arduino:

Le module Arduino_Master utilise le moniteur série de l'Arduino pour envoyer et recevoir des données. L'avantage d'utiliser ce module est qu'une fois que vous avez programmé votre Arduino, vous pouvez changer le programme python seul pour différents projets puisque la programmation en python est comparativement plus facile !

Code:

// La variable LDR_1 est utilisée pour désigner la broche A1 d'Arduino.

entier LDR_1 = A1;

// Les données reçues de A1 seront stockées dans LDR_Value_1.

float LDR_Value_1;

entrée de chaîne;

void setup()

{ pinMode(LDR_1, INPUT); // LDR_1 est défini comme une broche INPUT. Serial.begin(9600); // Le débit en bauds de la communication est fixé à 9600. }

boucle vide()

{ if(Serial.available()>0) // si une entrée est disponible dans le moniteur série, continuez. { input=Serial.readString(); // Lit l'entrée sous forme de chaîne. if(input=="DATA") { LDR_Value_1=analogRead(LDR_1) * (5.0 / 1023.0); // (5 / 1023) est le facteur de conversion pour obtenir la valeur en Volts. Serial.println(LDR_Value_1); // Si l'entrée est égale à "DONNÉES", alors lisez l'entrée de LDR_1 et imprimez-la sur le moniteur série. } else int i=0; // si l'entrée n'est pas égale à "DATA", ne rien faire ! }

}

Étape 3: Programmation de Python pour représenter graphiquement des données à partir d'Arduino:

Chaque LDR aurait ses propres valeurs de résistance et nous devons nous rappeler que les composants électroniques ne fonctionnent jamais exactement de la même manière. Ainsi, nous devons d'abord trouver la tension à différentes intensités de lumière.

Téléchargez le programme suivant dans votre IDE python et exécutez-le:

Faites cela pour différentes intensités de lumière et en utilisant le graphique, tirez une conclusion, par exemple si l'intensité est inférieure à 1, la pièce est trop sombre. Pour une intensité comprise entre 1 et 2, la pièce est considérablement sombre. Pour une intensité supérieure à 2, la lumière est allumée.

# Importation du module Arduino_Master

à partir de l'importation Arduino_Master *

# la collecte de données

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

# la limite est fixée à 5 puisque nous utilisons une batterie 5V.

# Tracer les valeurs

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

Étape 4: Programme final pour vérifier l'intensité de la lumière dans une pièce

Après être arrivé à une conclusion à partir des données que vous avez obtenues, téléchargez le programme suivant et assurez-vous de modifier les limites selon votre conclusion.

# Importation du module Arduino_Master

depuis Arduino_Master import # collecte de données data=filter(ardata(8, squeeze=False, dynamic=True, msg="DATA", lines=50), expect_type='num', limit=[0, 5]) #classifying data basé sur la conclusion info= pour i dans la plage (len(data)): intensité=données si intensité 1 et intensité=2: info.append('Light ON') # Tracer le graphique. compGraph(data, info, stl='dark_background', label1='Light Intensity', label2='State')

Étape 5: Résultat:

Résultat
Résultat

Le programme prendrait une minute ou deux à exécuter puisque vous lisez 50 valeurs instantanées d'Arduino.

Si vous souhaitez accélérer le processus, essayez de modifier le paramètre lines de la fonction arddata. Mais rappelez-vous que plus les observations sont faibles, moins la qualité des données sera.

Remarque: Si le graphique complet de la photo ci-dessus n'est pas visible, reportez-vous au graphique au-dessus de la section Introduction.

Conseillé: