[arduino workshop] arduino fundamentals @globant córdoba

81

Upload: globant

Post on 08-Jan-2017

1.120 views

Category:

Technology


8 download

TRANSCRIPT

Workshop

ARDUINO FUNDAMENTALS

FEB 2016

Workshop

ARDUINO FUNDAMENTALSNOV 2015

El plan para hoy es:

● Hardware Libre & IoT en Globant● Qué es Arduino, su hardware y software● Algunos conceptos básicos de electricidad y electrónica● Componentes electrónicos más utilizados● Las distintas versiones de Arduino● Herramientas básicas● La programación de Arduino● Ejecución de proyectos:● Encender LEDs● Controlar motores● Incorporar sensores y “sentir” el entorno● Construir un detector de stress.● Crear una vínculo WiFi entre 2 Arduinos.● Preguntas y Respuestas

Our Wearables & Internet of things Studio

Our Wearables & Internet of Things Studio was created to bring to life technology solutions for the ecosystem of wearable devices and other applications of the internet of things

With the products developed in this Studio, we are able to gather information about behavior, activities and sensor collected data, and then process all that information to develop new products and services. Its practices include: Wearable Application Usability and Interface Design, Native wearable and embedded Development, Hardware Design and integration, and Data Design & Management.haeology.

La Revolución del Hardware LibreEl hardware libre surge en los años 70 como un movimiento radical de los aficionados a la electrónica y la computación para compartir sus diseños y esquemas en la construcción de sus dispositivos. Pero solo fue hasta finales de los 90, con la inclusión de la filosofía de software libre y sus populares 4 libertades que se popularizó hasta convertirse en palabras de Chris Anderson, editor en jefe de la revista Wired en “La próxima revolución industrial”

Pero es esta relación del hardware libre con el software libre lo que ha permitido este crecimiento gigantesco, pero la diferencia es que el hardware no es un intangible, por lo que hay un costo de adquisición de los materiales. Lo que permite es no tener que arrancar desde cero para hacer muchas cosas. Poder tomar plataformas de circuitos que ya fueron desarrolladas y son de libre acceso, como en el caso de Arduino.

Y es precisamente Arduino, una plataforma de desarrollo abierta, quien ha permitido acompañada de una cultura DIY, (Do It Yourself- Hacelo vos mismo) y del Crowdsourcing (Trabajo colaborativo) aportar gran parte de los diseños más interesantes en este ámbito, ya sean impresoras en 3D o macro proyectos como Local Motors.

Arduino FundamentalsArduino es una plataforma de prototipos electrónica de código abierto (open-source) basada en hardware y software flexibles y fáciles de usar. Está pensado para artistas, diseñadores, como hobby y para cualquiera interesado en crear objetos o entornos interactivos.

Arduino puede “sentir” el entorno mediante la recepción de entradas desde una variedad de sensores y puede afectar a su alrededor mediante el control de luces, motores y otros artefactos. El microcontrolador de la placa se programa usando el Arduino Programming Language (basado en Wiring) y el Arduino Development Environment (basado en Processing).

Los proyectos de Arduino pueden ser autónomos o se pueden comunicar con software en ejecución en una PC.Las placas se pueden ensamblar a mano o encargarlas preensambladas; el software se puede descargar gratuitamente. Los diseños de referencia del hardware (archivos CAD) están disponibles bajo licencia open-source, por lo que somos libres de adaptarlas a nuestras necesidades.

¿Qué es Arduino?

Globant Proprietary | Confidential Information

Accesible Las placas Arduino son relativamente baratas y siempre está la posibilidad de construirlas uno mismo.

Fácil de entender¿Cómo construir algo que incluso un niño pueda usar? . .Es algo que uno de los creadores de Arduino, Massimo Banzi se preguntó a sí mismo. En una TED talk , Massimo mostró niños realizando proyectos con Arduino. Uno de ellos, de 14 años de edad de Chile, desarrolló un sistema que detecta terremotos y publica automáticamente información relevante en Twitter (él tiene ahí 280,000 followers). Se anticipó en un año a un proyecto similar del gobierno de ese país.

VersátilArduino es tan versátil que sus posibles aplicaciones puede focalizarse en las más variadas disciplinas. Cuando ocurrió el desastre nuclear de Fukushima, algunas personas en Japón se dieron cuenta que la información provista por su gobierno no era fiable. Entonces ese grupo de personas construyó con Arduino 100 contadores Geiger basados en información disponible online y se los dieron a la gente. Hasta hoy, estos datos son publicados en Internet. Placas Arduino son utilizadas en el Gran Colisionador de Hadrones en el CERN para colectar datos de colisión de partículas.

AbiertoArduino es open source hardware o también llamado hardware libre. Esto significa que cualquier persona puede construirse su propio Arduino y hacer negocios con él sin necesidad de pagar ningún tipo de licencia o royalty.

Comunidad ArduinoArduino no solo es un team, involucra una enorme comunidad global creando y mejorando las cosas con la filosofía del software y hardware abierto.

¿Cual es el secreto del éxito de Arduino?

. . . . y algo que lo diferencia de otras plataformas similares:

No se necesita un hardware programador extra para hacer upload del programa al chip. Se utiliza una simple conexión USB ya que el programador viene incluído en la placa.

¿Cual es el secreto del éxito de Arduino?

Arduino ha despertado el furor del hardware libre mucho más allá de su marca comercial y su comunidad:

● Hay muchísimos proyectos similares a Arduino.● La verdadera revolución es despertar el interés en los jóvenes la curiosidad sobre cómo funcionan las cosas …

y cómo construir cosas que interactúen con nuestro mundo. ● Algunos lo llaman la Nueva Revolución Industrial, incluyendo el fenómeno de las impresoras 3D que también

pueden construirse con Arduino● Iot (Internet of Things)

El Arduino es descrito como una plataforma de creación de prototipos electrónicos de código abierto, fácil de usar. El producto está dirigido a artistas, diseñadores, aficionados y cualquier persona interesada en la creación de objetos o entornos interactivos.El Arduino en el medio artístico se ha convertido en un “detrás de escena”, en la fuerza controladora que se encuentra en la mayoría de las exposiciones interactivas vistas actualmente, la cual permite la autonomía de movimiento de un objeto o la percepción del mismo y de otros fenómenos a través de sensores. Se asume la descripción “detrás de escena” ya que las piezas que utilizan esta plataforma no hacen evidente su uso, sino el Arduino es la fuente o motor que ayuda a crear la pieza.

La tecnología ya no es un privilegio, ya que este es un controlador bastante accesible a consideración de su costo y la multiplicidad de funciones que permite realizar al programador. Los avances tecnológicos se encuentran al alcance de todos y cada vez es más sencillo tener acceso a ellos y poder manipularlos, para así, crear, interactuar y experimentar con ellos.

La Revolución del Hardware Libre

Arduino FundamentalsArduino está constituido en el hardware por un microcontrolador principal llamado Atmel AVR de 8 bits (que es programable con un lenguaje de alto nivel), presente en la mayoría de los modelos de Arduino, encargado de realizar los procesos lógicos y matemáticos dentro de la placa, además de controlar y gestionar los recursos de cada uno de los componentes externos conectados a la misma, tales como una amplia variedad de sensores eléctricos, sensores de sonido, seguidores de línea, botones de control de sensores, e incluso, otras placas de microcontroladores (mejor conocidos como Shields), que pueden adaptarse fácilmente gracias a que Arduino cuenta con entradas de pines analógicos y digitales para integrar estos componentes sin necesidad de alterar el diseño original de esta placa. Estos a su vez son controlados junto con el procesador primario por otros componentes de menor jerarquía, pero de igual importancia y prioridad, como el Atmega168, Atmega328, Atmega1280 y el Atmega8 , que son lo más utilizados debido a sus bajos precios y gran flexibilidad para construir diversidad de diseños. Además, Arduino cuenta con la ventaja de tener entre sus elementos principales puertos seriales de entrada /salida (input/output), lo que le permite conectarse por medio de un cable USB a una computadora para poder trabajar con ella desde nivel software, ya que es donde se le darán las “órdenes” que ejecutarán cada uno de los componentes conectados a la placa, e incluso, para operar como un dispositivo más (dependiendo de la configuración que hayamos establecido y para que se quiere utilizar). Además, Arduino para operar necesita de una fuente de alimentación externa, ya que no cuenta con una propia, por lo que también se encuentra incorporada una entrada para conectar un cable con entrada similar al USB, donde será conectado a un otro dispositivo que tenga entrada USB, o hasta en el mismo dispositivo.

El Hardware de Arduino

Globant Proprietary | Confidential Information

Arduino FundamentalsLas características generales de todas las placas Arduino son las siguientes:

● El microprocesador ATmega328● 32 kbytes de memoria Flash● 1 kbyte de memoria RAM● Velocidad de reloj 16 MHz● 13 pins para entradas/salidas digitales (programables)● 5 pins para entradas analógicas● 6 pins para salidas analógicas (salidas PWM)● Completamente autónomo: Una vez programado no necesita estar conectado a la

PC● Voltaje de operación 5V● Voltaje de entrada (recomendado) 7-12 V● Voltaje de entrada (limite) 6-20 V● Digital I/O Pins 14 (con 6 salidas PWM)● Entradas analógicas Pins 6● Salida corriente DC 5V Pin 40 mA● Salida corriente DC 3.3V Pin 50 mA● Memoria Flash 32 KB (2 KB para el bootloader)● SRAM 1 KB● EEPROM 512 byte

El Hardware de Arduino UNO

Globant Proprietary | Confidential Information

Arduino FundamentalsArduino también es una plataforma que combina esto con un lenguaje de programación que sirve para controlar los distintos sensores que se encuentran conectados a la placa, por medio de instrucciones y parámetros que nosotros establecemos al conectar la placa a un ordenador.

Este lenguaje que opera dentro de Arduino se llama Wiring, basado en la plataforma Processing y primordialmente en el lenguaje de programación C/C++, que se ha vuelto popular a tal grado de ser el más preferido para enseñar programación a alumnos de nivel superior que estudian computación y robótica, gracias que es muy fácil de aprender y brinda soporte para cualquier necesidad de computación.

Arduino soporta varios lenguajes de programación de alto nivel derivados de C, haciendo de esto una ventaja para los diseñadores que trabajan en varios o en 1 sólo entorno de desarrollo de programación. Para poder trabajar desde el nivel programación del procesador, debe descargarse el software que incluye las librerías necesarias para poder utilizar el lenguaje de manera completa.

La popularidad de Arduino hace que prácticamente todos los lenguajes de programación más populares soporten Arduino o se comuniquen con él.

El Software de Arduino

Globant Proprietary | Confidential Information

Algunos conceptos básicos que necesitamos entender

La electricidad La electricidad es un conjunto de fenómenos producidos por el movimiento e interacción entre las cargas eléctricas positivas y negativas de los cuerpos físicos. Básicamente consiste en un flujo de electrones libres (los electrones tienen carga negativa)Electricidad dinámicaLa electricidad dinámica es la producida por una fuente permanente de electricidad que provoca la circulación permanente de electrones a través de un conductor. Estas fuentes permanentes de electricidad pueden ser químicas o electromecánicas.Un ejemplo de electricidad dinámica es la que existe en un circuito eléctrico que utiliza como fuente de electricidad una pila o una dínamo.Electricidad y magnetismoLa electricidad y el magnetismo son fenómenos de la Fìsica que están interrelacionados a tal punto que son parte de la misma fuerza: el electromagnetismo. Una de las formas en que se manifiesta la electricidad es a través del magnetismo, ya que es un tipo de corriente eléctrica que produce campos magnéticos. Éstos, a su vez, pueden llegar a producir corriente eléctrica.El estudio de ambos fenómenos de una forma conjunta forma una rama de la Física denominada electromagnetismo.ElectrónicaLa electrónica es el campo de la ingeniería y de la física aplicada, relativo al diseño y aplicación de dispositivos, por lo general circuitos electrónicos, cuyo funcionamiento depende del flujo de electrones para la generación, transmisión, recepción, almacenamiento de información, entre otros. Esta información puede consistir en voz o música como en un receptor de radio, en una imagen en una pantalla de televisión, o en números u otros datos en una computadora.Los circuitos electrónicos ofrecen diferentes funciones para procesar esta información, incluyendo la amplificación de señales débiles hasta un nivel que se pueda utilizar; el generar ondas de radio; la extracción de información, como por ejemplo la recuperación de la señal de sonido de una onda de radio (demodulación); el control, como en el caso de introducir una señal de sonido a ondas de radio (modulación), y operaciones lógicas, como los procesos electrónicos que tienen lugar en las computadora

Conducción de la ElectricidadEn los sólidos cristalinos, los átomos interaccionan con sus vecinos, y los niveles de energía de los átomos individuales forman bandas. El hecho de que un material conduzca o no, viene determinado por su estructura de bandas y por la ocupación de dichas bandas determinada por los niveles de Fermi. Los electrones, al ser fermiones, siguen el principio de exclusión de Pauli, por lo que dos electrones dentro de un mismo sistema de interacciones no pueden ocupar el mismo estado, lo cual significa que sus cuatro números cuánticos han de diferir. Así los electrones en un sólido rellenan bandas de energía hasta un cierto nivel, llamado la energía de Fermi. Las bandas que están completamente llenas de electrones no pueden conducir la electricidad, porque no hay estados cercanos de energía a los que los electrones puedan saltar. Los materiales con todas las bandas llenas (la energía de Fermi es entre dos bandas) son aislantes.

Los metales son buenos conductores de la electricidad y del calor porque tienen espacios sin rellenar en la banda de energía de valencia. (El nivel de Fermi marca una ocupación sólo parcial de la banda). En ausencia de campos eléctricos, la conducción eléctrica se produce en todas direcciones a velocidades muy elevadas. Incluso a la temperatura más fría posible - en el cero absoluto - la conducción eléctrica puede aún darse a las velocidad de Fermi (la velocidad de los electrones con energía de Fermi). Cuando se aplica un campo eléctrico, un ligero desequilibrio desarrolla un flujo de los electrones móviles. Los electrones de esta banda pueden verse acelerados por el campo porque hay multitud de estados cercanos sin rellenar en la banda.

Conductores, Semiconductores y Aislantes

ConductoresLitio, Sodio, Potasio, Cobre, Plata, Oro.

SemiconductoresCarbono, Silicio, Germanio

AislantesFluor, Cloro, Bromo, Iodo.

En general, mientras menos electrones hay en la banda de valencia, menos energía se necesita para liberar un electrón y producir un flujo eléctrico

Conductores Resistencia

La carga eléctrica es una propiedad física intrínseca de algunas partículas subatómicas que se manifiesta mediante fuerzas de atracción y repulsión entre ellas.En el Sistema Internacional de Unidades la unidad de carga eléctrica se denomina culombio (símbolo C). Se define como la cantidad de carga que pasa por la sección transversal de un conductor eléctrico en un segundo, cuando la corriente eléctrica es de un amperio, y se corresponde con la carga de 6,241 509 × 10^{18} electrones aproximadamente

Si hablamos de conductores podemos hablar de conductancia que está directamente relacionada con la facilidad que ofrece un material cualquiera al paso de la corriente eléctrica. La conductancia es lo opuesto a la resistencia. A mayor conductancia la resistencia disminuye y viceversa, a mayor resistencia, menor conductancia, por lo que ambas son inversamente proporcionales.

Carga Eléctrica Corriente Eléctrica

Si hablamos de aislantes en este caso nos podemos referir a la resistencia pero no es una propiedad exclusiva de estos, se define como: la mayor o menor oposición que tienen los electrones para desplazarse a través de un conductor. todos los materiales se oponen en mayor o menor medida al paso de la corriente de hay que cada material tenga una resistencia determinada. la unidad de medida en el Sistema Internacional es el Ohm (Ω)La resistividad es la resistencia eléctrica específica de cada material para oponerse al paso de una corriente eléctrica. Se designa por la letra griega Rho minúscula (ρ) y se mide en ohmios metro (Ω•m)

La corriente o intensidad eléctrica es el flujo de carga por unidad de tiempo que recorre un material. Se debe al movimiento de los electrones en el interior del material.Contrariamente al sentido común, la corriente va SIEMPRE del negativo al positivo.

Conceptos Básicos

Potencial Eléctrico Aislantes

En el caso de los semiconductores las bandas de valencia y conducción se encuentran separadas por una brecha muy estrecha y esta pequeña separación hace que sea relativamente fácil moverse, no con una gran libertad pero no les hace imposible el movimiento. Se comportan como un conductor o como un aislante dependiendo de diversos factores, como por ejemplo el campo eléctrico o magnético, la presión, la radiación que le incide, o la temperatura del ambiente en el que se encuentre.Entre los semiconductores más empleados en el ámbito de la industria, se encuentran el silicio, el azufre y el germanio.

Es el trabajo que debe realizar un campo electrostático para mover una carga positiva q desde el punto de referencia, dividido por unidad de carga de prueba. Dicho de otra forma, es el trabajo que debe realizar una fuerza externa para traer una carga unitaria q desde la referencia hasta el punto considerado en contra de la fuerza eléctrica. Matemáticamente se expresa por:

= joules/coulomb

El voltaje es una magnitud física que cuantifica la diferencia de potencial eléctrico entre dos puntos

Semiconductores Bandas de Energía

En este caso las bandas de valencia y conducción se encuentran muy bien separadas lo cual casi impide que los electrones se muevan con mayor libertad y facilidad. Por lo tanto, este tipo de material NO conduce corriente eléctrica.

La banda de valencia (BV): está ocupada por los electrones de valencia de los átomos, es decir, aquellos electrones que se encuentran en la última capa o nivel energético de los átomos. Los electrones de valencia son los que forman los enlaces entre los átomos, pero no intervienen en la conducción eléctrica.La banda de conducción (BC): está ocupada por los electrones libres, es decir, aquellos que se han desligado de sus átomos y pueden moverse fácilmente. Estos electrones son los responsables de conducir la corriente eléctrica.

Conceptos Básicos

La Ley de Ohm

En donde, empleando unidades del Sistema internacional:

I = Intensidad en amperios (A)V = Diferencia de potencial en voltios (V)R = Resistencia en ohmios (Se representa con la letra griega Ω-omega-)..

La ley de Ohm, establece que la intensidad de la corriente eléctrica que circula por un dispositivo es directamente proporcional a la diferencia de potencial aplicada (voltage) e inversamente proporcional a la resistencia del mismo, según expresa la fórmula siguiente:

Conceptos Básicos

Resistencias FijasSu valor de resistencia es fijo.

Resistencias VariablesTambién llamados potenciómetros, tienen un mando giratorio que hace variar el valor de resistencia, por lo tanto, el voltaje de salida varía según la posición del mando

ResistenciasObstaculizan el paso de la corriente

Conceptos Básicos

LDR (Light Dependant Resistor)Su valor de resistencia varía según la cantidad de luz que incide en él.

Son aquellas en las que el valor ohmico (de resistencia) varía en función de una magnitud física. las cuales son:

PTC (positive temperature coefficient = coeficiente positivo con la temperatura ): aumenta el valor ohmico al aumentar la temperatura de esta.

NTC (negative temperature coefficient = coeficiente negativo con la temperatura): disminuye el valor ohmico al aumentar la temperatura.

LDR (light depent resistor = resistencias dependientes de la luz ): disminuye el valor ohmico al aumentar la luz que incide sobre ella.

VDR (voltage dependent resistor = resistencias dependientes de la tensión): disminuye el valor ohmico al aumentar el voltaje eléctrico entre sus extremos

Resistencias EspecialesObstaculizan el paso de la corriente

Diodos (semiconductores)Permiten el paso de la corriente SOLO en un sentido y lo impiden en el otro.

Conceptos Básicos

Diodo ZenerRegulador de tensión, elemento semiconductor de silicio que tiene la característica de un diodo normal cuando trabaja en sentido de paso; pero en sentido inverso, y para una corriente inversa superior a un determinado valor, presenta una tensión de valor constante.

LEDsEn el sentido de bloqueo de la corriente, emiten luz.

Diodo LaserEs básicamente un LED con un lente polarizador

Conceptos Básicos

No PolarizadosEl positivo o negativo es indistinto y, al igual que las resistencias se conectan de cualquier forma.

PolarizadosTienen un pin positivo y otro negativo y asi deben conectarse.

CondensadoresEs un dispositivo pasivo, capaz de almacenar energía sustentando un campo eléctrico.

Está formado por un par de superficies conductoras, generalmente en forma de láminas o placas, separadas por un material dieléctrico o por el vacío. Las placas, sometidas a una diferencia de potencial, adquieren una determinada carga eléctrica, positiva en una de ellas y negativa en la otra, siendo nula la variación de carga total.

Aunque desde el punto de vista físico un condensador no almacena carga ni corriente eléctrica, sino simplemente energía mecánica latente; al ser introducido en un circuito se comporta en la práctica como un elemento "capaz" de almacenar la energía eléctrica que recibe durante el periodo de carga, la misma energía que cede después durante el periodo de descarga.

Conceptos Básicos

Funcionamiento y Uso de TransistorSiempre tienen al menos 3 patillas o pines y se llaman emisor, base y colector. Es muy importante saber identificar bien las 3 patillas a la hora de conectarlo.Un transistor es un componente que tiene, básicamente, dos funciones: 1. Deja pasar o corta señales eléctricas a partir de una PEQUEÑA señal de mando. Como Interruptor. Abre o cierra para cortar o dejar pasar la corriente por el circuito. 2. Funciona como un elemento Amplificador de señales. Le llega una señal pequeña que se convierte en una grande.Pero el Transistor también puede cumplir funciones de amplificador, oscilador, conmutador o rectificador.Un transistor puede tener 3 estados posibles en su trabajo dentro de un circuito: - En activa : deja pasar más o menos corriente. - En corte: no deja pasar la corriente. - En saturación: deja pasar toda la corriente.

TransistoresEl transistor es un dispositivo electrónico semiconductor utilizado para entregar una señal de salida en respuesta a una señal de entrada.1 Cumple funciones de amplificador, oscilador, conmutador o rectificador. El término «transistor» es la contracción en inglés de transfer resistor («resistencia de transferencia»). Actualmente se encuentran prácticamente en todos los aparatos electrónicos de uso diario

2N2222Sirve tanto para aplicaciones de amplificación como de conmutación. Puede amplificar pequeñas corrientes a tensiones pequeñas o medias; por lo tanto, sólo puede tratar potencias bajas (no mayores de 1.5 Watts).

Conceptos Básicos

Circuitos Integrados más usados en Arduino y Robotica

Circuitos Integrados (IC)Un circuito integrado, también conocido como chip o microchip, es una estructura de pequeñas dimensiones de material semiconductor, de algunos milímetros cuadrados de área, sobre la que se fabrican circuitos electrónicos generalmente mediante fotolitografía y que está protegida dentro de un encapsulado de plástico o de cerámica. El encapsulado posee conductores metálicos apropiados para hacer conexión entre el Circuito Integrado y un circuito impreso.

IC 555El temporizador IC 555 es un circuito integrado (chip) que se utiliza en una variedad de aplicaciones y se aplica en la generación de pulsos y de oscilaciones. El 555 puede ser utilizado para proporcionar retardos de tiempo, como un oscilador, y como un circuito integrado flip-flop (llamado también simplemente biestable, que tiene dos estados estables, es decir,es capaz de almacenar un número binario o bit)

IC L293DEs de gran utilidad para controlar pequeños motores y actuadores de corriente directa. Este circuito es bastante utilizado en robótica para controlar motores a pasos y de corriente directa.

IC ULN2803Es muy usado cuando se quieren hacer aplicaciones por puerto paralelo y una de sus principales características es que aporta la potencia necesaria a las salidas del puerto. Dicho puerto tiene una intensidad de corriente que puede proporcionar para encender un LED, pero no para mover un motor. Permite extraer 500 mA por pin de salida, aplicando tensiones a la carga de hasta 50v.

Microprocesadores Microcontroladores

Los microprocesadores tienen una arquitectura destinada al procesamiento de la información. La características especial de los microprocesadores es que la CPU, las memoria RAM, ROM y periféricos se encuentran separados, no forman parte del chip; asi mismo los programas que se realizan para un microprocesador siempre tienen un fin.

El Intel Core i7 necesita memoria RAM, Rom y periféricos para cumplir su función

En el caso de los microcontroladores tienen una arquitectura destinada a procesos de control. Las características de los microcontroladores es que en un solo chip pueden contar con la CPU memoria RAM, ROM, periféricos, timers, conversores AD y DA. Los programas que se realizan para un microcontrolador nunca tienen fin, es decir solo termina el programa cuando se corta la energía.

El ATMEL Atmega328P es el corazón y cerebro de Arduino. Contiene RAM, ROM y todo lo necesario para cumplir su función con excepción de un cristal oscilador que le “marque” el ritmo.

Microprocesadores y Microcontroladores

Comparativo de las Arduino más vendidas

Placas Arduino

Partes de un Arduino

Pines Digitales y Analogicos

Vemos que el la plataforma Arduino hay pines designados como “Digitales” y pines “Analógicos”.

No se trata estrictamente de entradas/salidas analógicas y digitales.

Un pin digital es aquien que puede tener dos valores o estados HIGH o LOW.

Un pin analógico es aquel que puede tener valores enteros de 0 a 1023.

Globant Proprietary | Confidential Information

Arduino IDE

Download:https://www.arduino.cc/en/Main/Software

Hay muchos IDEs no oficiales para Arduino, desde plugins para Eclipse y Visual Studio hasta simuladores completos en línea como Codebender.

Arduino IDE

Herramientas y Entorno de Trabajo Protoboard(También llamada “breadboard”)

Es una placa para prototipos que tiene perforaciones interconectadas y que facilita el armado de circuitos electrónicos SIN necesidad de soldaduras.Es especialmente útil para diseñar y probar un prototipo antes de construir un circuito con conexiones definitivas.

Interconexión por dentro de la protoboard

Interconexión por dentro de la protoboard

Herramientas y Entorno de Trabajo Jumpers

Cables cuyas terminales pueden ser macho o hembra.

Herramientas y Entorno de Trabajo Tester

También llamado Multímetro o Polímetro, es una herramienta esencial para trabajar en electrónica… ¿por qué?

Gracias al multímetro podemos comprobar el correcto funcionamiento de los componentes y circuitos electrónicos

El tester digital es un instrumento electrónico de medición que generalmente calcula voltaje, resistencia y corriente, aunque dependiendo del modelo puede medir otras magnitudes como capacitancia y temperatura.

Se trata de un instrumento de medición de relativamente bajo costo (en Argentina los más económicos cuestan approx. u$s 10 ).

Herramientas y Entorno de Trabajo Herramientas para Soldadura

El soldador o cautín eléctrico, es una herramienta de relativo bajo costo y es aconsejable que tenga:

- Potencia de approx. 30-40 Watts- Punta intercambiable (algunas soldaduras

necesitan puntas más finas)

Algunos soldadores vienen en un “kit” llamado “estación de soldadura” que consta de apoyos para no quemar la mesa de trabajo, regulador de temperatura, luces del termostato, etc.

Para soldar necesitaremos también alambre de estaño para soldaduras electrónicas de 0.8 mm de diámetro.

NOTA: Para desarrollar un proyecto de Arduino NO es estrictamente necesario tener un soldador, pero si nuestro circuito tiene éxito y queremos hacer un circuito con conexiones permanentes, lo necesitaremos con seguridad.

Herramientas y Entorno de Trabajo Baterías

Muchas veces la cantidad de energía que la PC le provee a Arduino a través del puerto USB no es suficiente.

Esto es crítico cuando conectamos motores.

Por ello proveer de una fuente de corriente continua externa a los componentes de nuestro circuito nos asegura el buen funcionamiento de la placa Arduino.

Las pilas recargables de 9V son ideales y es conveniente que tengan 2800 mAh.

También es conveniente contar con conectores para los bornes de las pilas y así facilitar el conexionado.

Herramientas y Entorno de Trabajo Poor Man’s Oscilloscope

Un osciloscopio digital vale al menos $6.000, pero podemos obtener prácticamente los mismos resultados utilizando una tarjeta de sonido en la PC (dedicada o la que viene onboard), más un cable de micrófono y el software gratuito Visual Analyzer:

● El cable negro va a GND (tierra)● El o los cable/s restantes serán puntas

de prueba de señales que vamos a medir.

● Muchos cables de mic son demasiado delgados y hay que buscar los más robustos de modo que podamos soldarlos.

● Si vamos a medir solo señales de los pines de Arduino no hace falta más, pero si queremos trabajar con mayor voltaje debemos agregar una resistencia de 4.7k Ohms y un condensador cerámico 104.

Herramientas y Entorno de Trabajo Software: Fritzing

Fritzing es un programa freeware de automatización de diseño electrónico libre que busca ayudar a diseñadores y artistas para que puedan pasar de prototipos (usando, por ejemplo, placas de pruebas) a productos finales.

Fritzing fue creado bajo los principios de Processing y Arduino, y permite a los diseñadores, artistas, investigadores y aficionados documentar sus prototipos basados en Arduino y crear esquemas de circuitos impresos para su posterior fabricación. Además, cuenta dentro de la misma aplicación de un “clon” del IDE de Arduino, de modo que podemos hacer todo ahí mismo.

Programación de Arduino Tipos de Memoria

Memoria FlashEs donde Arduino almacena el sketch. Un sketch es el nombre que usa Arduino para un programa. Es la unidad de código que se sube y ejecuta en la placa Arduino. Esta memoria es no volátil, si Arduino deja de ser alimentado eléctricamente los datos que haya en esta memoria permanecerán.

El tamaño de la memoria Flash de Arduino puede variar dependiendo del microcontrolador, aunque no es muy grande. Por ejemplo, para el chip ATmega168 el tamaño de la memoria Flash es de 16 kilobytes, de los cuales 2 kilobytes son utilizados por el bootloader. Para el caso del microcontrolador ATmega328 (como el que incorpora Arduino UNO) el tamaño de la memoria Flash es de 32KB, de los cuales el bootloader usa 0,5KB. Por lo que debemos desarrollar los programas de forma muy optimizada, usando los tipos de variables que menos memoria requieran, en la medida de lo posible. También debemos optimizar el código fuente de la aplicación para no repetir líneas de código..

Memoria Flash Memoria SRAM Memoria EEPROM

Memoria SRAMEs de tipo volátil, es el espacio donde los sketches (programas) almacenan y manipulan variables al ejecutarse. La información guardada en esta memoria será eliminada cuando Arduino pierda la alimentación. Esta memoria es de uso exclusivo para el programa en ejecución.

La memoria SRAM de Arduino es muy pequeña, por lo que debemos optimizar nuestros programas al máximo y no abusar de variables de tipo char muy grandes. Hay que tener en cuenta que cada carácter de una variable char utiliza un byte. En el microcontrolador ATmega 168 el tamaño de la memoria SRAM es de 1024 bytes, para el caso de un chip ATmega328 (como el que incorpora Arduino UNO) el tamaño es de 2KB (2048 bytes).

Si la SRAM se queda sin espacio, el programa de Arduino fallará de forma imprevista, aunque se compile y se suba a Arduino correctamente la aplicación no se ejecutará o se ejecutará de manera extraña.

Memoria EEPROMEEPROM es un espacio de memoria que puede ser utilizado por los programadores para almacenar información a largo plazo. Este tipo de memoria es no volátil, por lo que los datos guardados en ella permanecerán aunque Arduino pierda la alimentación. Esta memoria puede ser usada para guardar valores si es necesario. Más adelante explicaremos cómo guardar y leer valores de esta memoria.

El tamaño de la EEPROM para un chip ATmega128 es de 512 bytes, para un chip ATmega328 es de 1KB (1024 bytes). Hay que tener en cuenta que el tamaño de la memoria EEPROM interna de Arduino es "pequeño" pero Arduino admite añadir módulos de memoria EEPROM externa de mayor tamaño

Programación de Arduino

Este es el workflow de desarrollo con el Arduino IDE.

La forma de “debuggear” un sketch es agregando entradas o “logs” en el el puerto serial.

NO tiene posibilidad de poner “breakpoints” y hacer un paso a paso.

En general los sketches son muy simples y no necesitan un debug, pero si nos hiciera falta debemos considerar usar otro IDE como el ATMEL Studio (es gratuito y está desarrollado por el fabricante de los microcontroladores de Arduino )

Programación de Arduino

La estructura básica del lenguaje de programación de Arduino es bastante simple y se compone de al menos dos partes. Estas dos partes necesarias, o funciones, encierran bloques que contienen declaraciones, estamentos o instrucciones.

void setup() //Primera Parte{ estamentos;}void loop() //Segunda Parte{ estamentos;}

En donde setup() es la parte encargada de recoger la configuración y loop() es la que contiene el programa que se ejecutará cíclicamente (de ahí el término loop –bucle-). Ambas funciones son necesarias para que el programa trabaje.La función de configuración (setup) debe contener la declaración de las variables. Es la primera función a ejecutar en el programa, se ejecuta sólo una vez, y se utiliza para configurar o inicializar pinMode (modo de trabajo de las E/S), configuración de la comunicación en serie y otras.La función bucle (loop) siguiente contiene el código que se ejecutara continuamente (lectura de entradas, activación de salidas, etc) Esta función es el núcleo de todos los programas de Arduino y la que realiza la mayor parte del trabajo.

Estructura de un programa de Arduino

Declaración de constantes y declaración de uso de librerías

void setup() donde se declaran e inicializan las variables. Especialmente usado para determinar el comportamiento de los pines

void loop() donde se ejecuta todo el flujo del programa. Equivale al void main() de C++

Programación de Arduino

Manos a la obra !!!!!!!Juntemos todos los elementos y herramientas, planifiquemos, y comencemos el viaje.

Primer proyecto: Encender y Apagar LEDsProcedimiento:

1. Desconectamos el Arduino de la PC.2. Conectamos la pata más larga (positivo) de un LED de cualquier color en

el pin# 13 de la placa Arduino. La pata más corta (negativo) o conectamos en el pin GND de la placa Arduino adyacente al pin# 13.

3. En la PC abrimos el Arduino IDE.4. Abrimos el sketch File->Examples->Basic->Blink .5. Conectamos Arduino a la PC por USB y verificamos que el IDE reconozca

la placa Arduino en un puerto COM, yendo a Tools->Port asegurándonos que esté con un check mark el port donde lo conectamos.

6. Luego hacemos File->Upload (o Ctrl+U). En la consola inferior veremos los detalles del proceso.

7. Una vez compilado el IDE hará el upload que será notado en el Arduino al titilar rápidamente el LED.

8. Luego de unos instantes el LED deberá apagarse y encenderse cada 1 segundo.

9. Podemos variar el ritmo cambiando el valor de “delay” a 200 y luego Ctrl+U nuevamente.

Objetivo: Encender y apagar LEDsVamos a usar los pines de conexión del Arduino para apagar y encender un LED. Es el “Hola Mundo” de de electrónica.

NOTA Importante: Para este proyecto usaremos el pin #13 y el pin GND adyacente para conectar un led aprovechando que SOLO este pin tiene ya incorporada una resistencia para proteger el circuito. Para conectar un LED a CUALQUIER OTRO pin de Arduino deberemos colocar una resistencia de 220 ohms (puede ser 300 ohms) entre el pin negativo del LED y GND.Los LEDs tiene 2 “patas”, una larga y una corta. La pata larga es POSITIVO y la corta es GND (ground, tierra o negativo) Para este proyecto necesitaremos:.

● Una placa Arduino, protoboard y cables jumper.● Un LED de cualquier color● El cable USB-B =>USB que conecta el Arduino con la

PCConectaremos la pata positiva del LED al pin #13 de Arduino y al pin GND adyacente la pata negativa. Luego escribiremos el “sketch” o programa Arduino en el IDE que instalamos en la PC.Finalmente haremos un upload del sketch a la placa.

Proyecto #1

Primer proyecto: Encender y Apagar LEDs Proyecto #1

LEDs Proyecto #1

Red

Blue

Green

Common

En LEDs comunes el ánodo (+) es más largo.

¿Por qué debemos poner resistencias cuando usamos LEDs?

Un LED o diodo emisor de luz, es un componente electrónico de estado sólido que produce luz de una corriente eléctrica. A diferencia de una lámpara incandescente que conduce la electricidad en dos direcciones, un LED, al ser un diodo, conduce la electricidad es una sola dirección. Su dirección preferida permite la circulación de una cantidad perjudicial de corriente a través del dispositivo, por lo que para limitar la corriente es necesario añadir una resistencia a tu circuito.

Programación de Arduino

Controlemos motores !

Encender y apagar LEDs puede ser muy útil cuando necesitamos alertar sobre algún evento, pero hagamos algo más interesante . .

Tipos de motores eléctricos para robótica

Motor DC (corriente directa)Para funcionar NO necesitan ninguna electrónica, solo conectar los dos cables a positivo y negativo de una fuente o batería. Según como lo conectemos el rotor girará en sentido horario u antihorario

Motor BrushlessSon mucho más eficientes energéticamente pero necesitan una electrónica de control que “marque” el ritmo del motor activando el paso de electricidad a cada una de las bobinas.

Motor ServoSon básicamente un motor DC con una serie de engranajes que disminuyen su velocidad y aumentan su fuerza (torque).Pueden ser motores que solo giran en uno y otro sentido en 180 grados o bien de rotación continua (360 grados).

Tipos de motores eléctricos para robóticaMotor BrushlessSon mucho más eficientes energéticamente pero necesitan una electrónica de control que “marque” el ritmo del motor activando el paso de electricidad a cada una de las bobinas.

Tipos de motores eléctricos para robótica

Servo MotorsDesde el punto de vista de Arduino son los más fáciles de controlar, ya que contienen dentro del motor la electrónica de control que permite manejarlos sólo por software.

Otra de sus características es que por dentro tienen:

● Una placa electrónica que lo controla

● Un juego de engranajes que le dan mas torque (fuerza)

● Un motor DC común en su interiorPueden girar 180 grados o continuamente.

Tipos de motores eléctricos para robótica

ActuadoresUn actuador es un dispositivo capaz de transformar energía hidráulica, neumática o eléctrica en la activación de un proceso con la finalidad de generar un efecto sobre un proceso automatizado. Este recibe la orden de un regulador o controlador y en función a ella genera la orden para activar un elemento final de control como, por ejemplo, una válvula.

Estrictamente hablando, todos los motores son actuadores, pero generalmente llamamos así a los motores que proveen un movimiento lineal.

Tipos de motores eléctricos para robótica

Motores Paso a Paso (Stepper)El motor a paso es un dispositivo electromecánico que convierte una serie de impulsos eléctricos en desplazamientos angulares discretos, lo que significa que es capaz de avanzar una serie de grados (paso) dependiendo de sus entradas de control. El motor paso a paso se comporta de la misma manera que un conversor digital-analógico (D/A) y puede ser gobernado por impulsos procedentes de sistemas lógicos.Este motor presenta las ventajas de tener precisión y repetitividad en cuanto al posicionamiento

PWM (Pulse Width Modulation )

La modulación por ancho de pulsos (también conocida como PWM, siglas en inglés de pulse-width modulation) de una señal o fuente de energía, es una técnica en la que se modifica el ciclo de trabajo de una señal periódica (una senoidal o una cuadrada, por ejemplo), ya sea para transmitir información a través de un canal de comunicaciones o para controlar la cantidad de energía que se envía a una carga.El ciclo de trabajo de una señal periódica es el ancho relativo de su parte positiva en relación con el período.

PWM (Pulse Width Modulation )

Aquí podemos ver como funciona en la práctica la técnica del PWM para controlar servomotores

Por convención el cable rojo es para alimentar el motor, el negro GND (tierra) y el central que es amarillo o blanco le envia la señal con PWM.

PWM (Pulse Width Modulation )

. . Y. . . ¿Para qué nos puede servir?

Es especialmente útil para controlar la velocidad de los motores enviando en la propia señal eléctrica una “instrucción” de cómo se debe comportar un dispositivo.

Segundo proyecto: Mover MotoresProcedimiento:1. Desconectamos el Arduino de la PC.2. Conectamos el terminal positivo (+) de la pila de 9v a un riel

de la protoboard que designaremos como riel de voltaje positivo.

3. Conectamos el terminal negativo (-) de la pila de 9v a un riel de la protoboard que designaremos como riel de voltaje negativo.

4. Conectamos los cables negros de cada motor al “riel” negativo de la protoboard.

5. Conectamos los cables rojos al “riel” de voltaje positivo + de la protoboard.

6. Conectamos el tercer cable de cada servo motor a los pines 9 y 10 respectivamente.

7. Conectamos Arduino a la PC8. Ejecutamos el IDE de Arduino. verificamos que haya

reconocido el puerto serie.9. Compilamos y cargamos el programa.

Objetivo: Controlar servo motores eléctricosVamos a conectar y controlar un motor servo de los que giran 180 grados en sentido horario y antihorario usados para mover brazos y manos robóticas. También conectaremos un motor servo de rotación continua de los que se usan para mover robots con ruedas.

Los motores consumen mucha energía eléctrica que generalmente superan la intensidad de corriente suministrada por el USB de Arduino. Aquí tenemos 2 opciones: conectar los motores a una fuente de energía externa (pila) o bien conectar todo el sistema a una fuente de energía con 5 volts pero con amperaje (intensidad de corriente) suficiente para alimentar la placa y mover los motores.

Para este proyecto necesitaremos:.● Una placa Arduino● 1 motor servo● 1 motor servo de rotación continua● cables jumpers● 1 pila de 9 volts

Proyecto #2

Segundo proyecto: Mover Motores Proyecto #2

El Puente “H”

H Bridge motor driverUn Puente en H es un circuito electrónico que permite a un motor eléctrico DC girar en ambos sentidos, avance y retroceso. Son ampliamente usados en robótica y como convertidores de potencia. Los puentes H están disponibles como circuitos integrados, pero también pueden construirse a partir de componentes discretos.El término "puente H" proviene de la típica representación gráfica del circuito. Un puente H se construye con 4 interruptores (mecánicos o mediante transistores). Cuando los interruptores S1 y S4 (ver primera figura) están cerrados (y S2 y S3 abiertos) se aplica una tensión positiva en el motor, haciéndolo girar en un sentido. Abriendo los interruptores S1 y S4 (y cerrando S2 y S3), el voltaje se invierte, permitiendo el giro en sentido inverso del motor.

Relés (relay)

RelésEl relé (en francés relais, “relevo”) o relevador es un dispositivo electromagnético. Funciona como un interruptor controlado por un circuito eléctrico en el que, por medio de una bobina y un electroimán, se acciona un juego de uno o varios contactos que permiten abrir o cerrar otros circuitos eléctricos independientes.Dado que el relé es capaz de controlar un circuito de salida de mayor potencia que el de entrada, puede considerarse, en un amplio sentido, como un amplificador eléctrico.El electroimán hace girar la armadura verticalmente al ser alimentada, cerrando los contactos dependiendo de si es N.A ó N.C (normalmente abierto o normalmente cerrado). Si se le aplica un voltaje a la bobina se genera un campo magnético, que provoca que los contactos hagan una conexión.

SensoresEs un dispositivo capaz de detectar magnitudes físicas o químicas, llamadas variables de instrumentación, y transformarlas en variables eléctricas.

Las variables de instrumentación pueden ser por ejemplo: temperatura, intensidad lumínica, distancia, aceleración, inclinación, desplazamiento, presión, fuerza, torsión, humedad, movimiento, pH, etc.

Una magnitud eléctrica puede ser una resistencia eléctrica, una capacidad eléctrica (como en un sensor de humedad), una tensión eléctrica (como en una termocupla), una corriente eléctrica (como en un fototransistor), etc.

El sensor está siempre en contacto con la variable de instrumentación con lo que puede decirse también que es un dispositivo que aprovecha una de sus propiedades con el fin de adaptar la señal que mide para que la pueda interpretar otro dispositivo. Ej. el termómetro de mercurio que aprovecha la propiedad que posee el mercurio de dilatarse o contraerse por la acción de la temperatura. Un sensor también puede decirse que es un dispositivo que convierte una forma de energía en otra.

Tercer proyecto: Identificar el entornoProcedimiento:Objetivo: Identificar la cercanía de objetos

Vamos a utilizar el módulo detector de distancia a objetos por ultrasonido SR04.Utiliza el mismo principio que los murciélagos, ballenas y delfines que emiten sonidos en frecuencias altas no audibles y, en función del tiempo en que la onda supersónica vuelve al emisor, calcula la distancia. Este sensor, por lo tanto tiene un emisor y un receptor y devuelve un valor que representa la distancia. Sabemos la velocidad de propagación del sonido en el aire, por lo que podemos calcular la distancia en base al tiempo transcurrido hasta que el sensor recibe el reflejo de esa onda en su sensor de recepción.Este sensor tiene un alcance de entre unos 5 metros y 2 cm y es apto para construir un detector de obstáculos en un robot.Vamos a conectar el sensor a Arduino, leer los datos de distancia poniendo nuestra mano a diferentes distancias del sensor. Cuando la distancia es menor de 30 cm suena una alarma y se enciende un LED Rojo. Caso contrario se enciende el LED verde.

Para este proyecto necesitaremos:.● Una placa Arduino● Un sensor SR04● Protoboard y cables● 1 LED rojo y otro verde. 2 resistencias de 220 ohms.● 1 Buzzer

Proyecto #3

1. Seguiremos las instrucciones que recibiremos en el Workshop

2.

Tercer proyecto: Identificar el entorno Proyecto #3

5v

Trigger

Echo

GND

Tercer proyecto: Identificar el entorno Proyecto #3

Cuarto proyecto: Detectar el Stress en las Personas

Este Estudio del MIT muestra como se corresponde exactamente la respuesta electrodérmica con los momentos más emocionantes de la montaña rusa de Six Flags.

Objetivo: Crear un simple detector de stress

Vamos a aprovechar el fenómeno de la resistencia galvánica de la piel humana. Cuando una persona se encuentra en estado de stress (miedo, excitación, etc.) se produce una disminución de la resistencia en la piel debido a la producción de transpiración(el agua salada es muy buena conductora de la electricidad). Este reflejo se llama Respuesta Psicogalvánica o Respuesta Electrodérmica.

Crearemos un par de “pads” de material conductor (uno para positivo y el otro para negativo) sobre los que que el usuario colocará dos de sus dedos.

El positivo irá conectado a uno de los pines de entrada analógica de Arduino que, como es de esperar, nos dará el voltaje.

A menor voltaje, menor resistencia. Estableceremos un valor a partir del cual consideremos como “punto de stress” y cuando la lectura del voltaje de la piel sea inferior a él dispararemos el encendido de una señal sonora y el encendido de un LED.

Proyecto #4

Cuarto proyecto: Detectar el Stress en las Personas

Objetivo: Crear un simple detector de stress

Proyecto #4

El proyecto va a ser muy simple y en cuanto a componentes necesitaremos sólo 2 LEDs (uno verde y un rojo), y nos construiremos nuestro propio “sensor” de la resistencia galvánica de la piel.Para medir esta respuesta necesitamos que el usuario ponga dos dedos contiguos en sendos “pads” que construiremos doblando en 2 un par de rectángulos de papel aluminio y conectando por cable uno de ellos a GND y el otro a un pin de entrada analógica de Arduino.El pad conectado a la entrada analógica irá entregando un valor que va de 0 a 1023 y que representa el voltaje (0 a 5 volts). El el código veremos cómo ese cambio en el voltaje representa una disminución de la resistencia de la piel y dispararemos una alerta sonora y encenderemos el LED rojo cuando se ingrese en esos valores.El dispositivo requiere de una calibración para cada usuario y originalmente lleva un potenciómetro para ese fin, pero lo hemos suprimido para hacer este proyecto más sencillo y posible de ejecutar hoy aquí.La calibración la haremos modificando el código.

La distancia entre los electrodos al efectuar las lecturas debe ser como se muestra arriba.

En el esquema de la izquierda se muestran más alternativas de conexión pero requieren mayor calidad en la construcción de los electrodos.

Cuarto proyecto: Detectar el Stress

Procedimiento:1. Desconectamos el Arduino de la PC.2. Conectamos los cables y los LEDs según el

esquema previsto.3. Conectamos Arduino a la PC4. Ejecutamos el IDE5. Compilamos y cargamos el programa en la

placa.

Proyecto #4

Para este proyecto necesitaremos:.● Una placa Arduino● Papel aluminio y cables● Protoboard y cables● 1 LED rojo y otro verde. 2 resistencias de 220 ohms.● 1 Buzzer

Cuarto proyecto: Detectar el Stress en las Personas Proyecto #4

Quinto proyecto: Crear un vínculo Wireless

Objetivo: Crear un vínculo Wireless por radiofrecuencia entre 2 Arduinos

Vamos a utilizar un módulo transmisor y otro receptor de muy bajo costo para transmitir inalámbricamente los datos del detector de stress.Estos módulos transmiten datos mediante ondas de radiofrecuencia de 433 Mhz y el conjunto tiene un costo de 4 u$s siendo la alternativa más económica para transmisiones de Arduino.Conectaremos unos de los pads del detector de stress y enviaremos esas lecturas de un Arduino a otro en forma inalámbrica.

Para este proyecto necesitaremos:.● 2 placas Arduino (pueden ser diferentes)● 1 juego de transmisor/receptor RF Link de 433 Mhz● Cables + el pad del detector de stress● 1 pila de 9v

Proyecto #5

Procedimiento:1. Descotrolanectamos ambos Arduinos de la PC. Insertamos un

módulo en cada uno.2. Cableamos según esquema. Conectamos uno a uno las placas y

cargamos el software

Quinto proyecto: Ambas caras del RF Link Kit Proyecto #5

Conectar antena

Conectar antena

Quinto proyecto: Crear un vínculo Wireless Proyecto #5

Transmisión por radiofrecuencia Proyecto #5Radiofrecuencia (abreviado RF), también denominado espectro de radiofrecuencia, se aplica a la porción menos energética del espectro electromagnético, situada entre 3 hertz (Hz) y 300 GigaHertz (GHz).

La radiocomunicación es una forma de telecomunicación que se realiza a través de ondas de radio u ondas hertzianas, la que a su vez está caracterizada por el movimiento de los campos eléctricos y campos magnéticos. La comunicación vía radio se realiza a través del espectro radioeléctrico cuyas propiedades son diversas dependiendo de su bandas de frecuencia. Así tenemos bandas conocidas como baja frecuencia, media frecuencia, alta frecuencia, muy alta frecuencia, ultra alta frecuencia, etc. En cada una de ellas, el comportamiento de las ondas es diferente.

Transmisión por radiofrecuencia Proyecto #5La transmisión se realiza por ondas de radiofrecuencia (transmisor y receptor deben trabajar a la misma frecuencia).

Un transductor y su antena transforma el pulso eléctrico en ondas de radio que se transmite por el aire. Luego, en el receptor, un transductor y su antena transforman las ondas de radio en impulsos eléctricos.

Los valores del pulso eléctrico (cero o “n” volts = 0 y 1) serán los bits de información.

Como las antenas y en ambiente no son perfectos ni limpios de otras radiaciones hay siempre mucho “ruido” que distorsiona los valores. Por ello la transmisión no se hace en bits “crudos” sino a través de un protocolo que asegura la recepción correcta de los datos enviados. Los datos se envían en “paquetes” o “tramas”:

Este byte de sincronía no forma parte del paquete de datos pero se envía para ajustar la ganancia del receptor0xAA = 10101010es decir una onda cuadrada

Este byte le indica al receptor que se inicia el paquete. Todos los paquetes tienen el mismo valor.

Este byte indica la dirección del receptor ej. la dirección IP o un código único.

Aquí puede ir 1 o X número de bytes con los datos en sí mismos..

Este byte es para controlar que los datos son los correctos. Su valor representa la siguiente fórmula:

checksum = byte de dirección + byte de datos + byte de datos . .

Sexto proyecto: Controlar el hardware via Bluetooth Procedimiento:

1. Descotrolanectamos el Arduino de la PC.2. Conectamos el módulo HC-05 / HC-063. Cableamos.4. Cargamos el programa en la placa Arduino5. Abrimos en nuestro smartphone alguna terminal bluetooth6. Luego de aparear los dispositivos, Ingresamos en esa terminal “n” o

“f” lo que encenderá o apagará el led respectivamente.

Objetivo: Construir un enlace bluetooth para controlar dispositivos conectados a Arduino.

Vamos a utilizar un módulo Bluetooth para establecer una comunicación serial inalámbrica y, a través de ella, enviar remotamente órdenes al circuito y controlar el comportamiento de algunos componentes como LEDs, motores, etc.

Para este proyecto necesitaremos:.● Una placa Arduino● Un módulo bluetooth HC-05● 1 LED● 1 servo motor● Cables jumpers● 1 pila de 9v con su bornera y cables.

Proyecto #6

Sexto proyecto: El módulo Bluetooth HC-05 Proyecto #6

Sexto proyecto: Controlar el hardware via Bluetooth

Proyecto #6

Tips & Tricks

Como dijimos la RAM de los Arduinos es bien limitada. Hay un truco para evitar que algunas variables no ocupen memoria RAM.

El truco consiste en anteponer “ ” a las variables cuando se definen fuera del y del . La condición es sean realmente constantes y no necesitemos cambiar su valor.

La limitación es que no funciona con Strings ni con arrays. ¿Cuál es entonces la solución para estos casos?

Solo hay solución para los Strings y se trata de la función F(). Esta función ni siquiera está en la documentación de Arduino, es como una función “escondida”. ¿Cómo se usa?

La estrategia de “ ” y nos ahorrará mucha memoria.

Próximos PasosQué sige ahora?

Recordemos que siempre se pueden construir aplicaciones completas en hardware sin necesidad de escribir una sola línea de código, es decir usando únicamente componentes electrónicos. Pero el desafío es poder construir aplicaciones usando la menor cantidad de componentes electrónicos reemplazandolo en lo posible con código. De este modo podemos hacer nuestros circuitos más baratos y fáciles de construir.

Otra cosa a tener en cuenta es que Arduino es una plataforma de prototipos general que contiene funcionalidades con potencial para desarrollar aplicaciones de cierta complejidad.

Para prototipos es especialmente útil tener algo genérico , pero la mayoría de las veces nos encontraremos con que nuestra aplicación se basa en leer un par de sensores y luego hacer algo con un motor, encender LEDs y/o enviar los datos de lectura a algún lado.

Para esto, una placa Arduino es como un "cañón para matar hormigas" y deberíamos evaluar la posibilidad de usar microcontroladores como el ATTiny85 que tienen un costo de menos de 6 dólares (en Argentina,.. en USA y Europa cuestan centavos), y podrían cumplir perfectamente la función que le asignamos a una placa Arduino.

Iot (Internet of Things)

Una vez que tenemos nuestro circuito conectado a Internet, podemos decir que hemos entrado en el mundo del IoT.Nuestro circuito estará colectando datos y los estará publicando en línea.Este es sólo el primer paso en IoT. COn ello podemos imaginar soluciones innovadoras con BigData & Analitycs, social applications, alertas, sistemas de vigilancia, de localización, de monitoreo, etc, etc.

Podemos desarrollar una plataforma IoT propia o usar las que hay disponibles con poderosas APIs REST para colectar visualizar nuestros datos.

Aquí una lista de ejemplo.

1. ThingSpeak

2. Xively

3. Nimbits

4. SensorCloud

5. Exosite

6. EVRYTHNG

7. Paraimpu

MQTT es un protocolo machine-to-machine

(M2M) para la "Internet of Things" que se está convirtiendo en un

standard.

Es un protocolo publish/subscribe

Q&A

Thank You