-
O conversor digital-analógico
-
é o contrário do conversor
analógico-digital, ou seja,
-
se eu vou, eu
tenho que voltar.
-
O conversor digital-analógico
vai, agora, exportar o sinal
-
de dentro do processador ESP32
para o ambiente externo, ou seja,
-
ele vai sair de digital
e vai se tornar analógico.
-
Para isso, eu preciso tornar esse
sinal compatível com os humanos,
-
já que nós só entendemos
sinais analógicos.
-
Vamos mostrar para você, aqui,
agora, por meio de um gráfico,
-
como seria esse processo.
-
Partindo desse gráfico onde nós
temos o sinal quantizado em 6 bits,
-
onde nós temos os pontos verdes
ou as amplitudes quantizadas
-
e os pontos vermelhos são
as amplitudes originais.
-
E quando eu não tenho
o vermelho junto com o verde
-
significa que eles bateram.
-
Então, eu tenho aqui o vermelho
e o verde no mesmo ponto,
-
então não dá
para ver o vermelho,
-
aqui também, eu tenho o vermelho
e o verde no mesmo ponto,
-
não dá para ver o vermelho.
-
Então, o que me importa,
aqui, são os verdes mesmo.
-
E aqui mostra
uma diferencinha,
-
uma espécie de sombra
entre vermelho e verde,
-
onde houve um erro
de quantização.
-
Pois bem, esse sinal,
-
se você imaginar aqui
uma ligação entre os pontos,
-
dá para entender que vai
ser uma senoide, certo?
-
Uma senoide vem do seno.
-
E o ideal é que nós cheguemos
em uma senoide lisa como essa aqui,
-
com todos os pontos, toda
arredondada, bonitinha e perfeita,
-
só que isso não vai ser possível,
jamais vai ser possível,
-
porque, para eu guardar
todos os pontos,
-
eu vou ter uma memória
infinitamente grande.
-
Por isso que eu
faço escolhas
-
na hora de fazer o processo
de digitalização
-
para, agora, eu poder
fazer a reconstituição.
-
Ou seja, o sinal que você
vai ter agora
-
é algo muito
parecido com esse.
-
E, agora, eu vou mostrar
por meio de um hands-on.
-
Você acabou de ver
que o processo de volta
-
do conversor analógico-digital,
ou seja, do digital para analógico,
-
é bem mais simples de entender,
porque eu só preciso, agora,
-
reconstituir o sinal no período
do tempo, ou no domínio do tempo.
-
Cada amostra será resgatada
na respectiva posição de memória
-
e colocada à disposição
lá no pino de saída.
-
O ESP32 só tem 2 pinos
que dão para trabalhar
-
como conversor
digital-analógico.
-
Por que somente 2?
-
Ao passo que, no outro, eu
tinha 10 entradas disponíveis,
-
ou seja, o conversor de analógico
a digital tem 10 entradas,
-
o do digital para analógico
só tem 2 saídas.
-
É porque a quantidade,
por estatística,
-
a quantidade de sensores
analógicos
-
é muito maior do que
as saídas analógicas.
-
A saída analógica, basicamente,
é som e áudio, então 2 canais
-
ou 2 saídas de digital para
analógico já são suficientes
-
para um pequeno microcontrolador
como o ESP32.
-
Agora, para entrar,
eu preciso de várias,
-
porque, a partir dali, eu faço
várias coletas de informações,
-
ou seja, de analógico para digital.
-
Vamos ver agora
no hands-on
-
como fica o conversor
de digital para analógico.
-
Esse código tem
como saída o pino 25,
-
pelo material você vai ver
que o pino 25 é uma das 2 saídas
-
de digital para analógico
que é o ESP32 oferece.
-
Também estou definindo,
aqui, uma variável
-
com o número
de amostras de 100,
-
você já vai entender
o que significa,
-
e a frequência 1.
-
E coloquei aqui também
um vetor chamado "senoide"
-
com o número de amostras.
-
Ora, a ideia aqui é simular
um sinal analógico
-
sendo exportado para
o pino 25, como eu falei.
-
Então, eu não estou lendo
um sensor, eu estou exportando.
-
Também, eu não tenho
na memória guardada,
-
porque isso aqui
é um simulador,
-
eu não tenho as variáveis
com as amostras,
-
sendo elas quantizadas
ou codificadas,
-
então o que eu
vou fazer?
-
Eu vou criar aqui uma senoide
em tempo real,
-
onde eu coloco a função
matemática "sin", de seno,
-
coloco aqui a função 2π t, que é
a equação de uma senoide,
-
dividido pelo número de amostras,
mais 1 para deixar dentro da escala
-
de 0 a 255.
-
E aí, eu coloco 200,
porque a amplitude.
-
Eu coloquei uma amplitude
bem grande aqui
-
para eu poder mostrar para
vocês aqui no monitor serial.
-
Conclusão: esse vetor
que está sendo carregado
-
por vários valores correspondentes
a uma senoide vai ser escrito
-
lá no portal de digital
para analógico
-
por meio desse comandinho
aqui, olha, o "dacWrite".
-
Então, se eu colocar
um equipamento nesse pino 25
-
que é capaz de entender o sinal
analógico, como um osciloscópio,
-
eu vou ver uma senoide
subindo e descendo, ok?
-
E aí, eu simplesmente,
aqui, estou, na sequência,
-
imprimindo os valores dessa
senoide para eu acompanhar aqui,
-
e um micro delay, aqui, para ele
ficar girando rapidamente
-
e fazendo essa senoide
subir e descer.
-
Então, portanto, na hora
que eu der o play,
-
você vai ver que esses sinais
vão subindo e descendo,
-
subindo e descendo, e a senoide
vai ser impressa aqui, olha,
-
quando eu clicar nesse botão
aqui que tem um gráfico.
-
E, assim, eu consigo simular,
para você, como seria a saída.
-
É interessante notar
que o simulador
-
consegue imprimir o que está
dentro do nosso conversor
-
de digital para analógico,
então você vai ver, de fato,
-
a senoide sendo reconstituída
por infinitos pontos,
-
porém ela está ligando
os pontos que eu tenho.
-
Então, se eu faço
uma amostra de 100,
-
aliás, desculpa, se eu faço
uma senoide de 100 amostras,
-
ele vai ligar essas 100 amostras
quando der esse comandinho aqui,
-
reconstituindo a senoide.
-
Se eu coloco
menos amostras,
-
ele vai fazer uma senoide
meio quadrada,
-
meio com forma
de triângulo.
-
Vamos ver como funciona.
-
Dando o play aqui, eu tenho lá
as amostras subindo e descendo
-
e, aqui, a senoide
sendo reproduzida.
-
Então, isso que você está vendo,
esse sobe e desce aqui,
-
é contínuo no tempo
graças a própria senoide,
-
ao próprio monitor
serial, desculpa,
-
que está representando,
para nós, um domínio do tempo,
-
Só que o interessante é que, assim,
ele não tem infinitos pontos,
-
ele foi gerado com 100, mas
quando ele é escrito lá fora
-
pelo comando aqui da linha 26,
ele passa a ter infinitos valores.
-
Mas se eu desse um zoom
aqui, não é possível,
-
porque o monitor serial
não tem esse recurso.
-
mas se eu desse
um zoom aqui,
-
eu ia ver uma senoide
mais "triangulozada",
-
não existe esse termo,
mas eu ia ver uma senoide
-
com menos definição,
porque são só 100 pontos.
-
Então você viu que o ESP32 é
um dispositivo muito versátil,
-
ele tem várias entradas para vários
sensores, e apenas 2 saídas,
-
porque nós, humanos, não
temos tantos sentidos distintos
-
para entender
um sinal analógico.
-
Basicamente, a gente
tem a visão e o tato.
-
A visão para ver a luz
-
e o tato para sentir
a temperatura ou a vibração.
-
A umidade também
vem pelo tato.
-
Esses dois sentidos humanos
já são cobertos vastamente
-
por duas saídas
que o ESP32 oferece.
-
O importante é que você
está vendo aqui
-
todo o processo
interno de um chip
-
que converte o sinal analógico
primeiro, passa para digital,
-
guarda nas suas
arquiteturas internas
-
e, depois, ele desfaz esse processo
voltando para o analógico,
-
porque nós humanos
somos analógicos.