Barriendo el telémetro ultrasónico (4 / 4 paso)

Paso 4: Código subir

  1. Conecte el Uno a un PC vía USB. Copie el código que se muestra a continuación en un boceto en blanco utilizando el IDE de Arduino y subirlo a la Junta.
  2. Usted tendrá que importar el ST7735 y Adafruit GFX bibliotecas que se encuentran aquí: http://learn.adafruit.com/1-8-tft-display/graphics-library
  3. Retire el cable USB y conecte el plug 2,1 mm conector de alimentación de la ONU.
  4. Ahora tienes un trabajo barrido telémetro ultrasónico. Jugar con algunas de las variables en el código para cambiar la velocidad del servo y forma que los resultados se representan gráficamente en la pantalla.

Este código procesa los datos de un telémetro ultrasónico montado sobre un servo
El servo barrerá 180 grados
Datos del telémetro ultrasónico se trazan en la pantalla

Para el desbloqueo, puede utilizar cualquiera (4 o) 5 pernos
#define sclk 4
#define mosi 5
#define cs 6
#define dc 7
#define rst 8 / esto puede conectar el reset Arduino

Utilice estos pasadores para el escudo!
#define sclk 13
#define mosi 11
#define cs 10
#define dc 8
#define rst 0 / / esto puede conectar el reset Arduino

#include < Adafruit_GFX.h > / / Biblioteca de gráficos de base
#include < Adafruit_ST7735.h > / / específicos de Hardware de biblioteca
#include < math.h >
#include < SPI.h >
#include < Servo.h >

#if defined(__SAM3X8E__)
#undef __FlashStringHelper::F(string_literal)
#define F(string_literal) string_literal
#endif

Tft de Adafruit_ST7735 = Adafruit_ST7735 (cs, dc, rst);
flotador p = 3.1415926;
uint16_t x = 0;
uint16_t y = 0;
ángulo de flotador = 0;
flotador ángulo2 = 0;
flotador de ángulo1 = 0;
int adelante = 1;
sensor int = 0;
doble distancia = 0;
uint16_t px = 0;
uint16_t py = 0;
doble escala =. 4;
int i = 0;
doble velocidad = 0,02;
desplazamiento del flotador = 10;
int cuenta = 0;
int pos = 0;

Servo servo;
int servopin = 9;

void setup(void) {}

Conecte el servo y sistema de posición del centro
servo.Attach(servopin);
Delay(500);
servo.Write(90);
Delay(500);
servo.Detach(); Separar antes de enviar comandos de la pantalla (interfaz SPI utiliza mismo temporizadores son Biblioteca Servo)

tft.initR(INITR_BLACKTAB);   inicializar una ficha de chip, negro ST7735S
Si la envoltura de plástico de tu TFT tiene una ficha roja, utilice lo siguiente:
tft.initR(INITR_REDTAB);   inicializar una ficha de chip, rojo ST7735R
Si la envoltura de plástico de tu TFT tiene una ficha verde, utilice lo siguiente:
tft.initR(INITR_GREENTAB); inicializar una ficha de chip, verde ST7735R

Hacer una pantalla negra y luego imprimir fondo (texto y arcos)
tft.fillScreen(ST7735_BLACK);
tft.setCursor (0, 152);
TFT.Print ("1m 2m 3m");
tft.setCursor (0, 0);
TFT.Print("scanning");
drawcircles();

ángulo1 = atan((float)tft.width()/((tft.height()/2.0)-offset));
ángulo2 = constantio - ángulo1;
}

void loop() {}

Calcular la posición de servo (servo es 0-180degrees mientras que variable de ángulo en radianes)
pos = 180.0-180.0*(angle/p);
distancia = analogRead(sensor);

Atach servo al inicio de cada ciclo
servo.Attach(servopin);
Delay(15);
servo.Write(POS);

Este código convierte cooridantes polar sensor de coordenadas x-y
Esto determina qué píxeles para dibujar los datos del sensor en
El código varía ligeramente según el cuadrante del ángulo
if(Angle<angle1) {}
x = (uint16_t) (tft.height()/2-offset) * tan(angle);
y = desplazamiento (uint16_t);
PX = escala * distancia * sin(angle);
py = tft.height () / 2 - escala * distancia * cos(angle);
} else if (ángulo <(M_PI/2.0)) {}
y = (uint16_t) ((tft.height()) / 2 - tft.width() / tan(angle));
x = tft.width();
PX = escala * distancia * sin(angle);
py = tft.height () / 2 - escala * distancia * cos(angle);
} else if(angle<angle2) {}
y = (uint16_t) ((tft.height()) / 2 + tft.width() / tan(M_PI-angle));
x = tft.width();
PX = escala * distancia * sin(M_PI-angle);
py = tft.height () / 2 + escala * distancia * cos(M_PI-angle);
} else if(angle>angle2) {}
x = (uint16_t) (tft.height()/2-offset) * tan(M_PI-angle);
y = (uint16_t) (tft.height()-offset);
PX = escala * distancia * sin(M_PI-angle);
py = tft.height () / 2 + escala * distancia * cos(M_PI-angle);
}

Separar el servo después de que ha llegado a su posición para el ciclo y antes de escribir comandos de visualización
Delay(15);
servo.Detach();

Dibujar una línea que representa la dirección que apunta el sensor
tft.drawLine (0, tft.height () / 2, x, y, ST7735_GREEN);
tft.drawLine (0, tft.height () / 2, x, y, ST7735_BLACK);
Dibuja un círculo para el sensor
tft.fillCircle (px, py, 1, ST7735_RED);

Como dibujar objetos es computacionalmente intensivo, los arcos verdes sólo se dibujan cada 30 ciclos
Si (cuenta > = 30) {}
cuenta = 0;
drawcircles();
TFT.Print(".");
}
cuenta ++;

Este código cambia la dirección, que el servo gira cuando llega al final de cada barrido (0 o 180 grados)
El código incluye volver a dibujar el texto y los arcos como la pantalla se borra al final de cada barrido
{if(Forward==0)}
ángulo = velocidad de ángulo;
Si (ángulo < = 0) {}
ángulo = 0;
adelante = 1;
tft.fillScreen(ST7735_BLACK);
tft.setCursor (0, 152);
TFT.Print ("1m 2m 3m");
tft.setCursor (0, 0);
TFT.Print("scanning");
cuenta = 0;
drawcircles();
}
} else {}
ángulo ángulo = velocidad;
Si (ángulo > = constantio) {}
ángulo = constantio;
adelante = 0;
tft.fillScreen(ST7735_BLACK);
tft.setCursor (0, 152);
TFT.Print ("1m 2m 3m");
tft.setCursor (0, 0);
TFT.Print("scanning");
cuenta = 0;
drawcircles();

}
}

}

Una función para dibujar círculos
void drawcircles() {}
tft.drawCircle (0, tft.height () / 2, (tft.height) / 4-20, ST7735_GREEN);
tft.drawCircle (0, tft.height () / 2, (tft.height) / 2-20, ST7735_GREEN);
tft.drawCircle (0, tft.height () / 2, (tft.width)-20, ST7735_GREEN);
}

Artículos Relacionados

Distanciómetro ultrasónico con un ATtiny85 (con escudo)

Distanciómetro ultrasónico con un ATtiny85 (con escudo)

Estoy aquí para mostrarle cómo usar un telémetro de ultrasonidos HC-SR04 un ATtiny85 como programar ATtiny85 usar que el maravilloso escudo randofo creado.Lista de materiales:Biblioteca de programación ATtiny85Arduino UnoTelémetro ultrasónico HC-SR04
Distanciómetro ultrasónico con Arduino

Distanciómetro ultrasónico con Arduino

Telémetro ultrasónico es un método sencillo de calcular distancia de un obstáculo a la distancia sin contacto físico. Emplea un sensor de distancia por ultrasonidos que utiliza pulsos de sonido para medir la distancia. Emiten un pulso ultrasónico y t
Fácil sensor ultrasónico de 4 pines monitoreo (hc-sr04)

Fácil sensor ultrasónico de 4 pines monitoreo (hc-sr04)

Hola Instructables,He tenido algunos problemas con mi sensor de ultrasonidos barato (hc-sr04) y hoy he encontrado una solución muy fácil.Es una edición muy simple del código normal de 3 pines.He añadido el int 4 al principio del código, por lo que pu
Gesto ultrasónico basado en TV con control remoto

Gesto ultrasónico basado en TV con control remoto

este es un proyecto bastante simple que está diseñado para introducir los componentes clave para un nuevo usuario de Arduino. He creado esto en unas horas trasteando con existentes de las bibliotecas de Arduino y un kit de inicio de SainSmart. Aplica
Visualizador de Sensor ultrasónico de distancias con procesamiento

Visualizador de Sensor ultrasónico de distancias con procesamiento

Este proyecto utiliza procesamiento a tomar datos de un telémetro ultrasónico en una placa arduino y que en las variables en el procesamiento de un bosquejo de la entrada.Paso 1: Configurar el hardwarese necesita:telémetro ultrasónicoplaca Arduinocab
Arduino ultrasónico Distanciómetro, con pantalla lcd de I²C!

Arduino ultrasónico Distanciómetro, con pantalla lcd de I²C!

Hola,en este proyecto que quiero mostrar y explicar un sensor de gama con ultrasonidos y una pantalla de lcd de 20 x 04. Escribí el código para este proyecto yo y añadidos muchos comentarios, para que todo el mundo puede entenderlo y utilizarlo para
Araña-sentido ultrasónico

Araña-sentido ultrasónico

Todos queremos tener superpoderes. Pero probablemente no querrá exponerse a sustancias químicas tóxicas o radiación con el fin de conseguirlos. Afortunadamente, hay algunas habilidades que nos podemos aproximar de cerca con tecnología un poco.Por eje
Arduino - HC SR04 Sensor de distancia ultrasónico ultrasónico gama Sensor

Arduino - HC SR04 Sensor de distancia ultrasónico ultrasónico gama Sensor

¡Hola mundo! Hoy he hecho una cosa bastante útil. Un metro de distancia con un sensor de distancia ultrasónico. funciona perfecto y se puede utilizar para muchas cosas, como el robot posicionamiento etc.. No cuenta el teléfono y módulo Bluetooth no l
Ultrasónico Piano

Ultrasónico Piano

Nota: Arriba es un video - puede mostrar como una foto solo en algunos dispositivos móviles.Este es un proyecto ideal para un etc. de Feria de ciencia - no es demasiado difícil de construir, sin embargo, hace un divertido interactivo exhibe.La idea e
Medidor de distancia telémetro sonar Intel IoT Edison

Medidor de distancia telémetro sonar Intel IoT Edison

Yo he hablando últimamente con un ingeniero amigo mío y le dije sobre mi nuevo telémetro del laser, cuando él dio a entender que un telémetro con las funciones de registro sería mucho más interesante para él. Desde mi nuevo juguete es una Board Intel
Telémetro infrarrojo caseros (Similar a Sharp GP2D120

Telémetro infrarrojo caseros (Similar a Sharp GP2D120

aquí es mi instructable sobre cómo construir un corto muy sencillo (para algunos!) sensor de infrarrojos telémetro/gama gama. Cámaras de telémetro infrarrojo son muy útiles en un número de proyectos. La mayoría de ellos provienen de detección de obst
Ecografía de analógica telémetro

Ecografía de analógica telémetro

Cuando comencé mi carrera en sistemas de control que estaba fascinado con las muchas diferentes maneras en que las máquinas podría conectarse con el medio ambiente que operaban en. Interruptores de límite (eléctricos y ópticos), codificadores, resolu
Repelente ultrasónico de perros (prueba de mano + sonora + recargable)

Repelente ultrasónico de perros (prueba de mano + sonora + recargable)

Hola desde Egipto,Hoy que he terminado un nuevo proyecto de su reflector ultrasónico portátil. Podríamos comenzar con algunos datos acústicos que aprendí del curso de acústica en mi universidad se suma la en un punto:1 - humanos podrían aquí onda acú
Medidor de distancia ultrasónico con pantalla LCD en el Arduino UNO

Medidor de distancia ultrasónico con pantalla LCD en el Arduino UNO

En este tutorial vamos a ver un uso distinto del módulo de ultrasonidos HC-SR04. Este módulo es de uso frecuente en coches de juguetes y robots para localizar obstáculos pero puede ser utilizado para medir distancias así.Distancias medidas por la HC-