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, ...