Arduino - Arduineando

Anuncio
Arduino
Taller de Arduino
4ta Sesión – Comunicación con el Arduino
Facultad de Ciencias
Eduardo Sacristán Ruiz-Funes
Arduino
Comunicación:
●
●
Utilizando la biblioteca Serial
–
Con el Monitor Serial
–
Con Processing
–
Con otros lenguajes
Desplegando información
–
–
●
Con un display de 7 seg.
Desplegando en un LCD
Con otros protocolos
–
Usando un shield con xBee
Arduino
Comunicación con el Arduino
●
●
●
●
●
Todos los Arduinos tienen al menos un
puerto serial, UART o USART
Usa los pines 0 (RX) y 1 (TX) y/o el USB
Nos permite comunicarnos con o desde el
Arduino
Lo podemos hacer por el conector USB
Tiene un buffer de 128 bytes
Arduino
Comunicación con el Arduino
●
El arduino puede funcionar:
–
–
●
conectado a una computadora
independientemente
Y se puede comunicar:
–
–
–
–
con la computadora a la que está conectado
a través del puerto serial con otro equipo
con otros equipos usando varios protocolos
usando algún shield de comunicación
Arduino
Comunicación usando Serial
●
●
Es un Biblioteca incorporada al lenguaje
Con varias funciones o métodos:
–
–
–
–
–
–
Serial.begin(9600); para iniciar la comunicación
Serial.available() ; para saber si hay datos
Serial.read(); para leer datos de entrada
Serial.print(dato); para enviar dato a la pc
Serial.println(dato); print con retorno de línea
y otras más
Arduino
Serial.begin(velocidad);
●
●
●
●
Se usa para inicializar la comunicación
Abre el puerto serie con la velocidad indicada
La velocidad está dada en baudios, baudrate
Ambos extremos deben usar el mismo
baudrate.
Serial.begin(9600);
Arduino
Serial.available();
●
Para saber si hay datos en el buffer
–
–
●
devuelve el número de bytes recibidos
un cero si no hay datos
La podemos usar con un if
if (Serial.available() > 0) {
// lee los datos
}
Arduino
Serial.read();
●
Para leer un dato del buffer
–
–
●
devuelve el primer byte disponible en el buffer
o un -1 si no hay datos
La podemos usar en una asignación
datoEntrada = Serial.read();
Arduino
Serial.print(dato);
●
Para enviar un dato.
–
–
–
●
Serial.println(dato)
–
●
envía el dato por el serial
el dato puede ser de cualquier tipo
lo envía como texto ASCII
envía con un retorno de línea
La podemos usar con:
Serial.print(variable);
Serial.print(“cadena de texto”);
Arduino
Otras funciones de Serial
●
end() - termina la conexión
●
peek() - lee el siguiente dato sin removerlo
●
flush() - vacia el buffer
●
write() - envía el dato en binario
Arduino
Como podemos usar Serial
●
Desde el monitor serial
–
●
Lo abrimos desde el toolbar
Desde un lenguaje de programación
–
Que pueda escribir y/o leer en el puerto serial
Arduino
Usando un Display de 7 segmentos
●
●
●
●
●
●
●
Utiliza siete leds en forma de barra
Formando una especie de 8
Para mostrar números y letras
Pueden ser de ánodo o cátodo común
Podemos conectar cada led al Arduino
– necesitamos al menos 7 pines
O usar un IC para controlarlo
Podemos multiplexar para más números
Arduino
Una Pantalla de Cristal Liquido o LCD
●
●
●
Muy útil para desplegar textos cortos
Para mostrar datos de los sensores
Las hay de muy diversos tamaños
–
●
●
2 x 16, 2 x 20, 4 x 20,...
Las podemos usar con la Biblioteca
LiquidCrystal()
Es para LCDs compatibles con el Hitachi
HD44780.
Arduino
Utilizando Bibliotecas
●
●
●
●
Para facilitarnos la programación
Para hacerla más eficiente
Algunas ya están incorporadas al lenguaje
Otras hay que incorporarlas en el programa.
#include <Biblioteca.h>
●
●
Hay las “oficiales” y muchisímas más
Podemos crear las nuestras
Arduino
Shield Xbee
●
●
●
●
Se utiliza para comunicarse con el protocolo
IEEE 802.15.4
Es un tipo de comunicación serial, punto a
punto o punto a multipunto.
Hay modulos de distintas versiones y
capacidades.
Se requiere un shield en cada Arduino o un
“conector ” en la pc.
Arduino
Otras opciones
●
●
Usando otros protocolos de comunicación
– tipo SPI o 12C
Usando shields con equipos de
comunicación
– ethernet, wi-fi, bluetooth, xbee, ...
Descargar