Primeiro protótipo
O desenvolvimento de uma unidade de controle de LED que substituísse a unidade TC420 comecei a considerar mais ou menos há um ano atrás. A razão foi parâmetros insuficientes da unidade TC420, principalmente a baixa resolução do PWM (somente 101 níveis), que evita transição suave das intensidades da luz. Então com uma idéia do que a unidade deveria fazer e motivado por algumas pessoas comecei a desenvolver.
Por falta de tempo me dedicava ao desenvolvimento principalmente no meu trajeto de trem para o trabalho. Primeiro comecei a pesquisar um MCU adequado que fosse capaz do controle de LED e também permitisse uma comunicação. Escolhi o ESP32 que tem um periférico PWM designado justamente para o controle de LED. Além disso tem o BLE (Bluetooth + Low Energy) e WiFi. Queria evitar a comunicação através do cabo.
Maravilha... Nunca tinha trabalhado com o ESP32. Tive que estudar como funciona. O MCU se programa pela linguagem C. Ele usa o sistema FreeRTOS que também tive que aprender. No lado do computador tive que aprender como escrever aplicativos no Windows 10 usando a linguagem C#. E ainda mais um desafio: compreender o BLE no lado do MCU e no do Windows.
Comecei a programação no final do verão de 2018. No começo de maio de 2019 tinha o primeiro protótipo capaz de uma geração PWM com a frequência de 600 Hz para quatro canais com a resolução mais do que 0,001 %. Os cálculos são feitos nos tipos integer de 64 bits. Os canais se atualizam com a frequência de 100 Hz, quer dizer 4 vezes mais rápido do que o olho humano. O controle é através de um aplicativo UWP no Windows 10 conectado pelo BLE. Por enquanto o aplicativo permite adicionar e remover uma unidade, ligar e desligar, ajustar a hora e monitoramento. A tabela está preprogramada.
Nos últimos dias criei um hardware simples para fazer um teste de um canal nos LEDs. A tabela preprogramada foi:
Hora | PWM | ||
---|---|---|---|
13:00:00 | 0 % | ||
13:00:10 | 13:00:40 | 0 % | 2 % |
13:00:40 | 13:01:10 | 2 % | 10 % |
13:01:10 | 13:02:30 | 10 % | 0 % |
13:02:30 | 13:04:00 | 0 % | 100 % |
13:04:00 | 13:05:00 | 100 % | 0 % |
13:05:10 | 50 % |
O teste foi filmado com uma luminária no aquário. Para facilitar a comparação da intensidade da luz com o valor atual PWM pus o celular com o aplicacativo em execução em frente ao aquário. O aplicativo no PC é o mesmo. Uma vantagem do aplicativo UWP: um código, várias plataformas…