Estás farto de esperar que o semáforo mude para verde? O que aconteceria se controlasses um?
Nesta entrada, poderás encontrar a resposta, porque… vamos construir o nosso próprio semáforo! E ainda melhor: vamos colocar uma cancela!
Como todos sabemos, um semáforo é um sinal de trânsito que permite ou proíbe a passagem de veículos ou peões, conforme a cor da luz que emita. Sem eles, os cruzamentos das estradas seriam um autêntico perigo.
Vamos a isto: o nosso semáforo vai ter duas luzes e uma cancela. O que tens na tua electrónica que emita luzes? Que componente é capaz de mover uma cancela? Certo! Vamos usar 2 LED e um miniservo, assim como, evidentemente… a nossa placa controladora ZUM BT-328. No total vamos necessitar de:
- Uma cartolina
- Um pouco de celofane verde
- Um pouco de celofane vermelho
- Tesoura
- Fita-cola
- Cola
- 2x ZumBloq LED
- 1x ZumBloq Miniservo
- Cabeça angular do miniservo
- Uma placa controladora ZUM BT 328 compatível com Arduino
- Um cabo USB
Montagem
Primeiro passo:
Desenha o teu próprio semáforo ou imprime a maqueta que desenhámos… e que podes encontrar na zona de downloads. Assegura-te de que a imprimes sem aumentar o seu tamanho, com a opção em tamanho real. Depois, recorta-a pelas linhas negras nas zonas indicadas.

Uma vez tudo recortado, dobra o papel em todas as linhas descontínuas que encontrares. Os rectângulos brancos que se vêm na cancela e no poste, servem para reforçar a estrutura. Devem ser dobradas de forma a que permaneçam por dentro.
Segundo passo:
Chegou a hora de colocar os vidros no teu semáforo. Para isso, recorta um quadrado de celofane de cor vermelha e cola-a com um tubo de cola ou com fita-cola na parte interior do semáforo no buraco de cima. Faz o mesmo com um pedaço de celofane verde no buraco de baixo. Um conselho: como o teu LED é azul, quanto mais celofane vermelho puseres, mais vermelho será o sinal.
Terceiro passo:
Agora temos que colocar os LED. A primeira coisa a fazer é identificar de que cor é cada LED. Para isso, cria um programa que acenda os dois LED tal como se explica aquí. Temos que colocar os LED dentro do semáforo, juntos à parede traseira, tal e qual como se vê na imagem. O LED verde atrás do celofane verde e o LED azul detrás do vermelho. Podes pintar o LED azul com um marcador vermelho para dar-lhe um tom mais avermelhado à luz (assegura-te que o marcador não é permanente!).
Usa fita-cola para cola-los e certifica-te que os conectores não chocam com a parede. Podes passar os cabos por um dos lados do semáforo, ou se quiseres que que fique perfeito, experimenta passá-los pela base do semáforo, atravessando o poste e a base (não é fácil, mas fica muito fixe!).
Quarto passo:
Une o poste à caixa principal com as abas laterais. Olha para a imagem, porque te dará uma grande ajuda.
Fecha a caixa principal e termina o semáforo, adicionando a base. Usa as abas como anteriormente.
Quinto passo:
Vamos passar à cancela. Primeiro dobra e cola a caixinha do miniservo e coloca-o lá dentro. Consegues ver aquele quadradinho que falta na cancela? Tens que fixar a cabeça do miniservo (que viste na lista dos materiais necessários) de forma a que a parte que se coloca no miniservo, fique de fora e o restante…dentro da cancela. Repara bem na imagem, para saber se estás a montar tudo bem.
Já tens o teu semáforo! Mas não coloques ainda a cancela no miniservo. Espera até programá-lo e quando souberes que o semáforo está verde, coloca a cancela na posição correcta.
Sexto passo:
Conexões: podes fazer as ligações agora, ou se preferires, depois da placa estar programada.
Programação
Chegou a hora de programar o teu semáforo. O programa completo é o seguinte:
Como vês, é um programa relativamente pequeno, mas o que vamos aprender aqui, são boas práticas de programação. As boas práticas de programação são muito importantes porque ajudam a que qualquer pessoa que veja o teu programa, consiga entendê-lo melhor. São formas de tornar as coisas mais compreensíveis para todos, segundo normas que se foram estabelecendo na comunidade dos programadores ao redor do planeta. No nosso programa veremos duas delas:
- As variáveis globais: Usámos variáveis globais para escrever parâmetros que definem o funcionamento do programa. Como estas variáveis são declaradas no princípio do programa, podemos encontrá-las facilmente e modificar o tempo que queremos que o semáforo fique na cor verde, a piscar ou na cor vermelha… apenas alterando os valores destas variáveis. Assim não teremos que procura no meio de todo o código, onde estão estes tempos para modificá-los.
- As funções: Quanto mais pequeno for o nosso programa principal, mais fácil será lê-lo. A forma de conseguir isto é fazer um bom uso das funções. Devemos entender o que faz uma função apenas ao ler o seu nome. Desta forma, ler o programa principal será .
Olha outra vez para o programa e repara apenas no ciclo principal (os que não são nem funções, nem variáveis globais). O que é mais fácil de ler do que isto? Tão simples como acender luz verde, esperar tempo de luz verde, piscar, acender vermelho e esperar tempo de luz vermelha. Qualquer pessoa na comunidade bitbloq poderia lê-lo num instante.
A única função um pouco mais complexa é a do piscar:
Nela, estamos a criar um loop contar para repetir quatro vezes, o piscar do LED verde. O tempo do bloco esperar está dividido entre 8 para fazer com que pisque quatro vezes, definir o tempo que escolheres na variável global tempo_de_piscar. E como já estamos a esperar aqui, não esperamos no ciclo principal.
Vamos brincar!
Agora já sabemos programar um semáforo para que se ponha verde durante o tempo que quisermos, mas… consegues imaginar-te a ter que controlar todos os semáforos de uma cidade? Continua a practicar e… quem sabe se um dia vais achar facílimo! E para praticar, desafia-te a criar algo como isto:
- Adiciona uma ajuda sonora para as pessoas cegas, com o teu buzzer
- Adiciona a luz amarelo e constrói um semáforo para veículos
- Cria um cruzamento com vários semáforos, sincronizando correctamente os tempos de forma que os veículos não choquem.
Lembra-te de fazer uso das boas práticas da programação.
Até já!
-
PostSemaforoBitbloq1
"Semáforo" Programa para o bitbloq | CC-BY-SA
-
Programación semáforo Bitbloq 2
Esquema do semáforo | CC-BY-SA
-
Semaforo plantilla Diwo
Planta da cidade do vídeo. | CC-BY-SA
-
bqCity Plantilla
Aqui encontrarás todas as imagens em diferentes tamanhos, assim como a animação (e o seu ficheiro, para que possa ser editada) e o vídeo. | CC-BY-SA
-