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.
Tamén esquivo obstáculos! Ollo cos sensores ultrasónicos chineses. Dependendo do fabricante algúns van perfectos e outros saen algo rariños. pic.twitter.com/z7p1cI9VUb
— mClon (@mClonRobot) 9 de novembro de 2018