Motores Brushless De Corriente Directa.

martes, 22 de abril de 2014 0 Comentarios, Dejar un Comentario
Este tipo de motores, son muy utilizados para alcanzar altas velocidades y de bajo desperdicio de energía, ya que como su nombre lo dice, no tiene cerdas,  en estos motores debe ser proporcionada tres señales, idealmente tres señales senoidales desfasadas entre si 60 grados la una de la otra.


En busca de una fácil incorporación me encuentro realizando un circuito orientado a una electronica digital que permita la manipulación de velocidad de este por medio de señales digitales, como he venido haciendo en este blog pretendo que el cerebro sea un Arduino ya que ayudara más a personas menos relacionadas con la electronica y simplificara la forma de entender como funciona el dispositivo en general sin la necesidad de detallar.


Tras generar las señales debe mantenerse sincronía con el motor para realizar cambios de velocidad, ya se que se quiera acelerar o desacelerar el motor de una manera estable, para esto se requiere analizar el campo electronomagnetico de reversa que se puede leer en los cruces por cero de la bobinas no energizadas, obteniendo una señal como la siguente:




Display OSRAM PD4437

miércoles, 8 de febrero de 2012 0 Comentarios, Dejar un Comentario
Estos displays son bastante buenos para el precio que tienen ya que no son una simple matriz de LEDS donde tenemos que crear nuestra propia fuente y agregar otros circuitos para el corrimiento de un letrero o el brillo de los LEDS, todo eso y más ya lo tiene integrado este pequeño display con un Datasheet muy completo y sencillo de entender.


La comunicación con estos display consiste en 8 bits para el ASCII y 3 bits para la dirección de entre los cuatro segmentos de cada display además de 2 habilitadores por display para el caso de conectar varios de estos sobre el mismo bus, se puede realizar tanto como escritura en el display y lo mejor de todo funcionan a muy poco voltaje con una buena intensidad en los segmentos.

Para hacer aun más sencilla la utilización de estos display se pueden controlar con un arduino con instrucciones tan simples como digitalWrite(); y unos cuantos delay(); .
Aquí les dejo una idea de como se inicializa y se escribe en este display.



void initDisplays(){
  digitalWrite(AD0,LOW);
  digitalWrite(AD1,LOW);
  digitalWrite(AD2,LOW);
  digitalWrite(CE1,LOW);     // Enable both displays
  digitalWrite(CE2,LOW);
   
  digitalWrite(D7,HIGH);       // Clear Display
  digitalWrite(WR,LOW);      // Send write command
  delay(1);
  digitalWrite(WR,HIGH);
  
  digitalWrite(D7,LOW);        // Set full brightness
  digitalWrite(D6,LOW);
  digitalWrite(D5,LOW);
  digitalWrite(D4,LOW);
  digitalWrite(D3,LOW);
  digitalWrite(D2,LOW);
  digitalWrite(D1,HIGH);
  digitalWrite(D0,HIGH);
  digitalWrite(WR,LOW);       // Send write command
  delay(1);
  digitalWrite(WR,HIGH);
  
  digitalWrite(CE1,HIGH);     // Disable both displays
  digitalWrite(CE2,HIGH);
}

y para escribir una letra en el primer segmento:

void writeASCII(){

  digitalWrite(AD0,LOW);
  digitalWrite(AD1,LOW);
  digitalWrite(AD2,HIGH);
  
  digitalWrite(CE1,LOW);      // Enable display
  digitalWrite(CE2,HIGH);

  digitalWrite(D7,LOW);        // Write ASCII to port
  digitalWrite(D6,HIGH);
  digitalWrite(D5,LOW);
  digitalWrite(D4,HIGH);
  digitalWrite(D3,LOW);
  digitalWrite(D2,LOW);
  digitalWrite(D1,HIGH);
  digitalWrite(D0,HIGH);
  
  digitalWrite(WR,LOW);       // Send write command
  delay(1);
  digitalWrite(WR,HIGH);
  
  digitalWrite(CE1,HIGH);        // Disable both displays
  digitalWrite(CE2,HIGH);

}

Material del FREE DAY

sábado, 21 de enero de 2012 8 Comentarios, Dejar un Comentario
Ya tengo en mis manos el material que he pedido a SparkFun que me he ganado en el FREE DAY de esta año, es la primera vez que participo en este evento y me toco suerte ya que fui unos de los ganadores.

Un concurso un tanto difícil de ganar ya que el ganador era elegido por un contador Geiger y llenar correctamente un Captcha compitiendo con otras miles de personas por ser uno de los ganadores.


Después de unas tres horas de llenar Captchas apunto de darme por vencido me cambia de pagina y me dice que soy unos de los ganadores y pensar que estaba a unos minutos de cerrar la pagina.


Entonces si después de ese mensaje a descansar y quitarse del estrés del momento ya que ya podía gastar mis bien ganados 100 usd en material de la tienda, salió un poco caro el envío y el pago a la aduana pero valió la pena por lo que pedí.

- Jumper Cables, Hobby Knife, Resistor Kit, FTDI Cable 5v y un Arduino MEGA PRO 5v.


Ojala las tiendas de electronica en México hicieran lo mismo, quizás no en la magnitud que lo hace SparkFun cada año pero si algo parecido. Ahora a esperar el FREE DAY 2013.

Placa Controladora de Robots Shur

sábado, 10 de diciembre de 2011 2 Comentarios, Dejar un Comentario
Hola, he hecho un placa que esta basada en la antigua placa Wiring Sparfun 1.1 que integra un microcontrolador ATmega2561, de esa forma mi placa también utiliza el mismo microcontrolador que tiene muy buenas prestaciones dejando a esta placa en un nivel medio de capacidades.

El objetivo de diseñar esta placa es que se tuviera lo suficiente para controlar un Robot Humanoide con motores Dynamixel, que como ya saben son especialmente diseñados para robotica, dada la comunicación que se lleva con estos Servos he agregado un IC que pudiese controlar el flujo de datos entre el microcontrolador y el Servo que es un Buffer con habilitadores independientes, este circuito convierte el Full Duplex USART que integra el microcontrolador y lo transforma en un Half Duplex USART, he conservado las demás comunicaciones con opción de funcionar como pines digitales comunes, las comunicaciones disponibles en un puerto SPI y un I2C, de los dos USART disponibles en el microcontrolador se puede decidir si se usaran como tales o cambiar uno a comunicación USB o para el otro USART convertirlo en el Half Duplex USART ya mencionado.


También ademas del poder que conlleva esta placa es de un tamaño reducido por lo que no estorbaría con las partes mecánicas que pudiese tener nuestro robot, como podrán apreciar la placa a sido diseñada con EAGLE por lo que cualquiera tendrá en la posibilidad de modificar conexiones de los elementos sin demasiadas complicaciones ya que el EAGLE es de los más conocidos en este ámbito.


También como podrán en ver en la imagen anterior cuenta con 8 LEDs para ver las comunicaciones activas como los dos USARTs y el SPI ademas de un LED Auxiliar para desplegar o indicar estados los cuales podremos programar a decisión y un LED que nos indicara si la placa esta energizada.

Cuenta con un lector de Tarjetas MicrosSD por lo que de cierta forma ya no es tan alarmante el espacio en EEPROM y flash, ya que podremos utilizar este como un DataLogger de las acciones y registro de sensores.

Se a incorporado un switch para decidir si la placa esta siendo energizada por USB o por una Bateria, un botón para programarle acciones al ser programado nuestro robot ademas del tradicional botón de Reset.

Cabe resaltar que se utiliza el mismo lenguaje de programación que un arduino o las mismas tarjetas wiring por lo que se puede encontrar mucha información de como se programa en este tipo de tarjetas.


A continuación una descripción mas técnica de esta placa:

Comunicación:                        Puertos:                                   Capacidad:
    - 2 Full Duplex USART            - 36 pines digitales I/O             - 256KB de FLASH
    - 1 Half Duplex USART           - 8 pines ADC                            - 4KB de EEPROM
    - 1 I2C                                   - 6 pines PWM                           - 8KB de RAM
    - 1 SPI                                                            
    - 1 USB

Bueno ahora el por que Shur, Shur son las siglas de Savage Humanoid Robot, en pocas palabras una placa controlador de robots humanoides de Savage Electronics, Bueno espero les guste y aquí les dejo todo lo necesario para esta placa.
Recuerden descargar el IDE de wiring y añadir los archivos que podrán descargar a continuación: