Versión robot hogar Prueba 0.3.1


Pon a prueba el robot hogar modo de conducción automática en base a datos de la, telémetro ultrasónico infrarrojos y codificadores.

Este artículo es una continuación de la anterior opinión casa robot ver 0.3 .
La idea es hacer que el robot capaz de moverse de forma independiente alrededor de la casa sin intervención humana. Sobre el chasis plataforma seleccionada se describe en el artículo anterior. En el proceso de implementación y las pruebas se encontró sistema de detección de obstáculos menos aceptable y le informará acerca de abajo.

Se basa en el radar por así decirlo - al girar micro servo, telémetros
.



Telémetro infrarrojo SHARP GP2Y0A41SKOF, declaró que las medidas en una distancia de 4 a 30 pulgadas. En realidad, sin embargo, es capaz de medir y seguir, pero con mayor precisión. Cuando un obstáculo a 4 pulgadas ofrece información distorsionada como si un obstáculo está encendido. Pequeño haz Sector.


En el gráfico podemos entender más o menos la dependencia de la señal de la distancia.


Código de ensayo para la EDM SHARP GP2Y0A41SKOF.

 & lt; código de & gt; #define configuración vacío pin A1 () {Serial.begin (9600); pinMode (pin, INPUT); } Lazo vacío () {valor uint16_t = analogRead (pin); doble distancia = GP2Y0A41SKOF get_ (valor); // Cálculo basado en un valor analógico de la distancia en centímetros Serial.println (valor); Serial.print (distancia); Serial.println (& quot; cm & quot;); Serial.println (); retardo (500); } // Devuelve la distancia (cm) GP2Y0A41SKOF get_ doble (valor uint16_t) {if (value & lt; 16) Valor = 16; volver 2076.0 / (valor - 11.0); } & Lt; / Código & gt;  pre> 
 Distancia ultrasónico HC-SR04, declaró que las medidas en una distancia de 2 a 450 centímetros. Sector gran medida dependiendo de la cara oscila entre 30 a 60 grados. Cálculo de la distancia lineal, mientras que el sonido reflejado se divide por la velocidad del sonido.

Código de ejemplo para telémetro HC-SR04.
 & lt; código de & gt; digitalWrite (Trig, HIGH); // Envía una señal a los delayMicroseconds salida microcontrolador (10); // Sostenga 10 microsegundos digitalWrite (Trig, LOW); // A continuación, retire time_us = pulseIn (Echo, HIGH); // Mide la longitud de la distance_sm pulso = time_us / 58; // Volver a calcular en centímetros Serial.println (distance_sm); // Muestra el puerto & lt; / código de & gt;  pre> 
 Y la función pulseIn puede establecer la señal de tiempo máximo de espera de manera diferente en la ausencia de las ondas sonoras reflejadas, que puede esperar un largo tiempo bloqueando así la ejecución del programa, he encontrado empíricamente la siguiente
valor
 & lt; código de & gt; time_us = pulseIn (Echo, ALTA, 50000); & lt; / Código & gt;  pre> 
 Sólo tengo que decir que dependiendo de la superficie del obstáculo y el ángulo de telémetros reflexión puede variar mentira. El uso de dos tipos diferentes de telémetro en una dirección ayuda a mejorar la precisión de la medición. En el momento en que motivados principalmente por los datos de la telémetro infrarrojo, cuando falla, tomar los datos de la ecografía.

Telémetros Serva gira 30 a 150 grados en incrementos de 30 grados, el número de forma empírica tomada por la sencillez y la rapidez de las mediciones. Las mediciones se almacenan en la matriz y bajo demanda en cualquier momento se pueden llevar a cabo controles sobre los obstáculos de golpe en un área rectangular en frente del robot.

Como parte del robot, por cualquier razón no detectar obstáculos, decidió determinar el robot estropeado y no puede continuar en los datos procedentes del codificador montado en el eje del eje.

Codificadores se utilizan aquí son.

Su mecanismo de acción es simple, hay un sensor óptico en los agujeros de paso en el disco. Cambio sensor Hung interrumpir arduino, código de ejemplo siguiente:
 & lt; código de & gt; LwheelSpeed ​​vacío () {coderLeft ++; // Cuenta el codificador de la rueda izquierda interrumpe} void setup () {attachInterrupt (IZQUIERDA, LwheelSpeed, CAMBIO); } & Lt; / Código & gt;  pre> 
 Aproximadamente una vez cada 200 milisegundos, calculan la velocidad de las ruedas. Por consiguiente, si la velocidad de movimiento de las ruedas cae rápidamente, se considera que el robot chocó con un obstáculo. Después de eso, él tira hacia atrás y giros.

Este no es el sistema de sensor inteligente alcanzado casi el cien por ciento de garantía de detección de obstáculos. El vídeo puede ser visto como un robot cumple todas estas situaciones.

Ahora espero micro y termino 3d impresora, hago un parachoques robot. Luego piensa funcionará casi todas las situaciones posibles.

Algunas fotos del robot desde diferentes ángulos.

Abrir abierta sours proyecto en el robot, el robot todavía terminado en cuanto a estado más o menos cuerdo del diseño de circuitos y diseñar el código fuente, si alguien necesita en este momento en un correo electrónico personal.

Más información, noticias, fotos y videos, ver el Vkontakte grupo en este proyecto - vk.com/club23358759

Por favor comente sobre qué tema escribir el siguiente artículo, para hacer un video.

Fuente: habrahabr.ru/post/222657/