quinta-feira, 18 de junho de 2015

Work in progress#2









Projeto barco do Sado#1

Este foi um trabalho "por encomenda".

Inserida no projeto Rato da Biblioteca, será organizada uma exposição de trabalhos em Ponte de Lima, no próximo dia 1 de julho. A turma do 10º ano do vocacional integra o projeto e construiu uma série de traineiras e barcos, um culminar de um estudo sobre a origem da primeira traineira de pesca no rio Sado. Foi-me pedido que, em arduino e utilizando a programação em Scratch, automatizasse o projeto.

Em reunião com os alunos envolvidos, e depois de escolhido o trabalho de entre os vários construídos, ficou definido que o barco devia estar parado na ausência de movimento e que, com o aproximar de uma pessoa, devia piscar LED vermelhos e verdes, fazer movimentar os remos e fazer ouvir o som do mar.

Eis o trabalho dos alunos:




Em casa, concebi o circuito a ser montado. O sensor de aproximação que usei foi de novo o SR04, cujo funcionamento em arduino e Scratch foi já descrito em post anterior. Não esquecer que é necessário firmware próprio para o arduino trabalhar com o SR04 em Scratch: http://densare.pt/files/zip/S4AFirmware16_SR04.zip

Para os remos usei dois servo-motores que a escola adquiriu através do financiamento da DGE aos clubes de programação e robótica, dois HD-1160A. Usei também um dos arduino adquiridos em vez do meu pessoal, como é hábito. Para o som, usei mais uma vez um do site www.buscasons.com .

A primeira dificuldade surgiu ao tentar ligar os dois servos em simultâneo. Estranhamente, e estando a trabalhar com uma placa de arduino igual à que eu própria tenho, que funciona com dois servos a trabalhar ao mesmo tempo, a placa com que construí o circuito "crashava" quando os motores tinham ordem de funcionar. A solução passou por alimentar os servos com uma fonte independente (usei uma outra porta USB do computador), como já tinha feito para o projeto do jardim iluminado de forma automática.

Outro problema que partilho é que em várias ocasiões os motores pareciam tremer mesmo em vazio. Procurei pela solução deste problema pela net e parece que o problema reside na maior parte das vezes em falta de alimentação. O fenómeno deixou. no entanto, de acontecer sem que eu tenha encontrado uma solução cabal.

Quanto à programação, especial atenção para a variável delta que define a variação do âgulo do motor. Quanto menor for este valor, mais suave será o movimento, mas mais demorados serão os 5 ciclos que defini que se cumprissem com a aproximação de alguém. Defini ainda que entre um e outro ciclo há um tempo de espera de 20 segundos, pelo que não será possível iniciar novo ciclo antes desse intervalo de tempo.

Deixo a minha proposta de trabalho para o circuito eletrónico e o programa em Scratch...



...o circuito esquemático...




...e um pequeno vídeo com o circuito em funcionamento (o som do mar não é muito percetível na gravação):






quinta-feira, 11 de junho de 2015

Projeto Jardim Iluminado de Forma Automática#1

Este foi o projeto imaginado pela Kathelin e pela Inês. A ideia era comporem um espaço cujas luzes acendessem quando a luminosidade ambiente diminuísse. Um jardim acabou por ser a escolha das alunas.

A ideia de usar RGB foi minha, até porque as alunas não os conheciam. Foi nessa fase que dediquei um post ao controlo de RGB através de arduino.

A maior dificuldade neste projeto foi respeitar o pré-projeto que as alunas tinham concebido usando as saídas disponíveis no arduino.

Na verdade, e querendo usar as saidas PWM para controlar os RGB (a forma mais bonita de os por a funcionar), temos 3 saidas PWM disponíveis (9, 6 e 5) para 4 RGB (cada um com 3 pinos, dá 12 pinos a controlar). A solução foi colocar os 4 RGB em paralelo, controlando em simultâneo cada 4 LED da mesma cor.

A dificuldade desta solução surge quando fazemos as contas à corrente necessária para alimentar 4 LED em simultâneo. Cada LED do RGB necessita de cerca de 20 mA (80 mA para alimentar 4 LED em simultâneo) e cada saída do arduino fornece apenas 40 mA.

Assim, pensei em usar um amplificador operacional para cada um dos LED em modo de seguidor de sinal (ou seguidor de tensão). Um pouco mais sobre este circuito pode ser encontrado aqui.

Não tendo 3 amp op em casa, pesquisei que circuitos integrados ofereciam vários amp op e acabei por decidir que tanto o LM148, como o LM248 ou o LM348 me serviriam. Quando cheguei à pequena (mas simpática!) loja de eletrónica cá da terra, tive de contentar com o que havia e trouxe, por 0,60€, um LM324. Através da sua datasheet é possível ter acesso às suas caraterísticas, sendo que a sua pinagem é dada através da figura seguinte:


O esboço do controlo de 4 RGB em paralelo usando o LM324 encontra-se no desenho que se segue:




A alimentação do LM324, que tem, evidentemente de ser alheia ao arduino, foi feita através de uma porta USB do computador (têm geralmente cerca de 500 mA). Para isso, cortei a extremidade de um carregador de carro para telemóvel que tinha cá em casa estragado e descarnei os fios para os usar na breadboard:




O resto do circuito é de fácil compreensão. A ideia é ter uma fotoresistência ligada a uma entrada analógica (A0) que fará desligar as luzes quando a luminosidade ambiente for superior a um valor pré-estabelecido. Quando esse valor diminuir (o ambiente escurecer), a ideia é ter os 4 RGB a mudar de cor e uma luz branca sempre ligada.

A programação foi adaptada da apresentada no post anterior. Para além da inserção da entrada analógica, que determinará o acender ou apagar das luzes, foram definidas várias variáveis. Assim, foram adicionadas às variáveis "red", "green" e "blue" já usadas no programa anterior e que determinam a intensidade de cada um dos LED, as variáveis "tempo" e "calibracao". A primeira define a velocidade com que os RGB mudam de cor - quanto menor for esta variável, mais lentamente o fazem; a segunda serve para com facilidade calibrar qual o valor analógico da entrada A0 a que as luzes devem acender - e que dependerá da luz ambiente em que o circuito está montado.

Deixo a minha proposta de trabalho para o circuito de eletrónica e o programa em Scratch...



...o circuito esquemático...



...e um pequeno vídeo com o circuito em funcionamento (mais uma vez, a câmara não faz juz à mudança das cores do RGB, muito mais bonitas ao vivo):






sábado, 30 de maio de 2015

Controlando um LED RGB com Scratch

O LED RGB é sempre uma aposta ganha quando se pretende fazer um projeto vistoso. No fundo, são apenas 3 LED numa só cápsula, mas o efeito visual é suficientemente apelativo para justificar a sua exploração em sala de aula. No meu caso, não foi possível fazê-lo em ambiente de formação formal porque tinha um só LED RGB, o que impossibilitava a experimentação pelos vários alunos. 

Mas com cada um dos 4 Arduino Physical Computing Kit entretanto comprados, vem um LED RGB. E com 4 LED RGB, já é possível inclui-los num dos projetos que os alunos estão a desenvolver, pelo que se justifica um estudo mais aprofundado deste componente.

Assim, o que significa a sigla RGB? Significa Red (vermelho), Green (verde) e Blue (azul), as cores dos três LED que compõem o RGB.

Contendo 3 LED, o RGB tem 4 terminais: um comum (que pode ser ânodo ou cátodo), os restantes correspondentes a cada uma das cores que apresenta:

O aspeto de um RGB ânodo comum, é igual ao de um cátodo comum e para identificar o tipo de RGB com que estamos a trabalhar, podemos testá-lo com um pequena pilha de relógio. Se o LED vermelho (por exemplo) ligar com o terminal (-) da pilha ligado ao terminal comum (sempre o terminal mais longo, caso o RGB seja novo - se não for, os terminais podem já ter sido cortados...), então estamos na presença de um RGB de cátodo comum; caso o LED acenda com o terminal (+) da pilha ligado ao terminal comum, estamos na presença de um RGB de ânodo comum.

Esta identificação é fundamental para ligar corretamente o RGB:


Como as tensões de trabalho de cada um dos LED que compõem o RGB são diferentes entre si, é comum encontrar projetos com resistências diferentes ligadas a cada uma das extremidades do RGB. Num dos trabalhos que proponho na apresentação seguinte, aumentei a resistência associada ao LED azul, que se revelou muito intenso relativamente às outras cores.

Os circuitos que faremos assumem RGB de cátodo comum, os que tenho disponíveis.


Deixo então a minha proposta de trabalho para controlo de RGB recorrendo ao Scratch...




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




...e um pequeno vídeo com o circuito do RGB a mudar de cor como proposto no último exercício (gravar vídeos do RGB revelou-se tarefa mais difícil do que esperado, devido à qualidade da câmara. O resultado ao vivo é muito mais bonito que na gravação):




sexta-feira, 29 de maio de 2015

Work in progress#1

Iniciando os trabalhos de execução de maquetas para os projetos...





Projeto: Passagem de nível#1

Este foi o projeto imaginado pelo Bruno e pela Luana. Uma maqueta que simula uma passagem de nível. 

Reunida com os dois alunos, foram traçadas as linhas mestras do projeto:

A ideia é fazer uma maqueta de uma estrada atravessada por uma linha de caminho de ferro. Com a passagem do comboio, os automóveis devem ser alertado com um sinal luminoso que passa de verde a vermelho e uma cancela deve fechar a estrada, enquanto um sinal sonoro de aviso é emitido.

A maqueta fica inteiramente a cargo dos alunos, que a deverão desenvolver nas aulas de informática que eu passei a co-lecionar e nas aulas de Arquivo.

Hoje ficou montado o circuito e feito o programa em Scratch.

Material de eletrónica necessário:
  • 1 placa arduino;
  • 1 breadboard;
  • 2 LED, um verde e outro vermelho;
  • 1 servo motor SG90;
  • 1 díodo laser;
  • 1 fotorresistência;
  • 1 resistência 10 Kohm;
  • 2 resistências 220 ohm;
  • Fios.

O díodo laser deve estar sempre apontado à fotorresitência. Quando à fotorresistência chega a luz do laser (situação em que não há comboio na via férrea), a luminosidade que sobre ela incide é máxima. Esse valor de luminosidade, lido pela entrada analógica A0, mantém a cancela aberta (servo motor com um ângulo de 90º), o LED verde ligado e o LED vermelho desligado. Por outro lado, a passagem de um obstáculo que impeça que o laser chegue à fotorresistência é detetado na entrada A0 como menor luminosidade, o que fará desligar o LED verde, ligar o vermelho, descer a cancela (servo motor diminui ângulo até 0º) e acionar o sinal sonoro de alarme. O estado do sistema manter-se-à durante 4s, após o que voltará ao estado inicial.



O S4A é muito pobre em sons. Para conseguir o som de alarme, recorri a um site de downloads de MP3 gratuitos: www.buscasons.com



Deixo a minha proposta de trabalho para o circuito de eletrónica e o programa em Scratch ...



...o circuito esquemático...




...e um pequeno vídeo com o circuito em funcionamento:



quarta-feira, 27 de maio de 2015

De novo às compras...agora com financiamento!

O projeto Arduino na Escola foi apoiado, através do Concurso dos CLUBES DE PROGRAMAÇÃO E ROBÓTICA (CPR) relativo ao ano letivo 2014/15 , com o valor de 250€.

cpr.PNG




Para um clube como o nosso, ainda tão incipiente, esta foi uma ajuda preciosa para conseguir material e equipamento que nos torne um pouco mais independentes e com capacidade para fazer mais (e melhor!).


Por isso, fomos às compras. Adquirimos:

  • 4 conjuntos Arduino Physical Computing Kit (48,00€ cada)

Arduino Physical Computing Kit - Starter Edition
  • 2 servo motores HD-1160A (8,95€ cada)



  • Vários LED no valor de 4€

Os valores referidos são todos sem IVA.


Este tipo de apoios é fundamental para que pequenos clubes possam vingar nas nossas escolas. A área de eletrónica e programação é uma área ainda pouco explorada nas escolas portuguesas e que podia ser uma mais valia se usada não só para captar alunos desmotivados mas com interesse por esta área de estudo, mas também para desenvolver em alunos adaptados à escola novas competências e dar-lhes outras perspetivas do mundo académico e profissional.

A propósito de bons alunos, tive há alguns anos atrás a experiência de lecionar Física de 12º ano a uma turma de "bons alunos" que se preparava para entrar em várias engenharias e que, ao longo da sua vida académica nunca tinham tido a oportunidade nem de montar um circuito eletrónico, nem de programar uma única linha de código...

A escola não se faz só de alunos desmotivados que têm de ser captados de alguma forma. Faz-se também de alunos interessados e que merecem que lhes sejam canalizados recursos e que a escola se preocupe em lhes proporcionar novas experiências e novas formas de ver o mundo. Nesse sentido, a aposta em clubes - de eletrónica, de teatro, de leitura, de música, de desporto...- faz todo o sentido na escola de hoje. Assim haja vontade de os apoiar!