![]() |
A chamada Gaita Electrónica não é mais que outro instrumento electrónico programável, como a CongaConga. Pode muito bem chamar-se Luzofone ou Besourofone A questão é que utilizando apenas 3 componentes do Kit: o sensor de luz, o potenciómetro e o besouro, poderás fazer soar notas musicais… como um Jedi treina o levantamento de pedras: sem tocar nelas! A explicação vem a seguir: |
![]() |
Conexões:
Programação:
Abre o bitbloq e mãos ao código!
Em primeiro lugar, vamos declarar duas variáveis locais, nas quais guardaremos a medida do sensor de luz e a medida do potenciómetro:
Também, uma variable que chamamos velocidade ou frequencia que vai ser o tempo de reprodução de cada nota musical (em milissegundos). Nesta variável guardaremos a medida do potenciómetro (valores entre 0 e 1023) somando sempre 50, para que nunca possa ser zero. Não queremos esperar 0 segundos, certo?
O que faremos será ir reproduzindo no besouro, distintas notas musicais dependendo da quantidade de luz detectada pelo sensor de luz. Lembra-te que o sensor de luz devolverá valores entre 0 e 500 (0 se não receber luz e 500 se receber muita luz). Portanto, iremos fazendo soar notas, nestes intervalos de valores:
(0 , 50] = DO (50 , 100] = RE (100, 200] = MI (200, 300] = FA (300, 400] = SOL (300, 400] = LA |
![]() |
Por exemplo, se taparmos bem o sensor com a mão e este apresentar valores pequeninos (entre 0 e 50 inclusive)… soará um DO. Isto é programado assim:
Se o sensor medir valores entre 50 e 100, soará um RE… e assim por diante, em todas as notas até ao LA, quando medir valores mais altos entre 400 e 500.
O programa completo fica assim:
PROFISSIONAL ROBONAUTA: Optimizando o código
O programa anterior compila e funciona, mas… não está optimizado. Podem ser retirados alguns blocos para torná-lo mais curto e eficiente. Vejamos: o programa anterior faz uma comparação para cada intervalo de valores e mesmo que a primeira opção seja a correcta, o cérebro electrónico continua a testar o resto das opções uma a uma… Que trabalheira! Além disso, já sabemos que o sensor de luz nunca nos devolverá valores menores que zero, nem maiores que 500… Então vamos resumir tudo um pouco:
A primeira opção a comprovar é somente menor que 50. Como já deves saber, pressionado a estrela deste bloco, é possível adicionar a opção senão…se (em inglês else…if). Vamos usá-la:
Repara que se a primeira opção (menor que 50) for a certa, a placa cérebro tocará a nota DO e deixará de comparar mais intervalos nesta passagem em ciclo, pelo programa. Enquanto que, se a opção for falsa (ou seja, temos um valor maior que 50) apenas será necessário ir até onde for suficiente: é menor que 100? Se for falso então é menor que 200? Se tudo o anterior for falso… é menor que 300?… Fica assim o programa reduzido:
Tutorial vídeo:
Ficaste esclarecido como se programa? Não te preocupes se tiveres dúvidas. Vê este vídeo: