Na última aula falei de alguns princípios básicos de programação, para então apresentar o ambiente de desenvolvimento do Arduino.
Levei meu kit, comprado na SparkFun e fizemos algumas demonstrações. O Marquito também levou o kit Arduino dele, e rapidamente fez um programinha que permitia controlar o movimento de um motor servo usando um potenciômetro, e simultaneamente desenhar um gráfico na tela do computador, usando Processing. O Processing é uma linguagem de programação especialmente desenvolvida pra trabalhar com imagens, gráficos, animações etc. O ambiente de programação do Arduino, por sua vez, tem muita semelhança com o Processing, e ambos conversam facilmente.
Neste domingo eu estava tentando reproduzir uma função que o Marquito havia usado na aula, que faz o mapeamento de valores entre dois componentes do circuito. Usei um sensor de pressão, que tem valores máximos na faixa de 900, e fiz com que ele alterasse simultaneamente a velocidade do giro de um motor e a intensidade do brilho de um LED. Tanto o motor quanto o LED trabalham com valor máximo de 255. A função MAP faz exatamente a correspondência entre os valores mínimo e máximo desses componentes.
A primeira versão do programa que eu fiz não usava essa função MAP. Quando o valor de pressão ia acima de 255, eu dizia pra ele considerar o valor como sendo 255. Assim evitava problemas com o motor ou com o LED. Mas dessa forma, fazendo pouca pressão eu já atingia o limite de 255, uma vez que a escala do sensor de pressão ia de 0 a um valor próximo a 900. Na versão recente, usando a função MAP, consegui um resultado melhor.
Fiz um vídeo com o resultado: