Mostrando entradas con la etiqueta Laboratorio Cómputo Integrado. Mostrar todas las entradas
Mostrando entradas con la etiqueta Laboratorio Cómputo Integrado. Mostrar todas las entradas

sábado, 19 de mayo de 2012

Otra opción aumentar I/O Arduino

En esta entrada les compartiré una manera bastante simple de poder aumentar las entradas o salidas del Arduino sin necesidad de comprar shift registers, pero teniendo en cuenta que disponemos de 2 Arduinos, esto es el mejor camino para aumentar salidas o entradas cuando tenemos ArduInos de sobra :).
Materiales que ocupamos:


  • 2 Arduinos
  • 1 Led
  • 4 cables 
  • Fuente de poder


Lo primero que vamos a hacer es conectar nuestros Arduinos de una manera muy simple:



Podemos ver que ocupamos los mismos puertos del Arduino master y del Arduino esclavo, conectamos la salida de 5v del master al esclavo, la salida GND del master al esclavo, y las entradas analógicas 4 y 5 del master al esclavo también a la 4 y 5.

Ahora colocamos un led en el pin 13 del Arduino esclavo, ya que nuestro programa tendrá como propósito apagar y prender un led.

Ahora programamos para el Arduino master:




Y para el Arduino esclavo:




Básicamente estamos diciendo en el programa master en el loop que escriba en el pin 13 del Arduino 2, y manda valores HIGH y LOW cada ciertos segundos para apagar y prender el led.
En el programa esclavo, se recibe el evento y se escribe en la salida digital el estado y el pin que se mando en el master.
Es muy fácil de hacer y bastante útil.

Aquí un vídeo y fotos de como me quedo a mi:



            





jueves, 10 de mayo de 2012

Seeeduino

Seeeduino es compatible con una placa Arduino. Está diseñado basando en Diecimila, el 100% compatible con su actual programa y el IDE. En la parte de hardware tiene cambios notables con medidas para mejorar la flexibilidad y la experiencia del usuario.


Descripción

  • Microcontrolador ATMega168
  • Voltaje de operación 5V/3.3V
  • Voltaje de Entrada (recomendado) 7-12 V
  • Voltaje de Entrada (límites) 6-20 V
  • Digital pines I / O 14 
  • Pines de entrada analógica 8
  • Corriente de I / S de CC Pin 40 mA
  • De corriente continua de 3.3V Pin 50 mA
  • Memoria Flash de 16 MB (2 KB de la cual es utilizada por gestor de arranque)
  • SRAM 1 KB
  • 512 bytes de EEPROM
  • Velocidad del reloj de 16 MHz.

Características

  • Hereda todas las características de la Arduino Diecimila.
  • Compatible con la disposición de las clavijas Diecimila, el tornillo hueco y las dimensiones.
  • Evoluciona con componentes SMD
  • Mejora de la extensibilidad y conveniencia.




¿Cuáles son los cambios de Arduino a Seeeduino?



  • Duplicar digital de IO a 100mil la red para la compatibilidad prototipo de placa.
  • Reducir la altura de los componentes por debajo de los encabezados de las mujeres.
  • Facilitar el acceso a los botones e interruptores.
  • Cambiar tipo-B del puerto USB a Mini USB.
  • Vuelva a colocar 3.5mm DC Power Jack para conectar la batería el pin 2.
  • Restablecer y el indicador de alimentación cerca de botón RST.
  • Auto-reset de selección.
  • Selección de 3.3V Voltaje de operación.
  • Pin de UART para FTDI232 explosión de bits operación.
  • Pin de 2 extra ADC.
  • Condensador opcional para mejorar el rendimiento de salida de 3.3V.
  • Re-ruta de PCB
  • Pin out para I2C y sensores




1. Duplicar digital de IO a 100mil la red para la compatibilidad prototipo de placa.
2. Reducir la altura de los componentes a continuación los encabezados de las mujeres.
3. Un acceso más fácil a los botones y los interruptores.
4. Cambiar tipo-B del puerto USB a Mini USB.
5. Vuelva a colocar 3.5mm DC Power Jack para conectar la batería el pin 2.
6. Restablecer y el indicador de alimentación cerca de botón RST.
7. Auto-reset de selección.
8. Operación de selección de voltaje de 3.3V.
9. Pin out UART para FTDI232 explosión de bits operación.
10. Pin out 2 extra ADC.
11. Pin out para I2C y sensores.
12. Condensador opcional para mejorar el rendimiento de salida de 3.3V.

Ejemplo de uso




jueves, 3 de mayo de 2012

Problemas Arduino BT

Al tratar de conectar el Arduino BT de la forma que expliqué la primera vez , parece que eso solo funciono por ese rato, a la siguiente vez que he intentado no tuve los mismos resultados. así que tuve que empezar a  moverle a otras cosas.



Este es mi archivo modificado, de la manera que a mi me funcionó:




Lo que si se debe hacer es:



  • Agregar el dispositivo BT de la manera explicada en la entrada pasada.
  • Resetear el dispositivo antes de cada subida de código, es necesario antes de picar al botón de Update resetear el BT y esperar aproximadamente 2 segundos para ahora si picar Update al código.


Lo que no es:

Abrir el terminal y desde ahí hacer una conexión previa, esto no sirve de nada, al contrario trae problemas con la conexión del IDE del Arduino ya que dice que el programador esta ocupado con otra cosa, o que el puerto esta ocupado, en fin muchísimos errores relacionados con que dos cosas están usando el mismo dispositivo. Es por eso que NO se debe de abrir el terminal para la conexión previa.

Instrucciones de microcontroladores clásicos

Esta entrada la había olvidado publicar, se que ahora es tiempo para Arduino :)


Instrucciones de microcontroladores clásicos


Clasificación de instrucciones

En la entrada pasada de procesadores digitales de señales, hable sobre los MCU que son los microcontroladores clásicos estos se diferencian de los DSP (Procesadores Digitales de Señales), en que los MCU ejecutan en varios ciclos instrucciones aritméticas complejas en varios ciclos mientras que los DSP hacen esto en una misma instrucción. Los DSP tiene conversores AD rápidos y precisos, además se pueden programar con lenguajes de alto nivel, como C. La velocidad y rendimiento de los DSP es muy superior que la de los MCU.

Los DSC (Controladores Digitales de señales), combinan las instrucciones típicas de los microcontroladores, llamadas instrucciones MCU, con las especializadas en resolver algoritmos matemáicos para el procesamiento de señales llamadas DSP.

Los DSC cuentan con 84 intrucciones, que se pueden agrupar en 10 categorías, y que se distinguen por las funciones que realizan:

  • Instrucciones de movimiento
  • Instrucciones lógicas
  • Instrucciones matemáticas
  • Instrucciones de rotación y mantenimiento
  • Instrucciones de bit
  • Instrucciones de comparación y brinco
  • Instrucciones de control de flujo de programa
  • Instrucciones de pila y registros sombra
  • Instrucciones de control
  • Intrucciones DSP


Las primaras son las intrucciones de los MCU mientras que la última son las instrucciones DSP de las que pienso hablar en otra entrada.

Instrucciones de movimiento

La instrucción MOV es una de las más usadas en la mayoría de los programas. En lenguaje ensamblador se editan las instrucciones. Explicaré las instrucciones más usadas.
Cuando se especifica el operando {,WREG}, el destino en las instrucciones es WREG (W0), pero si no se específica el operando destino, actúa como tal la dirección de la memoria de datos F.
Las instrucciones EXCH intercambia el contenido de los registros a los que afecta y se ejecuta en una sola instrucción.
La instrucción SWAP intercambia las dos mitades de la palabra de trabajo depositadas en Wn (es el parámetro de entrada), también ejecuta la instrucción en un solo ciclo.

Instrucciones lógicas

Estas instrucciones estan encargadas de hacer operaciones lógicas bit a bit entre los operandos fuente, depositando el operando en el destino. Incluye las operaciones AND, OR y EXOR.
La instruccion con el nemónico COM se refiere al complemento a 1 del operando fuente dejandolo en el destino.
NEG es el complemento a 2.
CLR borra o pone a 0 el operando al que afecta.
SETM pone a 1 los bits del operando sobre el que actúa. Todos esas operaciones se ejecutan en un solo ciclo.

Instrucciones matemáticas

Soporta las operaciones aritméticas principales como son la suma (ADD), la resta (SUB), la multiplicación (MUL) y la división (DIV).
Hay algunas variantes que además de la suma o resta permiten participar el acarreo o la llevada como ADDC y SUBB.
También hay instrucciones simples que incrementan o decrementan los operandos como INC y DEC.
DAW.B Hace un ajuste decimal del byte de menos peso del registro Wn, dando un resultado BCD.
SE Extiende el signo del byte que esta depositado en Ws y el resultado de 16 bits lo carga en Wnd.
ZE Extiende con 0 el byte de menos peso del registro de trabajo duente Ws y el resultado de 16 bits lo deposita en el destino Wnd.

Instrucciones de rotación y desplazamiento

Este grupo contiene las instrucciones que realizan el desplazamiento aritmético o lógico, a la derecha como a la izquierda, con un máximo de 15 posiciones.
La instrucción ASR Wb, Wns, Wnd produce un desplazamiento aritmético a la derecha del contenido del registro Wb un número de posiciones que esta determinado por los 4 bits de menos peso de Wns de máximo 15, depositando el resultado en el registro Wnd.
La rotación ala izquierda o a la derecha se pueden ejecutar a través del acarreo (RLC y RRC), o sin tener en cuenta el acarro (RLNC y RRNC).
Las instrucciones con nemónico LSR, produce un desplazamiento lógico a la derecha y SL hacia la izquiera, aquí el bit de más peso del operando fuente al desplazarse pasa a ocupar el bit señalizador de acarreo, escribiendo un cero en el bit de menor peso del operando.

Instrucciones de bit

Estas instrucciones hacen una operación sobre un bit concreto de una posición de la memoria de datos direccionada pro F, de un registro de trabajo Ws.
La instruccion BCLR Ws, #bit4 pone en 0 el bit de registro Ws que esta determinado por el valor del #bit4, que es un valor que esta comprendido entre 0 y 15.
La instruccion BCLR f, #bit4, pone en 0 el bit específicado por #bit4 en el contenido de la posición de memoria de datos con la dirección f.
Con el nemónico BSET pone a 1 el bir especificado.
BSW.C Ws, Wb escribe el valor de acarreo C en el bit de registro Ws que se especifíca por los 4 bits de menos peso del registro Wb.
BSW.Z Ws, Wb hace una operación muy parecida a la anterior solo que escribe el valor de señalización Z negado. Las operaciones con nemónico BTG invierte el valor del bit especificado en el operando.
BTST testea un bit de un registro Ws o de una posición de memoria F y lo guarda en el señalizador C cuando tienen la extensión .C, pero si es la extensión Z se carga en Z el valor del bit testado. Entre otras.

Instrucciones de comparación y brinco

Estas son instrucciones que comprueban una condición o que comparan un valor de un bit concreto y según su valor binario se brinca o no. El brinco consiste en un salto pequeño, se salta ala instrucción siguiente. Cuando no se cumple la condición impuesta al bit a comparar se ejecuta normalmente la siguiente instruccion.


Referencias

Angulo Usategui, José María, Susana Romero Yesa, and Ignacio Angulo Martínez. Microcontroladores PIC, Diseño práctico de aplicaciones 2da parte, McGraw-Hill, 2006.


martes, 20 de marzo de 2012

Configuración Arduino BT

Arduino IDE

Lo primero que tenemos que hacer es descargar el software necesario para programar en Arduino que hace que sea más sencillos escribir código y subirlo.
Como yo lo estoy instalando en Linux lo que voy a hacer es buscar el IDE Arduino en el Centro de Software:


Instalamos y podremos ver algo como esto: 


Ahora cerramos esto, y empezemos a configurar si no, no será posible pasar el programa al Arduino. 


Configuración Conexión PC (Ubuntu 11.10 ) - Arduino Bluetooth

Para comenzar a usar el Arduino Bluetooth tenemos que eliminar la librería brltty, esto lo hice entrando al Centro de Software Ubuntu.


Ahora hay que identificar desde nuestra computadora en Arduino, y escribir la clave por default del Arduino en la computadora que es "12345", para así poder enviar los programas al Arduino.

Es importante resaltar que me pareció bastante extraño que la computadora solo detectaba el dispositivo cuando lo acababa de conectar, después de tiempo conectado dejaba de detectarlo y tenía que aplanar al botón Reset, esto lo hice muchas veces ya que batallaba para detectarlo.

En la página principal de Arduino recomiendan conectar el Arduino con la PC por medio del botón que podemos ver en la parte superior derecha de nuestra pantalla:



Sin embargo a través de esta aplicación es imposible agregarlo, ya que al querer agregar un nuevo dispositivo BT te pide meter una clave para el Arduino y una vez que la introdujiste espera a que ahora desde el Arduino escribamos la clave que esta en pantalla lo cual es imposible. Y lo que siguieren en la página oficial es irte a explorar archivos y de ahi escoger el Arduino BT y introducir la clave, sin embargo esta opción ya no esta en Ubuntu 11.10, eso funcionaba para Ubuntu 9.XX, entonces lo que hice fue instalar otra aplicación que manejara también conexiones BT.

                                    


Bien, ahora desde ahí buscaremos los dispositivos BT disponibles:


Damos click derecho, y apareceran varias opciones, damos click en Pair y nos aparece un cuadro de texto para meter la contraseña del Arduino, ahí solo introducimos 12345.

Ahora podemos ver en la aplicación Bluetooth que ya estan relacionados los dispositvios.



Ahora nos vamos a un terminal y checamos los dispositivos BT que detecta la computadora, con el siguiente comando "hcitool scan":



En la imagen podemos ver que nos da la dirección de nuestro dispositivo con este dato ahora podemos modificar el archivo "rfcomm.conf", que se encuentra en "/etc/bluetooth/", yo accedo desde un emacs de la siguiente manera: "sudo emacs -nw /etc/bluetooth/rfcomm.conf", y en el archivo vemos algunas líneas comentarizadas con # quitamos los # de manera que quede algo así(además fijate que cambie la dirección a la de mi arduino que me mostró el paso anterior, también cambié el comentario) y bin cambia a "yes":




Ahora guardas cambios, y lo que se tiene que hacer es ir a un archivo en donde podemos configurar diferentes aspectos de nuestro Arduino, es primordial que modifiques lo siguiente,  este archivo se llama "preferences.txt"  que se encuentra en "~/.arduino/preferences.txt", en mi caso yo accedo de esta manera: "cecy@cecy-Inspiron-N4020:~/.arduino$ sudo emacs -nw preferences.txt"

Ahora vemos un emacs, ese emacs nos muestra preferences.txt, ahi buscaremos el renglon 34 donde dice: serial.port= COMM1, cambiamos COMM1 por "/dev/rfcomm0", y guardamos cambios.



Ahora puedes conectar el Arduino a la PC con este comando(obviamente la direccion la cambias a la tuya) "rfcomm connect 0 00:07:80:42:05:51" y así podemos iniciar la conexión y poder pasar los archivos al Arduino:


Si a ti también te aparece ese mensaje entonces todo esta bien.


Programación

Ahora para empezar a probar el Arduino BT, usaré el siguiente código que lo que hace es prender y apagar un led:






Ahora compilamos el archivo, y para enviar el programa al Arduino y poder ver que de verdad funciona, debemos colocar el led en el pin 13, de la siguiente manera:


Y porfín podemos enviar el programa al Arduino, primero checamos en el terminal que la conexión aun este corriendo:


Si es así, desde el programa Arduino, ahora presionamos el botón Upload, y subirá el arcivo al Arduino y podremos ver el led parpadeando:



Resultado




Referencias

Código
Arduino BT

lunes, 19 de marzo de 2012

Arduino BT para proyecto

Como ya lo había mencionado antes mi proyecto para la materia de Cómputo Integrado usando Arduino es un Cubo de leds de 10x10x10, pero este proyecto lo voy a combinar con Dispositivos Móviles en dónde lo que quiero hacer es controlar desde el celular los leds de la matriz(Proyecto móviles), para esto es necesario tener un Arduino BT, en esta entrada hablare sobre las especificaciones y algunos ejemplos de proyectos hechos con Arduino Bluetooth.


Arduino BT

  • La principal y obvia diferencia a los demás Arduinos es su comuicación BT en vez de USB.
  • El arduino BT es más delicado que los Arduinos normales, es más frágil y fácil de romper.
  • Es importante tomar en cuenta que el se debe de alimentar con un voltaje no mayor a los 5.5V y la polaridad no se debe de invertir si se hace alguna de estas dos cosas la placa se dañará. La mínima de voltaje que ocupa es 1.2 V.
  • Tiene un microcontrolador ATmega168 que no se debe intentar quitar.
  • Tiene 8 entradas analógicas adicionales.
  • El pin7 esta conectado al modulo RESET de manera que solo se debe usar para eso.

Caracteristicas generales:
  • Microcontrolador: ATmega328
  • Volaje de Operación: 5V
  • Voltaje de entrada: 1.2 -5.5V
  • I/O Pines digitales: 14 (y 6 se pueden usar como salidas PWM)
  • Entradas analógas: 6
  • DC I/O Pines: 40 mA
  • DC Current for 3.3V Pin: 50 mA
  • Flash memory: 32 KB
  • SRAM: 2KB
  • EEPROM: 1 KB
  • Velocidad de reloj: 16 MHz


Alimentación
  • 9V. Es una entrada de voltaje, podemos suplir la entrada de voltaje atravez de este pin, pero debemos tener cuidado ya que se puede dañar con los 9V.
  • 5V. Es usado para dar poder al microcontrolador y los otros componentes.
  • Gnd. Es la coneción a tierra.

Memoria

El ATmega328 tiene 32 KB de memoria flash para almacenar el código, y 2 KB se usan para el gestor de arranque. Tiene 1 KB de SRAM y 512 bytes de EEPROM.


Salidas y Entradas

Los 14 pines digitales pueden ser usados como entradas o salidas, ellos operan con 5V y pueden dar o recibir 40 mA y tienen un resistor interno de 20 a 50 kOhms. Además cada pin tiene alguna función especifica:

  • Serie: 0(RX) y 1(TX), se usa para recibir(RX) y transmitir (TX) datos en serie TTL.
  • Interrupciones externas: 2 y 3, se usan para crar una interrupción en un valor bajo, un borde ascendente o descendente, o en el cambio de valor.
  • PWM: 3, 5, 6, 7, 8, 9, 10 y 11. Se proporcionan 8 bits de salida PWM con la función analogWrite().
  • SPI: 10(SS), 11(MOSI), 12(MISO), 13(SCK), esos pines apoyan la comunicación SPI, que no esta invluido en el lenguaje de Arduino.
  • BT Reset: 7. Esta conectado a la línea de reposición.
  • LED: 13, cuando este pin es de alto valor el led esta encendido, cuando esta en bajo esta apagado.
  • Entradas analógicas: son 6 entradas, cada una puede proporcionar 10 bits de resolución, esto quiere decir 1024 valores distintos.


Comunicación BT

El modulo blueGiga W711, permite la conexión entre Arduinos, Teléfonos o PC's u otros dispositivos con bluetooth. Se comunica con el microprocesador ATmega328 a través de serie.


Características físicas

Mide aproximadamente 8 cms por 5 cms. Tiene 3 orificios para poder atornillarlo a alguna superficie, dependiendo el proyecto.



Referencias

Imágenes propias
 


Arduino

¿Qué es un Arduino?



Es una plataforma de hardware que tiene un entorno para su desarrollo, que ayuda a desarrollar proyectos multidisciplinarios de electrónica. La manera de programar el software provee muchas ventajas para el desarrollador.  Su hardware consite básicamente en un microcontrolador Atmel AVR y puertos de entrada y salida. El arduino puede ser usado para desarrollar cualquier tipo de proyecto sin haber adquirido alguna licencia.

Componentes del Arduino






USB
Se utiliza para subir los programas al arduino, para comunicar el arduino y la computadora y algunas veces como alimentacion del arduino.

Selector de alimentación externa o por USB
Se coloca un jumper en los pines cercanos a la alimentacion. En los arduinos más actuales la selección de alimentación es automática.

Entrada de alimentación externa
VIN aveces es marcada como 9V, este voltaje se usa cuuando hay una fuente de alimentación externa. Las diferentes placas aceptan diferentes tipos de voltaje, poreso es importante btener en cuenta la documentación de cada arduino.
5V, es la alimentacion regulada usada para alimentar al microcontrolador y los demás componentes de la placa. Esta fuente puede venir del VIN o del USB u otra fuente regulada de 5V.

Terminal de referencia analógica
Es una referencia de voltaje para las entradas analógicas.

Terminales digitales
Las terminales digitales pueden ser usadas como entradas o salidas de propósito general, atravez de comandos como pinMode(), digitalRead(), y digitalWrite(). Cuando el pin se usa como entrada tiene una resistencia pull-up que puede activarse o desactivarse. Y cuando se usa como salida produce una salida máxima de 40 mA.

  • Terminales digitales de entrada y salida(Serial: 0 (RX) y 1(TX)). Se usa para recibir(RX) y transmitir(TX) datos serie TTL.
  • Interrupciones externas, son la 2 y 3 son configuradas para disparar una interrupción con un valor bajo, con pulso de subida o de bajada o con un cambio de valor.
  • PWM algunos pines tienen esta marca que significa que porporcionan salidas de 8 bit con la función analogWrite().

Microcontrolador
Los microcontroladores mas comunes que tienen estas placas son el ATmega168 (en la mayoría) y el ATmega8 (más antiguo). Algunas caracteristicas generales son:
Terminales de E/S digitales: en el 168 tienen 14 y 6 que pueden proporcionar salidas PWM y en el 8 tienen 14 salidas y 3 que se pueden usar como PWM.
Terminales de entrada analógicos: 6(DIP) o 8(SMD) para el arduino 168 y el arduino 8 cuenta con 6 pines de entrada analógica, ambos tienen una corriente de 40 mA en sus pines de E/S, el arduino 168 tiene una memoria flash de 16 KB y el arduino 8 de KB, ambos tienen una SRAM de 1KB y memoria EEPROM de 512 bytes.

Botón de reinicio
Se usa para reiniciar la placa.


Tipos de Ardinos
  • Duemilanove: Esta es la versión más nueva de Arduino USB básica, se puede conectar al ordenador con un cable USB estándar y tiene todo lo necesario para la programación. Pueden añadirsele multiples accesorios para expandir algunas funcionalidades.
Duemilanove
  • Diecimila: Es la versión inmediata anterior del Duemilanove.
Diecimila
  • Nano: Es una placa compacta para usarla en placas de desarrollo directamente, se puede conectar al ordenador con un cabke Mini-B USB.
Nano
  • Mega: Es un Arduino grande y potente, compatible con mulitples accesorios de las placas Duemilanove y Diecimilla.
Mega
  • Bluetooth: Este cuenta con modulo bluetooth y puede programarse y comunicarse sin cables. 
Arduino BT
  • LilyPad: Se usa para aplicaciones sobre ropa, ya que puede ser cosida, tiene un diseño con estilo y es color purpura.
LilyPad
  • Mini: Es la placa más pequeña, funciona en una placa de desarrollo o en donde se requiere minimizar el uso de espacio. Se conecta a la computadora con un adaptador Mini USB.
Arduino mini
  • Adaptador Mini USB: Esta placa convierte una conexión USB a 5V, toma tierras, líneas TX y RX que se pueden conectar al Arduino MIni o a otro microcontrolador.
Arduino Mini USB
  • Pro: Es diseñada para los proyectos en los que es necesario dejar la placa incrustada en el proyecto, es más economica que la Diecimila y es facil alimentarla con baterías, pero necesita componentes extra y montaje.
Arduino Pro
  • Pro Mini: Al igual que la Pro, la Pro Mini esta diseñada para usuarios avanzados que requieren de bajo costo, menor tamaño y soporte de un poco de trabajo extra.
Arduino Pro mini

  • Serial: Esta placa usa una interfaz RS232 como una comunicación con el ordenador para programación o intercambio de datos. 
Arduino Serial
  • Serial a una cara: Esta placa es diseñada para ser trazada y armada a mano, es más grande que la Diecimila y compatible con los shields.
  • Shields: Esta no es un tipo de Arduino, más bien son placas que se pueden agregar a los arduinos para ampliar alguna caracteristica, son controladas desde el arduino. Un ejemplo de esto es Shield Ethernet que permite a una placa Arduino conectarse a una red Ethernet y acceder a Internet.
Ethernet Shield


Aplicaciones
Las aplicaciones del Arduino son multiples, se pueden usar en proyectos escolares o en proyectos más elaborados aplicados a la industria, eso se debe a su facilidad de programación. También se puede usar en proyectos personales, dependiendo de la imaginación de cada quien.




lunes, 5 de marzo de 2012

Protoboard

Un protoboard o breadboard es una tablita que tiene orificios para que podamos insertar en ella componentes electrónicos y cables y formar circuitos, ahí podemos experimentar circuitos electrónicos para asegurarnos de su correcto funcionamiento.




De uso temporal: Protoboard o breadboard

Protoboard

Esta es una de las placas para hacer pruebas que mas se usa,  la componen bloques de plástico perforados y laminas delgadas hechas de una aleación de cobre, estaño y fósforo que unen las perforaciones creando lineas de conducción paralelas. Las líneas son cortadas en la parte central del bloque de plástico para que los dispositivos en circuitos integrados sean insertados perpendicularmente y sin tocarse con los conductores y en el otro lado se tiene una capa de pegamento que sirve para mantener unidas las capas del metal. Estas placas están diseñadas para trabajar con frecuencias bajas de aproximadamente 10 o 20 MHz.

Es posible trabajar con varias protoboards para crear prototipos electrónicos más complejos que tengan de decentas hasta cientos de componentes.

La palabra protoboard viene de las palabras en inglés proto de prototype y board, aunque en Estados Unidos y en Inglaterra es más usado el término breadboard debido a que antes los electrónicos usaban las tablas donde se cortaba el pan para montar lo circuitos electrónicos.

El protoboard lo podemos dividir en 3 partes:


A: Es el canal central, donde se colocan los circuitos integrados.

B: Son los buses que generalmente se encuentran en las orillas, la linea roja representa los buses positivos o de voltaje y la linea azul la conexión a Tierra. Generalmente se conecta la alimentación de voltaje.

C: Son la parte central, se conducen según las líneas rojas.


Uso permanente o temporal: Perfboard y Stripboard

Estas tablas generalmente se fabrican con material llamado baquelita y luego se ponen las placas de metal que sirven para unir los componentes.

Perfboard
Stripboard






Perfbroad : Es una tabla que esta perforada y que tiene material conductor como cobre, pero nada esta unido entre si, se tienen que soldar los componentes y unir con cables cada uno de ellos.


Este es un vídeo donde muestran brevemente pero completo un proyecto hecho en perfborad.





Stripboard: Es un tipo de perfbroad pero con la particularidad de que las líneas si están conectadas, y forman líneas de material conductor.




Fuentes

¿Que es un protoboard?
Placas de pruebas

Micro'PIC Trainer Plus

Algunas veces cuando usamos los PIC necesitamos usar más capacidades de las que tienen, como por ejemplo, más memoria, aumentar capacidad en el manejo de periféricos de E/S o también conectarlos con más PIC para poder dividir las tareas, es decir trabajar en paralelo. Este tipo de cosas las podemos hacer con  Micro'PIC Trainer Plus.


Tarjeta de ampliación Micro'Pic Trainer Plus

Este permite ampliar y utilizar los recursos más avanzados de los microcontroladores PIC. Las partes fundamentales que lo conforman son:



1. Picbus: Se comunica la tarjeta con el MicroPic Trainer que es el que contiene el PIC, mediante el cable plano insertado en dicho conector.

2. Teclado matricial hexadecimal:  Este tipo de teclados necesitan 8 líneas de entrada y salida, que corresponden a 8 líneas de la puerta B.

3. Canal de comunicación RS-232: lo compone un conector DB9 y la circuitería auxiliar como un MAX232, trabaja con las líneas RC6 y RC7 en los PIC que, como los 16F87X, implementan el USART por hardware o con las líneas RB4 y RB5 si se gestiona por software.

4. Display de 4 dígitos de 7 segmentos: Se controla con un dispositivo 12C SAA 1064 integrado en la tarjeta.

5. 8 líneas de E/S digital: Las proporciona el dispositivo 12C PCF8574 y cada línea se asocia a un LED que funciona por lógica inversa con los cuales se puede conocer el estado de las líneas disponibles en el exterior.

6. 4 Canales analógicos y 1 canal digital analógico: Se usa para conectar los transductores, son porporcionados por el dispositivo  12CPCF8591.

7. Reloj calendario: es controlado por el dispositivo PCF8583 y es alimentado por una batería recargable  que lo mantiene en hora aun con falta de tensión de alimentación.



Fuentes

Angulo Usategui, José María, Susana Romero Yesa, and Ignacio Angulo Martínez. Microcontroladores PIC, Diseño práctico de aplicaciones 2da parte, McGraw-Hill, 2006.

Microchip

domingo, 4 de marzo de 2012

PIC's Aportaciones gamma mejorada

La familia PIC18F fue lanzada por Microchip en 1999 y formo una nueva gamma de microcontroladores RISC de 8 bits con arquitectura Harvard con los últimos avances y los periféricos para las aplicaciones  en el área de automoción, comunicaciones, ofimática , productos de gran consumo y control industrial.
Las familias entonces existentes eran PIC16F y PIC12F, entonces el objetivo de esta nueva gamma fué que el usuario cambiara a dispositivos más modernos, con precio y características competitivas se pudieran hacer aplicaciones mas eficientes con mayor rendimiento y mayor complejidad.
Este cambio se dio sin afectar para quienes usaban los antiguos PIC's.
Dos grandes objetivos de PIC18F:

Compatibilidad
  • Núcleo compatible con el de los PIC16F y sus perifercos
  • Soporta la compatibilidad de software de nivel de código ensamblador y de lenguaje C. No hay compatibilidad en código objeto.
Elevado rendimiento
  • Máxima eficiencia del compilador C, que supera en un 50% al de los PIC16F.
  • Productividad que alcanza un rendimiento de 10 MIPS A 10 MHz.
Inicialmente esta familia tenia 4 modelos que tenían EEPROM de esos 4 modelos, dos estaban encapsulados con 28 patitas y los otros 2 con 40. Después la memoria EEPROM fue reemplazada por FLASH.
La aceptación que tuvieron fue tal que para el 206 ya tenían 80 modelos y los modelos actuales los podemos clasificar en tres categorías.

  • PIC18FXXXX, tiene rendimiento de 10 MIPS, voltaje de alimentación comprendido entre 2 y 5.5V, 77 instrucciones máquina, la mayoría con longitud de 16 bits y diseño orientado a la programación en lenguaje C.  El PIC18F8722 que tiene 64 K palabras de 16 bits de memoria FLASH del programa, 1KB de memoria de datos EEPROM, 3936 bytes de memoria de datos RAM, 70 lineas de E/S, todo eso en un encapsulado de 80 patitas.
  • PIC18XXJXX, tiene una tensión de alimentación  entre 2 y 3.6 V. De esta existen 14 modelos, entre ellos el PIC18F87J10 con 64 K palabras de 16 bits de memoria de programa FLASH, 3936 bytes de RAM, 68 lineas de E/S y un encapsulado de 80 patitas. Y no tienen memoria EEPROM.
  • PIC18FXXKXX, el voltaje de alimentación es de 1.8 y 3.6 V y disponen de memoria EEPROM.

Aquí una comparación entre el pic más y el menos poderoso de la subfamilia PIC18FXXXX:

Características PIC18F1220 PIC18F8722
Frecuencia máxima DC-40MHz DC-40MHz
Memoria de programa FLASH 2K palabras 64K palabras
Memoria de datos 256 Bytes 3936 Bytes
Memoria de datos EEPROM 256 Bytes 1 KBytes
Fuentes de interrupción 16 17
Líneas E/S 16 70
Temporizadores 3-16 bits, 1-8 bits, 1-WDT 3-16 bits, 1-8 bits, 1-WDT
ECCP 1 3
E/S serie EUSART 2xEUSART, 2x12C
Alimentación 2 - 5.5V 2 - 5.5V
C A/D (10 bits) 7 canales, 30 Ksps 16 canales, 100 Ksps
Rendimiento 10 MIPS a 10 MHz 10 MIPS a 10 MHz


Aportaciones especificas

  • Tecnología "nanoWat": Consume mucho menos energía. Se pueden activar modos de bajo consumo y se puede modificar el modo de ejecución controlando la frecuencia del oscilador  en el Timer1 o el oscilador interno R-C. También es posible detener el funcionamiento del CPU  manteniendo el trabajo de los periféricos en algunos casos concretos.
  • Espacio de direccionamiento lineal: Es posible controlar  un espacio de direccionamiento real de la memoria del programa de hasta 2 MB. Aunque los dispositivos comerciales actuales sólo tienen un tamaño máximo de memoria de programa FLASH de 64 K palabras de 16 bits.
  • Compatibilidad software: Todos los de la gamma mejorada soportan 77 instrucciones máquina la mayoría de las cuales tienen una longitud de 16 bits. Sólo hay 4 que tienen un tamaño doble. Algunas cosas nuevas son:
    • Instrucciones que pueden mover información entre dos posiciones de la memoria de datos.
    • Intrucciones que permiten mover información entre la memoria de datos y la del programa.
    • Es posible explorar o modificar  un bit de un registro o una puerta de E/S con ciertas intrucciones.
  • Compatiilidad hardware: Todos comparten el mismo conjunto de periféricos lo que hace una rápida y fácil transacción entre ellos. Se puede cambiar de un microcontrolador de 64 patitas a uno de 80 con facilidad gracias a la similitud en la distribución de instrucciones.
  • Orientación al lenguaje C: La mayor capacidad de las memorias y en los modos de direccionamiento se facilita el trabajo de los compiladores C.
  • Autoprogramabilidad: Se puede escribir en sus propios espacios de memoria de programa bajo el control de un software interno. Se puede que una aplicación actualice y modifique los campos de programa mediante una rutina de programa "bootloader" que esta en una área protegida llamada "Boot Block".
  • Diversidad de periféricos integrados: Tienen módulos de comunicación disponibles como el USART, SSP, SPI, I2C, etc y conversores AD de 16 canales.

Nomenclatura




Ejemplo PIC8F2331

Su CPU es PIC18, en el espacio para especificación de voltaje no hay nada lo que significa que es normal, osea 2-5.5V, la tecnología de memoria es Flash, el encapsulado indica que tiene de 20 a 28 pines, y el tamaño de la memoria del programa es de 4kpalabra.


Diagrama de conexiones

Encontre un ejemplo para los PICs que tienen 40 patitas, pero tambien hay de 18, 28 y 64 patitas.
28 patitas


40 patitas

Encapsulados









Fuentes

Angulo Usategui, José María, Susana Romero Yesa, and Ignacio Angulo Martínez. Microcontroladores PIC, Diseño práctico de aplicaciones 2da parte, McGraw-Hill, 2006. 221-228.