domingo, 1 de febrero de 2015

Kanance Ingeniería: Investigación, Innovación y Desarrollo.

Es una empresa Colombiana cuyo objetivo es brindar solución a problemas puntuales en diferentes sectores como la industria, la salud, la educación y el comercio; mediante la prestación de servicio de ingeniería y el desarrollo de productos tecnológicos.



Sin perder el norte del camino de la investigación, la empresa dedica el esfuerzo y la experiencia de un selecto e interdisciplinario grupo de profesionales para dar soluciones eficientes, eficaces y efectivas a problemas que se presentan día a día en los diferentes sectores productivos.

Kanance Ingeniería es una empresa ubicada en Mosquera,Cundinamarca, fundada y gerenciada por José Miguel Ceballos Forero, movida por el motor de la investigación, y que tuvo su orígen y motivación en un semillero de investigación: El Club de Física del INEM Santiago Pérez, un colegio ubicado en el barrio Ciudad Tunal en Bogotá, donde José Miguel  fue uno de los líderes del grupo, y el autor de esite blog fue profesor de Física por más de 40 años y se inventó el Club como actividad extraclase.

Transcribo textualmente un artículo publicado en el periódico EL tiempo sobre el Club de Física:


" MISTERIO+ENERGÍA: CLUB DE PILOS



En lo que antes era una caseta de información, un cuarto de ladrillo que no tiene más de 5 metros cuadrados, funciona el club de física del colegio Inem Santiago Pérez.

Sobre una de las paredes está un Einstein sonriente con un pequeño Chaplin al lado. Debajo, hay un par de tableros llenos de huequitos, que son el mayor orgullo de los 50 muchachos del club.

Explique qué es eso le dice Jesús Carvajal, el profesor que los dirige, a José Miguel Ceballos, uno de los 10 ex alumnos del colegio que sigue vinculado al club.

Y como si se tratara de dar su tarea, José Miguel empieza a hablar de electrónica digital, lógica, álgebra de Boole, compuertas... Para los compañeros que lo escuchan, esas palabras son el pan de cada día, pues como dice Claudia Ramírez, una de las tres mujeres del club, la electrónica es su vida.

Cuando se le piden explicaciones, José Miguel sonríe y pasa a ser el monitor de los más pequeños para explicar. No en vano, este joven de 26 años decidió estudiar electrónica, a pesar de graduarse bachiller con especialidad en química.

Estos tableros los hicimos con José Gustavo Melo y Luis Carlos Díaz. Son para enseñar electrónica en vivo y no con tiza y papel dice José Miguel.

Estamos tratando de crear una fundación que comercialice los proyectos de los muchachos interviene el profesor, que desde hace unos 25 años está sembrando en sus alumnos inquietudes y problemas para que se interesen por la tecnología y a través de ella, por la física.

Uno les enseña las teorías de Aristóteles, Galileo, Newton, pero lo que ellos viven todos los días es la tecnología. Eso hay que aprovecharlo continúa el profesor.

Prueba de esas inquietudes es la chandita . Así le dicen al primer computador que tuvieron y que armaron ellos mismos reciclando partes.

El primer computador de verdad se los regaló la Asociación de Padres del colegio. Eso les cambió la manera de trabajar. Ahora no tienen que gastar y gastar en componentes ensayando un circuito, sino que lo simulan en un programa de computador.

Ese laboratorio virtual es otro orgullo de los muchachos. Y el tablero de lógica binaria (la que solo tiene dos valores) lo fabricaron primero en el computador.

Pero para llegar a esos proyectos grandes, todos van recorriendo un camino según su edad (los hay desde 11 años), su grado de preparación (hay niños de sexto grado) y el misterio tecnológico que quieran resolver. Dentro de los proyectos que se destacan está la simulación de las funciones de un auto, hecha por Claudia, y un sensor para contar cuántas personas entran en un ascensor y alertar cuando hay sobrecupo.

Oscar Alejandro Castillo y Oscar Garzón, o los Oscares de la Electrónica , como los llama José Miguel, son los creadores del sensor.

Al primero le interesó el club porque le gustaba armar cosas, pero no sabía cómo. Y para el segundo, la motivación fue saber desarmar.

Mientras ellos muestran cómo van cambiando los números del sensor, entra como un vendaval, Ricardo Sarmiento, un jovencito de 16 años, que desde que descubrió el QBasic (lenguaje de programación) se engomó con la informática.

Es tan hábil que en plena clase les hizo una broma a sus compañeros y profesores haciéndoles creer que todo el sistema había sido contaminado por un virus. Después de 15 minutos de oír renegar a los maestros y de aburrir a los compañeros con el pito de los computadores, les contó que el virus era falso y que él era su creador.

Pero para estos muchachos no todo son bromas y proyectos para especialistas. Al portero del colegio le solucionaron un gran problema: timbrar cada 45 minutos para señalar el cambio de clase.

Antes eso era un despelote cuando se iba la luz y porque tenía que estar pendiente de todo en la puerta cuenta Arturo Rojas, el portero.

Los muchachos del club le hicieron un timbre automático que ni siquiera se daña cuando se va la luz, porque tiene su propia batería para esos casos. También crearon la emisora del colegio, que por ahora no está al aire, y lo han representado durante varios años en Expociencia juvenil. En el 95, en este evento, ganaron el derecho para representar al país en la X Feria Internacional de Ciencia y Tecnología de Chile.

Mientras cierra la puerta del club, el profesor recuerda que los pueden visitar en Internet: (www.pagina.de/clubdefisica) y agrega: No se le olvide que la escuela tiene que asomarse a la vida."

Publicación el tiempo.com  Sección Bogotá Fecha de publicación 2 de diciembre de 1998 
Autor: ADRIANA DIAZ Redactora de EL TIEMPO

Transcribo a continuación del sitio Web  de la empresa  Kanance  Ingeniería , de la sección Quienes somas,

" NUESTRA HISTORIA.
.
Kanance Ingeniería S.A.S, es fundada el 24 de Agosto de 2011 por José Miguel Ceballos, quien durante más de 20 años se prepara para afrontar el reto de ser empresario y brindar a sus clientes y a la sociedad en general todo su potencial y el de un selecto grupo de profesionales que decidan caminar a su lado en un proyecto de vida que nace en el Colegio INEM Santiago Pérez y de la mano del Ing. Jesús Carvajal, docente que actuando proactivamente dedica su vida a un grupo de investigación llamado “club de física del INEM Tunal”.

Como homenaje al trabajo incansable del Profe Carvajal quiero publicar un documento escrito por él, que resume su obra con jóvenes que como yo recibieron la semilla del gusto por la investigación. Dicho documento ilustra parte del camino recorrido que llevó a la fundación de KANANCE INGENIERÍA.

EL CLUB DE FISICA DEL INEM SANTIAGO PEREZ TUNAL: SEMILLERO DE TALENTOS EN CIENCIA Y TECNOLOGIA:

FUNDADOR Y DIRECTOR: Jesús Alfonso Carvajal Valderrama

El CLUB DE FÍSICA del INEM Santiago Pérez del TUNAL fue un grupo de estudio extra clase, conformado por estudiantes y egresados del Instituto, que por cerca de 30 años estuvo dedicado a la investigación en torno a la física, informática y electrónica.

Estuvo presente desde 1978 en EXPOCIENCIA-EXPOTECNOLOGÍA JUVENIL, evento bianual convocado por la Asociación Colombiana para el Avance de la Ciencia ACAC, que tuvo lugar inicialmente en el Planetario Distrital y luego en Corferias, dando a conocer sus logros como una experiencia exitosa, que influyó positivamente en la exploración vocacional de niños y jóvenes talentos que hoy en día se desempeñan como profesionales brillantes en el país y en el exterior.


En el Club se hizo énfasis en la fundamentación epistemológica y científica de cada proyecto, luego se utilizaban elementos técnicos y se enseñaba a los estudiantes a seguir un proceso en el trabajo, tendiente a concretar en un artefacto el fruto de su investigación.


El Club se presentó como una alternativa interesante para abordar la ciencia como una aventura del pensamiento con visión filosófica, a la tecnología como un reto para dominar la naturaleza al comprender el comportamiento de los diferentes fenómenos, y a la técnica como el cúmulo de habilidades y destrezas necesarias para que el hombre haga realidad sus sueños tecnológicos.

El Club de física ha sido objeto de reconocimientos de los diferentes medios de comunicación (Prensa, radio y televisión), y así mismo de diferentes entidades educativas a nivel nacional e internacional. En 1995 representó a nuestro país en la X Feria Internacional de la Ciencia y la Tecnología en Santiago de Chile.

La física como aventura del pensamiento debe propiciar investigación que requiere de un tiempo ilimitado, de disfrute por lo que se hace, de un espíritu aventurero en el docente y en el alumno para atreverse a pensar en sueños y proyectos tecnológicos, en profundizar en la conceptualización para lograr clarificar situaciones que permitan diseñar, proponer, solucionar, etc, para brindarle a los escasos estudiantes talentosos, que el maestro encuentra por el camino, un espacio para que en jornada contraria a su actividad académica normal se pudiesen reunir e investigar en proyectos de su interés.

Uno de esos estudiantes talentosos que siempre se ha destacado por su espíritu de investigación y capacidad de liderazgo asociados a unas cualidades humanas de excelencia es JOSÉ MIGUEL CEBALLOS FORERO, gerente y fundador de KANANCE INGENIERIA.

El Club de Física logró el aprecio y reconocimiento de científicos como el Doctor Cesar Humberto Arias Pabón, exviceministro de agricultura, exdirector del Himat y del  Instituto de Asuntos Nucleares; José Manuel Flores, Ph-D en Física;  José Paternina Anaya, Ex decano de la facultad de ingeniería Electrónica de la Universidad Santo Tomás, y de la Sociedad Colombiana de Inventores Colombianos SINCO.


Proyectos como la Vela Electrónica Mágica fueron presentados en Encuentros Nacionales de profesores innovadores e investigadores en el Marco de Expociencia-Expotecnología en Corferias.

Así mismo se logró el reconocimiento y aprecio de Julian Betancourt, director del Museo del Juego y de la Ciencia de la Universidad Nacional de Colombia, y de Eduardo Posada, presidente de la Asociación Colombiana para el Avance de la Ciencia.

........................................................................................................................................................
Para el lector interesado le dejo el link de esta empresa  que fue un sueño de José Miguel hecho realidad:
http://kananceingenieria.com/ , y donde el autor de este blog va a trabajar en este año 2015 como ingeniero de soporte.
.

viernes, 30 de enero de 2015

ESTUDIO DEL HARDWARE DEL ARDUINO UNO Y SU MICROCONTROLADOR ATMEGA328

ESTUDIO DETALLADO  DEL HARWARE DE LA PLACA DEL ARDUINO UNO

Visión general de la placa Arduino UNO:
El Arduino Uno es una placa electronica basada en el microcontrolador de la empresa ATMEL  Atmega328.   Cuenta con 14 pines digitales de entrada / salida (de los cuales 6 pueden ser utilizados como salidas PWM), 6 entradas analógicas, un resonador cerámico de 16 MHz, una conexión USB, un conector de alimentación, un header ICSP, y un botón de reinicio. Contiene todo lo necesario para apoyar el microcontrolador, simplemente conectarlo a un computador  con un cable USB, o alimentarla con un adaptador de corriente AC a DC para comenzar su programación.

Descripción de  sus  componentes:

1. Es un microcontrolador de la compañia Atmel de arquitectura Harvard modificada de 8 bits con tecnología RISC (Reduced Instruction Set Computing),es decir, con memorias separadas para programa y datos y un conjunto de instrucciones simples para realizar la programación.

 Dispone de 32 KB de memoria flash interna para almacenar el programa, 2 KB de memoria RAM  para datos volátiles  y 1 KB de memoria EEPROM para datos no volátiles.

De los 32 KB de memoria flash, 512 bytes son utilizados por el bootloader  o sea el software de arranque del microprocesador, similar a la BIOS en un computador.

El encapsulado del microcontrolador ATmega328 es tipo DIP (Dual in-line package), que a diferencia del encapsulado SOIC de montaje superficial, los pines del circuito integrado atraviesan la placa a través de agujeros.

El microcontrolador tiene  28 pines  tal como se muestra en la figura:
Los pines del microcontrolador difieren de la numeración en la placa.

2.Boton Reset
Suministrar un valor LOW (0V) para reiniciar el microcontrolador. Típicamente usado para añadir un botón de reset a los shields que no dejan acceso a este botón en la placa.
3.- ICSP
Conector para la programación ICSP (In Circuit Serial Programming, o Programación Serial en circuito). El ICSP es el sistema utilizado en los dispositivos PIC  para programarlos sin necesidad de tener que retirar el chip del circuito del que forma parte. 
4.~PWM
Mediante los pines 3, 5, 6, 9, 10 y 11 la placa de Arduino Uno  provee de 8 bits de salida PWM con la funcion analogWrite (). 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, 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.
5.- Serie: 0 (RX) y 1 (TX)
Se utiliza para recibir (RX) y transmisión (TX) datos serie TTL. Estos pines están conectados a los pines correspondientes de la ATmega8U2 USB-to-TTL de chips de serie.  
6.- Interrupciones externas
Pines 2 y 3 Estos pines pueden ser configurados para activar una interrupción en un valor bajo, un flanco ascendente o descendente, o un cambio en el valor.
7.- SPI
10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK); Estos pines sirven de apoyo a la comunicación SPI con la biblioteca de SPI. El Bus SPI (del inglés Serial Peripheral Interface) es un estándar de comunicaciones, usado principalmente para la transferencia de información entre circuitos integrados en equipos electrónicos. El bus de interfaz de periféricos serie o bus SPI es un estándar para controlar casi cualquier dispositivo electrónico digital que acepte un flujo de bits serie regulado por un reloj.
8.GND
Pines de tierra. Abreviación de Ground que traducido al español es Tierra y en el contexto de la electrónica significa el común del circuito adonde se supone que existe 0 voltios.
9.AREF
Tensión de referencia para las entradas analógicas. Se utiliza con analogReference ().
10.USB
El Arduino Uno tiene una serie de facilidades para comunicarse con un computador, Usa los canales de comunicación serie a través de USB y aparece como un puerto COM virtual en el ordenador. Utiliza el estándar de los controladores USB COM, y no necesita ningún controlador externo. Sin embargo, en Windows es necesario un archivo .inf. El RX y TX LED de la placa parpadean cuando se transmiten datos a través del USB al chip serie y viceversa.
11.- Conector de alimentación
Plug hembra de 2.1mm para la conexion de alimentación en la placa.Al conector se aplica una tensión DC de 7 a 12 voltios. Un regulador en la placa se encarga de mantener una tensión estable de 5 voltios a su salida y puede suministrar hasta 1 Amperio de corriente. 
12.- Reset
Entrada dispuesta en la placa que permite suministrar un valor LOW (0V) para reiniciar el microcontrolador. Típicamente usado para añadir un botón de reset a los shields que no dejan acceso a este botón en la placa.
13.- 3.3 V
Una fuente de voltaje a 3.3 voltios generada en el chip FTDI integrado en la placa. La corriente máxima soportada 50 mA.  Esta tensión es utilizada actualmente por muchos chips en lugar de los 5 voltios, como por ejemplo la FPGA de la tarjeta Basys 2  de la empresa Digilent.
14.- 5V
La fuente de voltaje estabilizado usado para alimentar el microcontrolador y otros componentes de la placa. Esta puede provenir de VIN a través de un regulador integrado en la placa, o proporcionada directamente por el USB o otra fuente estabilizada de 5V (Fuente conmutada o de swicheo)
15.- GND
Pines de tierra.
16.- VIN
La entrada de voltaje a la placa Arduino cuando se esta usando una fuente externa de alimentación (en opuesto a los 5 voltios de la conexión USB). Se puede proporcionar voltaje a través de este pin, o, si se esta alimentando a través de la conexión de 2.1mm , acceder a ella a través de este pin.
17.- Analog In
El Uno tiene 6 entradas analógicas, y cada una de ellas proporciona una resolución de 10bits (1024 valores). Por defecto se mide de tierra a 5 voltios, aunque es posible cambiar la cota superior de este rango usando el pin AREF y la función analogReference().
18.- Cristal
Un cristal oscilador a 16Mhz, El oscilador de cristal se caracteriza por su estabilidad de frecuencia y pureza de fase, dada por el resonador. La frecuencia es estable frente a variaciones de la tensión de alimentación. La dependencia con la temperatura depende del resonador, pero un valor típico para cristales de cuarzo es de 005% del valor a 25 °C, en el margen de 0 a 70 °C.

ESTUDIO DETALLADO DEL MICROCONTROLADOR ATMEGA328
Diagrama en bloques de la arquitectura del microcontrolador ATMega328

El microprocesador corresponde a un AVR CPU.Los AVR son una familia de microcontroladores RISC del fabricante estadounidense Atmel. La arquitectura de los AVR fue concebida por dos estudiantes en el Norwegian Institute of Technology, y posteriormente refinada y desarrollada en Atmel Norway, la empresa subsidiaria de Atmel, fundada por los dos arquitectos del chip. Cuenta con bastantes aficionados debido a su diseño simple y la facilidad de programación.

El diagrama en bloques de un AVR CPU es el siguiente:


Puede ampliar  sobre AVR CPU  en:  http://es.wikipedia.org/wiki/AVR


PERIFÉRICOS INTERNOS

Dentro del microcontrolador hay varios subsistemas, a los que se denominará Periféricos Internos.

1. SISTEMA DE  RELOJ

Determina la velocidad de trabajo del microcontrolador.Con 16 MHZ se ejecuta una instrucción en 62,5 nanosegundos (  1 / 16 Mhz ), correspondiente a 1 ciclo de máquina.

El microntrolador tiene diferentes opciones de circuito de reloj tal como lo muestra la siguiente gráfica:


En un registro interno del micro se encuentran 5 opciones diferentes de reloj que son seleccionadas alizadpor medio de un Multiplexor. De este multiplexor sale la señal de reloj, la cual pasa a través de un Preescalizador, Este prescaler se puede utilizar para r educir la frecuencia, reducir el consumo de energía y mejorar la estabilidad de la señal de reloj.El factor del prescaler va de 1 a 256, en potencias de 2.En Arduino, por defecto está desactivado, por consiguiente trabaja a la frecuencia del resonador externo.
El reloj es distribuida por la unidad de control a los diferentes bloques existentes:l a CPU, las memorias, los módulos de entrada/salida, loos contadores/timers, el SPI y la USART, al igual que el conversor Análogo Digital ADC. 

2. TEMPORIZADORES
El microcontrolador ATmega328  tienes tres timers ( timer 0, timer 1, timer 2) que también se pueden usar como contadores. Los timers 0 y 2 son de 8 bits y el timer 1 de 16. Estos timers tiienen un módulo de preescalado para su propia señal de reloj que puede provenir de su sistema de reloj interno o por pines externos (modo contador)

Son módulos que funcionan en paralelo a la CPU y de forma independiente a ella. El funcionamiento básico consiste en aumentar el valor del registro del contador al ritmo que marca su señal de reloj.

Usando el reloj interno o un cristal externo puede ser utilizado para medir tiempos puesto que utiliza una señal periódica, precisa y de frecuencia conocida; mientras que si la señal viene de un pin externo puede contar eventos que se produzcan en el exterior y que se reflejen en cambios de nivel de tensión de los pines.

Estos contadores tambien forman parte del generador de señales PWM y permiten configurar tanto la frecuencia como el ciclo de trabajo.


3. PWM
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.

Para nuestro caso se  varía la anchura de la señal digital con base a una señal analógica dada.Cuando la señal analógica varíai su amplitud, la anchura del pulso de la señal digital cambia.


En el arduino se trabaja en su programación  con la función analogWrite ( )

Habitualmente se utliza para el control de la velocidad de motores o intensidad de luz, regulación de potencia, rectificación y como una forma sencilla de conversión digital-analógica.

Como la placa Arduino no dispone de un DAC ésta es la forma de generar señales análogas. Para ello utiliza los timers configurándose varias formas de trabajo. La forma de onda PWM, en el modo de trabajo más sencillo (Fast PWM), se genera de la  forma mostrada en la siguiente gráfica:


1) El registro del contador se pone en marcha desde cero y cuenta de modo ascendente. En el momento de empezar la cuenta se activa el pin de salida del PWM.
2) Cuando el valor de este registro se iguala al de otro registro de comparación se conmuta el pin de salida. 
 El registro del contador sigue contando en forma normal.
3) Cuando el valor del registro del contador llega al final (TOP) vuelve a comenzar (BOTTOM). El pin de salida vuelve a cambiar.

El tiempo que tarda el contador en llegar al final fija el periodo de la señal.

4. I²C
I²C es un bus de comunicaciones en serie. Su nombre viene de Inter-Integrated Circuit (Inter-Circuitos Integrados). La versión 1.0 data del año 1992 y la versión 2.1 del año 2000, su diseñador es Philips. La velocidad es de 100 kbit/s en el modo estándar, aunque también permite velocidades de 3.4 Mbit/s. Es un bus muy usado en la industria, principalmente para comunicar microcontroladores y sus periféricos en sistemas integrados (Embedded Systems) y generalizando más para comunicar circuitos integrados entre si que normalmente residen en un mismo circuito impreso.

La principal característica de I²C es que utiliza dos líneas para transmitir la información: una para los datos y otra para la señal de reloj. También es necesaria una tercera línea, pero esta sólo es la referencia (masa). Como suelen comunicarse circuitos en una misma placa que comparten una misma masa esta tercera línea no suele ser necesaria.

Las líneas se llaman:

SDA: datos
SCL: reloj
GND: tierra
Las dos primeras líneas son drenador abierto, por lo que necesitan resistencias de pull-up.



Los dispositivos conectados al bus I²C tienen una dirección única para cada uno. También pueden ser maestros o esclavos. El dispositivo maestro inicia la transferencia de datos y además genera la señal de reloj, pero no es necesario que el maestro sea siempre el mismo dispositivo, esta característica se la pueden ir pasando los dispositivos que tengan esa capacidad. Esta característica hace que al bus I²C se le denomine bus multimaestro.

Por ejemplo el maestro puede ser el ATmega328 del arduino y tener como esclavos un ADC, un DAC y otro microcontrolador.

En la placa del Arduino UNO los pines son AD5 para el SCK y el AD4 para el SDA. 
Para que este bus trabaje hay que obedecer su  respectivo protocolo de comunicaciones.

5 . SPI

El Bus SPI (del inglés Serial Peripheral Interface) es un estándar de comunicaciones, usado principalmente para la transferencia de información entre circuitos integrados en equipos electrónicos. El bus de interfaz de periféricos serie o bus SPI es un estándar para controlar casi cualquier dispositivo electrónico digital que acepte un flujo de bits serie regulado por un reloj (comunicación sincrónica).

Incluye una línea de reloj, dato entrante, dato saliente y un pin de chip select, que conecta o desconecta la operación del dispositivo con el que uno desea comunicarse. De esta forma, este estándar permite multiplexar las líneas de reloj.

Muchos sistemas digitales tienen periféricos que necesitan existir pero no ser rápidos. La ventajas de un bus serie es que minimiza el número de conductores, pines y el tamaño del circuito integrado. Esto reduce el coste de fabricar montar y probar la electrónica. Un bus de periféricos serie es la opción más flexible cuando se tiene tipos diferentes de periféricos serie. El hardware consiste en señales de reloj, data in, data out y chip select para cada circuito integrado que tiene que ser controlado. Casi cualquier dispositivo digital puede ser controlado con esta combinación de señales. Los dispositivos se diferencian en un número predecible de formas. Unos leen el dato cuando el reloj sube otros cuando el reloj baja. Algunos lo leen en el flanco de subida del reloj y otros en el flanco de bajada. Escribir es casi siempre en la dirección opuesta de la dirección de movimiento del reloj. Algunos dispositivos tienen dos relojes. Uno para capturar o mostrar los datos y el otro para el dispositivo interno.


El SPI es un protocolo síncrono. La sincronización y la transmisión de datos se realiza por medio de 4 señales:

SCLK (Clock): Es el pulso que marca la sincronización. Con cada pulso de este reloj, se lee o se envía un bit. (pin 13 arduino uno)

MOSI (Master Output Slave Input): Salida de datos del Master y entrada de datos al Slave. (pin 11 arduino uno)

MISO (Master Input Slave Output): Salida de datos del Slave y entrada al Master. (pin 12 arduino uno)

SS/Select: Para seleccionar un Slave, o para que el Master le diga al Slave que se active. (pin 10 arduino uno)

La Cadena de bits es enviada de manera síncrona con los pulsos del reloj, es decir con cada pulso, el Master envía un bit.

 Para que empiece la transmisión el Master baja la señal  SS/Select a cero, con esto el Slave se activa y empieza la transmisión, con un pulso de reloj al mismo tiempo que el primer bit es leído. Nótese que los pulsos de reloj pueden estar programados de manera que la transmisión del bit se realice en 4 modos diferentes, a esto se llama polaridad y fase de la transmisión:

1. Con el flanco de subida sin retraso.
2. Con el flanco de subida con retraso.
3. Con el flanco de bajada sin retraso.
4. Con el flanco de bajada con retraso.

6 . USART
Se trata de un puerto de comunicaciones muy versátil (UNIVERSAL SYNCHRONUS and ASYNCHRONUS serial RECEIVER and TRANSMITTER). Se puede configurar como síncrono o como asíncrono. Los pines de conexión de la placa UNO que se utilizan con este periférico interno son los siguientes:

  • PIN 0 (RXD)   - Puerto D del microcontrolador  PD0
  • PIN 1 (TXD)   - Puerto D del microcontrolador  PD1 
  • PIN 13 (SCK) - Puerto B del microcontrolador  PB15 (Sólo para el modo síncrono)
Para poder realizar la comunicación, los dispositivos que se vayan a comunicar deben conocer varios aspectos de ésta. El primero es la velocidad a la que se va a realizar, es decir a qué baudios se va a realizar la transmisión. 

La comunicación comienza con una señal de Start, seguida de los bits a enviar, y se pueden seleccionar entre 5 y 9 bits a mandar, después tenemos que seleccionar si va a haber un bit de paridad para comprobar errores y por último si tenemos uno o dos bits de Stop. Estos parámetros han de estar configurados de igual manera en los dos dispositivos que se van a comunicar.

En la placa UNO se utiliza la USART para que el Atmega328  se comunique con el otro microcontrolador ATmega8U2-MU  que hace la interface al puerto USB. Los leds (TXLED y RXLED) parpadean para indicar actividad en el puerto serie a traves de la USART.

.................................................................................................................................................................

ICSP 
En resumidas cuentas, el núcleo de cualquier placa Arduino se compone simplemente de un microcontrolador AVR. En el caso de la placa Arduino UNO, su respectivo microcontrolador es el ATMega328.

Conforme uno se va adentrando en el mundo de Arduino y los proyectos se vayan haciendo cada vez más grandes y complicados, puede presentarse la necesidad de recurrir al uso de un segundo microcontrolador, para lo cual, es completamente notable que conseguir un AVR por separado es mucho más barato y/o rentable que volver a comprar una nueva placa Arduino.

Un inconveniente de comprar un nuevo microcontrolador AVR es que éste vendrá de fábrica completamente “limpio” (sin ningún programa cargado), como consecuencia, habrá que grabar por primera vez el Bootloader (Gestor de arranque) para que éste pueda cargar y hacer funcionar los sketches programados con el software de Arduino.

La placa Arduino posee una entrada ICSP (In Chip Serial Programmer) que tiene acceso a la memoria de programa del AVR, ésto es, que puede grabar directamente desde la PC al microcontrolador cualquier programa. Uno de ellos, el mismo Bootloader de Arduino.



Para grabar el Bootloader es necesario el uso de un programador AVR, como por ejemplo  el “Pocket AVR Programmer” de SparkFun Electronics.

EL  ICSP  es un conector de 6 pines tal como se muestra en la siguiente figura:

................................................................................................................................................................

USB
El “Bus Universal en Serie”, en inglés: Universal Serial Bus más conocido por la sigla USB, es un bus estándar industrial que define los cables, conectores y protocolos usados en un bus para conectar, comunicar y proveer de alimentación eléctrica entre computadores, periféricos y dispositivos electrónicos.

Su desarrollo partió de un grupo de empresas del sector que buscaban unificar la forma de conectar periféricos a sus equipos, por aquella época poco compatibles entre si, entre las que estaban Intel, Microsoft, IBM, Compaq, DEC, NEC y Nortel. La primera especificación completa 1.0 se publicó en 1996, pero en 1998 con la especificación 1.1 comenzó a usarse de forma masiva.


El USB es utilizado como estándar de conexión de periféricos como: teclados, mouses, memorias USB, joysticks, escáneres, cámaras digitales, teléfonos móviles, reproductores multimedia, impresoras, dispositivos multifuncionales, sistemas de adquisición de datos, módems, tarjetas de red, tarjetas de sonido, tarjetas sintonizadoras de televisión y grabadoras de DVD externa, discos duros externos y disqueteras externas. Su éxito ha sido total, habiendo desplazado a conectores como el puerto serie, puerto paralelo, puerto de juegos, Apple Desktop Bus o PS/2 a mercados-nicho o a la consideración de dispositivos obsoletos a eliminar de las modernas computadoras, pues muchos de ellos pueden sustituirse por dispositivos USB que implementen esos conectores.

La placa de arduino UNO integra un segundo  microcontrolador Atmega8U2 programado como un convertidor o puente del conector USB con el microATmega328 a través de la USART.

O sea el micro ATmega8U2  sirve de puente entre el USB del PC y la USART que trae internamente el micro Atmega328 del Arduino.

Como se trata de otro microcontrolador tiene su propio conector de preogramación ICSP que permitirá su programación y actualización de firmware ,como un sistema embebido, indispensable para poder programar el Arduino.


miércoles, 28 de enero de 2015

¿ Qué es un Sistema Embebido ?

Es un sistema electrónico en el que confluyen hardware y software, específicamente diseñado para realizar tareas concretas. Normalmente en su hardware dispone de un microcontrolador como parte central.

 Además tiene unos periféricos para interconectarse con otros dispositivos.

 Puede ser que en el hardware en lugar de microcontrolador disponga de un DSP(Digital Signal Processor) o de FPGA (Field Programmable Gate Array).   

Los elementos del hardware ejecutan un programa llamado firmwareEl firmware es un bloque de instrucciones de máquina para propósitos específicos, grabado en una memoria, normalmente de lectura/escritura (EEPROM,Flash,etc), que establece la lógica de más bajo nivel que controla los circuitos electrónicos de un dispositivo de cualquier tipo. 
En resumen, un firmware es un software que maneja físicamente al hardware.
El programa BIOS de un computador es un firmware cuyo propósito es activar una máquina desde su encendido y preparar el entorno para cargar un sistema operativo en la memoria RAM.
El término  firmware   significa "software firma, fijo o sólido"

En el caso de una lavadora, esta se compone de un chasis, de motores eléctricos y bombas de agua, de un frontal con varias teclas para que el usuario pueda poner en marcha la lavadora, contiene temporizadores y válvulas eléctricas que controlan el flujo del agua, y más componentes. 
En este conjunto nos podemos fácilmene imaginar la necesidad un circuito electrónico que contenga los diferentes programas de lavado del que disponga el electrodoméstico. Y por razones obvias, esta electrónica no sería otra cosa que un microcomputador o microcontrolador, especialmente diseñado para dicho fin. Por lo tanto pdemos hablar de un sistema embebido o empotrado en el interior de la lavadora.

Desde 1996 la mayoría de los automóviles han empleado una computadora a bordo y varios sensores para detectar problemas mecánicos. Los vehículos modernos también emplean sistemas controlados por computador ABS y sistemas de control de transmisión operados por computadora. El conductor puede también recibir información "in-dash" mientras conduce de esta manera, como por ejemplo lecturas en tiempo real de la economía del combustible y de la presión del neumático. La mayoría del firmware del vehículo puede ser actualizado en un distribuidor local autorizado.


El sistema antibloqueo de ruedas o frenos antibloqueo,  Antiblockiersystem (ABS), es un dispositivo utilizado en vehículos  que hace variar la fuerza de frenado para evitar que los neumáticos pierdan la adherencia con el suelo.


El sistema fue desarrollado inicialmente para los aviones, los cuales acostumbran a tener que frenar fuertemente una vez han tomado tierra. En 1978 Bosch hizo historia cuando introdujo el primer sistema electrónico de frenos antibloqueo. Esta tecnología se ha convertido en la base para todos los sistemas electrónicos que utilizan de alguna forma el ABS, como por ejemplo los controles de tracción y de estabilidad.
El ABS funciona en conjunto con el sistema de frenado tradicional. 


Consiste en una bomba que se incorpora a los circuitos del líquido de freno y en unos detectores que controlan las revoluciones de las ruedas. Si en una frenada brusca una o varias ruedas reducen repentinamente sus revoluciones, el ABS lo detecta e interpreta que las ruedas están a punto de quedar bloqueadas sin que el vehículo se haya detenido. Esto quiere decir que el vehículo comenzará a deslizarse sobre el suelo sin control, sin reaccionar a los movimientos del volante. Para que esto no ocurra, los sensores envían una señal al Módulo de Control del sistema ABS, el cual reduce la presión realizada sobre los frenos, sin que intervenga en ello el conductor. Cuando la situación se ha normalizado y las ruedas giran de nuevo correctamente, el sistema permite que la presión sobre los frenos vuelva a actuar con toda la intensidad. El ABS controla nuevamente el giro de las ruedas y actúa otra vez si éstas están a punto de bloquearse por la fuerza del freno. En el caso de que este sistema intervenga, el procedimiento se repite de forma muy rápida, unas 50 a 100 veces por segundo, lo que se traduce en que el conductor percibe una vibración en el pedal del freno.
El ABS permite que el conductor siga teniendo el control sobre la trayectoria del vehículo, con la consiguiente posibilidad de poder esquivar posibles obstáculos mediante el giro del volante de dirección.

Arduino permite implementar sistemas embebidos de forma sencilla, debido al uso de las tarjetas de expansión o Shields  adicionadas a la tarjeta principal.


Así se permite que el desarrollador se concentre en la programación del firmware y en la funcionalidad del sistema sin preucuparse del hardware requerido.
El firmware es el código de los elementos programables ya sea el microcontrolador, DSP o FPGA.
Se escribe como texto en un determinado lenguaje, por ejemplo C, VHDL,etc. El código del firmware es compilado y convertido al código de máquina del elemento central del sistema embebido.


SISTEMAS INTEGRADOS CON ARDUINO -JOSE RAFAEL LAJARA VIZCAINO- LIBRO DE TEXTO

En este libro se intentan plasmar todas las facetas que integra el Arduino, desde la presentación del hardware en el que se basa la tarjeta hasta las herramientas de generación del código integradas en el entorno de desarrollo. Conjuntamente con la presentación de los contenidos de cada sección, el libro muestra multitud de ejemplos de diseño que exponen de forma clara toda la potencia y alcance de esta tecnología. Se presenta toda la información necesaria para desarrollar aplicaciones complejas a partir de los bloques de diseño básicos.


El lector puede descargar el entorno de desarrollo desde la página web del equipo Arduino (http://arduino.cc/) para compilar los ejemplos expuestos en el texto. Con todo ello el lector podrá construir sus propios sistemas basados en Arduino y convertir sus ideas en dispositivos funcionales, ya sea con un objetivo profesional, educacional o de entretenimiento.



martes, 16 de septiembre de 2014

Alarma con Reed Switch

Un reed switch  es un interruptor eléctrico activado por un campo magnético.
Cuando los contactos están normalmente abiertos se cierran en la presencia de un campo magnético; cuando están normalmente cerrados se abren en presencia de un campo magnético. Fue inventado por W. B. Elwood en 1936 cuando trabajaba para Laboratorios Bell.
El campo magnético puede estar generado por un imán permanente o por una bobina.

Se pueden encontrar en los sensores de las puertas y ventanas de las alarmas antirrobo, el imán va unido a la puerta y el reed switch al marco.
Vamos a implementar con Arduino una Alarma. Cuando el Reed Switch está en nivel alto debido a la presencia del imán la alarma está desactivada, pero al quitar el imán la alarma se activa haciendo sonar un Buzzer Piezo eléctrico y parpadear un Led.
Zumbadorbuzzer en inglés, es un transductor electroacústico que produce un sonido o zumbido continuo o intermitente de un mismo tono.  Es un tipo de altavoz basado en la propiedades de los cristales piezoeléctricos (poliéster o cerámica), que se deforman cuando se les aplica una tensión entre sus caras y que actuando como transductor electroacústico es utilizado para la reproducción de sonido.

Utilizamos el siguiente esquema el cual fue elaborado con el programa FRITZING el cual se puede descargar gratuitamente en http://fritzing.org/download/

El programa para el arduino es el siguiente:
El lector puede verificar que el programa responde al siguiente diagrama de flujo:

Nota: Para que se pueda leer un nivel alto (HIGH)  en el Reed Switch debe estar colocado el imán, de lo contrario se leerá en el un nivel bajo (LOW).