sábado, 7 de abril de 2012


El compilador gcc



Para traducir un programa a un archivo objeto ejecutable pero este esta escrito en un lenguaje de alto nivel se necesita pasar un proceso o mejor dicho consta de varias etapas.

En la siguiente imagen se muestran las etapas que corresponden al conjunto de herramientas de compilación gcc que permite traducir programas escritos en lenguaje de programación C.




Para poder ejemplificar los pasos usaremos un ejemplo en este caso un programa en C llamado hola_mundo.c.

En gcc para traducir este programa fuente a un archivo objeto ejecutable. Esto se realizara a través de las cuatro etapas mencionadas en la imagen. Para traducirlo ponemos el siguiente comando en la terminal.

El compilador lee el archivo hola_mundo.c y lo traduce al archivo objeto ejecutable hola_mundo.

En la primera etapa que es la del pre-procesador (cpp) modifica el  programa original de acuerdo a lo indicado por las directivas que comienzan con el carácter #.

En este caso la línea #include <stdio.h> le indica al pre-procesador que debe leer el archivo de encabezado stdio.h e insertar su contenido en el texto del programa.

La salida de esta etapa es el archivo intermedio hola_mundo.i:





Después de esto hola_mundo.i entra en la etapa siguiente que es la de compilador (ccl) el cual nos traduce el programa a lenguaje ensamblador. La salida de esta etapa es hola_mundo.s





A continuación pasamos a la etapa siguiente en donde el ensamblador (as) lee el archivo hola_mundo.s y lo traduce en instrucciones de lenguaje de maquina generando un archivo objeto re localizable el cual se guarda como hola_mundo.o:





Después el enlazador (ld) enlaza ese archivo objeto con otros archivos asociados a él,  en este caso ya que el programa llama una biblioteca el enlazador se encarga de enlazar el programa con esta biblioteca en particular. Su salida es un archivo ejecutable llamado hola_mundo.










Primer programa en Arduino

Este es mi primer programa en arduino y se trata de prender un led con este usando de forma de conexión una salida digital:




Los materiales que se utilizaran serán:
  • Arduino UNO













  • led (color: violeta)













  • Cable USB















Ahora para empezar tenemos que aclarar que el pin que se utilizara será el 13, se preguntaran por que no utilizamos resistencia, esta no se utiliza ya que como utilizaremos el pin 13 de Arduino ya incluye en la tarjeta esta resistencia.

Aquí les muestro el código:

void  setup()  //parte encargada de recoger la configuracion.
{
  pinMode(13, OUTPUT);  //configura el pin 13 como salida.
}

void loop() //contiene el programa que se ejecutara ciclicamente.
{
  digitalWrite(13,HIGH);  //pone en uno(on, 5v) el pin 13. (LO ENCIENDE)
}


También podemos asignar el pin a una variable:


int led=23;  // se asigna a la variable "led" el pin 13.

void  setup() //parte encargada de recoger la configuracion.
{
  pinMode(led,OUTPUT);  //configura el pin 13 como salida.
}

void loop() //contiene el programa que se ejecutara ciclicamente.
{
  digitalWrite(led,HIGH);  //pone en uno(on, 5v) el pin 13 (LO ENCIENDE).
}

Ahora para compilarlo y cargarlo al arduino nos vamos a la pantalla de arduino 1.0 y seleccionamos los iconos siguientes:





Bibliografía:

Referencia1
Referencia2
Referencia3

viernes, 6 de abril de 2012

Arduino uno:





En la actualidad arduino es una empresa que fabrica placas microcontroladas educativas. Difiere de todas las anteriores en que no utiliza el chip de controlador  de FTDI USB a puerto serie que en cambio cuente con el Atmega 8U2 programado como un convertidor de USB a puerto serie. 


A continuación se presenta una imagen donde vienen los nombres de lo que se compone el arduino uno.








Alimentación

La tarjeta UNO la podemos conectar directo al puerto USB de nuestra computadora y de esta misma puede obtener la tensión y la corriente necesaria para bajas cargas. También opera con voltajes externos regulados y se puede alimentar a través de terminales VIN y GND.

Los pines de alimentación son:


  • VIN: Pin por el cual se puede introducir una fuente regulada de 5 volts.
  • 5V: Alimentación regulada al momento de conectar una pila de mayor voltaje al conector tipo plug.
  • 3V3: Voltajes generados por la placa a través de los pines indicados de 3 volts.
  • GND: Pines de tierra.


Memoria

El microcontrolador Atmega328 tiene 32 KB de memoria flash y 0.5 de estos 32 son utilizados para el prequemador. También cuenta con 2 KB de SRAM (Memoria Estática de Acceso Aleatorio) y uno de EEPROM.



Entradas y Salidas Digitales 

Los 14 pines con los que cuenta el Arduino UNO pueden ser configurados de entradas y salidas digitales. 

Con las configuraciones de entrada y salida se puede: 


  • Indicar al programa el modo entrada o salida del terminal.
  • Escribir un bit en el terminal seleccionado.
  • Leer un valor digital desde el terminal seleccionado.  
Las entradas/salidas digitales operan con 5 volts. Cada uno puede suministrar hasta 20 mA de corriente. . Algunas entradas/salidas tienen funciones especiales de comunicación serial como el 0 (RX) y 1 (TX), que se utilizan para la comunicación con la computadora y se restringe su uso. 

PWM (Modulacióon por ancho de pulsos): Los pines digitales que se utilizan como PWM son el 3, 5, 6, 9, 10, 11, estos pines proveen señales cuadradas de 8-bits controlado por la función analogWrite().




USB protección contra sobrecorriente


El Uno Arduino tiene un polifusible reajustable que protege a los puertos USB de nuestro ordenador de cortos y de sobrecorriente. Aunque la mayoría de las computadoras ofrecen su protección interna, el fusible proporciona una capa adicional de protección. Si hay más de 500 mA se aplica al puerto USB, el fusible automáticamente se corta la conexión hasta que el cortocircuito o una sobrecarga se ha eliminado.


Programación


El Arduino UNO se puede programar  con el software de Arduino .


Contiene un pre-quemador con un gestor de arranque que permite cargar código nuevo sin el uso de un programador de hardware externo.


Restablecimiento automático


La placa cuenta con un botón "reset" que permite ser restaurada.