Uma espécie de diário de uma professora que começou por explorar as potencialidades do Scratch na programação de arduinos...e que depois foi experimentando novos caminhos com os seus alunos!
Depois das aulas formais já descritas, aos alunos foi proposto que trabalhassem num projeto seu.
Uma vez que o Arduino na Escola está a funcionar "roubando" uma aula por semana à disciplina de Informática, foi este o momento de dividir a turma entre os que não se sentem motivados por este tipo de trabalho, e que por isso avançarão para projetos na área da informática com a supervisão da professora da disciplina, e os que desejam evoluir para um trabalho mais autónomo em arduino. Cerca de metade da turma avançou para o projeto em arduino.
A partir daqui, sairemos da sala de informática e passaremos a trabalhar na oficina da escola, levando como apoio, nesta fase dos trabalhos, um computador portátil.
Um dos primeiros projetos que surgiu, foi o robot guardião, inspirado no robot homónimo proposto no site Computação na Escola.
Material de eletrónica necessário:
1 placa arduino;
1 breadboard;
1 sensor SR04;
2 servo motores SG90;
Fios.
O boneco em si, está à responsabilidade dos alunos envolvidos neste projeto, o Diogo e o Paulo, que o desenvolverão com o apoio da professora de Arquivo, professora Isabel Oliveira.
O SR04 é dos sensores de ultrassons mais comuns para pequenos projetos. Permite a medida de distâncias entre 2 cm e 4 m com um ângulo de sensibilidade de 15º. A análise da respetiva datasheet, deixou-me bastante confiante e achei eu que planear um pequeno trabalho com este sensor, arduíno e S4A ia ser canja. Toda a gente sabe que a ignorância é muito atrevida...
Este sensor tem 4 pinos, dois para a alimentação (Vcc e GND), um para o trigger (o "disparo" de um sinal) e o restante para receber o som refletido (o eco).
O modo de funcionamento é simples: o envio de um impulso de 10 us (10^-6 s) para o pino do Trigger, resulta na emissão por parte do SR04 de um ciclo de 8 impulsos de ultrassons na gama dos 40 kHz. Nesse momento, o SR04 ativa o pino Echo para 5V que só voltará a 0V no momento em que receber o eco do sinal enviado. Eis o esquema temporal:
Sabendo que o som tem uma velocidade média de 340 m/s, é possível medir a distância que o som percorreu entre ter sido emitido e rececionado de novo. A distância ao obstáculo será metade desse valor.
Continhas, então: d(obstáculo) = d(percorrida pelo som)/2
d(obstáculo) = v(som)*tempo(echo)/2
Como vamos medir o tempo do impulso em us e a distância ao obstáculo em cm, há que converter a velocidade do som em cm/us: 340 m/s = 0,034 cm/us.
Assim, d(obstáculo) = 0,017*tempo(echo) , tempo(echo) medido em us; d(obstáculo) medido em cm.
Assim..o que poderia correr mal? Liguei o Trigger ao pin13, o Echo à entrada 2 e...nada!!! Por mais impulsos de 10 us que enviasse, não detetava nada na entrada 2. Uma pesquisa mais atenta relativamente à comunicação entre o arduino e o S4A revelou-me que o S4A interage com o arduino atualizando os estados dos atuadores e dos sensores a cada...75 ms! Valor impossível de conciliar com sinais de 10 us!
A solução passou por alterar o firmware que o arduino disponibiliza. Para isso tive a ajuda de um familiar próximo. A ideia foi alterar o mínimo possível o firmware original. Reservámos para o funcionamento do sensor os pinos D13 e A05. O pino D13 passou a funcionar como entrada e saída, o A05 devolve o valor da distância em cm.
Foi gerado um ciclo, que se repete de meio em meio segundo, em que o pino D13, inicialmente uma saída, envia um impulso de 10us. Passa então a ser definido como entrada e lê a duração do impulso do pino Echo. Este tempo é multiplicado pelo valor de 0,017, como explicado acima, e enviado para o pino A05.
NOTA IMPORTANTE: O firmware disponibilizado só funciona corretamente com o sensor SR04 ligado à entrada 13. Sem o sensor devidamente ligado, o firmware fica à espera de um dado indefinidamente e em ambiente S4A a placa surge como não reconhecida.
Deixo então a minha proposta de trabalho para envolver o SR04 em circuitos programados através de Scratch...
...o circuito esquemático do último exercício proposto...
...e um pequeno vídeo com o circuito do sensor de proximidade em funcionamento:
Como nota final, não posso deixar de referir que levei o circuito do sensor montado para uma aula de Física e Química de 8º ano, onde os alunos estão a dar o som. Foi interessante porque deu para exemplificar o facto de os ultrassons não serem audíveis, o fenómeno do eco, o funcionamento do sonar. Os alunos identificaram o circuito nas luzes de sinalização de lugar ocupado / livre do parque de estacionamento do centro comercial cá da terra. E pediram um workshop de arduino para o verão. E eu estou com vontade de lhes fazer a vontade...
Já por aqui tinha referido que os kits de iniciação ao arduíno são de facto do melhor...para iniciar! À medida que os projetos surgem, torna-se evidente a necessidade de comprar outros componentes eletrónicos menos vulgares.
Por causa de um projeto que tenho em mente, tive de adquirir um sensor de ultrassons. Optei pelo HC-SR04 por ser bastante comum e haver já muitos projetos descritos na net que o envolvem. Quando comecei a pesquisar por preços, encontrei-o por mais de 12€ numa conhecida loja online portuguesa...e por menos de 1€ no Aliexpress! Dito isto, partilho aqui a experiência com a compra de componentes eletrónicos através desta plataforma eletrónica de compras.
Quando pesquisamos por um determinado componente no Aliexpress, é difícil não sermos atingidos por uma súbita febre consumista, dados os preços do material eletrónico aí praticados. Verdade que em muitos casos é exigido um número mínimo de componentes a comprar, mas nem sempre tal acontece e os valores são de tal maneira baixos relativamente ao que se pratica em sites nacionais que bem vale a pena mandar vir em quantidade.
1 lote de 5 conetores para ligar pilhas de 9V ao arduíno por 1,71€:
1 lote de 5 servo motores SG90 por 7,41€:
1 controlador para motores de passo por 1,76€:
2 sensores de ultra sons HC-SR04 a 0,82€ cada:
1 lote de 10 díodos laser vermelhos, 5V, por 3,66€:
Expedido com a minha compra, foi-me enviado, como oferta, um leitor de cartões micro SD para arduíno, cujo valor ronda os 4€:
O pagamento é feito por cartão de crédito à Aliexpress que estabelece um prazo de entrega máximo que depende de cada loja - o vulgar são 60 dias. Caso esse prazo seja ultrapassado, a Aliexpress devolve o dinheiro ao cliente.
Mesmo vindo da China a maior parte das compras não são sujeitas a custos de porte. O prazo de entrega ronda, no entanto, os 30 dias.
Os componentes eletrónicos não estão sujeitos a imposto alfandegário, mas caso a compra ultrapasse os 22€ (eu só soube disso depois - a minha compra foi de 22,81€) poderá estar sujeita a pagamento de IVA na alfândega. Curiosamente, a encomenda foi expedida numa caixinha que vinha marcada como $6.
Depois de recebermos os produtos, confirmamos a receção no Aliexpress e podemos avaliar cada um dos itens e o serviço prestado pela loja com que lidámos.
Em resumo, em termos de preço, é indiscutível a vantagem de comprar em lojas chinesas online. Os baixos preços têm como contrapartida a ausência de apoio técnico e os tempos de entrega alargados (é possível reduzir estes prazos, mas isso tem um preço elevado). Por isso, se é para pensar num projeto para as férias de verão...há que começar a pensar no que comprar agora!
Esta é a última aula formal que pretendo dar aos alunos envolvidos neste projeto. A partir daqui, parece-me que já conhecem as potencialidades essenciais do arduino e que poderão começar a delinear os seus próprios projetos.
A ideia desta aula é explorar as entradas analógicas - temos 6 disponíveis (A0 a A5) - essenciais na utilização de muitos sensores, como de luminosidade, proximidade ou temperatura.
A noção de digital / analógico nem sempre é óbvia para os alunos da faixa etária com que estou a trabalhar. Na verdade, usando de novo o corpo humano como analogia, quase todos os nossos sensores e atuadores são analógicos, mas podemos encontrar exemplos como olhos fechados / abertos para dar a ideia de digital e a intensidade vocal como analógico.
Há depois que lhes apresentar vários componentes que podem ligar a entradas analógicas. Optei pela resistência variável, pela fotorresistência e pelo sensor de temperatura por serem os componentes que tenho disponíveis para trabalhar com uma turma.
Na primeira montagem, a ideia é simplesmente apreender os valores limite que as entradas analógicas aceitam - 0V correspondem a um valor igual a 0; 5V ao valor 1023.
Voltei a usar 3 LED, ligados às saídas digitais 13, 12 e 11, como atuadores para testar o tipo de entradas estudadas na presente aula.
Deixo de seguida a presentação que explorarei nesta sessão...
...o circuito esquemático do último exercício proposto...
...e um pequeno vídeo com o exercício do "termómetro" em funcionamento.
Há certos momentos em que me sinto um bocado limitada. Corre por algumas esferas pensantes a ideia que um professor é uma espécie de enciclopédia, alguém que deve estar sempre preparado para em qualquer momento abrir a boca e debitar uma aula fantástica sobre um qualquer assunto da sua disciplina (e até fora dela).
Pois que a minha experiência pessoal está longe disso. Quando comecei a dar aulas, diziam-me os professores mais experientes que "por cada hora em sala de aula, devem existir duas de trabalho a prepará-la". Parece que hoje o paradigma se alterou e o trabalho individual do professor tem merecido cada vez mais descrédito.
Serve esta introdução para confessar (estamos na Páscoa!) que trabalho de facto muito em casa. Não é um lamento - é simplesmente uma constatação. E, tendo filhos, estes acabam por coabitar muitas horas com o trabalho da mãe.
Foi por isso sem surpresa que ouvi a minha filha de 12 anos dizer que nas férias da Páscoa queria fazer o seu próprio projeto em arduino.
O projeto foi delineado por ela. Fez o boneco de um gato recorrendo a materiais cá de casa (ela gosta bastante deste tipo de trabalhos manuais) e decidiu o que queria que ele fizesse: que os olhos piscassem e que miasse quando lhe tocassem no nariz. Sugeri que acrescentasse um braço a dizer adeus, o que acatou.
A ideia inicial para o nariz do gato, foi um botão de pressão. Dada a fragilidade da estrutura, no entanto, optei por uma fotoresistência, o que foi uma escolha acertada. Ainda não tive oportunidade neste blog de explorar as entradas analógicas, mas fá-lo-ei em breve.
O circuito eletrónico e as ligações, fui eu que as fiz. Optei por não fazer soldaduras. Em vez disso, usei crocodilos e conetores para ligar os componentes e os fios.
Quanto à programação, e uma vez que a minha filha sabe os rudimentos de scratch, embora nunca tivesse trabalhado em ambiente S4A, adaptou-se com facilidade. A programação do servo motor foi feita deliberadamente sem variáveis para tornar a programação mais acessível.
O resultado parece-se um bocado com aqueles gatos que estão à porta dos chineses, para dar sorte, mas não deixa de nos roubar um sorriso!
Esta também não foi uma aula testada com alunos, mas uma exploração do controlo de motores dc através de Scratch.
O motor dc (ou motor de corrente contínua) é muito vulgar em equipamentos como impressoras, carrinhos de brinquedo a pilhas e outros brinquedos baratos, pelo que é extremamente fácil ter acesso a um.
O controlo deste motores é muito simples: ligam-se os cabos do motor a uma fonte de alimentação contínua (uma pilha, por exemplo) apropriada, de acordo com as caraterísticas do motor usado, e o motor começa a girar. Trocando a polarização da fonte, o motor girará em sentido contrário.
O controlo deste tipo de motor com arduino não é, no entanto, tão simples como seria de supor porque, por um lado, este motor exige mais corrente que aquela que o arduino consegue debitar e, por outro, os motores geram correntes de indução que podem danificar o circuito caso este não esteja devidamente preparado.
Para que a corrente elétrica seja suficiente, a ligação do motor deve ser feita recorrendo a uma fonte de alimentação externa (eu usei uma pilha vulgar de 9V).
E onde entra o controlo do motor? Através de um pequeno componente chamado FET (Field Effect Transistor), da família dos transístores e cuja função é permitir a passagem de corrente entre dois pinos quando um terceiro é ativado. O funcionamento de um transístor pode ser comparado ao de uma torneira de monocomando que, ao ser aberta, deixa passar a água sempre num único sentido.
O controlo do FET foi feito usando uma das saídas analógicas disponíveis no S4A, o pino 9.
Na verdade, o arduino não tem saídas analógicas na verdadeira acepção da palavra. A saída é sempre 0V ou 5V. As saídas ditas analógicas são de facto saídas PWM, que enviam sinais pulsados de acordo com o valor analógico indicado (entre 0 e 255). A variação da frequência dos impulsos vai resultar em valores eficazes de tensão variáveis. No caso concreto, o motor só será alimentado pela pilha de 9V de acordo com os impulsos gerados no pino de controlo do FET.
Confusos? Experimentando tudo vai parecer mais simples. O díodo colocado aos extremos do motor impede a circulação em sentido contrário de correntes geradas pelo motor (o díodo, que é um componente polarizado, só deixa passar a corrente num sentido).
Para fazer a inversão do motor, usei o L293, um circuito integrado preparado já para controlar motores dc e que nos descomplica bastante a vida (a outra hipótese era conceber um circuito algo complicado com vários díodos).
Ainda tentei fazer um pequeno elevador com o circuito que contruí, mas este tipo de motores, ao contrário dos servo motores, não tem a capacidade de manter a posição quando desliga, pelo que se tornou inviável para essa situação.
Deixo então a minha proposta de trabalho para controlo de motores dc recorrendo ao Scratch...
...o circuito esquemático do último exercício proposto...
...e um pequeno vídeo com o circuito de comando do motor dc em funcionamento (o gacho está um pouco ridículo, reconheço, mas o objetivo foi tornar possível a perceção da inversão de sentido):
Pois que usámos a última sessão do período para desmontar equipamento estragado que havia pela escola. Com a colaboração da coordenadora da biblioteca da escola e do coordenador dos equipamentos informáticos, conseguimos 2 impressoras e 1 scanner que há muito estavam avariados e a ocupar espaço.
A diretora de turma, que dá aulas na oficina, disponibilizou-nos o espaço e algumas ferramentas (que não eram suficientes - alguns alunos trouxeram ferramentas de casa, emprestadas) - e daqui se concluiu que trabalhar numa escola colaborativa não tem preço...
Depois...foi mão à obra! Os alunos aderiram da melhor maneira à atividade, afinal não é todos os dias que podemos desmanchar equipamentos eletrónicos. Mostraram-se muito interessados e empenhados. Curioso o facto de, à medida que iam recuperando material, começarem desde logo a encontrar-lhe um fim para um possível projeto ("Posso ficar com este eixo, professora? Acho que dava mesmo para um elevador...").
Recuperámos várias estruturas metálicas, componentes eletrónicos (dessoldados a placas de circuito impresso), motores, muitos cabos elétricos...
...e ganhámos entusiasmo e outra perspetiva relativamente à reciclagem de equipamentos eletrónicos.
De entre as peças recuperadas, tenho particular esperança na quantidade de motores que conseguimos - vários motores de corrente contínua e dois motores de passo (que eu ainda vou ter de estudar como controlar através de Scratch...).
Como nota final, esta é uma atividade muito suja. No final da hora, estamos todos cheios de óleo, bancadas e chão para esquecer. Haverá também muito lixo que tem de ser colocado no contentor correto. A turma com que estou a trabalhar tem, entre as áreas vocacionais, jardinagem. Para esta atividade foi uma mais valia porque estão habituados a pegar em sacos de lixo e levar para o contentor fora da escola. Também contei com a colaboração dos alunos para lavar as bancadas e o chão, que teve de ser varrido e bem passado com esfregona. Sem essa colaboração e boa vontade, uma atividade desta natureza seria impraticável. Obrigada pelo envolvimento de todos!