miércoles, 23 de abril de 2008

PumperBot

Hola este es uno de los proyectos que por lo general se inician en robotica un carro, este cuenta con dos motores lo que lo hace poder rotar sobre su propio eje.
Lo construi para jugar un rato programando, y realizar algunos proyectos con unos alumnos con los cuales estoy armando robots parecidos.

Este tiene ademas, dos touch sensors, construidos con dos micro switch de mouse viejo, bueno es reciclar :)

Logochip Brick Sorter V 1.0

Bien este es mi cuarto Robot construido en compañia de Logochip como cerebro de mis robots.

La tarea de este Bot es organizar ladrillos de distinto color en sus respectivos compartimentos, esto gracias a la mecanica y muy importante al programa y su algoritmo, pues posee un sensor de luz para leer los colores de los distintos ladrillos, y un sensor de rotacion para saber en cual compartimiento debe de dirigir cada ladrillo.

http://www.youtube.com/watch?v=wf5DjN30hhU

Aca tuve vario desafios, porque no poseeo un sensor de color, me vali del hecho de que podemos calacular un color respecto al rebote de la frecuencia que devuelve un color cuando aplicamos Luz Ir, como se hace con los sensores Lego.


Logochip Line Following V 1.0

Bien este es un pequeño bot, el cual utiliza Logochip para seguir lineas negras, o bien dicho el filo entre el color negro y blanco.

http://www.youtube.com/watch?v=el7NTdYukU4

Utiliza mi sensor de luz, que es relativamnte facil de construir, pues consta de un led y un pequeño fototransistor el cual envia la luz reflejado por cada color, esto despues se asocia a una subrutina que hara que el robot ejecute lo deseado.


Biped Logochip V 2.0

Bien este es mi segundo Bipedo construido con Logochip, verdaderamnete me esforce bastante
en crearlo. Se basa en el estilo de Joe Nagata, este robot puede caminar adelante, atras, y dar vuelta.

http://www.youtube.com/watch?v=oR8_9WsbcWc

Lo interezante de este es el balance que se produce en los pies, me empeñe en estudiar como Joe Nagata diseño sus bipedos y trate de lograr construir uno en base a sus fotografias y explicacion del mecanismo, en cuanto al programa, podemos hacerlo de varias formas, podemos utilizar sincronizacion o utilizar control por sensores de tacto para lograr el control de las piernas.

Circuito alternativo para mover motores.

Puente H con LM 386

Cuando pretendemos controlar cargas inductivas con un sistema digital, nos encontramos que no podemos realizarlo directamente. Debemos usar un "driver" o excitador para separar la señal emitida por el sistema digital, del circuito inductivo o de potencia. Para esto se necesita un Puente H que puede armarse de distintas formas. Elegimos este circuito integrado por ser de fácil adquisición y económico, además se evita el trabajo de armar un Puente H con componentes discretos.
Este circuito permite realizar un Puente H para hacer girar motores de CC en ambas direcciones, del tipo de los que se utilizan en juguetes, radio grabadores, lectoras de CDs, etc. Con dos circuitos como este, (4 integrados LM 386) se pueden controlar motores paso a paso de cuatro terminales.

Con "Pin", se hace referencia a la conexión desde las salidas del sistema digital.
En nuestro caso podrian ser 7 portb, y 6 portb.

El conexionado no es el mismo que se utiliza cuando se emplea el LM 386 como amplificador de audio, esto se hace para lograr un comportamiento casi digital.El funcionamiento es muy simple, poniendo en estado alto uno de los pines de entrada, el motor DC gira en un sentido. Al invertir el estado de los pines de entrada, gira en el otro. Con los dos pines en alto o en bajo simultáneos no gira.
Este circuito me fue de maravilla, porque tenia unos cuantos Lm386 en casa los cuales hace ya tiempo no utilizaba.

Desde luego, este circuito lo probe y calcule para que sirviese con los motores Lego, ya que exactamente nuestra resistencia de 15 Kilo ohmios nos da la corriente necesaria para activar el Op amp, recordemos nuestro Logochip ofrece salidas TTL (5 voltios).
Exactamente hablando el Motor es el 71427, el cual posee las siguientes caracteristicas:

Motor sin carga, 3.5 mA.
Motor con carga, 360 mA, en 6 N.cm
Algo muy bueno, es que este motor cuenta con una proteccion,un resistor PTC Epcos B1056 y un diodo de uso general, los cuales se encargan de la sobreintensidad de corriente, y el sobre exeso de temperatura, si se levanta la temperatura demasiado, su resistor aumenta y limita la corriente.

http://www.cursoderobotica.com.ar/robotica/inftec/puenteh/

Podemos hacer Sonido!!! en el Logochip.

Claro, y es facil.

Construi un pequeño piezo electric Beeper, para darle sonido a mis Robots.


Este es un pequeño código con el que podemos introducir la duración y la nota que deseamos.

to powerup

write portb-ddr 0 ; setea port B a salida

end

to click-on

setbit 0 portb

end

to click-off

clearbit 0 portb

end

to delay :n

repeat :n [no-op]

end

to note :period :duration ; introducir nota,periodo y duracion

repeat :duration [

click-on

delay :period

click-off

delay :period

]

end

to warble :times ; sonido parecido a un telefono

repeat :times [

note 2 200

note 1 200

]

end

Nuevo Rotation Sensor





Este sensor de rotación lo diseñe para construir un servo control, lo utilice en mi Brick-Sorter V1.0, necesitaba decirle a un motor moverse tantos pulsos hacia la derecha o la izquierda, aca esta el diagrama que es relativamente fácil de hacer, y cabe en un ladrillo de Lego de 2X4.


Vout en este caso nos proporcionara los pulsos que necesitamos.

Acá esta un simple código para controlar un motor, sabiendo que podemos insertar una polea de 6 cuentas entre el sensor.

to Rot-sen-A :a

setbit 4 porta-ddr

write portb-ddr 0

setn 0

on-m1

loop [ wait-for-edge

setn n + 1

ifelse (n = :a) [off-m1

setn 0

stop!]

[on-m1]

]

end

to Rot-sen-R :r

setbit 4 porta-ddr

write portb-ddr 0

setn 0

in-m1

loop [ wait-for-edge

setn n + 1

ifelse (n = :r) [off-m1

setn 0

stop!]

[in-m1]

]

end

to wait-for-edge

waituntil [break?]

waituntil [not break?]

end

to break?

output testbit 4 porta

end

to on-m1

setbit 6 portb

clearbit 7 portb

end

to in-m1

setbit 7 portb

clearbit 6 portb

end

to off-m1

clearbit 7 portb

clearbit 6 portb

setn 0

end

Three Touch sensor

El Three Touch Sensor es realmente un simple convertidor analogico digital.
Este se aprovecha del simple hecho de que el Logochip poseen entradas analogicas que se convierten a un numero de 0=0v a 1023=5v, el Logochip proporciona alimentacion en serie con una resistencia de 10 Kilo ohms , produciendo un divisor de voltage.

El circuito es mostrado abajo.
Son tres resistencias en serie, las entre cada una de ellas posee un conector para las conexiones del interruptor.
Al cerrar un interruptor la corriente se va por el camino mas facil y no pasa por la resistencia, provocando asi un voltaje distinto en el divisor de tension.


Para el programa solamente deven hacer rangos para cada valor que haga cada interruptor, ademas veamos que poseemos 8 valores distintos.

Rotation Sensor o Encoder

Bien lei un documento viejo del antigo Logohip 16F876, y este se llamaba http://www.wellesley.edu/Physics/Rberg/logochip/docs/feedback.doc, hablaba de como construir un Shaft Encoder o bien un Sensor de rotacion, el problema es que se utiliza el Pin C0, que es un contador, pero que nuestro nuevo Logochip V 2.0 no tiene o es otro Pin en este caso el A4.
Busque el datasheet para encontrar este Pin y vi el codigo que presentaba el documento, que mide el periodo para una revolucion, pero lo que me interezaba era hacer que una rueda u otro mecanismo, de N revoluciones.
Aqui les presento las forma de construir su propio Encoder, en el que utilizo un pequeño pulsador que cuenta los pulsos de una polea de lego de 6 huecos.







El sensor deveria ir unido al eje de nuestro mecanismo en mi caso de prueba al motor el cual lleva un engrane de 8 dientes y el eje de la polea uno de 24 dientes, ah.. utilizo un motor de Lego gris lo uni al los pines 7 y 6, no es correcto porque este motor trabaja con mas corriente pero es solamente para hacer una prueba, y por no requerir mucho torque no dañara nuestro Logo..

Este es el programa...

; Jimmy Bolaños

; Demo Sensor de Rotacion

; una Revolucion = 6 clicks.

to Rot-Sensor

setn 0

setbit 4 porta-ddr

write portb-ddr 0

on-m1

loop [ wait-for-edge

setn n + 1

ifelse (n = :m) [off-m1

setn 0

stop!]

[on-m1]

]

end


to wait-for-edge

waituntil [break?]

waituntil [not break?]

end


to break?

output testbit 4 porta

end


to on-m1

setbit 7 portb

end


to off-m1

clearbit 7 portb

end

Diferential Light Sensor.

El sensor ligero se puede utilizar para seguir una fuente de luz, pero no trabaja muy bien
porque mide solamente mide el nivel de luz en un punto. Cuando la luz total del sitio
cambia, el sensor puede ser engañado. El Diferencial Light sensor presentado aquí utiliza dos LDR (Fotorresistencias) y envían la diferencia del valor de luz al Logochip. El diagrama muestra el nivel de luz leído por el Logochip que es alrededor de 511 cuando el nivel de luz esta balanceado entre los dos sensores.
Cuando el sensor derecho ve más luz, el valor aumenta y cuando el sensor izquierdo ve más luz el valor disminuye.




El circuito para el sensor es el que se muestra. Dos fotorresistencias hacen un divisor de voltaje. Estas podrían dividir el voltaje entre ellas en 2.5 V cada una y dependiendo de cual de ellas vea mas luz el voltaje variara de (0V a 5 V).



Yo introduje mi sensor en un pequeño ladrillo de Lego de 2x4.

Cálculo de lecturas, para el diseño de sensores.

Bien leí el documento gettin started with Logochip, y note el ejemplo de la resistencia de 33k que se colocaba a Vcc, esta resistencia es usada para determinar los valores de 10-bit analog to digital en conjunto con un sensor, (termistor, LDR, potenciómetro), formando un circuito básico llamado Divisor de Voltaje.

La figura de abajo muestra cómo se dispone el resistor de referencia. El
Logochip mide la caída de tensión a través del sensor, esta se puede calcular con
la siguiente ecuación.



Voltaje = 6 * Rs/ (10K + Rs)

(6 v es la fuente, independientemente puede ser 5, pues el Logochip asumirá este como el valor mas alto.)

Donde Rs = Resistencia del sensor

Si la tensión es 6 o 5 voltios obtenemos una lectura de 1023. Ponemos la misma ecuación para obtener las lecturas del sensor directamente.

Valor del sensor = 1023 *Rs / (10K + Rs)

10 bits = 1023 = 1111

Pruebalo!!!

¿Tiene usted un LogoChip? ¿Desea saber lo que puede hacer con él? ¿No lo conoce pero le gustaría usarlo?

Antes de que iniciemos, podemos empezar por lo básico…

¿Qué es el LogoChip?

Un LogoChip es básicamente un microcontrolador equipado con un Logo firmware. Es como tener una computadora instalada con un software. Sin el Logo firmware el LogoChip seria solo un integrado en blanco.

¿Pero que es un microcontrolador?

Para comenzar, es un pequeño integrado que puede controlar cosas, por ejemplo luces, motores, relays, displays o dar vida a un Robot, esto llevado a cabo por sí mismo o por una causa externa como lo son sensores.

Digamos entonces que usted desea encender y apagar un Led, o hacerlo por un tiempo determinado, entonces usted sabrá que necesita conectar el Led a una salida.
También, si usted quiere que el Led encienda bajo cierto efecto, usted tendra que usar un sensor y desde luego colocado en una entrada.
Basado en esto, sabrá que debe accionar salidas y entradas.
Todo esto es llevado acabo por el LogoChip, primero usted necesita programarlo y luego unir las entradas y salidas a sus dispositivos.

Porqué tengo que conectar mi computadora al LogoChip?

La computadora es usada para compilar las instrucciones que usted necesita que el LogoChip lleve a cabo. Esto porque la computadora nos provee una vía para que nosotros como humanos comprendamos el Logo Lenguaje.
Entonces la computadora toma esas instrucciones que nosotros escribimos, y hace que estas se comuniquen con su primo lejano el LogoChip. Esto gracias a que la computadora habla el mismo lenguaje que el LogoChip.

Vean este esquema explica lo que acaba de decir:




El LogoChip viene con un software libre llamado LogoChip Logo. Logo porque este es un lenguaje de programación inventado por el MIT.
Usted utiliza el software para permitir la comunicación entre el LogoChip y la computadora a través de un cable serial.


¿Bien, ahora como yo le enseño al LogoChip?

Ahora que usted sabe como comunicarse, hay dos formas de hacer esto:

1. Mecanografiar los comandos directamente en el comand-center de la interfaz LogoChip.
2. Utilizar un redactor externo tal como Bloc de notas y escribir comandos llamados Programas. Entonces descargamos el archivo a su LogoChip usando el software LogoChip.

¿Bien, ahora como yo le enseño al LogoChip?

Ahora que usted sabe como comunicarse, hay dos formas de hacer esto:

1. Mecanografiar los comandos directamente en el comand-center de la interfaz LogoChip.
2. Utilizar un redactor externo tal como Bloc de notas y escribir comandos llamados Programas. Entonces descargamos el archivo a su LogoChip usando el software LogoChip.

Hola a todos los que usan Logochip Logo...

Hola a todos los que usan Logochip Logo.


Me llamo Jimmy Bolaños, soy Electronico, estudio Ingenieria Mecanica, utilizo Logochip para dar vida a mis Robots de LEGO, y otras creaciones.

En este Blog, presentare mis proyectos he investigaciones basadas en este ladrillo programable.

Prmero que todo, visiten la pagina principal mis amigos:

Brian Silverman (MIT Media Lab), Bakhtiar Mikhak (MIT Media Lab) y Robbie Berg (Wellesley College Physics).

http://www.wellesley.edu/Physics/Rberg/logochip/

Aqui encontraran toda la informacion de como obtener o construir su propio Logochip.

Bueno, ahora a divertirse con este fabuloso ladrillo programable.

LEGO® is a trademark of the LEGO Group of companies which does not sponsor, authorize or endorse this site. LEGO has its own homepage: www.lego.com, and a page on the Mindstorms system: mindstorms.lego.com.

Logochip Arm V 2.0 Video

Aca les dejo un video del Arm en funcionamiento.