Posts Tagged ‘programacion’

El robot de lego, con puente integrado.

Un robot fabricado con piezas de Lego, parece un vehículo más, capaz de moverse sin problemas, pero es capaz de pasar ciertos obstáculos, como huecos y vacíos. ¿Cómo? Pues muy fácil, con su propio puente. El vehículo es capaz de colocar un puente para que otros vehículos pasen, en este caso el mismo y posteriormente el lo recoge.

Read more

Winscape una ventana virtual.

Hoy en dia los edificios son mas apretados, perdemos vistas a la calle, simplemente estamos encerrados, tal vez no se una muy buena opcion ¿pero que me dirias de una ventana digital?

Como lo oyes, una ventana digital, si quieres entender de que hablo, checate el siguiente video:

Y si quieres aprender a fabricarla por ti mismo, checate el “how to”:

Esto lo vi aqui:

http://tech.slashdot.org/story/10/04/15/1222238/How-To-Build-a-Winscape

Wall-e hecho de papel, te avisa sobre tus correos.

Ya sabes, wall-e el robot que se quedo a limpiar el mundo, en esta ocasion una original forma en que fue usado, fue para hacernos notificaciones de correo entrante, segun esto cualquier personas con conocimientos de electronica, sistemas… o cortar y recortar es capaz de hacer esto…. se supone que soy capaz de realizarlo, pero honestamente me da mucha weba, pero en caso de que me atreva a realizarlo les traere noticias para que se animen a realizarlo por ustedes mismos. Read more

Principios basicos sobre el pic16f84.

Considerado un microcontrolador obsoleto y de poco uso, la verdad es que es un pic util facil de aprender, siempre y cuando te enseñen bien… y si no t eenseñan bien.. siempre existen otras opciones uno de ellas el siguiente link, en el cual se explica en su mayoria bastante sobre el pic16f84a, en resumen lo siguiente:

El PIC16F84A

Índice de contenidos

Manejo de potencia para motores con el integrado L293D

Agradecimientos a Eduardo J. Carletti por haber realizado la traduccion y compartirlo con todos.El integrado L293D incluye cuatro circuitos para manejar cargas de potencia media, en especial pequeños motores y cargas inductivas, con la capacidad de controlar corriente hasta 600 mA en cada circuito y una tensión entre 4,5 V a 36 V.

Los circuitos individuales se pueden usar de manera independiente para controlar cargas de todo tipo y, en el caso de ser motores, manejar un único sentido de giro. Pero además, cualquiera de estos cuatro circuitos sirve para configurar la mitad de un puente H.

El integrado permite formar, entonces, dos puentes H completos, con los que se puede realizar el manejo de dos motores. En este caso el manejo será bidireccional, con frenado rápido y con posibilidad de implementar fácilmente el control de velocidad.

¿Interesante? Checate mas informacion, continua leyendo  ;D  Read more

Aprendiendo a programar pics mediante el mplab

La verdad no s emucho sobre el pic… en mi escuela usamos el antiguo 16f84a… y pues solo nos andan limitando a ese, ya con el tiempo usaremos otro… este es un pequeño tutorialqu eencontre en internet y me resulto muy util.

Tutorial 1 – LED’s

Vamos a empezar con el primer tutorial de  microcontroladores pic. Vamos a hacer algo sencillo, encender y apagar leds. Así, vamos a empezar por lo más básico para ir aprendiendo las instrucciones del micro y ver mas a detalle el funcionamiento del PIC.

Tutorial 1.1 - Encendiendo y apagando LED’s

Ya vimos como encender un led, ahora veamos también como apagarlo. Este programa lo que hace es encender ocho leds conectados al puerto B del micro y después apagarlos. El código es el siguiente (descargar código):

led1.png
Las primeras líneas son directivas al ensamblador. LIST p=16F628a define el micro que se utilizará, radix hex define la raíz numérica por defecto, en este caso será hexadecimal, esto significa que cualquier número que se escriba en el código y no se especifíque  que raíz tiene será tomado como hexadecimal. En ensamblador los números se pueden representar en forma decimal, hexadecimal y binaria de la siguiente manera:

  • decimal: .14
  • hexadecimal: 0×0E ó 0Eh
  • binario: b’00001110′

En el código la raíz definida es hexadecimal, si quisieramos que fuera decimal tendriamos que escribir dec, para binaria bin y para octal oct. Después de la definición de la raíz está la directiva __config que se utiliza para definir la configuración del microcontrolador. La palabra de configuración 0×3D18 define que se utilizará el reloj interno del micro, se deshabilitará el watchdog, así como el reset y la protección de código. Más adelante se hablará más a detalle sobre la configuración del pic.

Después se declaran algunas constantes, para esto se utiliza la directiva equ. La sintaxis de la directiva es <nombre_de_la_constante> equ <valor> y lo que hace esta directiva es que cada vez que en el código se escriba la constante definida se tome el valor de constante, por ejemplo “RP0 equ 5“, cada vez que en el código aparezca RP0 el valor que se tomará será 0×05.

Después viene el programa principal. Es muy importante comenzar el programa siempre con la  directiva org en la dirección 0×00 ya que esta directiva define la dirección en la que se comenzará a escribir el código. Al momento de encender el micro o al hacer un reset lo primero que el microcontrolador hace es leer la dirección 0×00, si no hay nada en esa dirección lo más probable es que el micro se cicle. Otra cosa importante que debemos tomar en cuenta es que la memoria de programa del PIC 16F628A comienza en la dirección 0×05, es por eso que debemos poner también un org 0×05 para que el código comienze a escribirse a partir de esa dirección.

Ahora si, veamos que instrucciones tenemos. Al inicio, después de org 0×00 tenemos un goto Inicio, goto hace es un salto incondicional hacia la dirección que se le indique, en este caso la dirección es la etiqueta Inicio. bsf se utiliza para cambiar el estado lógico de un bit de un registro a un nivel alto, la sintáxis es bsf f,b donde f es el registro y b el bit que se quiere cambiar (bsf STATUS,RP0), lo que hace esa línea es seleccionar el banco de memoria 1, el micro tiene 4 bancos de memoria y en esos 4 bancos estan repartidos todos los registros (en realidad la mayoria estan repartidos en 2 bancos, los 2 ultimos sirven de espejo a los 2 primeros. En el banco 0 se encuentra el registro STATUS y dentro de ese registro están los bits de selección de banco. Debemos cambiar al banco 1 ya que ahí se encuentra el registro de configuración del puerto B (TRISB) que dependiendo de la configuración que tenga hará que el puerto B se comporte como entrada o como salida. Una vez en el banco 1 configuramos el puerto B como salida, de eso se encarga clrf, esta instrucción borra el contenido de un registro, al estar en el banco 1 clrf PORTB hace que todos los bits del registro TRISB se pongan en un nivel bajo, configurando así el puerto B como salida. Después regresamos de nuevo al banco 0 con bcf STATUS,RP0. bcf realiza la acción contraria de bsf, pone a 0 un bit del registro específicado. Con eso termina la configuración del puerto B.

De las demás instrucciones la única “desconocida” es nop, esta instrucción sólo sirve para consumir un ciclo de instruccion ya que su definición es no realizar ninguna operación. Los nop en el código estan para que las salidas en el puerto B creen una señal cuadrada. Lo que hace la ultima parte del código es primero cargar 0xFF al registro W, luego pasar ese valor al puerto B para poner las salidas en alto, luego limpia el puerto B para tener la salida en bajo y el ultimo goto hace que el ciclo se esté repitiendo y repitiendo.

Al implementar este ejemplo vemos que los leds no encienden y apagan sino que se quedan encendidos y no cambian nunca de estado. Esto no es del todo cierto. Encienden y apagan pero tan rápido que no nos damos cuenta. De eso trata la segunda parte del tutorial, que proximante les pasare para que aprendan un poco mas sobre los pics.

Page optimized by WP Minify WordPress Plugin