Escolar Documentos
Profissional Documentos
Cultura Documentos
Y TELECOMUNICACIONES
CICLO V
TEMA:
RADAR 360 CON ARDUINO
INTEGRANTES:
DOCENTE:
ING. XIMENA ACARO
PARALELO:
5-1
FECHA:
21/DIC/2018
GUAYAQUIL – ECUADOR
2018-2019
1. INDICE
2. INTRODUCCION
3. OBJETIVOS
4. MARCO TEÓRICO
ARDUINO LEONARDO
CARACTERÍSTICAS:
Microcontrolador Atmega32u4.
Voltaje de entrada: 7-12V.
Voltaje de trabajo: 5V.
Corriente por pin I/O: 40mA.
20 pines digitales I/O.
7 canales PWM.
12 ADC.
16MHz de velocidad de reloj.
Memoria Flash: 32 KB (ATmega32u4) de los cuales 4 KB son usador por el
bootloader.
Memoria SRAM: 2.5 KB (ATmega32u4).
Memoria EEPROM: 1KB (ATmega32u4).
Dimensiones: 68.6 x 53.3mm.
ALIMENTACIÓN
La placa Arduino Leonardo, puede ser alimentada a través de la conexión micro USB o con
una fuente de alimentación externa. La fuente de alimentación se selecciona
automáticamente.
Para usar alimentación externa (no mediante USB), ésta puede venir de un adaptador de CA
a CC o de una batería. El adaptador (transformador), lo podemos conectar mediante un
jack de 2.1mm con centro positivo a la toma de alimentación de la placa. Sin embargo, los
cables de los que disponga nuestra batería, los podemos insertar en los pines GND y Vin de
la placa.
MEMORIA
El ATmega32u4 que incorpora el Arduino Leonardo, posee 32 KB (4 KB utilizados para el
bootloader). También ofrece 2,5 KB de SRAM y 1 KB de EEPROM (los cuales pueden ser
leídos y escritos con la librería EEPROM).
ENTRADAS Y SALIDAS
Cada uno de los 20 pines digitales de entrada/salida que posee la placa, se pueden utilizar
mediante las funciones de siempre: pinMode (), digitalWrite () o digitalRead ().
Cada uno de los 20 pines de E/S digitales se pueden utilizar como entrada o salida, usando
las funciones pinMode (), digitalWrite() y digitalRead(). Cada pin proporcionará un
máximo de 40 mA y, tampoco podrá recibir más de este valor.
Serial: 0 (RX) y 1 (TX). Se utiliza para recibir (RX) y transmitir (TX) datos serie
TTL con la capacidad de hardware serie del ATmega32U4. Hay que tener en cuenta
que, en Arduino Leonardo, la clase Serial se refiere a la comunicación USB (CDC) ;
para serie TTL en los pines 0 y 1, utilizaremos la clase Serial1.
IST: 2 (SDA) y 3 (SCL). Soportan la comunicación TWI utilizando la librería
Wire.
Interrupciones externas: 2 y 3. Estos pines se pueden configurar para
desencadenar una interrupción en un valor bajo, un flanco ascendente o
descendente, o un cambio en el valor. Ver attachInterrupt () para obtener más
detalles.
PWM: 3, 5, 6, 9, 10, 11 y 13. Proporcionan 8-bit de salida PWM con la función
analogWrite ().
SPI: en la cabecera de ICSP. Estos pines soportan la comunicación SPI utilizando
la librería SPI. Debemos tener en cuenta que los pines de SPI no está conectados a
cualquiera de los pines digitales de entrada/salida, como están en Arduino UNO.
Sólo están disponibles en el conector ICSP.
LED: 13. Hay un LED smd conectado al pin digital 13. Cuando el pin tiene valor
alto, el led está encendido, cuando se pasa a valor bajo, se apaga.
Entradas Analógicas: A0-A5, A6 – A11 (en los pines digitales 4, 6, 8, 9, 10, y 12).
La placa Arduino Leonardo tiene 12 entradas analógicas, las cuales van desde A0
hasta A11. También pueden ser utilizadas como entradas/salidas digitales. Los pines
A0-A5 están situados en el mismo lugar que en Arduino UNO; las entradas A6-A11
se corresponden con las entradas/salidas digitales de los pines 4, 6, 8, 9, 10 y 12,
respectivamente. Cada entrada analógica puede proporcionar 10 bits de resolución,
es decir 1024 valores diferentes (desde 0 hasta 1023). Por defecto, la medida de las
entradas analógicas van desde 0 a 5 Voltios, aunque se puede cambiar el extremo
superior de su rango con el pin AREF y la función analogReference ().
AREF. Tensión de referencia para las entradas analógicas. Se utiliza con
analogReference ().
Reset: reinicia el microcontrolador.
COMUNICACIÓN
La placa Arduino Leonardo ofrece importantes facilidades para obtener comunicación con
un ordenador, otro Arduino o incluso con otros microcontroladores. El ATmega32u4
incorpora comunicación serie UART TTL (5Voltios) disponible en los pines digitales 0
(RX) y 1 (TX), los cuales se han comentado anteriormente.
Este microcontrolador también nos permitirá establecer una comunicación serial a través de
USB (CDC) y aparecer como puerto COM virtual con en nuestro sistema operativo. El
integrado también actúa a modo de dispositivo de máxima velocidad USB 2.0, utilizando
los drivers estándar de COM USB. Para Windows, se necesitará un archivo con extensión
.inf.
El IDE de Arduino incluye un monitor de puerto serie que nos va a proporcionar la opción
de transmitir texto desde la placa Arduino y, hacia la misma. Ya sabemos que los LEDs TX
y RX de la placa parpadearán cuando se transmitan datos a través de la conexión USB al
ordenador (pero no para la comunicación de serie en los pines 0 y 1).
Para establecer una comunicación serie en cualquiera de los pines digitales de Arduino,
usaremos la librería SoftwareSerial
PROGRAMACIÓN
La placa Arduino Leonardo se programará con el software de Arduino y, tan sólo
deberemos elegir el modelo de placa que vamos a utilizar.
En este artículo te voy a enseñar cómo utilizar un servomotor con Arduino. Antes de
continuar es importante saber qué es un servomotor o servo. Es un motor eléctrico pero con
dos características especiales. Por un lado, nos permite mantener una posición que
indiquemos, siempre que esté dentro del rango de operación del propio dispositivo. Por otro
lado nos permite controlar la velocidad de giro, podemos hacer que antes de que se mueva a
la siguiente posición espere un tiempo.
CARACTERÍSTICAS
Hay varios modelos de servomotor con Arduino. En este caso vamos a utilizar un Micro
Servo 9g SG90 de Tower Pro. Como siempre digo, hay que mirar la ficha técnica del
producto. Todos tienen un funcionamiento muy parecido y la programación puede variar
muy poco.
Cosas a tener en cuenta con este dispositivo. Lo primero, el ángulo de giro, en este caso nos
permite hacer un barrido entre -90º y 90º. Lo que viene a ser un ángulo de giro de 180º.
Aunque el servo puede moverse con una resolución de más de 1 grado, este es el máximo
de resolución que vamos a conseguir debido a la limitación de la señal PWM que es capaz
de generar Arduino UNO.
Estos motores funcionan con una señal PWM, con un pulso de trabajo entre 1 ms y 2 ms y
con un periodo de 20 ms (50 Hz). ¿Qué quiere decir todo esto? Este dato nos indica
la velocidad máxima a la que podemos mover el servomotor con Arduino. Solo podremos
cambiar de posición cada 20 ms. Esto dependerá del tipo y marca de nuestro servo.
Todos deben tener 3 cables. Uno irá a tierra, otro a la alimentación de 5 Voltios y el tercero
a un pin PWM. También puedes utilizar un shield para controlar servomotores, como el de
Adafruit.
void setup() {
// Iniciamos el monitor serie para mostrar el resultado
Serial.begin(9600);
void loop() {
// Vamos a tener dos bucles uno para mover en sentido positivo y otro en sentido negativo
// Para el sentido positivo
for (int i = 0; i <= 180; i++)
{
// Desplazamos al ángulo correspondiente
servoMotor.write(i);
// Hacemos una pausa de 25ms
delay(25);
}
En el mercado existen 2 tipos de módulos para medición de distancia por ultrasonido que se
utilizan en robótica y aplicaciones similares:
Interfaz mediante pulso de eco: Este tipo de sensores poseen un pin de disparo y otro de
eco, algunos incluso combinan ambas funcionalidades en un solo pin. El microcontrolador
que desea realizar una medición debe medir el tiempo en alto de un pulso digital.
Interfaz serial (I2C o UART): Este tipo de módulos entregan su medición en formato digital
a través de una interfaz serial (I2C o UART). Habitualmente se acceden como si se tratara
de una memoria serial I2C y podemos leer los registros donde se encuentran las mediciones
de distancia.
El HC-SR04 es un sensor que funciona a través de la medición del pulso de echo y
solamente explicaremos este tipo de sensores en este tutorial.
A continuación puedes descargar la hoja de datos del sensor para conocerlo más a fondo.
Descarga hoja de datos del sensor HC-SR04
Como se puede observar, el HC-SR04 genera un pulso en el pin marcado como “echo”
cuya duración es proporcional a la distancia medida por el sensor. Para obtener la distancia
en centímetros, solamente debemos dividir el tiempo en microsegundos entre 58 o para
obtener la distancia en centímetros (148 para pulgadas).
La siguiente imagen muestra cómo queda conectado el sensor utilizando solamente cables:
Cabe aclarar que nosotros hemos utilizado los pines 11 y 12, pero vale cualquier otra
combinación de pines. No hay mucho más que decir, ya que es bastante fácil de conectar,
solamente tener cuidado con la polaridad y posición de las señales.
1 #include <NewPing.h>
2
3 /*Aqui se configuran los pines donde debemos conectar el sensor*/
4 #define TRIGGER_PIN 12
5 #define ECHO_PIN 11
6 #define MAX_DISTANCE 200
7
8 /*Crear el objeto de la clase NewPing*/
9 NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
10
11 void setup() {
12 Serial.begin(9600);
13 }
14
15 void loop() {
16 // Esperar 1 segundo entre mediciones
17 delay(1000);
18 // Obtener medicion de tiempo de viaje del sonido y guardar en variable uS
19 int uS = sonar.ping_median();
20 // Imprimir la distancia medida a la consola serial
21 Serial.print("Distancia: ");
22 // Calcular la distancia con base en una constante
23 Serial.print(uS / US_ROUNDTRIP_CM);
24 Serial.println("cm");
25 }
El código realizado con la librería NewPing queda bastante sencillo y además de aceptar el
sensor ultrasónico HC-SR04 permite utilizar la gran mayoría de los sensores que utilizan
interfaz del tipo Interfaz “con medición de pulsos” con 3 y 4 pines.
5. ANALISIS Y RESULTADOS
6. COSTOS DE IMPLEMENTACION
MATERIALES VALOR TOTAL
CANTIDAD NOMBRE UNITARIO
Y
CÓDIGO
https://geekytheory.com/arduino-leonardo
https://www.pololu.com/product/2192