Publicado el 26 de Agosto del 2020
1.836 visualizaciones desde el 26 de Agosto del 2020
2,3 MB
36 paginas
Creado hace 4a (10/01/2020)
Robótica con Arduino – Introducción
Ofimega - 1
Diseño con Arduino – Ofimega – Guía rápida de introducción
Arduino es una plataforma de hardware libre basada en una sencilla placa de entradas y salidas simples y un
entorno de desarrollo que implementa el lenguaje de programación Processing/Wiring similar al C.
Arduino se puede utilizar para desarrollar objetos interactivos autónomos o puede ser conectado a software
del ordenador.
Las plataformas Arduino están basadas en los microcontroladores Atmega, chips sencillos y de bajo coste que
permiten el desarrollo de múltiples diseños. Al ser open-hardware, tanto su diseño como su distribución son
libres.
Características:
14 Pines de entrada/salida digitales: 0 – 13
(de los cuales 6 pueden ser salidas de pulso modulable PWM: 3, 5, 6, 9, 10, 11)
6 Pines de entrada analógicos: Analog Input Pins A0 – A5
Voltaje de entrada (recomendado): 7-12V Voltaje de operación: 5V
Voltaje de entrada (mín. y máx.) 6-20V
Memoria Flash 32 KB SRAM 2 KB - Microcontrolador ATmega328 - EEPROM 1 KB -
Corriente de E/S (por pin) 40 mA
Frecuencia de reloj 16 MHz
Transmisión en serie: pines 0 (Rx) y 1 (Tx)
Diagrama de pines de Arduino UNO:
Conectar Arduino con el PC y probar programa:
Consigue un Arduino y un cable USB
Conecta la placa: usando el cable USB (LED verde de alimentación PWR encendido)
Instala los drivers: deberían descargarse e instalarse automáticamente
Ejecuta la Aplicación Arduino: doble click en la aplicación Arduino
Descarga el IDE de Arduino: http://arduino.cc/es/Main/Software o de la tienda de Windows
Abre el ejemplo Blink: programa ejemplo para hacer parpadear un LED: File > Examples > Digital > Blink.
Selecciona tu placa: Menu: Tools > Board. Para chip ATmega 328 : Duemilanove or Nano w/ ATmega328
Selecciona tu puerto serie: Tools | Serial Port (probable es que sea COM3)
Sube el sketch a la placa: pulsa sobre el botón "Upload" parpadean los led RX y TX y luego el led de la
placa conectado al pin 13 (L) comienza a parpadear (con un color naranja). Funcionamiento OK
Ejemplo de sketch (programa)
Un sketch es el nombre que usa Arduino para un programa.
Funciones:
void setup() //-> Función, de nombre, "setup" de parámetros vacios ( ) y que no devuelve nada (void)
{
pinMode(ledPin, OUTPUT); // -> llamada a una función previamente definida a la que se le pasan 2 valores
}
pinMode(): configura un pin como entrada o salida. Para utilizarla, le pasas el número del pin que vas a
configurar y la constante INPUT o OUTPUT. Como input, un pin puede detectar el estado de un sensor, y
como salida, puede manejar un actuador, como un LED.
digitalWrite(): envía un valor a un pin. Ejemplo: digitalWrite(ledPin, HIGH) -> modifica ledPin (pin 13) como
HIGH, o 5 volts. Enviando LOW a un pin lo conecta a tierra, o 0 volts.
delay(1000): Hace a Arduino esperar 1000 milisegundos o 1 segundo.
setup() es llamado una vez, cuando comienza el sketch (on create) para definir los pins o inicializar
bibliotecas
loop() se llama una y otra vez y es el corazón de la mayoría de los sketches. Necesitas incluir ambas funciones
en tu sketch, aun cuando no las necesites para nada.
Páginas de interés
Luchador de sumo: http://www.austral.edu.ar/ingenieria/files/2012/06/Orientaciones.pdf
• Véase más en: http://www.arduino.cc/es
•
• Para referencia del lenguaje: http://arduino.cc/es/Reference/HomePage#.Uzv1ePl_vX4
• Ejemplos: http://arduino.cc/es/Tutorial/HomePage#.Uzv1s_l_vX4
• Programación arduino visual en modo bloques: https://github.com/gasolin/BlocklyDuino
• Simulador de Arduino: VirtualBreadboard: http://www.virtualbreadboard.com/
• Simulador on line libre: http://123d.circuits.io/
• Tutoriales Introducción: http://www.prometec.net/
• Tutoriales: http://txapuzas.blogspot.com.es/2011/10/paperrobot-chasis-para-robot-con.html
Robótica con Arduino – Introducción
Ofimega - 3
MANUAL LEAGUAJE DE PROGRAMACIÓN ARDUINO
1. ESTRUCTURA
• setup () (inicialización)
• loop () (bucle)
Estructuras de control
• if (comparador si-entonces)
• if...else (comparador si...sino)
• for (bucle con contador)
• switch case (comparador múltiple)
• while (bucle por comparación booleana)
• do... while (bucle por comparación booleana)
• break (salida de bloque de código)
• continue (continuación en bloque de código)
• return (devuelve valor a programa)
Operadores
• = (asignación)
• + (suma)
• - (resta)
• * (multiplicación)
• / (división)
• % (resto)
• == (igual a)
• != (distinto de)
• < (menor que)
• > (mayor que)
• <= (menor o igual que)
• >= (mayor o igual que)
• && (y)
• | | (o)
• ! (negación)
• ++ (incrementa)
• -- (decremento)
• += (composición suma)
• -= (composición resta)
• *= (composición multiplicación)
• /= (composición división)
2. VARIABLES
Constantes
• HIGH | LOW
• INPUT | OUTPUT
• true | false
• Constantes Numéricas
Tipos de Datos
• boolean (booleano)
• char (carácter)
• byte
• int (entero)
• unsigned int (entero sin signo)
• long (entero 32b)
• unsigned long (entero 32b sin signo)
• float (en coma flotante)
• double (en coma flotante de 32b)
• string (cadena de caracteres)
• array (cadena)
• void (vacío)
3. FUNCIONES
E/S Digitales
• pinMode ()
• digitalWrite ()
• digitalRead ()
E/S Analógicas
• analogRead ()
• analogWrite () - PWM (modulación por ancho de
pulso)
E/S Avanzadas
• tone ()
• noTone ()
• shiftOut ()
• pulseIn ()
Tiempo
• millis ()
• micros ()
• delay ()
• delayMicroseconds ()
Matemáticas
• min () (mínimo)
• max () (máximo)
• abs () (valor absoluto)
• constrain () (limita)
• map () (cambia valor de rango)
• pow () (eleva a un número)
• sq () (eleva al cuadrado)
• sqrt () (raíz cuadrada)
Trigonometría
• sin () (seno)
• cos () (coseno)
• tan () (tangente)
Aúmeros Aleatorios
• randomSeed ()
• random ()
Comunicación
• Serial
• begin ()
• end ()
• available ()
• read ()
• flush ()
• print ()
• println ()
• write ()
1. ESTRUCTURA:
SETUP()
La función setup() se establece cuando se inicia un programa -sketch.
Se emplea para iniciar variables, establecer el estado de los pins, inicializar
librerías, etc.
Esta función se ejecutará una única vez después de que se conecte la placa
Arduino a la fuente de alimentación, o cuando se pulse el botón de reinicio
de la placa.
LOOP()
int buttonPin = 3;
void setup()
{
Serial.begin(9600);
pinMode(buttonPin, INPUT);
}
void loop()
{
// aquí va el bucle
}
Esta función se ejecuta consecutivamente, permitiéndo al programa variar y responder en cada instante. Úsala para
controlar de forma activa la placa Arduino.
int buttonPin = 3; // setup inicializa la comunicación serial y el buttonPin
void setup()
{
beginSerial(9600);
pinMode(buttonPin, INPUT);
}
// loop obtiene el estado del pin del botón cada vez y de estar presionado,
lo comunica por serial.
void loop()
{
if (digitalRead(buttonPin) == HIGH)
serialWrite('H');
else
serialWrite('L');
delay(1000);
}
ESTRUCTURAS DE CONTROL
Operadores de Comparación (comparadores):
x == y
x != y
x < y
(x es igual a y)
(x no es igual a y)
(x es menor a y)
x > y
x <= y
x >= y
(x es mayor a y)
(x es menor o igual a y)
(x es mayor o igual a y)
Atención: No confundir un signo de igual solo de asignación, con el igual doble de comparación.
IF / ELSE
if/else permite separar las acciones en dos casos; el caso verdadero o falso según se cumpla o no la comparación.
Sintaxis: if (comparación) {acción_verdadera} else {acción_falsa}
else if permita realizar múltiples comprobaciones en una misma estructura de condiciones
// acción A
if (pinCincoInput < 500)
{
}
else
{
}
// acción B
// ejecutar A
if (pinCincoInput < 500)
{
}
else if (pinCincoInput >= 1000)
{
}
else
{
}
// ejecutar B
// ejecutar C
Entonces un bloque else if puede ser usado con o sin else al final.
Pueden emplearse If-else anidados de modo que la cantidad de
declaraciones else if, y sus ramificaciones son ilimitadas.
Otra forma de expresar ramificaciones (branching en inglés), es con la declaración switch case
Robótica con Arduino – Introducción
SENTENCIA SWITCH / CASE
Ofimega - 5
Como las sentencias if, switch...case permite agrupar diferentes códigos que deberían ser ejecutados en función de
varias condiciones.
La palabra clave break sale de la sentencia switch, y es usada típicamente al final de cada case.
Ejemplo
switch (var) {
case 1:
//hacer algo cuando sea igual a 1
break;
case 2:
//hacer algo cuando sea igual a 2
break;
default:
// si nada coincide, ejecuta el "default"
// el "default" es opcional
}
BUCLES
FOR
Sintaxis
switch (var) {
case etiqueta:
// sentencias
break;
case etiqueta:
// sentencias
break;
default:
// sentencias
}
La declaración for es usada para repetir un bloque encerrado entre llaves un número determinado de veces. El bucle
for tiene tres partes o argumentos en su
inicialización:
/* Variar la intensidad de un LED usando un salida PWM
int PWMpin = 10; En el pin 10 hay un LED en serie con una
resistencia de 470 ohmios */
void setup()
{
for (initialization; condition;
increment) {
}
//función(es);
La initialization, o inicialización, se produce
sólo la primera vez. Cada vez que se va a
repetir el bucle, se revisa la condition, o
condición: si es cierta, el bloque de funciones
(y el incremento del contador) se ejecutan, y la
condición vuelve a ser comprobada de nuevo.
Si la condición es falsa, el bucle termina.
// no es necesario nada aquí
}
void loop()
{
for (int i=0; i <= 255; i++){
}
analogWrite(PWMpin, i);
delay(10);
}
El bucle for, en C, es mucho más flexible
que en otros lenguajes. Un
Comentarios de: Diseño con Arduino - Ofimega - Guía rápida de introducción (0)
No hay comentarios