• Sábado 25 de Mayo de 2024, 07:50

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - DrakerDG

Páginas: [1]
1
Visual Basic 6.0 e inferiores / [Código Fuente] Ejemplo de acceso al puerto paralelo en WinXP
« en: Lunes 26 de Septiembre de 2005, 06:44 »
Este ejemplo hace uso de medios gráficos y auditivos para mostrar el estado de los registros del puerto paralelo y puede ser utilizado desde Win95 a WinXP.

La aplicación se vale de recursos gráficos para mostrar el estado del puerto. Muestra el conector DB-25 (Macho o Hembra) indicando con colores el valor de cada bit asociado a cada pin. Al hacer click en los pines de salida se modifica el estado del bit asociado al valor opuesto (de cero a uno y viceversa) generando un sonido, se puede cambiar el conector hembra a macho y viceversa. Un botón despliega información referente al puerto paralelo con un circuito de ejemplo con el cual se puede poner a prueba esta aplicación. Esta información puede ser impresa desde la misma ventana de información.

En la ventana principal muestra el valor del estado de cada registro del puerto en forma decimal, hexadecimal y binario. En la barra de estado muestra si el conector de la grafica es macho o hembra de acuerdo a la orientación de los pines.

Se utilizó la función sndPlaySound para reproducir los sonidos en la aplicación.

LPT1XP utiliza la librería io.dll (incluida) para comunicarse con dicho puerto.
De esta librería se utilizaron las funciones PortOut (subrutina) y PortIn (funcion).

Nota:  Este software es un prototipo, como tal queda bajo responsabilidad del usuario final el cometido que este le quiera dar.  En caso de realizar el circuito de ejemplo, hay que tener en cuenta que una mala conexión puede dañar su equipo parcial o totalmente.  En caso de tener dudas, pregunte primero y trate de conseguir información por medios alternos, lo mas que sea posible.



Autor: DrakerDG

2
Robótica / Robots Miniatura
« en: Miércoles 14 de Septiembre de 2005, 14:19 »
:comp: Robots miniatura con movilidades impresionantes

En este link pueden ver todos los de esta serie, desafortunadamente esta en japones, pero las imagenes estan muy interesantes

Serie Silf

En especial centré mi interes en el robot humanoide Silf-H2, el cual tiene las siguientes especificaciones:

Altura    :   252mm
Ancho     :    95mm
Grosor    :    50mm
Peso      :   730gr (Baterias incluidas)
Actuadores:    21 motores DC en total
-  Piernas:    12 motores
-   Brazos:     6 motores
-   Cabeza:     2 motores
-  Cintura:     1 motores
Sensor    :   CCD sensor de imagen de 100Kpixeles
Baterias  : Ni-MH (Paquete de 7.2V/2100mAh)

En este link pueden ver mas información

Silf-H2

Tambien hay disponibles videos de este robot

Silf-H2 (Video 1)

Silf-H2 (Video 2)

3
Robótica / Diseño De Brazo Mecánico
« en: Jueves 8 de Septiembre de 2005, 18:06 »
Principios mecánicos de un brazo robot

 :comp: Uno de los problemas clásicos en el diseño de brazos mecánicos es su peso, el cual genera un torque (fuerza angular) que debe ser soportado por motores, que a su vez tienen que tener fuerza adicional para soportar el torque generado por el peso de un objeto que pueda sujetar. Torque: Es la fuerza aplicada en una palanca que hace rotar alguna cosa. Al aplicar fuerza en el extremo de una llave se aplica un torque que hace girar las tuercas. En términos científicos el torque es la fuerza aplicada multiplicada por el largo de la palanca (Torque = F x D) y se mide comúnmente en Newtons metro.

Hace algunos años elaboré un brazo y solucione este problema aplicando el principio de centro de masas.

El centro de masas es un punto del espacio que representa una especie de media de las posiciones y las masas de los trozos que forman el sistema. Si pensamos, por ejemplo, en una pelota de tenis, su centro de masas está precisamente en su centro, en el interior de la pelota. Si pensamos en dos naranjas separadas por un metro, su centro de masas está a medio metro de cada una de ellas. En cuanto a la Tierra y la Luna, su centro de masas está en la línea que las une, más cerca del centro de la Tierra que de la Luna, ya que la Tierra es mayor y tiene más masa, de hecho, está tan cerca que está dentro de la Tierra. El centro de masas de una cosa plana está en el punto donde podrías equilibrarla sobre la punta de un lápiz.

Para comprender esta explicación, sólo necesitamos saber que es algo que depende de la masa y la posición de las partes del sistema, que en casos comunes está más o menos cerca de su centro, en el significado usual de la palabra, y que está más cerca de las partes con más masa del sistema que de las que tienen menos masa: Como en el caso de la Tierra y la Luna.

¿Cómo podemos aplicar este concepto a un brazo mecánico?

Imaginemos un elemental, sin pinza ni codo, solamente una articulación, en este caso el hombro. Este tiene la capacidad de girar para proporcionarle a nuestro brazo un movimiento de abajo hacia arriba en el plano vertical, por ejemplo unos 270 grados, teniendo como referencia de cero unos 45 grados por debajo del plano horizontal. El brazo tiene un peso uniformemente distribuido, es decir su centro de masa está justamente a la mitad. El motor que genera el movimiento tiene que tener la capacidad de soportar el torque que genera ese peso justo a la mitad de la distancia del brazo o sea su centro de masas: Torque = Peso X Largo/2. Este torque será mayor entre más largo y pesado sea nuestro brazo, una solución sería acortarlo o eliminar peso con materiales más liviano. Pero siempre tenemos torque que vencer.

¿Qué ocurre si corremos el centro de masas hacia el eje? Al correr el centro de masas al eje de giro del hombro, el torque que este produce el literalmente cero (Torque = Peso X 0), pero ¿cómo es posible correr el centro de masas de un brazo? Pues la solución es relativamente sencilla, solo hay que colocar una pequeña extensión en el hombro, y a esta colocarle un contrapeso lo suficientemente pesado como para contra restar el peso de la otra parte del brazo. Suena contradictorio pero funciona, y un ejemplo practico es él sube y baja, pues no se necesita de una gran fuerza para hacerlo girar, pese a que en su eje se soporta el peso de todo el sistema: El sube y baja y los dos niños. En un sistema balanceado, el eje recibe el peso sobre sí mismo y no fuera de él, o sea da lo mismo que el brazo este en posición horizontal o vertical o en cualquier ángulo que uno desee.

Como contrapeso se puede utilizar el mismo motor que hará girar el brazo y posiblemente un peso con plomo si es necesario. Lo mismo se puede aplicar para cada sección de un brazo con codo. Con este principio lo único que nuestro motor debe soportar es el torque que genera el peso de un objeto que nuestro brazo pueda sujetar.

Un ejemplo de esta solución se puede observar en la imagen adjunta. :D

4
Visual Basic 6.0 e inferiores / [Código Fuente] Controlar El Joystick Desde Visual Basic con el API
« en: Miércoles 7 de Septiembre de 2005, 17:30 »
Este ejemplo puede detectar los joystick instalados en el sistema y si están conectados. También saber cuantos botones y ejes tiene. Con el apoyo de graficas y sonido muestra el estado del joystick seleccionado.  Produce diferentes sonidos cuando se presionan los botones o se mueven las palancas del joystick y/o pad.  Muestra los valores que detecta por medio del registro de consulta, en este caso el JOYINFOEX de la función joyGetPosEx.  Se puede cambiar ID del joystick en tiempo de ejecución si hay más de uno conectados al sistema.

Para el desarrollo del mismo utilicé varias funciones:

joyGetPosEx

joyGetDevCaps

joyGetNumDevs

Con sus respectivas estructuras de registros:

JOYINFOEX

JOYCAPS

Adicionalmente utilicé otra función del API para reproducir archivos WAV, por ejemplo: Al pulsar un botón del joystick.

sndPlaySound



Autor: DrakerDG

5
Visual Basic / Visual Basic Explorer
« en: Miércoles 7 de Septiembre de 2005, 10:59 »
:comp: Denle un vistazo a la siguiente pagina, es en ingles pero está interesante:

Visual Basic Explorer

 :suerte:

6
Robótica / Utilizar El Joystick Para Controlar Un Robot
« en: Miércoles 7 de Septiembre de 2005, 10:43 »
:comp: Encontré información interesante sobre el uso de funciones del API para el control del Joystick utilizando Visual Basic.  Sé que para la gran mayoría esto no es nada nuevo, pero para los que no o los que de todos modos les llame la atención desarrolle un ejemplo.

Lo publiqué en el siguiente post:

Controlar El Joystick Desde Visual Basic con el API

 :hola:

JoystickEX.zip

7
Visual Basic 6.0 e inferiores / Controlar El Joystick Desde Visual Basic
« en: Miércoles 7 de Septiembre de 2005, 10:39 »
:comp: Encontré información interesante sobre el uso de funciones del API para el control del Joystick utilizando Visual Basic.  Sé que para la gran mayoría esto no es nada nuevo, pero para los que no o los que de todos modos les llame la atención desarrolle un ejemplo.

Para el desarrollo del mismo utilicé varias funciones:

joyGetPosEx

joyGetDevCaps

joyGetNumDevs

Con sus respectivas estructuras de registros:

JOYINFOEX

JOYCAPS

Adicionalmente utilicé otra función del API para reproducir archivos WAV, por ejemplo:  Al pulsar un botón del joystick.

sndPlaySound

Este ejemplo puede detectar los joystick instalados en el sistema y si están conectados. También saber cuantos botones y ejes tiene. Con el apoyo de graficas y sonido muestra el estado del joystick seleccionado.  Produce diferentes sonidos cuando se presionan los botones o se mueven las palancas del joystick y/o pad.  Muestra los valores que detecta por medio del registro de consulta, en este caso el JOYINFOEX de la función joyGetPosEx.  Se puede cambiar ID del joystick en tiempo de ejecución si hay más de uno conectados al sistema.

Pueden bajar este ejemplo del siguiente link:

JoystickEX.zip

Nota:  De ser posible, para las personas que lo revisen, les agradecería me postearan sus comentarios y/o críticas al respecto.

 :gracias:

8
Visual C++ / Dll Creada En Visual C++ No Funciona En Vb
« en: Lunes 29 de Agosto de 2005, 11:44 »
Soy principiante en programación en Visual C++,  por lo que me cuesta un poco entender, revise en el foro discusiones similares y que se puediera compilar mi proyecto y luego crear la dll, pero al intentar llamar la funcion de la dll desde visual basic me da el siguiente error:

Can´t find DLL entry point GetCharX in LCDse

Especificando la dll creada se llama LCDse y la funcion GetCharX.

Los archivos en visual C++ utilizados son los siguientes:

LCDse.h:

#define EXPORT __declspec( dllexport )

EXPORT char *GetCharX(int, int);

y el LCDse.cpp:

#include <windows.h>
#include "LCDse.h"

EXPORT char *GetCharX(int iCode, int bPage)
{
char sTheCode[40];
strcpy(sTheCode, "0000000000000000000000000000000000000000");

switch (iCode)
{
case 1: strcpy(sTheCode, "0000001110110111000111111011100000000000");
break;
case 2: strcpy(sTheCode, "0000001110101011111110001011100000000000");
break;
case 3: strcpy(sTheCode, "0000001010111111111101110001000000000000");
break;
case 4: strcpy(sTheCode, "0000000100011101111101110001000000000000");
break;
case 5: strcpy(sTheCode, "0111001110111111111101010001000111000000");
break;
case 6: strcpy(sTheCode, "0010001110111111111101010001000111000000");
break;
case 7: strcpy(sTheCode, "0000000000011100111001110000000000000000");
break;
case 8: strcpy(sTheCode, "1111111111100011000110001111111111100000");
break;
case 9: strcpy(sTheCode, "0000001110100011000110001011100000000000");
break;
case 10: strcpy(sTheCode, "1111110001011100111001110100011111100000");
break;
}
return sTheCode;
}

Disculpen las molestias, y les agradezco de antemano su ayuda.  :)

Páginas: [1]