Tarea 4 - Investigación Arduino y Matlab PDF

Title Tarea 4 - Investigación Arduino y Matlab
Course Programación avanzada
Institution Centro de Enseñanza Técnica y Superior
Pages 6
File Size 187.1 KB
File Type PDF
Total Downloads 56
Total Views 159

Summary

Descripcion de funciones en MATLAB, informacion sobre arduino y codigo de uso...


Description

Amezcua Arellano Karla Paola Mat. 034333

Investigación parte 1: Arduino Modelos: Arduino MEGA Es con mucha diferencia el más potente y el que más pines i/o tiene, apto para trabajos ya algo más complejos aunque tengamos que sacrificar un poco el espacio, cuenta con el microcontrolador Atmega2560 con más memoria para el programa, más RAM y más pines que el resto de los modelos. Arduino Bluetooth Incorpora un módulo para la transmisión de datos de hasta 100 metros, con esta placa podrás programar sin cables así como también realizar comunicaciones serie con cualquier dispositivo bluetooth Arduino Pro Más robusto y mejor acabado final; incorpora funcionalidades interesantes tales como un conector especial para conectar realizar un montaje portátil. Todos sus componentes son de espesor total es menor que las otras placas Arduino.

una batería LiPo y superficie y su

Arduino UNO Es la placa estándar y posiblemente la más conocida y documentada. Salió a la luz en septiembre de 2010 sustituyendo su predecesor Duemilanove con varias mejoras de hardware que consisten básicamente en el uso de un USB HID propio en lugar de utilizar un conversor FTDI para la conexión USB. Es 100% compatible con los modelos Duemilanove y Decimilla. Viene con un Atmega328 con 32Kbytes de ROM para el programa. Arduino Nano Su principal ventaja es que puede ser pinchado directamente sobre una protoboard haciendo muy cómodo el prototipado al igual que el Arduino mini. Arduino Mini Versión miniaturizada de la placa Arduino. Mide tan sólo 30x18mm y permite ahorrar espacio en los proyectos que lo requieran. Las funcionalidades son la misma que Arduino UNO salvo que tiene sólo se fabrica con el chip Atmega168 con 12 Kb de memoria para programa. El bootloader es algo antiguo y tarda unos 10 segundos arrancar (en el UNO es prácticamente instantáneo).

Programación: Estructura de un programa La estructura básica del lenguaje de programación de Arduino es bastante simple y se compone de al menos dos partes. Estas dos partes necesarias, o funciones, encierran bloques que contienen declaraciones, estamentos o instrucciones. void setup() //Primera Parte { estamentos; } void loop() //Segunda Parte { estamentos; }

En donde setup () es la parte encargada de recoger la configuración y loop () es la que contiene el programa que se ejecutará cíclicamente (de ahí el término loop –bucle-). Ambas funciones son necesarias para que el programa trabaje. La función de configuración (setup) debe contener la declaración de las variables. Es la primera función a ejecutar en el programa, se ejecuta sólo una vez, y se utiliza para configurar o inicializar pinMode (modo de trabajo de las E/S), configuración de la comunicación en serie y otras. La función bucle (loop) siguiente contiene el código que se ejecutara continuamente (lectura de entradas, activación de salidas, etc.) Esta función es el núcleo de todos los programas de Arduino y la que realiza la mayor parte del trabajo. setup() La función setup() se invoca una sola vez cuando el programa empieza. Se utiliza para inicializar los modos de trabajo de los pins, o el puerto serie. Debe ser incluido en un programa aunque no haya declaración que ejecutar. Así mismo se puede utilizar para establecer el estado inicial de las salidas de la placa. void setup() { pinMode(pin, OUTPUT); digitalWrite(pin, HIGH);

// //

configura el 'pin' pone el ‘pin’ en

como estado

salida HIGH

}

loop() Después de llamar a setup(), la función loop() hace precisamente lo que sugiere su nombre, se ejecuta de forma cíclica, lo que posibilita que el programa esté respondiendo continuamente ante los eventos que se produzcan en la placa. void loop()

{ digitalWrite(pin, delay(1000); digitalWrite(pin, delay(1000); }

HIGH); LOW);

// //

pone pone

en en

uno (on, // espera un cero (off,

5v) el 'pin' segundo (1000 ms) 0v.) el 'pin'

Funciones Una función es un bloque de código que tiene un nombre y un conjunto de instrucciones que son ejecutadas cuando se llama a la función. Son funciones setup() y loop() de las que ya se ha hablado. Las funciones de usuario pueden ser escritas para realizar tareas repetitivas y para reducir el tamaño de un programa. Las funciones se declaran asociadas a un tipo de valor “type”. Este valor será el que devolverá la función, por ejemplo 'int' se utilizará cuando la función devuelve un dato numérico de tipo entero. Si la función no devuelve ningún valor entonces se colocará delante la palabra “void”, que significa “función vacía”. Después de declarar el tipo de dato que devuelve la función se debe escribir el nombre de la función y entre paréntesis se escribirán, si es necesario, los parámetros que se deben pasar a la función para que se ejecute. type nombreFunción(parámetros) { Instrucción; }

La función siguiente devuelve un número entero, delayVal() se utiliza para poner un valor de retraso en un programa que lee una variable analógica de un potenciómetro conectado a una entrada de Arduino. Al principio se declara como una variable local, 'v' recoge el valor leído del potenciómetro que estará comprendido entre 0 y 1023, luego se divide el valor por 4 para ajustarlo a un margen comprendido entre 0 y 255, finalmente se devuelve el valor 'v' y se retornaría al programa principal. Esta función cuando se ejecuta devuelve el valor de tipo entero 'v'. int delayVal() { int v; v= analogRead(pot); v /= 4; return v; }

//

// lee

crea una variable temporal 'v' el valor del potenciómetro // convierte 0-1023 a 0-255 // devuelve el valor final

Shields: Son placas que pueden ser conectadas encima de la placa Arduino extendiendo sus capacidades, pudiendo ser apilada una encima de la otra. Las diferentes shields siguen la misma filosofía que el conjunto original: son fáciles de montar, y baratas de producir. Es posible apilar varias shields como se muestra en la imagen.

Algunos shields: 

   

Arduino ethernet shield: Provee de la capacidad de conectarse a la red a nuestra placa Arduino, por lo tanto podríamos enviar datos de sensores a una base de datos en internet, o mostrar los datos directamente en un sitio web. Arduino GSM shield: Es capaz de enviar y recibir SMS, realizar y recibir llamadas de voz y de datos. El modulo utiliza GPRS. Arduino TFT táctil shield V2.0: Para utilizar interfaces gráficas potentes pero sencillas. Arduino Wi-Fi shield: Posee conector para microSD y antena integrada y dota a nuestra placa Arduino de conexión a la red Wi-Fi. Arduino relay shield: Control de relés de hasta 4 contactos.

Investigación parte 2: Arduino y Matlab. Al utilizar Arduino con Matlab y Simulink te permite crear proyectos de Arduino con un alto nivel de programación y diagramas de bloques. Matlab Support Package for Arduino te permite comunicar el Arduino con Matlab por el puerto USB, y conectar dispositivos como Adafruit motor shield, 12C, y dispositivos SPI. Esto es debido a que Matlab interpreta un lenguaje de alto nivel lo que permite ver los resultados de entrada y salida inmediatamente y sin compilar. Matlab incluye matemáticas, ingeniería, y funciones de graficación que se pueden usar para analizar y visualizar datos del Arduino. El leguaje intuitivo y la habilidad para fácilmente graficar datos de un sensor es lo que lleva a muchos usuarios de Arduino a juntarlo con Matlab. Simulink Support Package for Arduino te permite desarrollar algoritmos que corren solos en el Arduino. Para lo que no están familiarizados con Simulink, este tiene un ambiente diagrama bloque que permite moldear dinámicas de sistemas y desarrollar algoritmos. El soporte de paquetes extiende a Simulink con bloques para configurar sensores Arduino y leer y escribir datos de él. Después de crear el modelo Simulink, se puede simular, crear parámetros de algoritmo, y descargar el algoritmo completo para ejecutarlo solo desde el dispositivo. Un uso particularmente útil y exclusivo es la capacidad que ofrece Simulink es la habilidad para utilizar los parámetros en vivo de la computadora mientras el algoritmo corre en el hardware. Un ejemplo de código con Matlab es: Inicializar el objeto de Matlab usando: >> a = arduino ('COM5');

Conectar y controlar las entradas y salidas de Arduino: >> av = readVoltage(a,5); >> writeDigitalPin(a,13,1); >> delete(a) Controla la posición de un Adafruit motor shield V2: >> a = arduino('com5','Uno','libraries','Adafruit\MotorshieldV2'); >> shield = addon(a,'Adafruit\MotorshieldV2') >> s = servo(shield,1); >> writePosition(s,0.5) >> dcm = dcmotor(shield,1); >> start(dcm) >> pause(4) >> stop(dcm) >> sm = stepper(shield,1,200,'RPM',10) >> move(sm,10)

Para conectar el Arduino con Matlab se deben instalar los dos drivers y realizar la conexión a través de la PC. Si ya tienes realizada la conexión con el PC, basta con seguir unos sencillos pasos: 1.

Se deben descargar los drivers que realizan la conexión Arduino/Matlab posible. Los podemos encontrar en la dirección: http://www.mathworks.es/hardware-support/arduino-matlab.html. Existen drivers tanto para Matlab como para Simulink, por si a alguien le interesa ;).

2.

Después de descargar estos drivers, tendremos que instalarlos, para esto abriremos el entorno de programación de Arduino. Desde el entorno de programación se pulsa archivo y abrir y se abre la carpeta de los últimos drivers para Matlab descargados. Se entra en la carpeta llamada “pde”, y se abre el archivo llamado “adiosrv”. Tras abrirlo y con la tarjeta Arduino conectada al PC, pulsamos en el entorno de programación Arduino cargar y pasaremos el código al microcontrolador de la placa. 3. Tenemos que abrir Matlab y ejecutar el fichero denominado install_arduino.m que se encuentra en los archivos bajados de los drivers de Matlab y ya estará listo nuestro Arduino para ser usado como tarjeta de adquisición de datos en Matlab. 4. Por último para realizar la conexión en el entorno de programación de Matlab habrá que declarar una variable con el nombre de Arduino y el puerto en el que se encuentra esté conectado, por ejemplo: a=Arduino (‘COM3’), si esta en otro puerto pues COM4 o COM5 según proceda y se realizará en unos pocos segundos la conexión. Arduino en Matlab posee también funciones propias que podemos ver en el archivo arduino.m que se ha descargado con los drivers desde la web de Mathworks. Para la programación en Matlab, la diferencia es que tenemos que referirnos en sus funciones propias al objeto Arduino que hemos declarado como “a” anteriormente, como ejemplo podemos ver: En Arduino:

void setup () { pinMode (3, OUTPUT); } void loop() { digitalWrite(3,HIGH); } En Matlab: a.pinMode(3,’output’) a.digitalWrite(3,1) %pone el pin 3 a valor alto(1)...


Similar Free PDFs