Índice:

Plotagem de intensidade de luz usando Arduino e a biblioteca mestre de Arduino do Python: 5 etapas
Plotagem de intensidade de luz usando Arduino e a biblioteca mestre de Arduino do Python: 5 etapas

Vídeo: Plotagem de intensidade de luz usando Arduino e a biblioteca mestre de Arduino do Python: 5 etapas

Vídeo: Plotagem de intensidade de luz usando Arduino e a biblioteca mestre de Arduino do Python: 5 etapas
Vídeo: MUITO CUIDADOS POIS ELES IMITAM TUDO 2024, Novembro
Anonim
Plotagem de intensidade de luz usando Arduino e a biblioteca mestre de Arduino do Python
Plotagem de intensidade de luz usando Arduino e a biblioteca mestre de Arduino do Python

Arduino sendo uma ferramenta econômica, mas altamente eficiente e funcional, programá-lo em Embedded C torna o processo de fazer projetos tedioso! O módulo Arduino_Master do Python simplifica isso e nos permite realizar cálculos, remover valores de lixo e traçar um gráfico para uma representação visual dos dados.

Se você ainda não conhece este módulo, instale-o usando o comando pip install Arduino_Master

Não se preocupe se você não sabe como usar este módulo, visite este link => Arduino_Master

No entanto, o código para este projeto estará sempre disponível neste instrutível.

Suprimentos

Para este projeto, você precisará do seguinte:

  1. Um Arduino
  2. Um Resistor Dependente de Luz (LDR) e
  3. Python 3 instalado em seu computador.

Etapa 1: Construindo Seu Circuito:

Construindo Seu Circuito
Construindo Seu Circuito

Estaremos usando o pino A1 do Arduino para obter dados de entrada. Você também pode usar os pinos 5V e GND do Arduino em vez da bateria. Faça a conexão da seguinte maneira:

  1. Conecte uma extremidade do LDR ao terminal positivo de uma bateria de 5 V ou ao pino de 5 V do Arduino.
  2. Conecte a outra extremidade do LDR em paralelo ao pino A1 e terminal negativo da bateria ou pino GND do Arduino.
  3. Use um resistor para garantir que toda a corrente não flua para o GND, o que resultaria em não obter um sinal forte o suficiente para detectar no terminal A1 do Arduino. (Estou usando um resistor de 10k ohms).

Etapa 2: Programando Seu Arduino:

O módulo Arduino_Master usa o Serial Monitor do Arduino para enviar e receber dados. A vantagem de usar este módulo é que, depois de programar seu Arduino, você pode alterar o programa python sozinho para diferentes projetos, uma vez que programar em python é comparativamente mais fácil!

Código:

// A variável LDR_1 é usada para denotar o pino A1 do Arduino.

int LDR_1 = A1;

// Os dados recebidos de A1 serão armazenados em LDR_Value_1.

float LDR_Value_1;

Entrada de string;

void setup ()

{pinMode (LDR_1, INPUT); // LDR_1 é definido como um pino INPUT. Serial.begin (9600); // A taxa de transmissão de comunicação é definida em 9600.}

void loop ()

{if (Serial.available ()> 0) // se alguma entrada estiver disponível no monitor serial, prossiga. {input = Serial.readString (); // Leia a entrada como uma string. if (input == "DATA") {LDR_Value_1 = analogRead (LDR_1) * (5.0 / 1023.0); // (5/1023) é o fator de conversão para obter o valor em Volts. Serial.println (LDR_Value_1); // Se a entrada for igual a "DATA", então leia a entrada de LDR_1 e imprima no Monitor Serial. } else int i = 0; // se a entrada não for igual a "DATA", não faça nada! }

}

Etapa 3: Programar Python para representar graficamente dados do Arduino:

Todo e qualquer LDR teria seus próprios valores de resistência e temos que lembrar que nenhum componente eletrônico é exatamente idêntico em operação. Portanto, primeiro temos que encontrar a voltagem em diferentes intensidades de luz.

Carregue o seguinte programa em seu IDE python e execute-o:

Faça isso para diferentes intensidades de luz e, usando o gráfico, tire uma conclusão, digamos, por exemplo, se a intensidade for menor que 1, a sala está muito escura. Para intensidades entre 1 e 2, a sala está consideravelmente escura. Para intensidade superior a 2, a luz é ligada.

# Importing Arduino_Master module

de importação Arduino_Master *

# coletando dados

dados = filtro (ardata (8, compressão = Falso, dinâmico = Verdadeiro, msg = "DATA", linhas = 30), tipo_esperado = 'num', limite = [0, 5])

# limite é definido como 5, pois estamos usando uma bateria de 5V.

# Traçando os valores

Gráfico (dados, stl = 'dark_background', label = 'Light Intensity')

Etapa 4: Programa final para verificar a intensidade da luz em uma sala

Depois de chegar a uma conclusão a partir dos dados obtidos, carregue o programa a seguir e certifique-se de alterar os limites de acordo com sua conclusão.

# Importing Arduino_Master module

from Arduino_Master import # collection data = filter (ardata (8, squeeze = False, dynamic = True, msg = "DATA", lines = 50), expect_type = 'num', limit = [0, 5]) #classifying data com base na conclusão info = para i no intervalo (len (dados)): intensidade = dados se intensidade 1 e intensidade = 2: info.append ('Light ON') # Traçando o gráfico. compGraph (data, info, stl = 'dark_background', label1 = 'Light Intensity', label2 = 'State')

Etapa 5: Resultado:

Resultado
Resultado

O programa levaria um ou dois minutos para ser executado, pois você está lendo 50 valores instantâneos do Arduino.

Se você deseja acelerar o processo, tente alterar o parâmetro de linhas da função ardata. Mas lembre-se de que quanto menores forem as observações, menor será a qualidade dos dados.

Nota: Se o gráfico completo na foto acima não estiver visível, consulte o gráfico acima da seção Introdução.

Recomendado: