Ir al contenido principal

Entradas

Mostrando las entradas con la etiqueta Arquitectura de Computadoras

Tutorial Carro Control Remoto Web Raspberry Pi

En esta entrada les enseñaremos como construir un auto a control remoto vía web, esto gracias al Raspberry Pi y unos cuantos componentes más que se estarán mostrando a continuación: Lo primero que necesitamos es tener una noción básica de electrónica y programación. Para este proyecto necesitamos: -          Raspberry Pi (Cualquier modelo vale, el de la imagen es un modelo 3)      -     Laptop o Computadora de Escritorio      -       Motomama v2.0 (Controlador de motores y servos L298N)      -     8 jumpers       -    Base para baterías (A disposición uno de 6 baterías AA, para un total de 9v)     -     Una batería portátil para la alimentación del Raspberry Pi     -     6 Batería...

12# Universal Serial Bus

En un principio teníamos la interfaz serie y paralelo, pero era necesario unificar todos los conectores creando uno más sencillo y de mayores prestaciones. Así nació el USB (Universal Serial Bus) con una velocidad de 12Mb/seg. y como su evolución, USB 2.0, apodado USB de alta velocidad, con velocidades en este momento de hasta 480Mb/seg., es decir, 40 veces más rápido que las conexiones mediante cables USB 1.1. Un puerto USB puede llegar a transmitir a velocidades entre 1,5 Mb/segundo y 12 Mbps; un puerto paralelo entre 600 Kb/s a 1,5 Mb/s y un puerto serial puede llegar hasta 112 Kb/s. USB es una nueva arquitectura de bus o un nuevo tipo de bus desarrollado por un grupo de siete empresas (Compaq, Digital Equipment Corp, IBM PC Co., Intel, Microsoft, NEC y Northern Telecom) que forma parte de los avances plug-and-play y permite instalar periféricos sin tener que abrir la máquina para instalarle hardware, es decir, ba...

11# Pipeline

En computación, se le llama pipeline a una serie de elementos de procesamiento de datos ordenados de tal modo que la salida de cada uno es la entrada del siguiente, como quien dice una cadena de montaje pero en vez de orientada a la manufactura, orientada al procesamiento de datos e instrucciones. La acción básica de cualquier microprocesador, en tanto se mueve a través de la corriente de instrucciones, se puede descomponer en una serie de cuatro pasos simples, que cada instrucción en la corriente de código debe atravesar para ser ejecutada: 1. Fetch: "traer" la instrucción que se va a ejecutar, de la dirección almacenada en el contador de programa. 2. Store: "almacenar" la instrucción en el registro de instrucciones y "descifrarla", incrementando la dirección en el contador de programa. 3. Execute: "Ejecutar" la instrucción almacenada en el registro de instrucciones. Si la instrucción no es una instrucción de rama sino una instrucci...

10# GPIO Raspberry PI

GPIO (General Purpose Input/Output)  es, como su propio nombre indica, un sistema de E/S (Entrada/Salida) de propósito general, es decir, una serie de conexiones que se pueden usar como entradas o salidas para usos múltiples. Estos pines están incluidos en todos los modelos de Raspberry Pi, para que puedas realizar proyectos interesantes como lo harías con Arduino. Los GPIO representan la  interfaz entre la Raspberry Pi y el mundo exterior . Y con ellos podrás hacer multitud de proyectos, desde hacer titilar un LED hasta otros mucho más sofisticados. Pero para eso debes saber sus características y como se programan. Lo primero variará en función de la revisión de placa que tengas o del modelo. Todos los pines son de tipo “unbuffered” , es decir, no disponen de buffers de protección, así que deberás tener cuidado con las magnitudes (voltajes, intensidad,…) cuando conectes componentes a ellos para no dañar la placa. Como podrás apreciar en las imágenes posteriores, no todos...

09# Arduino

Arduino Arduino es una plataforma de electrónica de código libre, esto nos dice que se puede utilizar, modificar al gusto del que lo adquiera. El propósito de su creación fue la de ofrecer una herramienta que permita crear proyectos interactivos al alcance de cualquier persona con un costo muy bajo. Cuando nos referimos a Arduino nos referimos al propio software, donde se programa y al hardware o microcontrolador que capta todas las instrucciones que le enviamos, estos dos fueron creados paralelamente para que trabajaran con la mayor compatibilidad posible. Cuando nos dirigimos al computador a abrir el Arduino IDE (Integrated Development Enviroment) podemos buscar miles de tutoriales y guías para poder aprender un poco sobre este lenguaje, pero básicamente se basa en el lenguaje C y un poco el programa Processing que es básicamente el lenguaje Java. Cuando me refiero a las partes físicas o hardware, hay que saber que existen infinidades de aparatos con este tipo de característ...

#08 Emuladores

Un emulador es aquel software que nos permite ejecutar programas o cualquier tipo de software diferente para la cual fue diseñada desde un principio, una arquitectura diferente. Puede sonar un poco como si fuera un simulador, pero la gran diferencia entre estos es que el simulador solo trata de imitar el comportamiento del programa en específico, mientras que el emulador trata de ejecutar fielmente el funcionamiento del sistema y la arquitectura completa, para dar el mayor la mayor sensación como si el dispositivo emulado fuera el original. Uno de los usos principales que se les da a estos tipos de tecnología es para la emulación de videojuegos, mostrar cómo sería la experiencia de juego en X consola Estructura La mayoría de los emuladores solo emulan una determinada configuración  arquitectura de hardware  - si el sistema de explotación ( o  sistema operativo ) también se requiere para emular cierto programa entonces ha de ser emulado también. Tanto el sistema ...

07# Dispositivos ARM

ARM En esta entrada les voy a hablar un poco de dispositivos ARM, o más que todo la arquitectura. Advanced RISC Machine eso significan las siglas de esta arquitectura. Esta es una simplificación de los procesadores CISC que se encuentran en la mayoría de las computadoras del mundo. Esta arquitectura está hecha para trabajar con bajo consumo, de mucho menor tamaño con la relación a los X86, sus temperaturas son menores… estas características permiten portabilidad del dispositivo donde está instalado. Hoy en día es una de las arquitecturas con más auge, gracias a que las personas ahora están más interesadas en la portabilidad y comodidad que otorgan los dispositivos que integran esta arquitectura. El dispositivo que estamos utilizando en un proyecto que tenemos actualmente, se basa en esta arquitectura, es el Raspberry Pi 3, este se podría decir que es una de las computadoras más baratas que existen en el mercado, con capacidad suficiente para mover sistemas operativos sim...

06# Cross compiler

Un cross compiler o compilador cruzado es aquel que simula una plataforma o arquitectura distinta a la que se está trabajando en este momento, ya sea porque no se tiene acceso a esa plataforma en ese momento o es imposible conseguirlo. Hace poco en el Instituto nos asignaron un trabajo que se realizará en un Raspberry Pi, es una mini computadora basada en arquitectura ARM, cosa que en este momento no tengo acceso, estaba la opción de emular el sistema completo, pero investigué un poco acerca de este tema entonces pude lograr utilizar este método más sencillo para lograr compilar programas para este dispositivo. Gracias a que tenía instalado el SO Linux, pude hacer inclusión de este cross compiler de una manera más rápida, ya que este sistema contenía la mayoría de herramientas que necesitaba. Fuente: http://preshing.com/20141119/how-to-build-a-gcc-cross-compiler/ Este es un diagrama por los que debería pasar el software antes de quedar listo para la ar...

05# GNU/Linux Kernel

Esto es el corazón de las distribuciones Linux que conocemos hoy en día, gracias a Linus Torvalds principal creador de este núcleo (kernel). Pero primeramente vamos a hablar de que significa ser el corazón del sistema operativo. Es un software que se encarga de comunicar el resto del SO (Sistema Operativo) con el hardware, además que se encarga de definir todos los bloques de información que manejara y soportara el sistema completo. “ Linux  es un núcleo de libre distribución y mayormente libre semejante al núcleo de Unix. 4 ​ Linux es uno de los principales ejemplos de software libre y de código abierto. 5 ​ Linux está licenciado bajo la GPL v2 y a mayor parte del software incluido en el paquete que se distribuye en su  sitio web  es software libre. Está desarrollado por colaboradores de todo el mundo. El desarrollo del día a día tiene lugar en la  Linux Kernel Mailing List Archive . El núcleo Linux fue concebido por el...

04# Normalización

Hoy les voy a hablar sobre un tema muy interesante acerca de sistemas numéricos utilizados en la computación, se trata de la normalización de los números flotantes, sistema que se usa muy a menudo en la programación. Normalización Este método hace a la mantisa de los números en punto flotante más precisa con el número real al cual se quiere representar. Un ejemplo de esto  seria tener un número binario x. x = 11010*2**0 Entonces lo que necesitamos es la mantisa de ese número, para eso rellenamos con ceros lo que le falta al número para tener un total de 8 bits: mantisa = 00011010 Ahora para hacer la normalización de ese número se necesita desplazar la cantidad de veces que contiene ceros a la izquierda y agregándolos a la derecha: normalizado =  11010000 Ahora los desplazamientos que se hicieron afectan el exponente de la base, por lo que ahora la base es esta 2**3. El número resultante multiplicado por esa base es diferente por lo tanto se deben restar ese...

03# Infraestructura de Software

En este nuevo articulo les explicaré un poco sobre la infraestructura de software Los elementos principales de este son : Ensamblador,Enlazador y el Cargador. Ensamblador Este se encarga de traducir el o los archivos para obtener un archivo binario con sus respectivos datos, esto lo hace identificando las etiquetas personalizadas que encabezan los bloques de código del archivo a traducir. Enlazador   Esta herramienta como lo dice su nombre, es el encargado de enlazar todas las referencias y datos necesarios para la ejecución del programa final. Los procesos principales que cumple esta herramienta son los siguientes: - Buscará cualquier archivo necesario para la ejecución del programa,ya sea libreria,datos propios del programador,etc. - Va ser manejo de la memoria de todo lo que compone el programa y les da un valor definido. -Resuelve toda referencia entre los archivos,librerias,datos,etc que componen el programa.  Cargador Uno de las herramientas que más t...