28 de agosto de 2013

¿Porque Arduino?

na pequeña placa de circuito azul está provocando una pequeña revolución en el campo de la electrónica. Su nombre - Arduino.

Desarrolladores de sistemas integrados endurecido es probable, a su primer contacto con la plataforma, para convertir su cabeza, viendo el tablero diminuto como un mero juguete y no para los programadores reales.

Pero es precisamente por esta razón que se ha vuelto tan popular y que su popularidad sigue creciendo. Desde su creación, la familia de placas Arduino ha crecido a alrededor de una docena, que ofrece una variedad de factores de forma y microcontroladores para adaptarse a una amplia variedad de necesidades. AVR de Atmel ® microcontrolador ha sido seleccionado como el cerebro de estos tableros, con procesador de dispositivo basado en SAM3X que aparece en la más reciente adición ARM ® de Atmel.

 

¿Porque Arduino?

Así que, con tantas tarjetas de desarrollo diferentes y plataformas disponibles en el mercado, ¿por qué necesitamos otro? La razón es muy elegante: microcontroladores son demasiado complicados. Naturalmente, no son demasiado complicadas para aquellos de nosotros que han pasado más de una década desarrollando en ellos. Sin embargo, los que están fuera de nuestra industria, que están buscando maneras de añadir algún tipo de control a lo que ellos desarrollan, necesitan una herramienta que no tiene una curva de aprendizaje empinada como asociado, como dispositivos microcontroladores puras suelen hacer.

Tomemos, por ejemplo, un USART. Un microcontrolador AVR típica tiene más de uno, por lo que la primera decisión a tomar es seleccionar el que se utilizará. Inevitablemente, la interfaz seleccionada está asociada con los pernos que son multifuncionales. Por lo tanto, antes de poder realizar cualquier tarea, primero tenemos que leer el capítulo ficha técnica en la USART y la documentación necesaria que describe cómo la funcionalidad USART se puede seleccionar para los pasadores elegido.

Una vez que se haya completado, debemos tener en cuenta elementos adicionales: la forma de calcular la velocidad de transmisión, cómo la velocidad de transmisión se asocia con frecuencia del oscilador del dispositivo AVR; cómo habilitar las interrupciones USART, ¿cómo se puede escribir una rutina de interrupción de la cadena de construcción elegido hemos seleccionado. La lista es larga y el tiempo de un principiante es corto. Aquellos de nosotros que trabajamos a tiempo completo con microcontroladores saben que se necesitan años para acumular la experiencia necesaria para poder llevar a cabo de forma rápida y eficiente este tipo de interfaz.

Los desarrolladores de la plataforma Arduino han dado cuenta de esto y, a través de su entorno de desarrollo compañero, proporcionar una API (interfaz de programación de aplicaciones) y bibliotecas que permiten funciones complejas, tales como interfaces en serie, para ser realizado con poco código y aún menos la comprensión de lo que es sucediendo en el motor de la plataforma. Por lo tanto, el mundo de la programación y la electrónica incorporada se abrió a aficionados y estudiantes, así como otras áreas como el arte y diseño de moda. De hecho, la programación y la electrónica incorporado pueden estar en cualquier parte, donde la electrónica se pueden combinar con otras disciplinas.

Por otra plataforma?

Ya hay muchas plataformas diferentes disponibles para casi todas las arquitecturas de microcontroladores conocidos. Sin embargo, tienden a ser una variación de los mismos temas - proporcionar un dispositivo microcontrolador física en un formato que puede ser utilizado fácilmente sin necesidad de soldar, y que permite una rápida puesta en marcha mediante la inclusión de circuitería externa necesaria (cuarzo, transceptores y fuente de alimentación).Vendedores de semiconductores son, evidentemente, utilizando sus herramientas de desarrollo como una extensión de sus programas de marketing para promocionar ciertos productos o características en el chip. De acuerdo con el sitio web1 Arduino, con las siguientes características diferencian esta plataforma de la competencia:

  • Barato - módulos pre-ensamblados cuestan menos de $ 50, y la más sencilla, incluso pueden ser construidos a mano.

  • Multiplataforma - el entorno de desarrollo de código se ejecuta en Windows, Linux y Mac OS. Esta es una hazaña que aún desafía la mayoría de los vendedores de microcontroladores.

  • Simple, entorno de programación clara - basado en el entorno de "procesamiento" de programación, el (entorno de desarrollo integrado) IDE es ultra-limpio, limitándose a un puñado de botones y un editor de texto. Además, el código estándar de C se puede añadir a un proyecto, si se desea.

  • El código abierto y el software extensible y hardware - siguiendo la tendencia del día, todos los elementos de software y diseños de hardware están publicados bajo una licencia de Creative Commons. Esto permite a los usuarios modificar todo lo que se haya de facilitar y mejorar en ella. Naturalmente, también se anima a compartir!

Arduiono

Figura 1 - Comparación lado a lado de Arduino IDE con Atmel Studio 6, que muestra la simplicidad de Arduino

Hay, sin embargo, el precio a pagar por todas estas ventajas. Cómo desventajosa los siguientes puntos parecen depende, en última instancia, de su punto de vista:

  • No depuración - el entorno de desarrollo Arduino sólo admite programación de la placa Arduino objetivo. La falta de apoyo de depuración se realiza hasta un cierto grado mediante la aplicación de una herramienta fácil de usar salida de texto a través de la USART, lo que permite la salida de mensajes de depuración. Además, el entorno de desarrollo proporciona un monitor de serie incorporado.

  • Marco de software fijo - la velocidad del oscilador, por ejemplo, es fijo. Esto significa que todas las otras características de Arduino sólo pueden funcionar dentro de los límites que resultan de la frecuencia del oscilador elegido. Además algunas de las otras bibliotecas ofrecidos hacer uso de ciertas características de hardware (por ejemplo, contadores de tiempo), lo que significa que no están disponibles para nuestra aplicación.

¿Qué gano yo con Arduino?

A primera vista, no mucho. Una placa Arduino se compone de un regulador de la fuente de alimentación, una interfaz USB que soporta la interfaz de programación e interfaz serial usuario CDC clase, además de ser una fuente de energía alternativa, el microcontrolador AVR, un botón de reinicio, y una serie de cabezales de pin. Los propios conectores macho se agrupan de acuerdo a una función en bruto en una forma que es fácil de entender.

En primer lugar está el cabezal de alimentación, para Vin, 5,0 V, 3,3 V, GND y un IOREF para apoyar la interfaz con microcontroladores que tienen un suministro 3.3VI / S, en lugar de la alimentación 5.0V más común. El "ANALOG" proporciona la capacidad de medición analógico a través del módulo ADC del microcontrolador.

Los pines restantes son "DIGITAL", lo que les permite ser usados ​​como entradas o salidas GPIO. Estos conectores macho son luego subdividen en salidas "PWM" capaces, y "comunicación", donde las interfaces seriales están disponibles. Las únicas funciones de hardware disponibles en la mayoría de las juntas son un solo LED conectado a un pin digital y la USART que está vinculado directamente a la clase de interfaz USB CDC en el tablero.

La intención aquí no es ofrecer una plataforma de desarrollo integral del baile de todos los cantos. Más bien, el equipo de Arduino está animando a los usuarios potenciales de fusionar Arduino con circuitos electrónicos auto-concebidas para poner en práctica sus propias creaciones. Arduino es un medio para un fin, en lugar de ser el fin en sí mismo. Sin embargo, hay algunas posibles funciones que les gustaría poner en práctica que sufren de problemas similares de manejo de silicio o la complejidad del paquete. Por ejemplo, una conexión Ethernet o una conexión inalámbrica no es una tarea fácil de aplicar, incluso para los ingenieros experimentados. Diseño mecánico del Arduino hace que sea muy fácil, a través del desarrollo de "escudos", para compartir módulos estándar para añadir esta funcionalidad.

Desde el diseño mecánico de los encabezados se mantiene constante en la mayoría de las placas Arduino, y desde las tablas más grandes son un superconjunto de la placa Arduino Uno, es posible diseñar módulos estándar o escudos, que tienen un alto nivel de compatibilidad con el Arduino familia bordo, así como con otros Shields.

Arduino

Figura 2 - Arduino UNO superpone a la Arduino MEGA 2560, que muestra la relación superconjunto a través de la familia

El diseño de un escudo Arduino pesar del brillo de las juntas y el glamour de la página web, Arduino sigue siendo parte de la naturaleza-salvaje-oeste de todas las cosas de código abierto. Normalmente, esto significa un gran producto y / o servicio, pero la documentación es un poco en el lado de la luz.

Hay, por desgracia, no hay documentación oficial sobre cómo desarrollar un escudo Arduino.Tampoco hay ningún canal oficial por el que se aplica para el reconocimiento oficial de un nuevo diseño del blindaje. Más bien, debemos aplicar simplemente el "arrojado contra la pared y ver si se pega" enfoque, la esperanza es que si suficientes personas muestran interés en un escudo, la comunidad en general se auto promoverlo a un punto en que se vuelve muy importante de ignorar.

Hay ciertos problemas con el desarrollo de un escudo Arduino. Vamos a considerar en este link:

  • Los diferentes tamaños de tablero físicos - como ya hemos visto, algunas Arduinos tienen más pines de cabecera que otros. Obviamente no todos Arduino escudo puede definir un recurso fijo de la placa Arduino subyacente, ya que otras placas de la pila también puede querer a este apartado. Por lo tanto, diferentes escudos podrían potencialmente llegar a ser incompatibles entre sí cuando se apilan.

  • Las diferentes versiones de Arduino - a partir de la revisión 3 de la placa Arduino, un pin IOREF ha puesto a disposición para que un escudo puede determinar si el microcontrolador utiliza una entrada de 3,3 V o 5,0 V / fuente de alimentación de salida.Las revisiones anteriores de la plataforma Arduino no tienen esto, pero los futuros protectores deben tanto utilizar esta característica y seguir siendo compatible con versiones anteriores.

  • Plantillas PCB estándar - no hay plantilla de las propiedades oficial o huella de PCB por un escudo, una ayuda evidente cuando, por cualquier consejo que ha de ser compatible con un sistema dado.

  • No entregables definidos -, obviamente, hardware sin ejemplos de software, controladores de software o documentación es menos útil que con ellos.

Por supuesto, ya que es la forma en la naturaleza-salvaje-oeste de código abierto, hay sugerencias, soluciones sobre recomendaciones2 y para aquellos que se preocupan de buscar para ellos. Si usted es el tipo de persona que le gusta para adaptarse a la idea de la especificación, en lugar de crear la especificación basada en la idea, no se siente muy cómodo.

La puesta en práctica de un escudo QTouch

El proceso de elaboración del elemento de hardware de un escudo Arduino no es diferente a cualquier otro diseño de circuitos. Como complemento a este artículo, un escudo táctil capacitiva basada en la tecnología QTouch ® de Atmel se desarrolló. El proyecto se llama "TickleShield" y está alojado en la nueva "Espacios" WebSite3 colaboración de Atmel. La intención de este proyecto era crear una tabla sencilla de usar que proporciona una interfaz táctil fácil de complementar cualquier proyecto que requiera un control simple o el control de un sistema gráfico, basado en menús.

Para ello, se eligió el controlador táctil capacitiva AT42QT2120, ya que prevé cinco botones junto con un guardia escudo para protegernos de detecciones no deseadas mientras se limpiaba la humedad o el líquido de la superficie táctil. Además, el controlador dispone de una entrada de detección de proximidad que podría ser utilizado para encender la iluminación ambiental como se detecta una mano se acerca.

El estado de la AT42QT2120 se puede leer a través de seis salidas lógicas que están vinculados a seis de las entradas digitales de la Arduino a la que está conectado. Para el escudo para ser utilizado en una configuración autónoma, las salidas del dispositivo de AT42QT también se alimentan a un encabezado estándar 0,1 ". En el caso de que el cableado estándar de la pantalla no se ajusta a las necesidades del usuario, enlaces 0ohm se pueden quitar y salidas del controlador AT42QT pueden ser reconfigurados como deseado.

Arduino

Figura 3 - Diagrama de bloques del AT42QT2120

El esquema para el diseño es relativamente simple. El principal desafío radica en el diseño de la PCB. Para lograr un diseño táctil capacitiva robusto y fiable, con cuidado se debe prestar atención al diseño y el diseño del botón táctil, detección de proximidad y de elementos del anillo protector del tablero. De Atmel QTAN0079 Application Note (botones, deslizadores y ruedas Sensor Guía de Diseño) es una excelente fuente de información en este caso.

Para evitar el rediseño de la disposición de las plataformas Arduino, los diseños de hardware de código abierto, que consisten en proyectos EagleCAD, se puede utilizar como base para un escudo. Aquí se utilizó el Arduino MEGA 2560, tomando el diseño de la placa y pelar todo por la borda a excepción del agujero pasante interconecta a los lados de la junta. Importación de esta vuelta a EagleCAD como un nuevo componente garantiza la disposición exacta de las clavijas y, si es necesario, los agujeros.

Exportar el diseño usando la EagleUp código abierto plug-in, es posible crear a continuación una prueba de concepto de diseño 3D en SketchUp herramienta de Trimble. Exportar el resultado en la herramienta de representación Maxwell, un diseño de la placa foto-realista puede ser creado con fines de comercialización.

Para completar el paquete de prestaciones que es importante proporcionar, como mínimo, algún software para la plataforma Arduino para servir de ejemplo de cómo utilizar las características del blindaje. Desde aquí, los pasos para crear una biblioteca que no son particularmente complejos. Hay un excelente tutorial4 en el sitio web de Arduino que describe un proceso sencillo pasar de código de la aplicación de trabajo a una biblioteca completa que se integra en el IDE de Arduino.

Arduino

Figura 4 - Diseño 3D de TickleShield con diseño de SketchUp superpuesta a una representación de la misma Maxwell

Stuart Cording

1 comentario:

  1. En mi experiencia, prefiero utilizar la placa del arduino y borrar su bootloader para usar el core avr a mi antojo. Cuando se hacen cosas más complejas un código con muchas líneas, necesitarán depurar el código en tiempo real y el arduino no permite eso. Además de que no puedes organizar el sketch en varios fuentes. Y también que es imposible optimizar código. Para temas de aprendizaje e introducción a la electrónica esta bien, pero no hay que ponerlo en un pedestal.

    ResponderEliminar