Ultrasónico

O sensor ultrasónico

O sensor ultrasónico do mClon ten unidos os pins Trig e Echo, e van conectados no pin analóxico A3.

Temos varias formas de programalo, directamente ou usando a librería NewPing (con ela non podes usar conxuntamente instrución tone do zumbador). Aquí usaremos a opción manual.

Para comprobar que funciona correctamente utilizamos a consola para visualizar as distancias. Move a man diante do ultrasónico para ver a máxima distancia á que pode detectar un obxecto.

// Declaración de variables:
 
int trig = A3;         // trig conectado ao pin A3
int echo = A3;         // echo conectado ao pin A3
long tempo;           // variable para expresar o tempo
long distancia;       // variable para expresar a distancia.
 
 
// Configuración:
 
void setup(){
  Serial.begin(9600);

}

// Función

void mideDistancia(){
  digitalWrite(trig,LOW); 
  delayMicroseconds(5);
  pinMode(trig, OUTPUT);
  digitalWrite(trig, HIGH);     // envío do pulso ultrasónico
  delayMicroseconds(10);
  pinMode(echo, INPUT);
  tempo=pulseIn(echo, HIGH);    // tempo transcorrido entre o envío do pulso e a recepción
  distancia= int(0.017*tempo);  // fórmula para calcular la distancia
}
 
// Programa:
 
void loop(){
  
  mideDistancia();    // invocamos a función de medir distancia
 
  Serial.print("Distancia: ");  // imprimimos os valores na consola
  Serial.print(distancia);
  Serial.println(" cm");
  delay(200);
}

Non chocar

Queremos que o mClon faga un percorrido aleatorio pola aula de xeito que se non ten ningún obstáculo diante avance e cada vez que atope un obxecto xire.

Deberás introducir previamente no programa a configuración e funcións dos motores e do ultrasónico. Despois, no loop, dálle as seguintes instrucións:

  if (distancia >15){
    m1(1, 125);
    m2(1, 125);
  }
  else{
    m1(-1, 125);
    m2(1, 125);
    delay(500);
  }

Prácticas:

  • Movemento aleatorio: Completa o programa anterior facendo que o robot, cada vez que atope un obxecto, xire aleatoriamente unhas veces cara á esquerda e outras cara á dereita. Utiliza a función random.
  • Cantos obstáculos?: Fai que se almacene nunha variable o número de veces que o mClon atopou un obxecto na traxectoria. Cando a variable marque 10 o robot deberá parar e emitir un son. (Opcional: Se tes conectada unha matriz de LEDs fai que se amose nela o valor da variable)

Retos

Limpalatas

Nun recinto circular colocamos o mClon e dúas ou tres latas. O robot deberá retirar as latas do recinto no menor tempo posible e sen saír da liña delimitadora.

Liña con obstáculos

Sitúa latas nos tramos rectos dun circuíto de liña negra sobre superficie branca (ou branco sobre negro, como prefiras). O mClon debe seguir a liña e cando atope unha lata debe rodeala sen tocala nin desprazala, volver a atopar a liña de novo e continuar o percorrido. O robot que tire unha lata será descalificado. Se a toca pero non a despraza terá unha penalización dun segundo. O robot que faga o percorrido no menor tempo gaña.