Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Tu como yo, has copiado y has pegado código sin saber muy bien
qué hacía. No está mal del todo ya que nos ha servido para obtener
resultados.
Tómalo con calma, es un artículo muy largo. Casi podemos decir que
es un libro de Arduino. Cualquier sugerencia o cualquier duda la
puedes escribir en los comentarios.
Espero que lo disfrutes y sobre todo, que aclare las dudas que puedas
tener.
Indice de contenidos
1 Mi experiencia al aprender Arduino
2 El proceso del prototipado con Arduino
3 Curso de Arduino: Introducción al software y hardware
4 Fundamentos de la programación con Arduino
5 Conclusiones curso de Arduino
El prototipo mínimo
Vale, ya tienes ese maravilloso proyecto con Arduino en un papel.
Junto a ese diseño tienes un listado de ideas y especificaciones.
Ahora tienes que tirar de tu yo más racional, digamos que ahora eres
Lisa de la familia Simpson.
El diseño incremental
Ahora sí, ya tienes las ideas claras de lo que tienes que hacer para
llevar a cabo tu prototipo mínimo. Lo has plasmado todo y ahora
empieza la fase de creación. Ya puedes empezar a crear los circuitos
y a programar Arduino a partir de ese prototipo mínimo.
Descargar ya
No confundir tecnologías libres con tecnologías gratuitas. Aunque una
cosa lleve a la otra, no quita que detrás de este tipo de proyectos haya
mucha gente trabajando y muchas horas de dedicación. Entonces
¿cómo podemos colaborar? Hay diferentes formas. Si nos centramos
en Arduino la más sencilla es comprar placas originales y no copias.
Pero también puedes ayudar haciendo una donación. Eso servirá para
pagar el hosting de la página web, a los trabajadores o cualquier gasto
derivado del proyecto.
Versiones del IDE de Arduino
Se trata de un software que está en constante actualización. Arduino
no tiene un periodo fijo a la hora de hacer actualizaciones. Cuando
sale una nueva versión se añaden nuevas opciones o se corrigen
errores.
Pero por ahora tampoco cambia el código. Esto quiere decir que si tu
tienes un programa que hiciste con la versión 1.4 de Arduino, también
te servirá para cargarlo a la placa con la versión 1.8.
Solo advertir que voy a hacerlo para Windows. Esto es debido a una
cosa simplemente. A día de hoy es el sistema operativo más utilizado
del mundo aunque nos pese. Si tengo que elegir uno prefiero este
para poder ayudar al mayor número de personas.
#5 Instalar complementos
#6 Terminar instalación
Como has podido comprobar es muy sencillo. Cualquier problema con
la instalación me dejas un comentario en este artículo. Justo abajo del
todo ;)
En esta sección vamos a dar un repaso rápido por las funciones más
importantes del IDE de Arduino. Aprenderás lo básico para empezar a
programar tus propios programas.
Cada vez que sale una nueva placa, el IDE se actualiza para poder
programarla. Con los años verás como va creciendo esta lista :)
Y luego, en la ruta que hayas elegido habrá creado una carpeta con el
mismo nombre y dentro el fichero.
La ruta por defecto donde se guarda es la que hemos configurado en
preferencias.
La consola
No es lo mismo comprar una placa con conexión WiFi que sin ella. Por
ejemplo, Arduino MKR1000 puede conectarse a Internet a través de
la WiFi y transmitir datos.
¿Qué es un microcontrolador?
Si miramos de cerca la placa nos da la sensación de que se trata de
un circuito sacado de un electrodoméstico. La realidad es que Arduino
está creado con un único objetivo: facilitarnos la programación de un
microcontrolador.
Una MCU tiene como objetivo una tarea concreta. Por ejemplo, cerrar
las puertas de un ascensor, captar la temperatura de un sensor, etc..
Puerto USB
Se llama puerto USB pero realmente estamos trabajando a través del
puerto serie. Dentro de la propia placa hay un conversor de USB a
serie, también conocido como TTL o FTDI.
¿Qué quiere decir digital? Digital es algo abstracto así que mejor verlo
con una analogía.
Hay algún pin más dentro de este zócalo pero como ya te he dicho al
principio de este curso de Arduino, aquí vamos a ver lo esencial para
ponernos en acción.
Pines analógicos
¿Recuerdas al pintor que solo podía pintar con dos colores, blanco o
negro? Pues en el mundo analógico tenemos una amplia gama de
colores, ahora podemos pintar con diferentes tonos de gris.
Pines de alimentación
El zócalo de pines de alimentación nos sirve para alimentar los
componentes, sensores y actuadores.
Desde que concibes la idea en tu cabeza hasta que el libro llega a las
librerías, el proyecto pasa por diferentes procesos hasta materializarse
el libro. Voy a hacer una enumeración básica:
El toolchain de Arduino
En este curso de Arduino vamos a ver el toolchain o cadena de
herramientas en 3 fases. Algunas partes las hemos visto ya, como el
IDE de desarrollo. Sin embargo, es sólo una de las herramientas.
1. El IDE de Arduino
2. El compilador
3. AVRdude
El IDE de Arduino
El compilador
El compilador cogerá el código en C++ que has escrito en el IDE de
Arduino y lo convertirá en código máquina para que lo entienda el
microcontrolador. El que utiliza Arduino se llama AVR-GCC.
AVRdude
Dentro del circuito integrado tiene cargado un software muy básico que
se llama Bootloader. Ya viene instalado dentro de la placa cuando la
compras así que no tienes que hacer nada cuando recibes una placa
sin usar.
Descargar ya
En el mundo tecnológico siempre hay una sensación de incertidumbre
y debes aprender a vivir con ello. Hay una premisa que debes aplicar
cuando estás haciendo un curso de Arduino.
Verás como con el tiempo, eso que no entendías lo verás más claro
desde otra perspectiva.
1 // Esto es un comentario
2 int miVariable = 0;
1 /*
2 Esto es un comentario
3 */
4 int miVariable = 0;
Punto y coma
En el lenguaje de programación C++, el punto y coma (;) es como
un punto y aparte. Básicamente lo que está diciendo es que hemos
terminado una sentencia y a partir de ese momento, empezamos algo
nuevo sin relación a lo anterior a nivel de sintaxis.
1 // Esto es un comentario
2 int variable = 0;
En este punto ya podemos hacer una prueba para ver como actúa el
compilador. Abre un nuevo programa en el IDE de Arduino y copia el
siguiente código. No hace falta ni que conectes la placa a tu
ordenador.
2 int variable1 = 0
4 void setup() {
7 }
9 void loop() {
11
12 }
Por último en el editor nos sale una franja roja indicando la línea
donde está el error y donde se hace referencia en la consola. Ahora
cambia el código y pon el punto y coma al final de la línea 2 y verás
como compila.
Palabras reservadas
Seguramente ya hayas copiado y pegado algún código de Arduino de
esos que encuentras por Internet. Al hacerlo, te habrás dado
cuenta algunas palabras cambian el color de texto dentro del IDE de
Arduino.
Son palabras reservadas por el lenguaje C++. Cada una de ellas tiene
una función específica y están reservadas por el lenguaje de
programación.
Esto quiere decir que no podemos utilizar esos nombres para nombrar
una variable por ejemplo.
Hay más palabras clave que las que hemos visto. Poco a poco te irás
familiarizando con ellas según las vayas necesitando. Lo importante
es que si cambia de color en el IDE de desarrollo, es que es una palabra
reservada.
1 // Area de un círculo
Ahora supón que tienes que utilizar esta línea de código muchas
veces en tu programa. Quizás te interese convertir este fragmento en
una función. No voy a mostrarte la implementación, solo te voy a
mostrar la llamada.
1 // Area de un círculo
2 calcularAreaCirculo(radio);
Queda mucho más fácil y mucho más limpio, ¿lo ves? Pero a mi lo
que realmente mi interesa es que entiendas el concepto. En este
curso de Arduino, desde el primer momento, vamos a utilizar
funciones y debes ser capaz de entender esta herramienta de
programación.
2 pinMode(6, INPUT);
3 digitalRead(6);
1 nombreFuncion();
Tipos de datos
Además de dar un nombre a la variable, tenemos que hacer otra cosa.
Tenemos que indicar el tipo de información que va a almacenar.
Imagínate el cajón de los cubiertos de tu casa. Normalmente cuando
quitas el lavaplatos o lavavajillas y colocas los cubiertos en su cajón,
cada uno va en su sitio.
Donde quiero llegar es que debemos tener un hueco dentro del cajón
para cada tipo de cubiero. Lo mismo ocurre con las variables, tenemos
que especificar el tipo de dato que vamos a almacenar en cada hueco de
memoria.
2 int primeraVariable;
Por cierto, no te olvides del punto y coma al final para indicar que has
terminado con la declaración de la variable.
Para nombrar una variable hay que seguir ciertas reglas. Llevo
muchos años programando (más de 15 años) y he visto de todo :)
8 int primerInt; //Aunque contiene una palabra reservada es correcta esta declaración
Inicialización de variables
Cuando hablo de inicilizar una variable no es más que asignar un valor.
Todo esto lo tenemos que hacer una vez que conozcamos el tipo de
dato por supuesto. Incluso lo podemos hacer en la misma línea.
En sentencias separadas.
1 int nivelMaximo;
2 nivelMaximo = 25;
Entero (int)
Es el tipo de dato más común. En C++ se utiliza la palabra
reservada int para declarar un tipo de dato entero.
Algo a tener claro con las variables es que si declaras una variable int,
estás ocupando 2 bytes de memoria. Da lo mismo si almacenas el 1 o
el 30.000.
Decimal (float)
Si quieres almacenar un número decimal con los tipos de datos que
hemos visto hasta ahora no podrías. Para los números con decimales
tenemos los números de coma flotante. En C++ se utiliza la palabra
reservada float.
Descargar ya
Es debido a como se trata internamente este tipo de datos. Para
almacenarlo utiliza la notación científica.
Byte (byte)
Es el tipo de dato más pequeño que hemos visto hasta ahora. En C++
se utiliza la palabra reservada byte y como indica su nombre,
solo ocupa 1 byte de memoria.
Booleano (boolean)
Es el tipo de dato que menos memoria ocupa, 1-bit. La palabra
reservada en C++ es boolean y puede tomar dos valores o 1 o 0.
3 boolean boolConCero = 0;
7 boolean boolConNumero1 = 1;
Por otro lado, este tipo de dato es el único que no cumple la regla
cuando se sale fuera de su rango. Como hemos visto anteriormente,
cuando salimos por arriba o por abajo empezaríamos de nuevo.
Con una variable del tipo booleano lo que sucede es que siempre que
sea 0 será falso y en caso contrario será siempre verdadero.
Carácter (char)
El último tipo de dato que vamos a ver en este curso de Arduino es el
carácter. Se representa con la palabra reservada char en C++ y
utiliza 1 byte de memoria (8-bit). Nos permite almacenar una letra de
una forma especial.
2 digitalWrite(3, HIGH);
Bien, hasta ahora hemos visto funciones que admiten parámetros pero
también hay funciones que no tienen ningún parámetro. Por
ejemplo millis().
2 encenderLuzSalon();
Nosotros solo vemos una parte de la función pero por debajo hay
mucha más información. Sin embargo, al principio sólo tienes que
conocer cómo hacer llamadas a funciones. Más adelante ya serás capaz
de programar las tuyas.
Procedimientos de un restaurante
Para que entiendas la función desempeñan setup() y loop() dentro de
un programa de Arduino te voy a poner una analogía, seguro que lo
entiendes mejor.
Más o menos cada mes tienes algún empleado nuevo al que tienes
que formar. Esto te lleva a tener dos procedimientos:
Procedimiento de apertura.
Procedimiento de atención a un cliente.
Por ejemplo, preguntar cuantos son, buscar una mesa libre, tomar
nota de la bebida, tomar nota de la comida, etc…
Ahora mismo estás pensando ¿qué tiene que ver un restaurante con
Arduino? Bueno, ahora lo comprobarás, pero un programa de Arduino
tiene que hacer cosas similares a las que se hacen en este
restaurante.
La función setup()
En un programa de Arduino, hay cosas que sólo tienen que hacerse una
sola vez. Cosas como:
Este color indica que el IDE de Arduino identifica esta función como un
tipo especial que se utiliza para el control de la estructura del código.
Como toda función tiene un paréntesis que abre y otro que cierra. Sin
embargo esta función no necesita de ningún argumento para operar.
La función loop()
En un programa de Arduino, lo siguiente que se ejecuta después de la
función setup es la función loop. Su significado es repetición y la
función se parece a la función de setup.
va?
Después de este extenso tutorial faltaría muchas cosas que ver dentro
de la programación, pero con esto ya tienes unos buenos cimientos
sobre los que construir.