Está en la página 1de 61

Sesión 7

Sistemas Embebidos y Programación de


Microcontrolador
Sistemas Embebidos
Microcontrolador
Arduino
Entorno y principios de programación del Arduino
Logro

Los alumnos al finalizar esta sesión comprenden los


principios básicos de los Microcontroladores y la
programación en Arduino.

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Temario

1. Sistemas Embebidos
2. Microcontrolador
3. Programación del Arduino

MC40 INTRODUCCIÓN A LA MECATRÓNICA


¿Que son los sistemas embebidos?

• También se conoce como sistemas empotrados es un sistema de


computación diseñado para realizar una o algunas pocas funciones
dedicadas, frecuentemente en un sistema de computación

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Ejemplos de Microcontroladores

Intel® Galileo DevelopmentBoard (Gen 2) - BeagleBone Black Rev


Arduino Certified - Gen2 C

Raspberry Pi 2 - Model B -ARMv7 with 1G RAM

MC40 INTRODUCCIÓN A LA MECATRÓNICA


RASPBERRY PI 3

• un ARM Cortex A53, un procesador de cuatro núcleos a 1.2GHz de 64 bits y que, según sus
datos, tiene un rendimiento 10 veces superior al de la Raspberry Pi original y un 50% más
que la Raspberry Pi 2, el modelo anterior.
• Tiene Bluetooth 4.1 (de bajo consumo) y WiFi 802.11nintegrado

MC40 INTRODUCCIÓN A LA MECATRÓNICA


ARDUINO –ATMEGA328

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Introducción al Arduino
¿Qué es Arduino?
¿Qué distingue al Arduino?
Arduino Uno

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Introducción al Arduino

MC40 INTRODUCCIÓN A LA MECATRÓNICA


¿Qué es Arduino?

Arduino es una plataforma de


electrónica abierta para la
creación de prototipos basada
en hardware flexible y fácil de
usar.

Imagen tomada de:


http://arduino.cc.es/

MC40 INTRODUCCIÓN A LA MECATRÓNICA


¿Qué es Arduino?

Está Basado en una tarjeta con un


microcontrolador que permite
conectar sensores, actuadores y
otros elementos mediante sus
entradas y salidas, analógicas y
digitales.

MC40 INTRODUCCIÓN A LA MECATRÓNICA


¿Qué es Arduino?

Al ser Open-Hardware, tanto su diseño, como


su distribución es libre. Es decir, puede
utilizarse libremente para el desarrollo de
cualquier tipo de proyecto sin necesidad de
adquirir ninguna licencia.

MC40 INTRODUCCIÓN A LA MECATRÓNICA


¿Qué distingue a Arduino?

•La filosofia OpenSource


– Codigo Abierto- que
lo sustenta
• La comunidad formada
a su alrededor
• La sencillez del
lenguaje de
programación
• El hardware de bajo
costo
MC40 INTRODUCCIÓN A LA MECATRÓNICA
¿Qué es Arduino?
¡ Es un dispositivo que conecta el mundo físico con el mundo
virtual!

MC40 INTRODUCCIÓN A LA MECATRÓNICA


¿Cómo surge Arduino?

• 2005 -> Instituto de Diseño interactivo Ivrea (Italia)


•David Cuartielles y Massimo Banzi
• Problemas existentes
•Limitación tecnológica
• Usuario no experto
• Plataformas existentes complejas y cerradas
•Limitación económica
•Solución
•Plataforma OpenSource
MC40 INTRODUCCIÓN A LA MECATRÓNICA
¿Para Quien?

• Diseñadores
• Aficionados
• Estudiantes
• Artistas

¡¡ PARA TODOS!!

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Tipos de tarjeta Arduino

Mega
Duemilanove

Uno

Leonardo

Nano Mini

Lilypad
MC40 INTRODUCCIÓN A LA MECATRÓNICA
Tarjeta Arduino Uno

Características
 MicrocontroladorATMega328
 Funcionamiento 5V
 Voltaje Entrada de voltaje (recomendado) 7-12V
 Límites de voltaje 6-20V
 Digital I / O Pins 14 (de los cuales 6 proporcionar
una salida PWM)
 6 pines de entrada analógica DC
 Corriente de pines I / O 40 mA
 Memoria Flash de 32 KB (ATMega328) de los
cuales 0,5 KB utilizado por el gestor dearranque
 SRAM 2KB (ATMega328)
 EEPROM 1KB (ATMega328)
 Velocidad del reloj de 16 MHz
 Frecuencia del reloj : 16Mhz

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Tarjeta Arduino Uno

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Shields

Los Shields o tarjetas de expansión son módulos fabricados


por terceros que se pueden apilar encima de la placa Arduino y le
proporcionan una determinada funcionalidad . por ejemplo:

• Conexiones inalambricas
• Control de sensores y motores
• Lectura y escritura en memorias

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Shields

❑ Un Shield es una placa que permite expandir


funcionalidades a Arduino.

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Shields

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Arduino Shields

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Arduino Uno
1. • Conector USB para el cable Tipo AB
2. • Pulsador de Reset

3. • Pines de E/S digitales y PWM

4 LED verde de indicador de encendido


5.
LED naranja conectado al pin13
6. • ATmega 16U2 encargado de la comunicación con el PC

7. • LED TX (Transmisor) y serial RX (Receptor) de


la comunicación
8. Puerto ICSP para programación serial
9. Microcontrolador ATmega 328 : cerebro delArduino
10. Cristal de cuarzo de 16Mhz
11. Regulador de voltaje
12. Conector hembra 2.1mm con centro positivo
13. Pines de voltaje y tierra
14. Entradas análogas

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Como se programa Arduino

Arduino cuenta con un


entorno de desarrollo
nativo creado en Java, por
lo que es multiplataforma.

El lenguaje que utiliza es


propio de Arduino y está
basado en C.

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Entornos de programación gráfica

Son interfaces para programar de una forma


sencilla y dinámica la plataforma Arduino.

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Ardublock, Modkit, Minibloq, S4A

Programación basada en bloques o cajas de funciones, que simbolizan diferentes


elementos de programación, por ejemplo: Instrucciones, condiciones, variables,
entre otros.
MC40 INTRODUCCIÓN A LA MECATRÓNICA
Entorno de programación

Entornos Visuales vs Entornos Escritos

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Entorno de programación
Entornos Visuales Entornos Escritos
+ +

● Curva de aprendizaje rápida ● Mayor libertad programación


● Permite centrarse en los
vs
● Potencial del uso librerías
algoritmos sin pensar en la
● Portabilidad del código
sintaxis.


● Errores sintaxis del lenguaje
● Cierta limitación a la
hora de programar ● Curva aprendizaje lenta

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Entorno de programación

IDE ARDUINO
Los programas se cargan en la
placa

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Programar en Arduino

• Estructuras
• Variables
• Operadores:
matemáticos,
lógicos y booleanos
• Estructuras de
control:
Condicionales y
ciclos
• Funciones
MC40 INTRODUCCIÓN A LA MECATRÓNICA
Ejemplo de un programa

Requiere unas nociones básicas de programación


MC40 INTRODUCCIÓN A LA MECATRÓNICA
Estructura de un programa de Arduino

Comentarios Introductorios
Describen el programa

Sección de Declaración de variables

Sección de Configuración

Sección de Ejecución de
Sentencias repetitivas

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Estructura de un programa de Arduino

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()
{
estamentos;
}
void loop()
{
estamentos;
}

MC40 INTRODUCCIÓN A LA MECATRÓNICA


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.

void setup()
{
pinMode(pin, OUTPUT); // configura el 'pin' como salida
}

MC40 INTRODUCCIÓN A LA MECATRÓNICA


loop()

la función loop() hace precisamente lo que sugiere su nombre, se


ejecuta de forma cíclica, lo que posibilita que el programa este
respondiendo continuamente ante los eventos que se produzcan
en la tarjeta.

void loop()
{
digitalWrite(pin, HIGH); // pone en uno (on, 5v) el ´pin´
delay(1000); // espera un segundo (1000 ms)
digitalWrite(pin, LOW); // pone en cero (off, 0v.) el ´pin´
delay(1000);
}

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Entre llaves {}

Las llaves sirven para definir el principio y el final de un bloque de


instrucciones. Se utilizan para los bloques de programación setup(), loop(), if..,
etc.
type funcion()
{

estamentos;

Una llave de apertura “{“ siempre debe ir seguida de una llave de cierre “}”, si
no es así el programa dará errores.

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Punto y coma ;

El punto y coma “;” se utiliza para separar instrucciones en el lenguaje de programación


de Arduino. También se utiliza para separar elementos en una instrucción de tipo “bucle
for”.

int x = 13; // declara la variable 'x' como tipo entero de valor 13

Nota: Olvidarse de poner fin a una línea con un punto y coma se traducirá en un
error de compilación. El texto de error puede ser obvio, y se referirá a la falta de una
coma, o puede que no. Si se produce un error raro y de difícil detección lo primero
que debemos hacer es comprobar que los puntos y comas están colocados al final de
las instrucciones.

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Declaración de Variables

Todas las variables tienen que declararse antes de que puedan ser utilizadas.
Para declarar una variable se comienza por definir su tipo como int (entero),
long (largo), float (coma flotante), etc, asignándoles siempre un nombre, y,
opcionalmente, un valor inicial. Esto sólo debe hacerse una vez en un
programa, pero el valor se puede cambiar en cualquier momento usando
aritmética y reasignaciones diversas.

El siguiente ejemplo declara la variable entradaVariable como una variable de


tipo entero “int”, y asignándole un valor inicial igual a cero. Esto se llama una
asignación.

int entradaVariable = 0;

MC40 INTRODUCCIÓN A LA MECATRÓNICA


High / Low

Estas constantes definen los niveles de salida altos o bajos y se utilizan para la
lectura o la escritura digital para las patillas. ALTO se define como en la
lógica de nivel 1, ON, ó5 voltios, mientras que BAJO es lógica nivel 0, OFF, o
0 voltios.

digitalWrite(13, HIGH); // activa la salida 13 con un nivel alto (5v.)

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Input / Output

Estas constantes son utilizadas para definir, al comienzo del programa, el


modo de funcionamiento de los pines mediante la instrucción pinMode de tal
manera que el pin puede ser una entrada INPUT o una salida OUTPUT.

pinMode(13, OUTPUT); // designamos que el PIN 13 es una salida

MC40 INTRODUCCIÓN A LA MECATRÓNICA


If (si)

if es un estamento que se utiliza para probar si una determinada condición se


ha alcanzado, como por ejemplo averiguar si un valor analógico está por
encima de un cierto número, y ejecutar una serie de declaraciones
(operaciones) que se escriben dentro de llaves, si es verdad. Si es falso (la
condición no se cumple) el programa salta y no ejecuta las operaciones que
están dentro de las llaves, El formato para if es el siguiente:

if (unaVariable ?? valor)
{
ejecutaInstrucciones;
}

En el ejemplo anterior se compara una variable con un valor, el cual puede ser una
variable o constante. Si la comparación, o la condición entre paréntesis se cumple (es
cierta), las declaraciones dentro de los corchetes se ejecutan. Si no es así, el programa
salta sobre ellas y sigue.

MC40 INTRODUCCIÓN A LA MECATRÓNICA


If …. else if …. else …. (si …. sino si …. sino ….)

Else puede ir precedido de otra condición de manera que se pueden establecer


varias estructuras condicionales de tipo unas dentro de las otras (anidamiento)
de forma que sean mutuamente excluyentes pudiéndose ejecutar a la vez. Es
incluso posible tener un número ilimitado de estos condicionales. Recuerde sin
embargo qué sólo un conjunto de declaraciones se llevará a cabo dependiendo
de la condición probada:
if (inputPin < 500)
{
instruccionesA; // ejecuta las operaciones A
}
else if (inputPin >= 1000)
{
instruccionesB; // ejecuta las operaciones B
}
else
{
instruccionesC; // ejecuta las operaciones C
MC40 INTRODUCCIÓN A LA MECATRÓNICA }
Entorno de Programación

Entornos Visuales

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Entorno de programación
Entornos Visuales / Snap4Arduino

Los programas se ejecutan en el


ordenador.

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Entorno de programación Entornos Visuales / S4A

Los programas se ejecutan en


el arduino

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Ardublock, Modkit, Minibloq, S4A

Estos bloques de
programación se
van ensamblando
hasta formar
programas.

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Usos del Arduino

Control de movimiento de actuadores

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Control de luces

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Control a distancia y manipulacion de datos en forma remota

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Proyectos

MC40 INTRODUCCIÓN A LA MECATRÓNICA


EJEMPLOS DE PROYECTOS

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Proyectos

MC40 INTRODUCCIÓN A LA MECATRÓNICA


MC40 INTRODUCCIÓN A LA MECATRÓNICA
MC40 INTRODUCCIÓN A LA MECATRÓNICA
Proyectos

• SECUduino -> controladora bus CAN


• ArduPilot -> control avión no tripulado
• Robótica -> robot araña controlado por voz
• Robótica -> control cámara pan/tilt con mando Wii
• Seguridad -> control de acceso mediante leds
• IoT -> control del estado de una planta mediante tweets

MC40 INTRODUCCIÓN A LA MECATRÓNICA


SECUduino: controladora de bus CAN

• SECUduino: controladora de bus CAN

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Proyectos con Arduino

• ArduPilot: UAV controlado por Arduino

http://www.youtube.com/watch?v=IvR3QM0iTPw

MC40 INTRODUCCIÓN A LA MECATRÓNICA


Más información

Enlaces de Información
• http://www.arduino.cc/es/
• http://blog.bricogeek.com
• http://www.arduteka.com/
Este entorno (IDE) se descarga de la pagina oficial
de Arduino según el sistema operativo.

Link de descarga:
http://arduino.cc/es/Main/software (Español)
http://arduino.cc/en/Main/software (Ingles)

MC40 INTRODUCCIÓN A LA MECATRÓNICA

También podría gustarte