10 cosas que debe saber antes de poner en marcha un proyecto Arduino

Colaboración de Editores de Digi-Key de América del Norte

Usted ha visto lo que se está logrando con las placas Arduino, parece divertido, y está listo para intentarlo usted mismo. Usted ha ordenado una placa Arduino, cables de puente, una fuente de alimentación, algunos ledes y un completo kit de accesorios. Sin embargo, para asegurarse de que también haya algo de diversión, aquí puede encontrar algunas cosas a tener en cuenta que le permitirán ahorrar tiempo y frustraciones en el camino.

Algunos de estos consejos puede incluso evitarle grandes disgustos, hacerle que deje todo de lado y que descarte todo su nuevo equipo en la basura.

1: Las placas Arduino son excelentes para la experimentación y el aprendizaje

Se prestan maravillosamente para pequeñas tareas dedicadas. Las placas Arduino son como una versión amigable para el experimentador sobre lo que te puedes encontrar dentro de un detector de humo. Los microcontroladores en estos tipos de aplicaciones tienen una lista de tareas relativamente corta. No es necesario que su termostato pueda ejecutar Linux o hacer grandes cálculos. Si su intención es escribir código para aplicaciones que se ejecutan en un sistema operativo, entonces quizás deba considerar una computadora de placa única como una Raspberry Pi o una BeagleBone Black.

Para aquellos de ustedes que tengan la intención de centrarse en tipos de diseños móviles e Internet de las cosas (IoT), todas las placas Arduino pueden ser portátiles, pero algunas placas se adaptan mejor debido a su pequeño tamaño físico y menos demandas de energía. Las placas Adafruit Trinket, Gemma y Arduino Mini son excepcionales para este tipo de proyectos.

2: Escriba un programa

La programación para las placas Arduino conlleva la redacción de un "sketch" en el entorno de desarrollo de Arduino y subirla a su placa (Figura 1). Estos programas están escritos en C y así utilizan las mismas estructuras de control. Si no sabes nada de lo que acabo de decir, no desesperes. Es una buena noticia para usted. Esto significa que si usted sabe un poco de C o C++, entonces escribir programas le resultará muy familiar. Por el contrario, significa que al aprender a escribir los programas, usted también estará aprendiendo los fundamentos de C. Siempre gana de cualquier manera.

Captura de pantalla del entorno de desarrollo de Arduino

Figura 1: La programación en Arduino requiere que escriba programas en C. Esta es una captura de pantalla del entorno de desarrollo. (Fuente: Digi-Key Electronics)

Una nota sobre el entorno de desarrollo de Arduino: no tiene un depurador integrado. Si usted está habituado a reparar códigos con los depuradores integrados en entornos de desarrollo como Eclipse o MPLAB, entonces simplemente va a tener que ser más astuto. Usted tendrá que recurrir a los métodos más primitivos para solucionar problemas, como insertar una línea de código para devolver algún texto, o activar un LED cuando se ha alcanzado una sección de código. La falta de un depurador es probablemente una buena cosa en cuanto a desarrollar sus habilidades para resolver problemas.

3: Utilizar las protecciones de marca y accesorios

Usted probablemente adquirió una Arduino porque tenía un proyecto en mente y/o deseaba obtener más información acerca de la electrónica. Va a ser mucho más difícil saber si sus herramientas de aprendizaje tienen mala documentación y soporte. Usted debe concentrarse en las lecciones y conceptos, no en los elementos de solución de problemas.

Por cierto, la solución de problemas es un elemento importante y parte inevitable del viaje, pero usted no debe usted sentirse limitado cuando recién está comenzando.

Sparkfun, Adafruit y Seeed Studio son grandes proveedores de blindajes y accesorios. Estas empresas no sólo hacen grandes productos, su popularidad es además parte de su fortaleza. Si tiene problemas con algo, hay una buena probabilidad de que alguien ya haya tenido el mismo problema, lo haya resuelto y publicado en un foro. Tome ventaja de eso.

4: Mantenga buenas notas de lo que usted hace a medida que aprende y desarrolla

Esto es especialmente importante a medida que experimente con diferentes iteraciones del mismo programa. Es muy fácil perder el rastro sobre qué versión que hizo qué y por qué. Usted puede pensar que no necesita estas notas de revisión, pero le aseguro que lo hará. El número de cambios e iteraciones que puede hacer en sólo un fin de semana de intentar conseguir un proyecto justo podría cientos.

Mi experiencia es de amplio uso de CAD entonces hago mis circuitos en DraftSight. Otra opción es Scheme-it® (Figura 2) de Digi-Key. Yo uso DraftSight por costumbre, sin embargo, un instrumento construido a medida como Scheme-it es una opción mucho mejor, y estoy empezando a migrar a ella.

Scheme-it tiene la ventaja de estar directamente vinculada al enorme inventario de componentes de Digi-Key. También cuenta con numerosas opciones para hacer notas. Puede colocar notas sobre la hoja principal o asociarlas con componentes específicos. También está basado en la Nube, por lo que sus datos están respaldados y disponibles para usted en cualquier lugar que tenga una conexión a Internet. O bien, puede guardar notas y dibujos en un cuaderno, pero realmente me gusta mantener toda la información en formato electrónico.

Imagen de un circuito simple de Scheme-it Arduino de Digi-Key

Figura 2: trazado de un circuito simple utilizando Scheme-it de Digi-Key (Fuente: Digi-Key Electronics)

5: Sea paciente con usted mismo

Afiance las técnicas y conceptos individuales en primer lugar. Comience con un LED parpadeante usando el ejemplo "Blink" incluido en el IDE de Arduino. Haga parpadear un LED conectado a una salida. A continuación, escriba un programa para hacer parpadear varios ledes a la vez. Luego haga que el LED parpadee cuando usted presione un botón. Luego escriba un programa que realice una lectura analógica de un potenciómetro para controlar la velocidad de parpadeo del LED.

Cualquier proyecto que finalmente desee lograr es reductible a tareas más pequeñas. Por ejemplo, al realizar pequeños trabajos como el de suprimir el rebote de un pulsador, hacer una salida a una pantalla LCD, la lectura de un sensor de temperatura y un LED parpadeante juntos, usted puede fabricar un interruptor de temperatura controlada.

Cada concepto que aprenda es como un ladrillo, y su proyecto es una pared hecha de esos ladrillos.

Como nota final, antes de que usted le dé la espalda al humilde LED parpadeante, permítanme compartir algo con usted. He sido ingeniero eléctrico durante más de una década y no importa qué placa o microcontrolador me pongan al frente, lo primero que hago normalmente es hacer parpadear un par de ledes. Esas luces parpadeantes me hacen saber que he inicializado el chip al menos de modo parcialmente correcto, y que estoy empezando a ejercer un cierto control sobre el hardware.

6: Tenga cuidado con el límite máximo de velocidad de reloj

Arduino UNO tiene una velocidad de reloj interno de 16 MHz. Que es de 16 millones de tics de reloj por segundo. Eso suena como mucho, pero tenga en cuenta lo siguiente: Cada instrucción o control en un programa utiliza los impulsos de reloj. Mientras más tareas le hace hacer a su programa, más rápido se consume ese superávit aparentemente interminable de ciclos de reloj; y antes de que usted lo sepa, sorprendentemente, la placa Arduino se ha quedado sin señales de entrada o impulsos de salida. Literalmente no tiene suficiente tiempo para hacer todo lo que se puede esperar de ella.

Para trabajos básicos rara vez esto sea un problema, pero a medida que sus proyectos crecen usted se va a enfrentar a los mismos. El límite máximo de velocidad de reloj realmente se hace aparente cuando empieza a tratar de controlar los motores de pasos o al manipular la respuesta del codificador de servomotores.

Si planea ejecutar ciclos fuera de reloj, entonces es posible que desee conseguir una Arduino Zero, que tiene un reloj de 48 MHz.

Descargar algunos de los procesos a un blindaje es otro enfoque de la cuestión. Trinamic Motion Control tiene un blindaje de control de motor paso a paso muy apto, el TOS-100 V1.1, sólo para este propósito.

7: Aprenda a usar las bibliotecas de Arduino

¿Qué sucedería si grandes trozos de código que necesita ya se han escrito y están disponibles? ¿No podría esto acelerar el tiempo para la terminación del proyecto? Pues bien, ese código está ahí fuera y sólo está esperando para que usted lo tome y cargue en sus programas. Estas colecciones de código se llaman bibliotecas.

Explicar realmente en qué consisten las bibliotecas lleva mucho más tiempo y espacio del que está disponible en el artículo sobre consejos rápidos, pero aquí tiene una analogía para ayudarle a entender el concepto. Una biblioteca es como una caja de herramientas para un conjunto de tareas relacionadas. Solo tiene que incluir las cajas de herramientas que contienen las herramientas que usted necesita en su proyecto.

Por ejemplo, incluido con el entorno de desarrollo de Arduino se encuentra la biblioteca "cable" (Figura 3). El cable es un conjunto completo de herramientas para comunicaciones I2C seriales. El herramientas de cable automatizan la mayoría de las tareas involucradas en las comunicaciones I2C. Usted podría escribir el código para hacer todo esto por sí mismo, lo cual definitivamente vale la pena hacer para que la experiencia de aprendizaje, pero no tiene que hacerlo si usted aprende a utilizar eficazmente las bibliotecas.

Imagen de biblioteca cable incluida en un programa

Figura 3: Biblioteca Cable incluida en un programa. (Fuente: Digi-Key Electronics)

8: Aprenda los principios básicos de los puertos, y sea consciente de la comunicación en paralelo

Aprenda la comunicación en paralelo, y concretamente la comunicación en serie. Busque qué significa la sigla UART (es como un teléfono serial universal para un microcontrolador). Busque el significado de SPI (Interfaz periférica serial) y I2C, que se dice I con C al cuadrado. Atmel, la empresa que produce los chips que se encuentran en el corazón de la mayoría de las placas Arduino, tiene algunas notas de aplicación muy útiles sobre el tema de comunicaciones SPI y I2C. La mayoría de los sensores y otros accesorios que acabará utilizando se comunican con Arduino a través de una conexión serial SPI o I2C. Aprender estas técnicas de comunicación hará que sea mucho más fácil de usar estos accesorios.

Para los proyectos, tenga cuidado con los accesorios, tales como pantallas, que requieren comunicación en paralelo. Los puertos COM en paralelo utilizan un gran número de clavijas en comparación con puertos seriales COM. Usted puede descubrir que su Arduino ni siquiera tienen suficiente pines para ello, y si los tiene, es posible que acabe con tantos pines que no le queden otros para nada más. Si usted está aprendiendo a controlar un LCD de comunicación paralela entonces puede elegirlo, pero los dispositivos como este pueden ser demasiado pesado en cuanto a E/S para proyectos que involucran a múltiples dispositivos.

9: No olvide sus límites de memoria

La mayoría de quienes están comenzando, se inician con una de estas placas básicas como la UNO o una Trinket. Finalmente descubrirá que ha llenado la memoria y la RAM. Llegar a este límite es una buena cosa. Esto puede sonar ridículo, pero permítame que le explique.

Inevitablemente, los programadores principiantes y experimentados por igual, tienden a producir un código extenso y desorganizado que requiere más recursos de los necesarios. Casi siempre hay maneras para ajustar el código. El objetivo es hacer que sea lo más compacto posible, y sacar el máximo provecho de los recursos que se tienen. Hasta que se enfrente a una puerta cerrada, ¿por qué habría de detenerse a considerar nada de esto? Llegar al límite de la memoria le obliga a ser más astuto. Le obliga a reconsiderar lo que ya ha hecho y buscar formas de mejorar. Si usted acaba de pasar a una placa con más memoria, se estará privando de esta experiencia.

Eventualmente, usted puede tener que conseguir una tarjeta con más RAM y más memoria, pero no se apresure.

Aquí tiene una pequeña sugerencia para comenzar: Si usted descubre que se está quedando sin RAM, pruebe este truco para leer cadenas de texto directamente desde la memoria de programa, en lugar de hacerlo desde la memoria RAM:

Serial.println(F("su texto aquí");

La F macro insertada aquí entre los paréntesis, impide que el texto se cargue en la memoria RAM al iniciar el programa. La cadena se lee directamente desde la memoria flash cuando sea necesario.

10: Algunas placas Arduino no tienen capacidad USB nativa

Sé que esto no tiene sentido a primera vista. Usted puede señalar que usted ha programado su Arduino, que tiene un conector USB, y lo conecta al puerto USB de la computadora. Esto es correcto, pero para algunas placas Arduino hay algunas piruetas muy ingeniosas de software que tienen lugar detrás de la escena. Placas como Adafruit Trinket tienen un cargador de arranque preinstalado que permite al microcontrolador actuar del mismo modo que un dispositivo USB para cargar los programas. Es un tipo codificación ad-hoc muy inteligente.

La mayoría de los microcontroladores no manejan comunicaciones USB de modo innato. Hay dos maneras en las que esto suele ser eludido, y una manera menos común la cual utiliza Trinket. La primera solución común es colocar un chip independiente en la placa para gestionar la comunicación USB. Este chip también convierte los datos de la conexión USB en un formato comprensible por el UART del microcontrolador principal. El otro método común consiste en una pieza de hardware que se enchufa en el micro cuando desee comunicar al micro a través de USB.

Específicamente me refiero a Trinket en este consejo a raíz de un incidente que tuve en el trabajo donde se solicitaron algunas placas Trinket para utilizar como interfaz entre una PC que ejecutaba LabVIEW y una caja de control experimental. Cuando llegaron las Trinket, nos dimos cuenta de que no tenían el hardware de control de USB en placa.

Era un problema fácil de remediar. Entonces ordenamos algunas placas UNO de Arduino. Estas tienen un chip ATmega dedicado en placa para el manejo de la comunicación USB. Era una cuestión menor, pero que podría haberse evitado si yo hubiese leído esta sugerencia antes de que hacer el pedido del hardware.

En resumen, si desea utilizar el puerto USB de su placa Arduino para conectarse a una computadora o una cámara o una unidad USB, asegúrese de que la placa que compra tiene incluido un controlador USB. O bien, puede agregar capacidad USB con un USB host shield.

Conclusión

Arduino ha demostrado ser un gran entorno de aprendizaje para cualquiera, novato o ingeniero, que desee codificar y aplicar un sistema electrónico. Es divertido y útil, y con la información y el enfoque adecuados, puede ser un proceso de aprendizaje agradable. Pero recuerde el Consejo número 5, "Sea paciente con usted mismo".

Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de Digi-Key Electronics o de las políticas oficiales de Digi-Key Electronics.

Acerca de este editor

Editores de Digi-Key de América del Norte