Índice:

TinyLiDAR para IoT: 3 etapas
TinyLiDAR para IoT: 3 etapas

Vídeo: TinyLiDAR para IoT: 3 etapas

Vídeo: TinyLiDAR para IoT: 3 etapas
Vídeo: tinyLiDAR First Steps 2024, Julho
Anonim
TinyLiDAR para IoT
TinyLiDAR para IoT

Se você olhar ao redor, verá que muitos pequenos dispositivos inteligentes estão sendo usados na vida cotidiana. Eles são normalmente alimentados por bateria e geralmente conectados à Internet (também conhecida como 'nuvem') de alguma forma. Esses são todos os dispositivos que chamamos de 'IoT' e estão rapidamente se tornando um lugar comum no mundo de hoje.

Para engenheiros de sistema IoT, muito esforço de design é gasto na otimização do consumo de energia. A razão para isso é obviamente devido à capacidade limitada disponível nas baterias. Trocar baterias em grandes quantidades em áreas remotas pode ser uma proposta muito cara.

Portanto, este instrutível é tudo sobre como otimizar o poder no tinyLiDAR.

Resumo de TL; DR

Temos um novo modo de medição "Tempo Real" (a partir do firmware 1.4.0) para ajudar a maximizar o tempo de execução da bateria em dispositivos IoT.

Extraindo mais suco das baterias

Intuitivamente, podemos aumentar o tempo de execução simplesmente reduzindo o consumo de energia dos dispositivos IoT. Ok, então isso é óbvio! Mas como você pode fazer isso com eficácia e calcular corretamente o tempo de execução esperado? Vamos descobrir…

Etapa 1: energia pura

Há muitas maneiras de fazer isso, mas preferimos dividir ao básico e converter tudo em energia. A energia elétrica é medida em Joules (símbolo J) e por definição:

Um Joule é a energia dissipada como calor quando uma corrente elétrica de um ampère passa por uma resistência de um ohm por um período de um segundo.

Uma vez que a energia (E) também é tensão (V) x carga (Q), temos:

E = V x Q

Q é Atual (I) x tempo (T):

Q = I x T

Portanto, a energia em Joules pode ser expressa como:

E = V x I x T

onde V é a tensão, I é a corrente em Amps e T é o tempo em segundos.

Vamos supor que temos uma bateria composta por quatro baterias alcalinas AA (LR6) conectadas em série. Isso nos dará uma tensão inicial total de 4 * 1,5v = 6v. O fim da vida útil de uma bateria AA alcalina é de aproximadamente 1,0 V, portanto, a voltagem média seria de cerca de 1,25 V. De acordo com a folha de dados da mfr "A capacidade fornecida depende da carga aplicada, da temperatura de operação e da tensão de corte." Portanto, podemos supor cerca de 2.000 mAhr ou melhor para uma aplicação de baixo consumo, como um dispositivo IoT.

Portanto, podemos calcular que temos 4 células x 1,25 V por célula x 2.000 mAhr * 3600 seg = 36.000 J de energia disponível nesta bateria antes que ela precise ser substituída.

Para fins de cálculos mais simples, também podemos presumir que a eficiência de conversão é de 100% para nosso regulador de sistema e ignorar o consumo de energia do controlador host.

Uma palavra sobre o ciclismo

Não, não é o tipo em que você anda! Existem alguns conceitos técnicos conhecidos como "Power Cycling" e "Sleep Cycling". Ambos podem ser usados para reduzir o consumo de energia, mas há uma diferença entre os dois. O primeiro envolve desligar o dispositivo até que seja necessário e, em seguida, ligá-lo apenas por um curto período de tempo para realizar uma medição etc. Embora este método seja tentador devido à sua corrente zero desligada, há uma desvantagem onde levará algum quantidade não trivial de tempo para reiniciar e queimar energia ao fazer isso.

O segundo conceito envolve apenas manter o dispositivo no modo de hibernação com a esperança de que ele acorde mais rápido, mas você vai queimar uma quantidade finita de corrente enquanto está hibernando. Então, qual é a melhor para usar?

Depende da frequência com que você precisa acordar.

Etapa 2: execute os números

Queremos encontrar a energia total (E) normalizada para 1 segundo para cada cenário listado abaixo.

Caso A: Tc = 1seg; faça uma medição de distância a cada segundo Caso B: Tc = 60seg; faça uma medição de distância a cada minuto. Caso C: Tc = 3600seg; faça uma medição de distância a cada hora.

Para fazer isso, podemos dizer que Tc é o tempo de ciclo para nossas medições, ton o tempo ativo e toff o tempo inativo e reorganizar nossas fórmulas de energia como mostrado aqui:

Imagem
Imagem

Para o tinyLiDAR, o tempo de inicialização é de cerca de 300 ms ou menos e durante esse tempo levará uma média de 12,25 mA durante a operação com uma alimentação regulada de 2,8 V. Portanto, ele consumirá aproximadamente 10,3 mJ de energia para cada inicialização.

A corrente de repouso / repouso para tinyLiDAR é um 3uA ultrabaixo. Isso é muito menor do que a taxa de autodescarga mensal de 0,3% de uma bateria alcalina, portanto, investigaremos usando apenas o método de "ciclo de sono" aqui.

Por que não dispensar o micro e ir diretamente para o sensor VL53?

A resposta para isso não é tão óbvia. Nos primeiros dias do desenvolvimento do smartphone, aprendemos que manter vivo o processador de alta velocidade que consome muita energia para reproduzir mp3 era um método infalível para reduzir a vida útil da bateria. Mesmo naquela época, fizemos todos os esforços possíveis para usar "processadores de aplicativos" de baixo consumo para tarefas periféricas, como tocar música. Não é muito diferente hoje e, na verdade, você poderia dizer que é ainda mais importante à medida que miniaturizamos todos esses dispositivos IoT com cada diminuição da capacidade da bateria. Portanto, usar um processador de aplicativo de ultra-baixo consumo de energia para a única tarefa de controlar o sensor VL53 e fornecer dados prontos para processamento posterior é um recurso definitivo para qualquer aplicativo alimentado por bateria.

Modos de medição tinyLiDAR

Pode não estar claro no manual do usuário neste momento [mas estará em algum momento, pois estamos sempre atualizando nosso manual do usuário:)] - na verdade, existem 3 modos de medição diferentes no tinyLiDAR.

Modo MC

Desde o início do tinyLiDAR, éramos obcecados em tentar obter medições mais rápidas do sensor VL53 ToF. Portanto, otimizamos nosso firmware para obter os dados de streaming mais rápidos e consistentes dele. Isso envolveu a introdução de buffer. Um pouco de armazenamento em buffer é uma coisa boa, pois permite que o controlador do host (ou seja, Arduino) obtenha seus dados de medição em um piscar de olhos e prossiga para coisas mais importantes. Portanto, o armazenamento em buffer é absolutamente necessário e, devido a isso, podemos atingir taxas de streaming superiores a 900 Hz, mesmo no Arduino UNO relativamente lento. Portanto, o tempo de resposta mais rápido será usando o MC do tinyLiDAR ou o modo "contínuo".

BTW, se você tiver uma chance, você deve conectar um cabo serial ao pino de saída TTY no tinyLiDAR e você verá o que este modo MC faz. Ele literalmente faz uma medição o mais rápido possível e, ao fazê-lo, preenche seu buffer I2C com os dados mais recentes absolutos. Infelizmente, como está funcionando em velocidade total, também está queimando a quantidade máxima de energia. Veja abaixo o gráfico atual x tempo deste modo MC.

Imagem
Imagem

Modo SS

O próximo modo é o que chamamos de "SS" para o modo de "passo único". Este é basicamente o mesmo modo de alto desempenho acima, mas em um único loop de stepping. Portanto, você pode obter respostas rápidas do tinyLiDAR, mas os dados serão da amostra anterior, então você terá que fazer duas medições para obter os dados mais recentes. Veja abaixo o gráfico atual x tempo deste modo SS.

Imagem
Imagem

Ambos os modos acima são adequados para a maioria dos usuários, uma vez que são rápidos e fáceis de usar - basta emitir um comando "D" e ler os resultados. Contudo …

Avançando para o mundo da IoT, onde cada mili-Joule conta, temos um novo paradigma.

E é exatamente o oposto do que codificamos no tinyLiDAR! Para o mundo IoT, precisamos de medições únicas em intervalos infrequentes para conservar energia e estender o tempo de execução.

Modo RT

Felizmente, podemos agora dizer que temos uma solução para este cenário a partir do firmware 1.4.0. É chamado de modo "RT" para medições em "tempo real". E basicamente implementa um método de gatilho, espera e leitura. Para usá-lo, você ainda pode apenas emitir o comando "D" para iniciar a medição, mas para este modo RT você deve esperar um período de tempo apropriado para que a medição termine e então ler os resultados. tinyLiDAR vai automaticamente para seu estado quiescente mais baixo de sub 3uA entre as amostras. Na verdade, ainda é simples de usar e ainda mais eficiente em termos de energia agora, pois você só precisa fazer uma medição em vez de duas para obter os dados mais recentes, ou seja, armazenamento em buffer zero.

Veja abaixo o gráfico atual x tempo deste novo modo RT.

Imagem
Imagem

Etapa 3: Medições reais

Usar o modo contínuo MC para medições IoT infrequentes faz pouco sentido, pois só precisamos de medições individuais. Portanto, podemos concentrar nossa atenção nos modos SS e RT. Operar o tinyLiDAR com uma fonte regulada de + 2.8v nos fornece a menor dissipação de energia. Portanto, ao usar as predefinições de alta precisão (200 ms), medimos o seguinte consumo de energia no tinyLiDAR:

SS / modo de etapa única: 31,2 mJ em média em 2 medições

RT / modo em tempo real: 15,5mJ em média em 1 medição

Conectando esses valores acima em nossa fórmula de energia e normalizando para um segundo, podemos encontrar as expectativas de tempo de execução assumindo que a energia de nossa bateria é 36000 J.

Caso A: leitura a cada segundo (faça 2 leituras para obter os dados mais recentes) Tc = 1secTon = 210ms por leitura x 2 leituras Toff = Tc - Ton = 580msIon (média) = 26,5mA por leitura Ioff (média) = 3uA corrente quiescente Vcc = Tensão de alimentação de 2,8 V A energia ativa consumida pela carga em Joules é Eon = Vcc x Íon x Ton = 2,8 V x 26,5 mA * 420 ms = 31,164 mJ A energia inativa consumida pela carga em Joules é Eoff = Vcc x Ioff x Toff = 2,8 V x 3uA x 580ms = 4,872uJ Normalizando para TcE = (Eon + Eoff) / Tc = (31,164mJ + 4,872uJ) / 1 = 31,169mJ ou 31,2mJ por segundo O tempo de execução em segundos é, portanto, a energia total da fonte / energia consumida que é 36000J / 31,2mJ = 1155000 segundos = 320 horas = 13,3 dias

Repetindo esses cálculos, podemos encontrar os tempos de execução para os outros cenários:

Modo SS

Caso A: 2 leituras por segundo. A energia normalizada é 31,2 mJ. Portanto, o tempo de execução é de 13,3 dias.

Caso B: 2 leituras por minuto. A energia normalizada é 528uJ. Portanto, o tempo de execução é de 2,1 anos.

Caso C: 2 leituras por hora. A energia normalizada é 17uJ. O tempo de execução é calculado em >> 10 anos, portanto, o carregamento devido ao tinyLiDAR é insignificante. A bateria, portanto, será limitada apenas por sua vida útil (ou seja, aproximadamente 5 anos)

Modo RT

Caso A: 1 leitura por segundo. A energia normalizada é 15,5mJ. Portanto, o tempo de execução é de 26,8 dias.

Caso B: 1 leitura por minuto. A energia normalizada é 267uJ. Portanto, o tempo de execução é de 4,3 anos.

Caso C: 1 leitura por hora. A energia normalizada é 12,7uJ. O tempo de execução é calculado em >> 10 anos, portanto, o carregamento devido ao tinyLiDAR é insignificante. A bateria, portanto, será limitada apenas por sua vida útil (ou seja, aproximadamente 5 anos)

Portanto, o novo modo de tempo real usando o ciclo de sono é um benefício aqui para estender o tempo de execução nos últimos 4 anos se uma medição for feita a cada minuto, conforme mostrado no Caso B.

Observe que o consumo de energia do controlador host não foi levado em consideração para esta análise e as especificações do pacote de bateria foram conservadoras. Você pode encontrar baterias muito mais potentes conforme desejar para atender às suas necessidades.

Obrigado pela leitura e fique atento, pois forneceremos um exemplo funcional de IoT usando tinyLiDAR em nosso próximo instrutível. Saúde!

Recomendado: