10ª sessão do CPR

Hoje foi dia de mais uma sessão online do Clube de Programação e Robótica. Eis alguns dos desafios resolvidos.

Quadrados encaixados:
Este programa utiliza um bloco de código com o nome “quadrado”, com um parâmetro numérico referente ao comprimento do lado a desenhar e que vai ser usado para desenhar quadrados com medidas de lado variáveis.

Carrega no link abaixo para veres o código (carrega em “Ver por dentro”):

https://scratch.mit.edu/projects/487588605

 

Robô que segue a linha amarela:
Este programa utiliza um bloco de código com o nome “andar”, sem parâmetros e que vai ser usado para fazer com que o robô utilize as antenas esquerda e direita para detetar se está no caminho certo. Chegando à linha vermelha, a forma do trajeto altera.

Carrega no link abaixo para veres o código (carrega em “Ver por dentro”):

https://scratch.mit.edu/projects/487589537

9ª sessão do CPR

O clube de programação e robótica tem reunido aos sábados de manhã e hoje não foi exceção.

A complexidade dos problemas/desafios propostos está a aumentar assim como a motivação de todos.

Fica aqui um pouco do que estivemos a fazer hoje que envolve o conhecimento de estruturas de controlo como ciclos repetir, condições, sensores, eventos, etc.

A brincar vamos fazendo descobertas.

Robô que segue o trilho amarelo:

Carrega no link abaixo para veres o código (carrega em “Ver por dentro”):

https://scratch.mit.edu/projects/484400691

Desenhar figuras geométricas perguntando o nº de lados:


Carrega no link abaixo para veres o código (carrega em “Ver por dentro”):

https://scratch.mit.edu/projects/484396589

Arduino + sensor de temperatura

Está frio!

//As bibliotecas adicionadas

#include 

#include 

//Declaração do pino digital7 como sendo o pino do sensor de temperatura dht11 

int pinDHT11 = 7;
SimpleDHT11 dht11;

//Declaração dos pinos do LCD

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
// // inicializa a porta serial, configura a taxa de dados para 9600 bps
  
  Serial.begin(9600);
 
//Inicialização do LCD
  
  lcd.begin(16, 2);
   
   
}

void loop() {

  //O código das linhas abaixo destina-se a obter leituras no monitor série e no monitor LCD 
  
  Serial.println("=================================");
  Serial.println("DHT11 readings...");
  
 
  byte temperature = 0;
  byte humidity = 0;
  int err = SimpleDHTErrSuccess;

  //Código a executar caso haja erros na leitura
  if ((err = dht11.read(pinDHT11, &temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
    Serial.print("Sem leitura , err="); Serial.println(err);delay(1000);
    return;
  }
  
  Serial.print("Leituras: ");
  Serial.print((int)temperature); Serial.print(" Celcius, ");
  Serial.print((int)humidity); Serial.println(" %");
 
  //faz o refresh do lcd a cada 0.75 segundos
  lcd.clear();
 
  //posiciona o cursor na 1ªlinha e 1ªcoluna
  lcd.setCursor(0,0);
  //Escreve Temp: 
  lcd.print("Temp: ");
  //escreve os valores de temperatura lidos no sensor a seguir a "Temp: " 
  lcd.print((int)temperature);
  //escreve o símbolo de centígrados
  lcd.print((char)223);
  lcd.print("C");
  //posiciona o cursor na 1ªlinha e 2ªcoluna
  lcd.setCursor(0,1);
  //Escreve Humidade(%): 
  lcd.print("Humidade(%): ");
  //escreve os valores de humidade lidos no sensor a seguir a "Humidade(%): "
  lcd.print((int)humidity);
  
  delay(750);
}