Nothing Special   »   [go: up one dir, main page]

Lab2 Arduino

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 16

Docente: Mg Bryan Fernández E bjfernandez@itsa.edu.

co

Laboratorio 2 de programación de computadores Arduino

Al completar la práctica del laboratorio, usted podrá:

 Conocer el concepto básico de la comunicación serial


 Identificar la librería PanamáHitek y sus funciones principales
 Comunicar Arduino con un programa desarrollado en Java

INTRODUCCIÓN

Comunicación serial

La comunicación serial consiste en el envío de un bit de información de manera


secuencial, ésto es, un bit a la vez y a un ritmo acordado entre el emisior y el receptor. La
mayoría de los microcontroladores, entre ellos Arduino, poseen un puerto de
comunicación serial. Para comunicarse con los computadores personales actuales que
poseen únicamente puerto USB requieren de un dispositivo “traductor”. Se utiliza para la
comunicación entre la placa Arduino y una computadora u otros dispositivos. Todas las
placas Arduino tienen al menos un puerto serie (también conocido como UART o
USART), y algunas tienen varias.

Arduino posee como principal característica la habilidad de comunicarse con nuestra


computadora a través del puerto serie. Esto se conoce como comunicación serial. Debido
a que el uso de este puerto ha quedado un poco en desuso a favor de la tecnología USB,
Arduino cuenta con un convertidor de Serial a USB que permite a nuestra placa ser
reconocida por nuestra computadora como un dispositivo conectado a un puerto COM
aun cuando la conexión física sea mediante USB.
Docente: Mg Bryan Fernández E bjfernandez@itsa.edu.co

Para iniciar la comunicación serial con Arduino utilizando el Monitor Serial debemos
establecer algunos comandos en el Arduino IDE y luego subirlos al microcontrolador.

El código es el siguiente:

En la función setup inicializamos la comunicación serial con la sentencia


Serial.begin(9600).

El 9600 indica el baud rate, o la cantidad de baudios que manejará el puerto serie. Se
define baudio como una unidad de medida, usada en telecomunicaciones, que representa
el número de símbolos por segundo en un medio de transmisión ya sea analógico o
digital. Para nuestros propósitos utilizaremos comúnmente una velocidad de símbolo de
9600. Siempre que vayamos a comunicarnos con Arduino vía puerto serie se necesita
invocar la sentencia Serial.begin(9600). Ahora, en la función loop nos encontramos con
una sentencia interesante: Serial.println(‘1’).

Cuando usamos println le estamos diciendo al microcontrolador que tendrá que imprimir
un caracter a través del puero serie. Hay otros métodos como Serial.print o Serial.write
que nos sirven para imprimir o escribir en el puerto serie, sin embargo, el método
Docente: Mg Bryan Fernández E bjfernandez@itsa.edu.co

Serial.println agrega un salto de línea cada vez que se envía un dato, lo que es
provechoso para nosotros en algunos casos, especialmente cuando utilizamos el monitor
serial.

En el método Serial.println se debe establecer lo que se quiere imprimir entre paréntesis y


con comillas. En este caso vamos a imprimir el caracter ‘1’. He colocado un delay de 1
segundo para que la impresión en el Monitor Serial sea pausada y se produzca de
segundo en segundo. Si subimos el código a nuestra placa, podremos observar el
comportamiento de nuestro algoritmo a través del monitor serial.

Ahora que sabemos cómo enviar datos desde Arduino a través del puerto Serie, podemos
pasar al siguiente paso que es hacer que Arduino reciba datos seriales y los interprete.
Dichos datos los enviaremos a través del monitor serial utilizando el teclado de nuestra
computadora.

El código será el siguiente:

En la función loop es donde está la parte importante. La línea que dice Serial.available()>0
es sumamente importante ya que limita la ejecución del código solamente cuando haya
datos disponibles en el puerto serie. Está metida dentro de una estructura selectiva (if).
Cuando haya datos disponibles para leer en el puerto serie, el método Serial.available()
tendrá un número mayor a cero (>0) por lo que cumplirá con la condición establecida en la
Docente: Mg Bryan Fernández E bjfernandez@itsa.edu.co

estructura selectiva y el programa procederá a ejecutar los comandos que estén dentro de
las llaves ({}) del if. Cuando entre en la estructura selectiva, a la variable input se le
asignará un valor que se lea desde el puerto serie mediante el método Serial.read().
Siempre que necesitamos leer algo lo hacemos mediante este método.

Luego de asignarle a input un valor, haremos que el microcontrolador nos devuelva por el
puerto serie el mismo valor que le enviamos desde la computadora. Para ello imprimimos
el valor de input mediante el método Serial.println(input).
Docente: Mg Bryan Fernández E bjfernandez@itsa.edu.co

Librería de PanamaHitek

La librería PanamaHitek_Arduino es una compilación de métodos que permite enviar y


recibir datos entre Arduino y un programa hecho en el lenguaje Java de manera básica y
muy práctica.

Más información https://www.youtube.com/watch?v=osU7s8vW15Y

Comunicación Java Arduino

Desarrollo del programa en Arduino

Paso 1: diseñar el siguiente circuito electrónico


Docente: Mg Bryan Fernández E bjfernandez@itsa.edu.co

Paso 2: ingresar al entorno de desarrollo de Arduino

Y realizar la siguiente codificación

Paso 3: Tenga en cuenta que debe configurar el modelo del Arduino en la opción
herramientasPlaca y seleccionar el modelo del Arduino. En este caso es un Arduino
Uno.
Docente: Mg Bryan Fernández E bjfernandez@itsa.edu.co

Adicionalmente se debe seleccionar el puerto serial virtual que conecta el Arduino con el
computador y este se puede configurar en la opción herramientas en este caso es el
puerto COM3

Paso 4: Se procede en dar clic en la opción “Subir” y el programa quedara grabado en la


palca
Docente: Mg Bryan Fernández E bjfernandez@itsa.edu.co

Desarrollo del programa en Java

Paso 1: Se ingresa a la herramienta NetBeans y se crea un proyecto llamado “ejemplo”

Paso 2: Se agrega la librería de panamahiket haciendo clic en libreriesAdd Jar/Folder


Docente: Mg Bryan Fernández E bjfernandez@itsa.edu.co

Paso 3: Agregar un formulario

Clic dereho en el paquete newJframeForm colocar el nombre “formularioprincipal”


Docente: Mg Bryan Fernández E bjfernandez@itsa.edu.co

Paso 4: agregar dos botones con la siguiente configuración

EditText Change variable Name


Botón 1 Encender btnencender
Botón 2 Apagar btnapagar

Paso 5: Codificar las variables

Se crea un objeto llamado “arduino” de la clase PanamaHitek_Arduino

colocar el siguiente codigo debajo del objeto creado para agregar las excepciones
Docente: Mg Bryan Fernández E bjfernandez@itsa.edu.co

private SerialPortEventListener listener= new SerialPortEventListener() {


@Override
public void serialEvent(SerialPortEvent spe) {
try {
if(arduino.isMessageAvailable()){
System.out.println(arduino.printMessage());

} } catch (SerialPortException ex) {

Logger.getLogger(formularioprincipal.class.getName()).log(Level.SEVERE, null,
ex);
} catch (ArduinoException ex) {

Logger.getLogger(formularioprincipal.class.getName()).log(Level.SEVERE, null,
ex);
}
}

} ;
Docente: Mg Bryan Fernández E bjfernandez@itsa.edu.co

Si presenta error, hacer clic en las sugerencias(Globos amarillos de la parte izquierda


para importar las librerías)

Se configura el puerto COM y la velocidad de trasmisión

try {
arduino.arduinoRXTX("COM3", 9600, listener);
} catch (ArduinoException ex) {
Logger.getLogger(formularioprincipal.class.getName()).log(Level.SEVERE,
null, ex);
}
Docente: Mg Bryan Fernández E bjfernandez@itsa.edu.co

Se ingresa el código del bonto Encender y el Boton Apagar haciendo doble clic en cada
uno de ellos

Botón Encender

try {
arduino.sendData("1");
} catch (ArduinoException ex) {
Logger.getLogger(formulario.class.getName()).log(Level.SEVERE, null,
ex);
} catch (SerialPortException ex) {
Logger.getLogger(formulario.class.getName()).log(Level.SEVERE, null,
ex);
}
Docente: Mg Bryan Fernández E bjfernandez@itsa.edu.co

Botón Apagar

try {
arduino.sendData("0");
} catch (ArduinoException ex) {
Logger.getLogger(formulario.class.getName()).log(Level.SEVERE, null,
ex);
} catch (SerialPortException ex) {
Logger.getLogger(formulario.class.getName()).log(Level.SEVERE, null,
ex);
}

Se ingresa el código desde la clase principal para que al momento de ejecutar el


programa este muestre el formulario.
Docente: Mg Bryan Fernández E bjfernandez@itsa.edu.co

 Se procede a realizar las pruebas


Docente: Mg Bryan Fernández E bjfernandez@itsa.edu.co

REFERENCIAS BIBLIOGRAFICAS

Arduino. (2016). Arduino UNO | Arduino.cl - Plataforma Open Source para el desarrollo de
prototipos electrónicos. Retrieved September 10, 2019, from http://arduino.cl/arduino-
uno/

Arduino. (2019). Serial. Retrieved November 25, 2019, from


https://www.arduino.cc/reference/en/language/functions/communication/serial/

Panamahitek. (2017). Comunicación Serial con Arduino - Panama Hitek. Retrieved


November 25, 2019, from http://panamahitek.com/comunicacion-serial-con-arduino/

También podría gustarte