Arquivo mensais:setembro 2022

Semáforo simples com Arduino e impressão 3D

Hoje veremos como programar um semáforo em Arduíno. A impressão foi feita por mim para ser usada nas aulas, no entanto vou compartilhar o desenho e o processo de como fiz a montagem.

O Semáforo 3D

O desenho foi feito no Tinkercad e pode ser visualisado a seguir.

Os LEDs foram colados com cola escolar líquida (de PVC) usada pra colar papel e outros materiais escolares. O resultado final ficou como nas fotos a seguir.

Semáforo impresso em impressora 3D
Semáforo impresso e os LEDs colados

Para conectar os LEDs aos fios que vão ao Arduino, tentei duas estratégias: soldar fios aos LEDs e conectar diretamente um fio M/F aos LEDs. A segunda opção se saiu melhor.

Detalhe dos fios soldados aos leds no semáforo. Uma das soldas se rompeu.
Tentativa de soldar os cabos nos LEDs: as soldas se rompem com a manipulação.
Detalhe com cabos conectados nos leds e fixos por fitas adesivas
Mesmo não ficando com uma aparência muito boa, usar uma fita adesiva e para segurar um conector fêmea diretamente no LED pareceu ser a melhor opção.

Apesar de decidir por não soldar os cabos os fios nos LEDs, achei bom colar os GNDs dos LEDs um no outro, diminuindo o uso de fios por parte dos alunos.

Semáforo com os gê ene dês , ou terras, dos leds soldados entre si,
Semáforo com GNDs dos LEDs soldados entre si.

O circuito no Tinkercad

Confira o circuito abaixo:

Se o circuito não carregar, acesse o circuito na página do Tinkercad.

O código

Baixe, compartilhe ou copie o código acessando o site do GitHub.

Vamos discutir o código a seguir.

Primeiramente inserimos variáveis com valores que correspondem às portas digitais a serem usadas.

int verde1 = 2, amarelo1 = 3,
    vermelho1 = 4, verde2 = 5, 
    amarelo2 = 6, vermelho2 = 7;

No setup, configuramos cada uma das portas acima como saída.

void setup() {
  pinMode(verde1, OUTPUT);
  pinMode(amarelo1, OUTPUT);
  pinMode(vermelho1, OUTPUT);
  pinMode(verde2, OUTPUT);
  pinMode(amarelo2, OUTPUT);
  pinMode(vermelho2, OUTPUT);
}

No loop, vamos detalhar um pouco mais. Começando com a parte do código que liga o LED verde do semáforo 1 e o vermelho do semáforo 2 e aguarda 2 segundos (2000 milissegundos).

void loop() {
  digitalWrite(verde1, HIGH);
  digitalWrite(vermelho2, HIGH);
  delay(2000);

Para mudar o semáforo 1 para amarelo precisamos desligar o verde e só então ligarmos o verde. Fazemos isso e aguardamos mais um segundo:

  digitalWrite(verde1, LOW);
  digitalWrite(amarelo1, HIGH);
  delay(1000);

Para mudar o semáforo 1 para vermelho temos que desligar o LED amarelo do semáforo 1. Logo em seguida, para mudar o semáforo 2 para verde, temos que desligar o LED vermelho do semáforo 2 e ligar o LED verde do semáforo 2. Depois, aguardamos mais 2 segundos.

  digitalWrite(amarelo1, LOW);
  digitalWrite(vermelho1, HIGH);
  digitalWrite(vermelho2, LOW);
  digitalWrite(verde2, HIGH);
  delay(2000);

Para colocar o semáforo 2 no amarelo precisamos desligar o LED verde e ligar o amarelo. Aguardamos mais um segundo no final:

  digitalWrite(verde2, LOW);
  digitalWrite(amarelo2, HIGH);
  delay(1000);

Por fim, deligamos o amarelo do semáforo 2 e o vermelho do semáforo 1.

  digitalWrite(amarelo2, LOW);
  digitalWrite(vermelho1, LOW);
}

Note que ao terminar o algoritmo o Arduino volta a executar tudo desde o começo, portanto, não precisamos escrever mais nada. Para verificar, veja abaixo o início do nosso código novamente:

  digitalWrite(verde1, HIGH);
  digitalWrite(vermelho2, HIGH);

Resultado final do projeto

Confira no vídeo a seguir o resultado final. Minha câmera não é boa, portanto o vídeo vai começar já na parte em que mostro o circuito funcionando. Em seguida discuto o código. A montagem do circuito ficou prejudicada e não recomendo o vídeo desde o começo.

XLVII OFICINA DE FÍSICA “CESAR LATTES” “EXPLORANDO A FÍSICA EXPERIMENTAL COM MATERIAIS SIMPLES” 24 DE SETEMBRO DE 2022

Prof. Pierre-Louis de Assis

Mensagem encaminha (recebida por e-mail) com objetivo de divulgação. Como sempre, nenhum conteúdo aqui foi produzido por mim.

Embora seja uma ciência de caráter fundamentalmente experimental, a imagem que muitos alunos carregam do Ensino Médio é de que a Física é de uma coleção de fórmulas a serem decoradas. De fato, esta visão pode persistir até mesmo durante o Ensino Superior, durante o qual o contato com as disciplinas teóricas é muito mais prolongado que com as disciplinas experimentais.


O Instituto de Física “Gleb Wataghin” – IFGW/UNICAMP convida a toda a comunidade para a XLVII Oficina de Física “César Lattes”. O tema desta edição é “Explorando a física experimental com materiais simples” e será realizada em 24 de setembro de 2022.

PROGRAMAÇÃO

08h30 – 08h40Credenciamento/Abertura
08h40 – 08h50Formação de grupos e escolha dos experimentos
08h50 – 09h55Coleta de dados
09h55 – 10h25Intervalo / Café
10h25 – 11h30Coleta de dados
11h30 – 13h15Intervalo / Almoço
13h15 – 14h20Análise de dados e preparação da divulgação dos resultados
14h20 – 14h50Intervalo / Café
14h50 – 15h55Apresentação de resultados e discussão entre os grupos
15h55 – 16h00Encerramento

Nesta oficina, apresentaremos experimentos de Física que podem ser realizados utilizando materiais simples, encontrados no dia a dia, como os sensores de um telefone celular e um computador com capacidade de processamento relativamente simples. Isso permitirá que as habilidades EM13CNT101, EM13CNT301 e EM13CNT302 da BNCC sejam abordadas mesmo em um contexto no qual um laboratório de Física não está disponível, ao mesmo tempo dando liberdade aos alunos para explorar os temas propostos.

Os experimentos serão apresentados não na forma de roteiros fechados, mas de questões/desafios que motivem a exploração do fenômeno e elaboração de um procedimento experimental. A turma será dividida em grupos, que poderão escolher diferentes fenômenos para investigar. Ao fim do dia os grupos apresentarão seus resultados e promoveremos uma discussão sobre as atividades propostas e sua aplicabilidade no contexto das salas de aula dos participantes e do Novo Ensino Médio.

As Oficinas de Físicas são focadas para professores do ensino médico, mas curiosos e entusiastas também são bem-vindos! Dessa forma, convidamos os professores de Ensino Médio da nossa região, alunos de graduação e pós-graduação e público em geral.

É desejável trazer um computador para fazer o tratamento de dados e um smartphone com o aplicativo Phyphox.

Com o objetivo de reduzir o uso de plástico/papel e para minimizar os impactos das mudanças climáticas no planeta, solicitamos a colaboração de todos os participantes da Oficina e pedimos a gentileza de trazerem caderno/bloco e caneta para possíveis anotações. Pedimos ainda, que tragam suas próprias canecas para o uso durante o coffee break.

Venha participar!

Coordenadoria de Extensão

IFGW/UNICAMP

DATA E LOCAL

A Oficina será realizada, presencialmente, no sábado, dia 24 de setembro às 8h30min, no Auditório do Instituto de Física “Gleb Wataghin” – IFGW/UNICAMP.

COMO CHEGAR

Clique nos links abaixo para informações de como chegar.

[Mapa] [Como chegar

CERTIFICADO DE PARTICIPAÇÃO

Para receber o certificado de participação é necessário ter no mínimo 75% de presença na Oficina e preencher o requerimento, cujo link será disponibilizado no decorrer das atividades.

Os certificados serão disponibilizados na plataforma Galoá, a partir do dia 03 de outubro de 2022. É importante verificar se o nome e e-mail cadastrados foram preenchidos corretamente, pois não será possível correção após o envio.

INSCRIÇÕES

Para se inscrever clique aqui (inscrições até 22/09, quinta-feira)

– Aluno do Ensino Médio (escola pública) – R$ 25,00

– Aluno do Ensino Médio (escola particular) – R$ 35,00

– Aluno de graduação (universidade pública) – R$ 35,00

– Aluno de graduação (universidade particular) – R$ 35,00

– Professor de escola/universidade pública – R$ 10,00

– Professor de escola/universidade particular – R$ 10,00

– Funcionário público – R$ 40,00

– Bolsista de pós graduação – R$ 40,00

– Bolsista de pós doutorado – R$ 40,00

– Profissional liberal – R$ 56,00

– Profissional de empresa privada – R$ 60,00

– Outros – R$ 60,00

Acompanhe o IFGW no portal e redes sociais:

Extensão/IFGW no Instagram: https://www.instagram.com/extensao_ifgw

IFGW no Instagram: https://www.instagram.com/ifgw.unicamp

IFGW no Facebook: https://www.facebook.com/FisicaUnicamp

IFGW no Youtube: https://www.youtube.com/c/ifgwplay

Portal IFGW: https://portal.ifi.unicamp.br

Evento no Facebook: https://www.facebook.com/events/420161036879937

Seta com Arduino UNO

Hoje vamos montar um circuito que simula a seta de um carro.

O código pode ser baixado no GitHub. Ao abrir, basta clicar no ícone para copiar (fica no canto superior direito do código).

Discutindo o código

Iniciamos o código com um comentário, no qual apresentamos como deve ser o circuito (conectando um LED na porta digital 2 e outro na digital 3; conectando os botões para acionar as setas nas portas digitais 4 e 5).

/* LED esquerdo -> digital 2
   LED direito -> digital 3
   botão led esquerdo -> 4
   botão led direito -> 5
*/

A seguir vemos as variáveis que correspondem às conexões elétricas.

int LEDesquerdo = 2, LEDdireito = 3, botaoEsquerdo = 4, botaoDireito = 5; 
int seta = 0; //se 1 liga a esquerda, se 2 liga a direita

Note que criamos uma variável chamada seta. Ela servirá para identificar qual das setas deve ser acionada.

No setup´ iniciamos a comunicação serial para verificarmos se os botões estão funcionando. Note que a entrada dos botões estão definidas como INPUT_PULLUP, que significa que a porta digital ficará em HIGH quando não pressionamos o botão e em LOW quando pressionamos. Isso implica que devemos conectar o GND aos botões.

void setup() {
  Serial.begin(9600);
  pinMode(LEDesquerdo, OUTPUT);
  pinMode(LEDdireito, OUTPUT);
  pinMode(botaoEsquerdo, INPUT_PULLUP);
  pinMode(botaoDireito, INPUT_PULLUP);
}

No loop iniciamos com um Serial.println para vemos se os botões estão funcionando. Para isso, abra o monitor serial para ver se está alternando entre 0 e 1 ao pressionar os botões. Se estiver sempre mostrando somente zero, você ligou incorretamente o fio GND no(os) botão(ões). Tente mudar isso para ver se resolve.

void loop() {
  Serial.println(digitalRead(botaoEsquerdo));
  Serial.println(digitalRead(botaoDireito));

Agora vamos usar a variável seta: se pressionarmos o botão esquerdo, a variável guarda o número 1 e se pressionarmos o botão da direita esta variável muda para 2.

Note que ao colocar if (!digitalRead(botaoEsquerdo)), o que está dentro do if será verdadeiro (True) (ou 1 ou ainda HIGH) quando pressionarmos o botão, uma vez que quando pressionamos o botaoEsquerdo terá valor 0 (falso ou False ou LOW) e o símbolo “!” nega isso (ou seja, se botaoEsquerdo for 0, o argumento do if será 1). Por outro lado, se não pressionamos, botaoEsquerdo valerá 1 (ou True ou LOW) e
!digitalRead(botaoEsquerdo) valerá 0 (ou False ou LOW).

Lembre-se que o que está abaixo do if (entre as chaves {}) só será executado se o argumento do if for True.

  if (!digitalRead(botaoEsquerdo)) {
    seta = 1;
  }
  if (!digitalRead(botaoDireito)) {
    seta = 2;
  }

O final do código começa com um delay de 300 milisegundos (ou 0,3 segundo) que servirá para manter o LED escolhido apagado por este tempo. Este delay foi colocado de forma estratégica para que o pressionar do botão seja reconhecido antes da espera (lembre-se que o código fica sendo executado em loop, ou seja, após executar todo o código, esta parte será executada novamente.

  delay(300);
  if (seta == 1) {
    digitalWrite(LEDesquerdo, HIGH);
    delay(400);
    digitalWrite(LEDesquerdo, LOW);
  }
  if (seta == 2) {
    digitalWrite(LEDdireito, HIGH);
    delay(400);
    digitalWrite(LEDdireito, LOW);
  }
}

Os ifs servem para ligar a seta correspondente, esperar por 400 milissegundos (0,4 segundo) e desligar a seta.

O circuito

Para montar o circuito, você deverá ligar um o GND no pino menor de cada LED usado, sendo possível usar quantos LEDs você quiser em cada uma das setas. Aqui, no entanto, é importante colocar um resistor, fornecido por seu professor, para não queimar o LED ou sobrecarregar o Arduino.

No botão, sugiro que faça uma conexão cruzada, como na figura a seguir. Assim você nunca vai errar no uso dos botões do tipo pushbutton.

Como conectar os fios no botão
Conecte os fios de forma cruzada no botão, assim você nunca vai erra a conexão deste tipo de botão

A perninha maior de cada LED deve ser conectada na porta digital correspondente.

Veja simulação a seguir:

Gostou deste novo formato de documento para as aulas? Temos algumas vantagens quanto à isso:

  • Menor quantidade de papel impresso usado;
  • Conteúdo mais responsivo: pode ver no notebook ou celular que a visualização fica amigável;
  • Maior interatividade, pois você pode postar uma dúvida abaixo que o professor irá te responder;
  • Mais fácil de encontrar este circuito no futuro, pois todas as nossas aulas estarão marcadas na categoria “Robótica” e, se for com Arduino, também terá a categoria “Arduino”.