Esta não é uma aula propriamente dita. Logo à partida porque não tenho servos suficientes para usar numa turma de 20 alunos. Como pretendo, no entanto, começar a trabalhar em projeto, é natural que o controlo de servos surja inevitavelmente. Por essa razão, justifica-se a exploração deste componente.
O servo motor é um tipo de motor que não roda em círculo, mas que se move para determinadas posições e aí permanece até nova ordem, mesmo que esteja a sujeito a uma força com direção contrária. A capacidade do servo motor manter a sua posição em função da força externa aplicada, é medida através do torque.
Há servo motores que têm um grau de liberdade de 360º, outros têm de 180º e há ainda os que giram apenas com um ângulo máximo de 90º. Os de 180º são os mais vulgares e será com um desses que farei as minhas experiências (na verdade, o meu motor chega perto dos 180º sem fazer exatamente este ângulo).
Os fios de conexão dos servo motores são três e a sua identificação depende dos fabricantes. O mais vulgar é ter um fio vermelho que se liga à alimentação +5V, um preto que se liga ao GND (0V) e um terceiro amarelo ou branco que ligará ao pino de controlo.
E como se controla um servo motor? Através de um sinal no formato PWM (Pulse Width Modulation). Este sinal é formado por uma série de impulsos 0 V ou 5 V com um determinado padrão temporal. Uma alteração do sinal na largura deste sinal, será responsável por alterar a posição do eixo.
Em Scratch temos a vida facilitada porque o controlo do motor pode ser feita através das saídas 4, 7 e 8 que estão preparadas para controlar este tipo de dispositivos.
Para isso, temos disponíveis os seguintes comandos:
O primeiro comando é claro; o segundo faz girar o motor para a posição especificada pelo ângulo (e não o faz girar de acordo com o ângulo indicado, são coisas diferentes); o terceiro suponho que só faça sentido se estivermos a trabalhar com servo motores que girem segundo 360º - no meu caso, que trabalhei com um motor de 180º, este comando não alterava em nada o seu funcionamento.
A apresentação que se segue foi mais um exercício pessoal. O último exercício proposto seria demasiado complexo para apresentar aos alunos com que trabalho. Partilho também que por vezes, de forma aleatória e sem que eu perceba qual a origem, o programa pára nos 90º ou o LED mantém-se a piscar de forma irregular depois da função terminada. Nestas situações, tenho de reiniciar o programa (clicando na bandeirinha) para que tudo volte ao normal.
Deixo então a minha proposta de trabalho para controlo de servo motores recorrendo ao Scratch...
















