Arduino Taller de Arduino Comunicación con el Arduino Eduardo Sacristán Ruiz-Funes Arduino Comunicación: ● ● Utilizando la biblioteca Serial – Con el Monitor Serial – Con Processing – Con otros lenguajes 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 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 los datos de entrada Serial.print(dato); para enviar datos 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 en el buffer un cero si no hay datos Podemos usarla con un if if (Serial.available() > 0) { // lee los datos } Arduino Serial.read(); ● Para leer los datos en el buffer – – ● devuelve el primer byte disponible en el buffer o un -1 si no hay datos Podemos usarla 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 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 Otras opciones de comunicación ● ● Usando otros protocolos de comunicación – tipo SPI o 12C Usando shields con equipos de comunicación – ethernet, wi-fi, bluetooth, xbee, ... Arduino Proyectos ● ● ● ● Recibiendo datos en el Monitor Serial Enviando datos desde el Monitor Serial Conectando dos arduinos con el serial Recibiendo datos con Processing ● Enviando datos con Processing ● Enviando y recibiendo con Python