quinta-feira, 26 de março de 2015

Controlando motores dc com Scratch

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):






terça-feira, 24 de março de 2015

Equipamento avariado? É connosco!

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!

quinta-feira, 19 de março de 2015

Eletrónica básica - o condensador

O condensador é um componente eletrónico que tem a capacidade de armazenar cargas elétricas, conseguindo assim manter uma tensão estável aos seus terminais.

A capacidade de "armazenar" cargas depende das caraterísticas construtivas do condensador e é medida em farad (F).

O aspeto destes componentes é muito diversificado.


Apesar de também haver um código de cores para os condensadores, tal como para as resistências, o mais vulgar é encontrarmos o valor da sua capacidade indicada no componente. Outra grandeza que deve ser observada é a tensão (V) indicada no condensador que indica a tensão máxima a que pode estar sujeito.

Há dois grandes tipos de condensadores vulgarmente usados em eletrónica: aqueles que não exigem polarização e que, por isso, é indiferente a forma de os ligar (os mais vulgares são os de cerâmica e poliéster); e os que exigem polarização (de entre os quais os eletrolíticos são os mais comuns).

  • Condensadores de poliéster e de cerâmica: não temos de nos preocupar com a forma com que os ligamos. O seu aspeto é o seguinte:
  • Condensadores eletrolíticos: há que ter bastante cuidado em ligar o cátodo à alimentação negativa (ou GND) e o ânodo à alimentação positiva, caso contrário podem explodir lançando ácido. Eis o seu aspeto:


Em termos de simbologia elétrica, estes dois tipos de condensadores distinguem-se da seguinte forma:

O facto do condensador permitir a estabilização da tensão aos seus terminais, torna-o útil em muitos projetos. No projeto do post anterior, da cancela que abre e fecha, evita o pico de tensão que surge no início do movimento do servo motor, uma vez que no momento do "arranque" o servo motor exige mais corrente que durante o movimento.


Controlando servo motores com Scratch

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...


...o circuito esquemático do último exercício proposto...





...e um pequeno vídeo com o "circuito de controlo de um cancela" em funcionamento:




quarta-feira, 18 de março de 2015

Eletrónica básica - o código de cores das resistências

Os alunos com quem estou a desenvolver o presente projeto não sabem nada de eletrónica. Foi preciso apresentar-lhes o LED e referi, quando o ligaram, que seria necessário associar uma resistência ao circuito, caso contrário o LED seria "queimado" por excesso de corrente elétrica.

Na primeira sessão, usei a analogia com um sistema hídrico - a diferença de potencial pode ser comparada com uma diferença de altura de uma cascata, a corrente de água representa a corrente elétrica; para a resistência elétrica a analogia pode ser um estrangulamento no canal por onde a água passa, controlando o caudal.

Como os alunos só têm disponíveis as resistências que vão usar numa determinada sessão, para já basta dizer "esta resistência é para os LED, aquela para o interruptor", mas à medida que os trabalhos forem evoluindo, é natural que comecem a perguntar como identificar cada uma delas.

A unidade da resistência elétrica é o ohm (Ω). Nas resistências de potência (que estão preparadas para correntes elétricas de maior intensidade) temos muitas vezes o trabalho simplificado e esse valor aparece impresso no componente:

Mas em eletrónica, o vulgar é as resistências estarem identificadas através de riscas codificadas por cores. A razão para isto é que nos anos 20 era muito complicado imprimir valores em componentes tão pequenos - o código foi definido e acabou por ficar:




Na verdade, o código de cores é bastante fácil de usar e, com a prática, é praticamente imediata a conversão para o valor óhmico (pelo menos para as cores mais recorrentes). Importante é começar por identificar a risca da tolerância da resistência, o que é imediato caso esta seja prateada ou dourada (caso contrário, devemos procurar a risca mais afastada das restantes). Essa risca deve ser colocada à direita. O valor óhmico da resistência será dado, da esquerda para a direita, pelas cores das restantes riscas.

Caso se trate de um resistência de 4 riscas, as duas primeiras representarão os dois primeiros algarismos do valor da resistência, a terceira o fator multiplicativo e a terceira a tolerância especificada pelo fabricante que garante um intervalo de valores entre os quais o valor da resistência se situa. Caso a resistência seja de precisão e tenha 5 riscas, os primeiros algarismos do valor da resistência passam a ser definidos por três  riscas e só depois virão as riscas do fator multiplicativo e da tolerância. Haverá ainda resistências que apresentam uma risca para o coeficiente da temperatura, mas pessoalmente, na minha prática, nunca de deparei com nenhuma.

Há aplicações disponíveis para converter o código de cores no valor da resistência e respetiva tolerância. Um deles está disponível no site Eletrónica.

sábado, 14 de março de 2015

Aula 3 - Entradas e saídas digitais

Iniciei a aula pedindo aos alunos que alimentassem a breadboard. Ainda não é uma tarefa que todos cumpram sem dificuldade.

O teste da entrada digital foi feito com um interruptor de pressão. Depois do circuito (projetado na tela da sala) montado, os alunos verificaram a mudança de estado da entrada digital para "verdade" e "falso".

De seguida, pedi que voltassem a montar três LED às saídas 13, 12 e 11. É ainda necessário a projeção do circuito, os alunos não o fazem ainda de forma autónoma.

A seguir...a experimentação em Scracth! E pronto. Nesta fase, já tenho um bom grupo a testar várias programações possíveis, o que é sempre gratificante.

Passo seguinte: e se eu quiser usar o interruptor de pressão como de facto é usado no dia-a-dia? Se eu não quiser estar sempre a pressioná-lo e se em vez disso por cada vez que pressiono (e largo) quiser que o sistema entenda essa ação como uma instrução? Aqui, foi necessário apelar ao conceito de variável. Curiosamente, e aqui todos os créditos para a professora de Informática, a programação com a variável não se revelou particularmente difícil. No final dos 90 minutos, três quartos dos grupos tinham atingido os objetivos da sessão.

Deixo de seguida a apresentação que explorei nesta sessão...


...o circuito esquemático do último exercício proposto...





...e um pequeno vídeo com o "circuito da árvore de Natal" em funcionamento:





Como reflexão final, não posso deixar de referir que nesta fase dos trabalho é já evidente a motivação e a aptidão de determinados alunos para este tipo de trabalho (arrisco avançar com uma estimativa de 25% do grupo) e o evidente desinteresse de outros (volto a fazer uma estimativa de 25%). Os restantes alunos cumprem as instruções e procuram com a ajuda das professoras e colegas superar as dificuldades. Que me parecem estas estimativas? Há que não esquecer que o projeto foi implementado numa turma do vocacional seguindo o método de "voluntários à força". Pessoalmente, parece-me que foi importante que todos os alunos tivessem tido a oportunidade de contactar com este tipo de trabalho - alguns dos mais aptos nunca tinham trabalhado com eletrónica e não teriam tomado a iniciativa de frequentar um clube fora do seu horário escolar. Por outro lado, acho que começa a estar na altura de procurar para os alunos desinteressados outra ocupação mais do seu agrado. Não me parece que os alunos tenham muito a ganhar em avançar contrariados para circuitos mais exigentes.

Mais uma vez concluo que a democratização do sucesso só é possível (e em particular em turmas de currículos alternativos como é o caso da turma com quem estou a trabalhar) com a diversificação das ofertas educativas, o que permitiria que os alunos pudessem escolher o percurso que mais se adequasse  ao seu perfil. Será utopia, mas continuo a sonhar com uma escola que fosse vivida por cada um como um prazer e como forma de preparação para a vida e não uma obrigação legal.

sexta-feira, 13 de março de 2015

Aula 2 - Explorando as saídas digitais

Nesta aula tive de começar por explicar o que são, em eletrónica, entradas e saídas. Usando como exemplo o corpo humano, tentei que os alunos identificassem como entradas os órgãos dos sentido, como saídas os músculos que nos fazem mover e como processador o cérebro. Ainda tentei avançar para a definição de digital e analógico mas percebi que começava a ser informação a mais para esta primeira abordagem.

Dito isto, identifiquei as entradas e saídas disponíveis quando se usa o S4A.

Pedi que começassem a alimentar a breadboard e que ligassem um LED da forma que tínhamos feito na sessão anterior, mas agora com o ânodo diretamente ligado à saída digital 13.

Tenho a clara sensação que só quando começaram, com o S4A, a controlar o LED é que as instruções anteriores ganharam sentido para a maioria dos alunos. O salto para dois e depois para três LED foi feito sem dificuldades e os alunos começaram de forma lúdica e autónoma a testar várias opções em termos de programação em Scratch.
O exercício proposto para a elaboração do semáforo foi atingido por todos os grupos, uns com mais ajuda que outros. O segundo exercício proposto, que exigia a função "anuncia" não foi possível cumprir nos 90 minutos que a sessão durou.

Deixo de seguida a apresentação que explorei nesta sessão...



...o circuito esquemático do último exercício proposto...




...e um pequeno vídeo com o circuito do semáforo em funcionamento:



quinta-feira, 12 de março de 2015

A primeira sessão

Como já foi dito, este projeto começou por ser implementado numa turma vocacional do 8º ano em parceria com a professora de Informática da turma. Quando cheguei à sala de aula, já os alunos tinham tido várias aulas de Scratch e a mim coube-me iniciá-los na eletrónica. Nesta primeira sessão, foi necessário explicar rapidamente em que consiste a corrente elétrica e a necessidade da diferença de potencial. Introduzi também o LED, indicando-lhes como reconhecer o ânodo e o cátodo e a importância de o ligar convenientemente polarizado.

Neste sessão foi também essencial a apresentação da breadboard e as respetivas conexões.

Uma vez que o tempo de atenção dos alunos com que trabalho é limitado, houve que rapidamente passar para a prática, com a alimentação da breadboard a partir do arduino e a ligação de um LED, seguida da ligação de um circuito série LED - interruptor de pressão.




Como é evidente, nesta aula o arduino foi usado como fonte de alimentação e não foi programado. O facto dos alunos aprenderem a alimentar a breadboard a partir do arduíno e fazer a ligação correta de um LED é, no entanto, fundamental para prosseguir com os projetos seguintes.

Um recurso inestimável para preparar estas sessões é o fritzing. Sem ele tornar-se-ia muito mais complicado explicar grupo a grupo, estando os alunos numa fase tão inicial da aprendizagem, as montagens a realizar.

Para além de permitir a imagem do circuito em breadboard, o fritzing permite também, a partir desse esquema, o desenho esquemático do circuito e a conceção do respetivo circuito impresso. Deixo aqui o esquema correspondente à série do LED com o interruptor usado na primeira sessão deste projeto:



E o arduino?



Bem...a minha experiência resume-se ao arduino Uno.
O arduino em si é bastante acessível, sendo possível adquirir placas por cerca de 20€ ou menos. A questão é que, para trabalhar com o arduino em sala de aula, é necessário ter disponível alguns consumíveis de eletrónica que se podem resumir a alguns LEDS, resistências e interruptores de pressão, caso se esteja a fazer um número limitados de sessões, mas que terão de evoluir para outros componentes como sensores e motores caso as sessões se prolonguem no tempo e queiramos evoluir para circuitos mais interessantes.
Para meu uso pessoal, adquiri um "Arduino Starter Kit", comercializado pela Inmotion, que me custou um pouco mais de 90€ (sem portes). Para além do arduino, este kit apresenta muitos componentes eletrónicos desde os mais básicos como LED e resistências a sensores, servomotores e até display de cristais líquidos. Para além disso, vem acompanhado com um livro, em inglês, com propostas de vários projetos que podem ser interessantes para usar em sala de aula. A programação proposta no livro está, naturalmente, em C.




Há outros kits, mais baratos, sem livro, com o fundamental para trabalhar em sala de aula e que, na Inmotion, rondam os 60€ (sem portes).

É importante ter em conta que o número de alunos por grupo não pode ser excessivo. No meu caso, estou a trabalhar com 20 alunos e tenho 10 arduinos, o que é ótimo, mas compreendo que só o consigo porque uma parceria com a ANPRI o permitiu. Em escolas sem esta oportunidade, a opção poderá passar por um projeto financiado. Em alternativa, dependendo do nível sócio-económico da maioria dos alunos, outra solução poderá serem os alunos a financiar os seus kits, ficando com eles no final do ano.

A comunicação entre o computador e o arduino pode ser feito pela interface disponibilizada no site Arduino.

Será através desta interface que colocaremos o programa em C disponibilizado pelo S4A referido no post anterior e a partir do qual faremos o upload para o arduino. Como na internet há inúmeros projetos com a programação em C já elaborada, caso os queiramos implementar, será também esta a interface utilizada.

quarta-feira, 11 de março de 2015

S4A - Scratch for Arduino


Quando surgiu a ideia de levar o arduino para a sala de aula, tornou-se evidente que dado os conhecimentos dos alunos envolvidos - 8º ano - a opção teria de passar por uma linguagem de programação acessível e que não fosse fator de desmotivação.
A linguagem Scratch foi a solução mais óbvia, uma vez que os alunos já trabalhavam com ela na disciplina de Informática.
Na verdade, o Scratch foi desenvolvido pelo MIT para crianças e é com muita facilidade que alunos do ensino básico (muitas vezes logo no primeiro ciclo) se apropriam dos conceitos básicos e rapidamente evoluem programando histórias ou pequenos jogos. Para saber mais, o melhor é mesmo aceder à página do MIT.

O software S4A é uma adaptação do scratch para arduino, permitindo programá-lo usando os blocos caraterísticos do Scratch.

Para usar este software, há que descarregá-lo do site do S4A
Para além disso, é necessário descarregar um programa específico criado pelo S4A e programar com ele o arduino. Só depois é possível a comunicação entre o S4A e o arduino.

O ficheiro de comunicação referido, limita a opções de entradas / saídas do arduino, que ficam definidas de acordo com a imagem seguinte:

Suponho que seja possível alterar esta definição de entradas / saídas a partir do ficheiro disponibilizado pela S4A, mas ainda não me debrucei sobre o assunto. Ficará para quando tiver tempo para tal...

Sobre este blog

Este pretende ser um blog de partilha de materiais e experiências no âmbito da aplicação da programação e eletrónica em ambiente escolar.
Não é um site de pedagogia nem de produtos acabados. É antes um diário de uma professora que um dia se lançou numa turma de 8º ano do ensino vocacional a ensinar a programar placas arduíno a alunos que se de programação sabiam pouco, de eletricidade e eletrónica nada sabiam. 
Aqui deixarei as minhas reflexões e os materiais que for desenvolvendo.