Presentación Taller 3

Anuncio
Taller Introducción a la Ingeniería Eléctrica
Robot y comunicaciones basados en Microcontrolador
Arduino
Instituto de Ingeniería Eléctrica
Taller 3: Aspectos básicos de comunicación.
18 de marzo de 2016
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
1/1
Introducción
¾Para qué queremos comunicación?
Necesidad de compartir información con otro/s dispositivo.
Comunicación con sistema tipo Arduino:
Sensar eventos.
Mostrar información al usuario, debug.
Compartir información con otra parte del sistema.
Trasmisión de datos serie y paralelo:
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
2/1
Introducción
¾Para qué queremos comunicación?
Necesidad de compartir información con otro/s dispositivo.
Comunicación con sistema tipo Arduino:
Sensar eventos.
Mostrar información al usuario, debug.
Compartir información con otra parte del sistema.
Trasmisión de datos serie y paralelo:
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
2/1
Introducción
¾Para qué queremos comunicación?
Necesidad de compartir información con otro/s dispositivo.
Comunicación con sistema tipo Arduino:
Sensar eventos.
Mostrar información al usuario, debug.
Compartir información con otra parte del sistema.
Trasmisión de datos serie y paralelo:
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
2/1
Introducción
¾Para qué queremos comunicación?
Necesidad de compartir información con otro/s dispositivo.
Comunicación con sistema tipo Arduino:
Sensar eventos.
Mostrar información al usuario, debug.
Compartir información con otra parte del sistema.
Trasmisión de datos serie y paralelo:
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
2/1
Introducción
¾Para qué queremos comunicación?
Necesidad de compartir información con otro/s dispositivo.
Comunicación con sistema tipo Arduino:
Sensar eventos.
Mostrar información al usuario, debug.
Compartir información con otra parte del sistema.
Trasmisión de datos serie y paralelo:
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
2/1
Comunicación serial Arduino
Todos los Arduinos tienen por lo menos un puerto serie inconsciente
(UART o USART).
En pines 0 y 1 o también en USB.
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
3/1
Comunicación serial Arduino
Todos los Arduinos tienen por lo menos un puerto serie inconsciente
(UART o USART).
En pines 0 y 1 o también en USB.
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
3/1
Comunicación serial asíncrona
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
4/1
Librería Serial
Funciones predenidas para manejo de puerto serial:
begin()
available()
read()
write()
print() / println()
ush()
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
5/1
Ejemplo librería Serial
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
6/1
Ejemplo 2 librería Serial
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
7/1
Caracteres
Lenguaje de máquina es con bits: PCs no manejan caracteres!
Solución: codicar caracteres numéricamente.
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
8/1
Caracteres
Lenguaje de máquina es con bits: PCs no manejan caracteres!
Solución: codicar caracteres numéricamente.
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
8/1
Tabla ASCII
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
9/1
Otro ejemplo Serial: ASCIITable
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
10 / 1
Ejercicio comunicación Serial
¾Qué otro tipo de alfabeto para comunicación serial conoce?
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
11 / 1
Ejercicio comunicación Serial
¾Qué otro tipo de alfabeto para comunicación serial conoce?
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
11 / 1
Ejercicio1
Completar el alfabeto Morse con el código para las vocales.
void MorseDash()
MorseDot().
Escribir la función
función
Utilizando la función
función
boozer()
tone()
tomando como referencia la
de los ejemplos de Arduino, escribir una
que prenda y apague un piezo eléctrico.
Utilizaremos ésto para trasmitir el mensaje Morse en forma sonora.
Recibir un caracter desde el puerto serial del arduino y traducirlo a
código Morse, mostrarlo en forma lumínica y sonora.
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
12 / 1
Ejercicio comunicación código Morse
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
13 / 1
Sentencias de Selección
Hasta ahora conocemos
if.
¾Qué sucede si tenemos varias opciones?
Usaremos la sentencia de selección
switch-case.
switch-case
switch
( expresion )
case
1:
{
sentencias1 ;
break ;
case
2:
sentencias2 ;
break ;
case
n:
sentenciasN ;
break ;
default :
sentencias_default ;
break ;
}
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
14 / 1
Sentencias de Selección
Hasta ahora conocemos
if.
¾Qué sucede si tenemos varias opciones?
Usaremos la sentencia de selección
switch-case.
switch-case
switch
( expresion )
case
1:
{
sentencias1 ;
break ;
case
2:
sentencias2 ;
break ;
case
n:
sentenciasN ;
break ;
default :
sentencias_default ;
break ;
}
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
14 / 1
Sentencias de Selección
Hasta ahora conocemos
if.
¾Qué sucede si tenemos varias opciones?
Usaremos la sentencia de selección
switch-case.
switch-case
switch
( expresion )
case
1:
{
sentencias1 ;
break ;
case
2:
sentencias2 ;
break ;
case
n:
sentenciasN ;
break ;
default :
sentencias_default ;
break ;
}
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
14 / 1
Repaso: Funciones
¾Qué es una función?
Una función es un conjunto de declaraciones, deniciones, expresiones y
sentencias que realizan una tarea especíca. El formato general de una
función es:
nombreFuncion
variables locales
código de la función
retorno de valor
TipoDeRetorno
( listaParámetros )
{
}
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
15 / 1
Funciones
Un ejemplo simple
float
encontrar_promedio ( i n t
float
num1 ,
int
num2 ) {
promedio ;
p r o m e d i o = ( num1 + num2 )
/
2.0;
r e t u r n ( promedio ) ;
}
// D e s d e
float
otro
programa
o
funcion
k = encontrar_promedio
IIE (TallerIne)
(4 ,
se
llama
a
la
función
5);
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
16 / 1
ARRAYS
Para Arduino, es una estructura de datos que permite tener un
conjunto de variables asociadas que se pueden referenciar por su
posición.
La estructura
arrays
o arreglos unidimensionales son una secuencia de
valores del mismo tipo.
Los elementos del
array
se almacenan en localidades contiguas de
memoria según el orden del índice.
¾Cómo inicializo una matriz?
Denir Array
i n t myArray [ 2 ] = { 2 , 3 , 4 , 1 0 , 7 3 } ;
// f i n de l a d e c l a r a c i o n d e l a r r a y
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
17 / 1
ARRAYS
Para guardar, leer, o recorrer los elementos en un arreglo es muy
frecuente utilizar la sentencia
for.
Sentencia for
i n t myArray [ 5 0 ] ;
void setup (){
S e r i a l . begin (9600);
}
void loop (){
int i ;
f o r ( i =0; i <6; i ++) {
myArray [ i ] = i ∗ 1 0 ; // a s i g n a 1 ∗ 10 a l e l e m e n t o en l a p o s i c i ó n i
}
}
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
18 / 1
ARRAYS
¾Cómo hago para mostrar el
array
en pantalla?
El siguiente programa muestra en el PC los valores de un
array
de 5
elementos .
Recorro y muestro en pantalla
myArray
i n t myArray [ 5 ] = { 2 , 3 , 4 , 1 0 , 7 3 } ;
void setup (){
S e r i a l . begin (9600);
}
void loop (){
int i ;
f o r ( i =0; i <6; i ++) {
S e r i a l . p r i n t ("\ t " ) ;
S e r i a l . p r i n t ( myArray [ i ] ) ;
S e r i a l . p r i n t ("\ t " ) ;
/ i n t r o d u c e un t a b u l a d o r e n t r e l a s c o l u m n a s
Serial . println ();
}
delay (1000);
}
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
19 / 1
ARRAYS
¾Cómo hago para mostrar el
array
en pantalla?
El siguiente programa muestra en el PC los valores de un
array
de 5
elementos .
Recorro y muestro en pantalla
myArray
i n t myArray [ 5 ] = { 2 , 3 , 4 , 1 0 , 7 3 } ;
void setup (){
S e r i a l . begin (9600);
}
void loop (){
int i ;
f o r ( i =0; i <6; i ++) {
S e r i a l . p r i n t ("\ t " ) ;
S e r i a l . p r i n t ( myArray [ i ] ) ;
S e r i a l . p r i n t ("\ t " ) ;
/ i n t r o d u c e un t a b u l a d o r e n t r e l a s c o l u m n a s
Serial . println ();
}
delay (1000);
}
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
19 / 1
STRING
Es una estructura de datos que sirve para almacenar cadenas de texto,
es fundamental a la hora de enviar texto por el puerto serie.
¾Cómo inicializo un string?
Recorro y muestro en pantalla myArray
char Str1 [ 1 5 ] ;
char Str2 [ 8 ] = { 'a ' , ' r ' , 'd ' , 'u ' , ' i ' , 'n ' , 'o ' } ;
char Str3 [ 8 ] = { 'a ' , ' r ' , 'd ' , 'u ' , ' i ' , 'n ' , 'o ' , '\0 '};
char Str4 [ ] = " arduino ";
char Str5 [ 8 ] = " arduino ";
char Str6 [ 1 5 ] = " arduino ";
S t r i n g s t r 7 = S t r i n g ( s t r 4 + " w i t h more " ) ; / / c o n c a t e n a 2 s t r i n g
IIE (TallerIne)
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
20 / 1
Ejercicio 2 y 3
Ejercicio 2
Estudiar y entender la función
void recibirMensaje().
Completar el código para que reciba un string por el serial del PC y
recorriendo un array de tipo char pueda motrarlo en Morse a través del
Led y del parlante.
Ejercicio3
Conectar dos Arduinos por su puerto serie.
Programar uno como trasmisor el cual enviará un mensaje (tipo
string )
al receptor, éste último lo mostrará en Morse con el Led y el
Parlante.
array
charMorse().
Escribir el código que recorra el
uno con la función
IIE (TallerIne)
de caracteres y los muestre de a
Taller Introducción a la Ing. Eléctrica
18 de marzo de 2016
21 / 1
Descargar