[Tutorial] Primeros pasos con Arduino parte #1 // Firsts steps with Arduino #part 1

in #utopian-io6 years ago (edited)

This tutorial is aimed to complete beginners on Arduino platform who wants to learn how to make their own projects with this boards.
Title : Primeros pasos con arduino // Firsts steps with Arduino
Language : Spanish

El presente es un tutorial que va dirigido a principiantes en la plataforma de Arduino, para que puedan conocer el mundo de la electrónica y el opensource, el cual ha permitido el nacimiento de proyectos muy interesantes y diversos que estan cambiando nuestro día a día. Sin más que decir comencemos.

¿ Qué se aprenderá con este tutorial ?

  • En que consiste la plataforma de Arduino.
  • Como instalar las herramientas oficiales de Arduino y como programar sin el IDE de arduino.
  • Lo básico que se debe conocer para programar las tarjetas de Arduino.

Requerimientos

  • Tarjeta de Arduino uno ( o similar).
  • Cable USB tipo B.
  • Conexión a internet.
  • Conocimientos básicos de C/C++.
  • Conocimientos básicos de electrónica .

Dificultad

  • Básica

Términos que necesitamos saber

  • Led : El led es un diodo (un tipo de componente electrónico ) el cual emite luz bajo ciertas circunstancias. Puede emitir luz de variados colores dependiendo de su fabricación.

  • Microcontrolador: Un microcontrolador basicamente es un circuito integrado de capacidad limitada que ejecuta las instrucciones grabadas en su memoria. Es simular a un CPU pero a muy baja escala. Los microcontroladores tienen una gran cantidad de periféricos internos que les permiten comunicarse con otros dispositivos u obtener datos del exterior como por ejemplo módulos de UART, SPI, CAN, ADC, entre muchos otros que iremos conociendo más adelante.


img3.jpg

fuente

¿Qué es es arduino?.

arduino_logo.jpg

fuente

Arduino es una plataforma electrónica opensource, los esquemáticos del hardware y la interfaz para programarlo es completamente pública por lo que cualquiera puede implementar nuevas opciones o hacer mejoras al hardware sin ningún problema. Esta plataforma a diferencia de otras que existían anteriormente es muy amigable contodos los usuarios (expertos y los que no) en el área de sistemas embebidos y microcontroladores, esta pesado para que sea accesible para todo tipo de público por lo que cuenta con una interfaz muy sencilla de utilizar .

¿Qué hace la tarjeta de arduino?

Las tarjetas arduino básicamente tienen una variedad de entradas o salidas configurables. Las entradas se utilizan para percibir cambios en el ambiente o para obtener datos de otros dispositivos . En base a la información que recibe aplica una lógica para activar salidas especificadas y así generar ciertos eventos.

El arduino por si solo no puede medir cambios en el ambiente, para hacer eso necesita de dispositivos llamados sensores los cuales dependiendo de sus propiedades, métodos de fabricación, y la física detrás de ellos permiten monitorear ciertas variables del ambiente. Entre algunas que se pueden mencionar se tiene la temperatura, la presión atmósferica, salinidad del agua, entre muchos otros.

No todos los dispositivos que se usan como entradas son sensores, hay muchos otros tipos de dispositivos tales como los que se usan para comunicarse, botones, switches, pero los sensores juegan una parte muy impotante en el mundo del arduino y la electrónica en general.

En el caso de la salidas, los dispositivos que se encargan de generar ciertos eventos de manera general se les llama actuadores, entre los ejemplos más característicos se tiene los motores, relés, válvulas entre muchos otros.

Nuevamente no todo lo que se conecta a las salidas son actuadores, existen tambíen pantallas, leds, optoacopladores que son otro tipo de dispositivos que permiten enviar información al medio externo. La diversidad de sensores y actuadores es gigante y para facilitar el manejo de estos dispositivos con el arduino la comunidad ha creado placas llamadas shields las cuales presentan una interfaz amigable para que los sensores o actuadores se conecten fácilmente con el arduino.


shield.jpg


fuente

¿Por qué hay tanta cantidad de arduinos?

Existen gran cantidad de versiones de arduino porque cada tarjeta esta pensada para un tipo de público o aplicación distinta, ya sea por consideraciones de tamaño, conectores o incluso donde se usará (el arduino floara por ejemplo es usado para weareables).
Además de lo anterior los arduinos pueden diferir en poder de procesamiento lo que significa que las versiones entre arduino no necesariamente tienen el mismo microcontrolador. Algunos arduinos usan el microcontrolador de atmel Atmega 328, tales como el Arduino uno , Arduino nano , o el Arduino promini .
Otros arduinos con más capacidad usan un microcontrolador diferente tal como el Arduino Mega que usa el Atmega 2560 o el arduino DUE que usa el Atmel SAM3X8E.

arduinos.jpg


fuente

En la actualidad existen muchas versiones de Arduinos, clones chinos, versiones mejoradas de las tarjetas y las llamadas Genuino . Las tarjetas Arduino fabricadas por Arduino.cc y las Genuino son practicamente identicas la diferencia radica en donde son fabricadas. La primera es fabricada dentro USA, la segunda es para el resto del mundo.

Esta hecho ocurrió porque el equipo de Arduino se separó dividiendose en Arduino.org y Arduinocc. Aunque parece que en la actualidad este problema se ha resuelto y la marca ya esta unificada nuevamente, pero para los motivos de este tutorial cualquiera de estas 2 tarjetas funcionará perfectamente.

Aquí les dejó unas declaraciones del foro de arduino sobre la resolución de este problema.problema resuelto

¿Cómo se usa el arduino ?

Para comunicarte con el arduino y decirle que debe hacer primero debes programar el microcontrolador que se encuentra en la tarjeta usando el lenguaje de Arduino el cual esta basado en un framework de desarrollo llamado Wiring que a su vez esta escrito en C++. Asi que si vienes de un entorno de C adaptarte a la sintaxis no será complicado.

Para comenzar a usar nuestro arduino primero necesitamos programar el microcontrolador. Hay varias opciones para hacerlo. Usando todas las herramientas del IDE de arduino, compilando y programando desde otro editor de texto o compilando manuealmente el codigo con gcc y programando el microcontrolador con avr-dude. Para este tutorial solo usaremos las primeras 2 y la tercera la dejaremos para tutoriales futuros.

IDE de Arduino

La manera más sencilla (aunque a mi parecer no la más cómoda) para empezar con arduino es usar el IDE de desarrollo de arduino para ello puede descargarlo del siguiente enlace arduino download

Al llegar allí nos dirigimos a la sección descargas , en una pantalla como esta:

img1.jpg

Luego seleccionamos descarga del instalador de windows (si estamos usando Windows), como es el caso procedemos con ese

Veremos la siguiente página y presionaremos "just download"

img2.jpg

Al descargarse el ide de arduino procedemos a ejecutarlo. Veremos las siguientes pantallas, y seguiremos los pasos que se nos indique dado que es como cualquier instalación normal de un software para windows.

img4.jpg

img5.jpg

img6.jpg

img8.jpg

Luego de finalmente instalado procedemos a abrir el programa de arduino y veremos la siguiente pantalla:

img9.jpg

y finalmente el IDE de arduino

img10.jpg

Alli es donde escribiremos el código del Arduino .

El IDE de arduino tiene una interfaz cómoda sin demasiados botones ni opciones lo que permite la adaptación rapida al sistema.

Ya instalado el IDE necesitamos conectar nuestro dispositivo arduino a la computadora y configurar nuestra tarjeta en el IDE.

Primero seleccionamos el tipo de Arduino que estemos usando, en este caso esta seleccionado el Arduino Uno porque es el que tengo conectado para este tutorial.

img29.jpg

Luego seleccionamos el puerto COM en donde esta conectado el dispositivo

img30.jpg

En algunos casos existe la posibilidad de que en la computadora esten conectados más dispositivos que tengan asignado también un puerto COM ( un puerto COM solo puede estar asignado a un dispositivo a la vez ) en este caso puede ocurrir que no sepas en que puerto COM esté asignado tu arduino. Si estas usando windows puedes buscar el puerto COM de la siguiente manera.

En el search panel de Windows busca device manager

img33.jpg

Luego buscamos la sección que esta identificada como puertos COM y observamos los que esten asignados a nuestros dispositivos. Este paso es importante porque no será posible programar el Arduino si seleccionamos el puerto COM erróneo.

img34.jpg

Ya configurado el arduino en el IDE podemos crear el código para programarlo. Para compilar y cargar el código debemos utilizar los siguientes botones dentro del IDE

img31.jpg

El botón del check en la imágen es el botón de compilar. Al presionarlo convierte el código que escribimos en el IDE del arduino a un formato de máquina que puede leer el microcontrolador y de esta manera ejecutar las funciones deseadas.

El botón con la flecha es el que usamos para enviar el archivo de código generado después de la compilacion al microcontrolador. Esta operación se conoce como cargar u upload.

El IDE de Arduino es el que muchas personas usan por defecto, particularmente pienso que es un poco incómodo cuando el código se hace muy grande, y no tiene algunas funcionalidades que tienen otros editores de texto tales como copias de líneas multiples, organización del proyecto, entre otras.

Instalar Atom y Platformio para compilar tus códigos de Arduino.

Para esta opción instalaremos Atom un editor de texto opensource creado por github. Este editor es muy versatil y configurable y tiene una gran cantidad de plugins muy útiles que pueden optimizar nuestro trabajo al escribir código. En el instalaremos el plugin de platformio el cuál es un framework opensource, utilizado para programar sistemas embebidos.

Para instalarlo simplemente nos dirigimos a la página de atom descargar atom

img12.jpg

Después de eso presionas aceptar y procedes a descargarlo. Ya al tener el instalador lo ejecutamos y
comenzará la instalación del mismo.

Al finalizar veremos que se abrirá automaticamente el editor y se podrá observar una ventana como la siguiente

img14.jpg

Con atom instalado procederemos a instalar platformio, para ellos seguiremos los siguientes pasos :

img15.jpg

img16.jpg

img17.jpg

img18.jpg

img19.jpg

Este último paso es importante para comenzar a usar el plugin de platformio.

img20.jpg

Cuando se haya reiniciado veremos el cambio en Atom

img21.jpg

Ahora después de todo el proceso de instalación crearemos un proyecto para el Arduino uno

img22.jpg

img23.jpg

Notese que Platformio creó una estructura de proyecto automáticamente , para agilizar el trabajo
de programación.

img24.jpg

Más adelante veremos como utilizarla en otros proyectos, pero si deseas saber más como funciona puedes revisar el README.md que se genera dentro de la carpeta lib.

En la carpeta src crearemos un archivo led.ino que es será el archivo donde realizaremos nuestro código.

img26.jpg

La interfaz de atom es un poco más compleja que la del arduino pero vale el esfuerzo. Para este tutorial lo que necesitamos son los siguientes botones

img36.jpg

  • Botón 1: Este boton es el que se encarga de compilar en platformio. Análogo al check en el IDE de arduino.

  • Botón 2: Este boton es el que se encarga de cargar el código al arduino que se encuentre conectado.

En el caso de los puertos COM del arduino con platformio este detecta los puertos COM automáticamente, pero en caso de que hayas mas de un dispositivo, podría suceder que platformio detecte el dispositivo incorrecto y trate de programar ese. Para evitar esto podemos especificar el puerto COM de forma manual.

Para saber el puerto COM son los mismos pasos explicados anteriormente, Para configurar el puerto que queremos usar vamos al archivo platformio.ini y escribimos upload_port=COMX donde la X representa el número del puerto COM donde se encuentra tu dispositivo.

Lo básico que debe tener un programa de Arduino.

Por la manera que esta hecho el framework de arduino usando Wiring. Es un poco diferente a los códigos de los sistemas embebidos convencionales.

El código de arduino en vez de contar con la funcion main() cuenta con 2 funciones principales :

  • void setup(): Esta función es la primera en correr cuando se inicializa el arduino. Normalmente se utiliza para configurar dispositivos que se encuentren conectados al arduino, inicializar pines, inicializar la comúnicacion serial, entre muchas otras cosas. Lo importante es recordar que se solo se corre una vez al encenderse el arduino.

  • void loop(): Esta función corre después del setup y lo hace infinitamente hasta que se apague o reinicie el arduino . Aquí es donde se coloca la lógica principal del código.

En el siguiente código definimos una constante llamada LED con el valor 13 . Este valor representa el pin 13 del arduino uno y es un pin donde esta conectado un led que viene soldado en la tarjeta.

En el void setup() definimos como va a ser el pin 13 (una entrada o una salida). En este caso lo definimos como salida para poder controlar el LED y hacer que encienda. Para definir el tipo de pin se usa la función pinMode(pin,tipo) , los tipos de modo puede ser INPUT, OUTPUT, INPUT_PULLUP. El modo INPUT e INPUT_PULLUP se explicarán en otro momento.

Luego utilizamos la funcion digitalWrite() para escribir el valor en el pin de salida del arduino. HIGH significa el maximo valor que puede tomar los pines del microcontrolador. Para el caso del Arduino uno es 5V. LOW representa un 0 lógico, alrededor de 0V.

De lo discutido anteriormente este código encenderá el led de la tarjeta y lo mantendra encendido mientras el arduino se encuentre encendido.

A continuación el código a programar:

#define LED 13; 
void setup(){
         pinMode(LED,OUTPUT);
        digitalWrite(LED,HIGH);
}

void loop(){
      delay(5);
}

Al copiar el código solo bastan con salvarlo, compilarlo y cargarlo en el arduino.
En atom veremos algo como esto :

img32.jpg



Posted on Utopian.io - Rewarding Open Source Contributors

Sort:  

Hey @cris22 I am @utopian-io. I have just upvoted you!

Achievements

  • You have less than 500 followers. Just gave you a gift to help you succeed!
  • Seems like you contribute quite often. AMAZING!

Suggestions

  • Contribute more often to get higher and higher rewards. I wish to see you often!
  • Work on your followers to increase the votes/rewards. I follow what humans do and my vote is mainly based on that. Good luck!

Get Noticed!

  • Did you know project owners can manually vote with their own voting power or by voting power delegated to their projects? Ask the project owner to review your contributions!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!

mooncryption-utopian-witness-gif

Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x

Thank you for the contribution. It has been approved.

You can contact us on Discord.
[utopian-moderator]

Coin Marketplace

STEEM 0.19
TRX 0.13
JST 0.029
BTC 57889.17
ETH 3155.19
USDT 1.00
SBD 2.42