Método circuital o de las corrientes de mallas con matlab.

Diciembre 1st, 2009

Comparto un script de matlab que hice para resolver circuitos en AC mediante el método de las corrientes de malla o método circuital (ver también método nodal).

Por ejemplo, para resolver el siguiente circuito:

Metodo de corrientes de mallas

Habría que ejecutar lo siguiente en matlab (muestro en negrita lo ingresado, el resto es generado por el script):

>> mallas

MÉTODO DE LAS MALLAS EN EL DOMINIO DE LAPLACE.

———————————————————————

¿Cuantas mallas tiene el circuito?: 3

¿Cuantos dígitos de precisión quiere ver en el resultado?: 3

———————————————————————

MATRIZ DE IMPEDANCIAS.

A continuación ingrese los elementos de la matriz de impedancias en el

dominio de Laplace utilizando “s” como variable generalizada de Laplace.

***Sepa que debe ingresar las coimpedancias con su SIGNO CORRESPONDIENTE**

Ingrese z[1,1]: 6

Ingrese z[1,2]: -2

Ingrese z[1,3]: -2

Ingrese z[2,2]: 6

Ingrese z[2,3]: -2

Ingrese z[3,3]: 6

Así quedó la matriz de impedancias:

[  6, -2, -2]

[ -2,  6, -2]

[ -2, -2,  6]

¿Está bien?(S/N): s

———————————————————————

MATRIZ DE TENSIONES.

Ingrese V[1]: 10/s

Ingrese V[2]: 0

Ingrese V[3]: 0

Así quedó la matriz de Tensiones:

10/s

0

0

¿Está bien?(S/N): s

———————————————————————

DETERMINANTE PRINCIPAL

El determinante principal (Dp) es:

128

———————————————————————

PARA ENCONTRAR i1(t).

La matriz que origina el determinante sustituto 1 (Ds1) es:

[ 10/s, -2, -2]

[    0,  6, -2]

[    0, -2,  6]

El Ds1 es:

320

s

Ds1/Dp:

5

2 s

Expresado en fracciones parciales:

5

2 s

Antitransformando tenemos i1(t):

5/2

Expresado i1(t) con formato punto decimal:

2.5

———————————————————————

PARA ENCONTRAR i2(t).

La matriz que origina el determinante sustituto 2 (Ds2) es:

[  6, 10/s, -2]

[ -2,    0, -2]

[ -2,    0,  6]

El Ds2 es:

160

s

Ds2/Dp:

5

4 s

Expresado en fracciones parciales:

5

4 s

Antitransformando tenemos i2(t):

5/4

Expresado i2(t) con formato punto decimal:

1.25

———————————————————————

PARA ENCONTRAR i3(t).

La matriz que origina el determinante sustituto 3 (Ds3) es:

[  6, -2, 10/s]

[ -2,  6,    0]

[ -2, -2,    0]

El Ds3 es:

160

s

Ds3/Dp:

5

4 s

Expresado en fracciones parciales:

5

4 s

Antitransformando tenemos i3(t):

5/4

Expresado i3(t) con formato punto decimal:

1.25

MÉTODO DE LAS MALLAS EN EL DOMINIO DE LAPLACE.
———————————————————————
¿Cuantas mallas tiene el circuito?: 3
¿Cuantos dígitos de precisión quiere ver en el resultado?: 3
———————————————————————
MATRIZ DE IMPEDANCIAS.
A continuación ingrese los elementos de la matriz de impedancias en el
dominio de Laplace utilizando “s” como variable generalizada de Laplace.
***Sepa que debe ingresar las coimpedancias con su SIGNO CORRESPONDIENTE**
Ingrese z[1,1]: 6
Ingrese z[1,2]: -2
Ingrese z[1,3]: -2
Ingrese z[2,2]: 6
Ingrese z[2,3]: -2
Ingrese z[3,3]: 6
Así quedó la matriz de impedancias:
[  6, -2, -2]
[ -2,  6, -2]
[ -2, -2,  6]
¿Está bien?(S/N): s
———————————————————————
MATRIZ DE TENSIONES.
Ingrese V[1]: 10/s
Ingrese V[2]: 0
Ingrese V[3]: 0
Así quedó la matriz de Tensiones:
10/s
0
0
¿Está bien?(S/N): s
———————————————————————
DETERMINANTE PRINCIPAL
El determinante principal (Dp) es:
128
———————————————————————
PARA ENCONTRAR i1(t).
La matriz que origina el determinante sustituto 1 (Ds1) es:
[ 10/s, -2, -2]
[    0,  6, -2]
[    0, -2,  6]
El Ds1 es:
320
s
Ds1/Dp:
5
2 s
Expresado en fracciones parciales:
5
2 s
Antitransformando tenemos i1(t):
5/2
Expresado i1(t) con formato punto decimal:
2.5
———————————————————————
PARA ENCONTRAR i2(t).
La matriz que origina el determinante sustituto 2 (Ds2) es:
[  6, 10/s, -2]
[ -2,    0, -2]
[ -2,    0,  6]
El Ds2 es:
160
s
Ds2/Dp:
5
4 s
Expresado en fracciones parciales:
5
4 s
Antitransformando tenemos i2(t):
5/4
Expresado i2(t) con formato punto decimal:
1.25
———————————————————————
PARA ENCONTRAR i3(t).
La matriz que origina el determinante sustituto 3 (Ds3) es:
[  6, -2, 10/s]
[ -2,  6,    0]
[ -2, -2,    0]
El Ds3 es:
160
s
Ds3/Dp:
5
4 s
Expresado en fracciones parciales:
5
4 s
Antitransformando tenemos i3(t):
5/4
Expresado i3(t) con formato punto decimal:
1.25

Método nodal en matlab

Diciembre 1st, 2009

Comparto un script de matlab que hice para resolver circuitos en AC mediante el método nodal (ver también método de mallas).

Por ejemplo, para resolver el siguiente circuito:

Método nodal con matlab

Habría que ejecutar lo siguiente en matlab (muestro en negrita lo ingresado, el resto es generado por el script):

>> nudos

MÉTODO DE LOS NUDOS EN EL DOMINIO DE LAPLACE.
———————————————————————
¿Cuantos nudos tiene el circuito?: 4
¿Cuantos dígitos de precisión quiere ver en el resultado?: 5
———————————————————————
MATRIZ DE ADMITANCIAS.
A continuación ingrese los elementos de la matriz de admitancias en el
dominio de Laplace utilizando “s” como variable generalizada de Laplace.
***Sepa que debe ingresar las coadmitancias con su SIGNO CORRESPONDIENTE**
Ingrese y[1,1]: 1/0.5+1+1/0.5
Ingrese y[1,2]: -1/0.5
Ingrese y[1,3]: 0
Ingrese y[1,4]: -1
Ingrese y[2,2]: 1/0.5+1+1/0.5
Ingrese y[2,3]: -1/0.5
Ingrese y[2,4]: -1
Ingrese y[3,3]: 1/0.5+1+1/0.5
Ingrese y[3,4]: -1
Ingrese y[4,4]: 1+1+1+1
Así quedó la matriz de admitancias:
[  5, -2,  0, -1]
[ -2,  5, -2, -1]
[  0, -2,  5, -1]
[ -1, -1, -1,  4]
¿Está bien?(S/N): s
———————————————————————
MATRIZ DE CORRIENTES.
Ingrese I[1]: -2/s
Ingrese I[2]: -1/s
Ingrese I[3]: 2/s+2/s
Ingrese I[4]: 1/s-2/s
Así quedó la matriz de Corrientes:
-2/s
-1/s
4/s
-1/s
¿Está bien?(S/N): s
———————————————————————
DETERMINANTE PRINCIPAL
El determinante principal (Dp) es:
225
———————————————————————
PARA ENCONTRAR v1(t).
La matriz que origina el determinante sustituto 1 (Ds1) es:
[ -2/s, -2,  0, -1]
[ -1/s,  5, -2, -1]
[  4/s, -2,  5, -1]
[ -1/s, -1, -1,  4]
El Ds1 es:
120
- —
s
Ds1/Dp:
8
- —-
15 s
Expresado en fracciones parciales:
8
- —-
15 s
Antitransformando tenemos v1(t):
-8/15
Expresado v1(t) con formato punto decimal:
-0.53333
———————————————————————
PARA ENCONTRAR v2(t).
La matriz que origina el determinante sustituto 2 (Ds2) es:
[  5, -2/s,  0, -1]
[ -2, -1/s, -2, -1]
[  0,  4/s,  5, -1]
[ -1, -1/s, -1,  4]
El Ds2 es:
45
- –
s
Ds2/Dp:
1
- —
5 s
Expresado en fracciones parciales:
1
- —
5 s
Antitransformando tenemos v2(t):
-1/5
Expresado v2(t) con formato punto decimal:
-0.2
———————————————————————
PARA ENCONTRAR v3(t).
La matriz que origina el determinante sustituto 3 (Ds3) es:
[  5, -2, -2/s, -1]
[ -2,  5, -1/s, -1]
[  0, -2,  4/s, -1]
[ -1, -1, -1/s,  4]
El Ds3 es:
150
s
Ds3/Dp:
2
3 s
Expresado en fracciones parciales:
2
3 s
Antitransformando tenemos v3(t):
2/3
Expresado v3(t) con formato punto decimal:
0.66667
———————————————————————
PARA ENCONTRAR v4(t).
La matriz que origina el determinante sustituto 4 (Ds4) es:
[  5, -2,  0, -2/s]
[ -2,  5, -2, -1/s]
[  0, -2,  5,  4/s]
[ -1, -1, -1, -1/s]
El Ds4 es:
60
- –
s
Ds4/Dp:
4
- —-
15 s
Expresado en fracciones parciales:
4
- —-
15 s
Antitransformando tenemos v4(t):
-4/15
Expresado v4(t) con formato punto decimal:
-0.26667

MÉTODO DE LOS NUDOS EN EL DOMINIO DE LAPLACE.

———————————————————————

¿Cuantos nudos tiene el circuito?: 4

¿Cuantos dígitos de precisión quiere ver en el resultado?: 5

———————————————————————

MATRIZ DE ADMITANCIAS.

A continuación ingrese los elementos de la matriz de admitancias en el

dominio de Laplace utilizando “s” como variable generalizada de Laplace.

***Sepa que debe ingresar las coadmitancias con su SIGNO CORRESPONDIENTE**

Ingrese y[1,1]: 1/0.5+1+1/0.5

Ingrese y[1,2]: -1/0.5

Ingrese y[1,3]: 0

Ingrese y[1,4]: -1

Ingrese y[2,2]: 1/0.5+1+1/0.5

Ingrese y[2,3]: -1/0.5

Ingrese y[2,4]: -1

Ingrese y[3,3]: 1/0.5+1+1/0.5

Ingrese y[3,4]: -1

Ingrese y[4,4]: 1+1+1+1

Así quedó la matriz de admitancias:

[  5, -2,  0, -1]

[ -2,  5, -2, -1]

[  0, -2,  5, -1]

[ -1, -1, -1,  4]

¿Está bien?(S/N): s

———————————————————————

MATRIZ DE CORRIENTES.

Ingrese I[1]: -2/s

Ingrese I[2]: -1/s

Ingrese I[3]: 2/s+2/s

Ingrese I[4]: 1/s-2/s

Así quedó la matriz de Corrientes:

-2/s

-1/s

4/s

-1/s

¿Está bien?(S/N): s

———————————————————————

DETERMINANTE PRINCIPAL

El determinante principal (Dp) es:

225

———————————————————————

PARA ENCONTRAR v1(t).

La matriz que origina el determinante sustituto 1 (Ds1) es:

[ -2/s, -2,  0, -1]

[ -1/s,  5, -2, -1]

[  4/s, -2,  5, -1]

[ -1/s, -1, -1,  4]

El Ds1 es:

120

- —

s

Ds1/Dp:

8

- —-

15 s

Expresado en fracciones parciales:

8

- —-

15 s

Antitransformando tenemos v1(t):

-8/15

Expresado v1(t) con formato punto decimal:

-0.53333

———————————————————————

PARA ENCONTRAR v2(t).

La matriz que origina el determinante sustituto 2 (Ds2) es:

[  5, -2/s,  0, -1]

[ -2, -1/s, -2, -1]

[  0,  4/s,  5, -1]

[ -1, -1/s, -1,  4]

El Ds2 es:

45

- –

s

Ds2/Dp:

1

- —

5 s

Expresado en fracciones parciales:

1

- —

5 s

Antitransformando tenemos v2(t):

-1/5

Expresado v2(t) con formato punto decimal:

-0.2

———————————————————————

PARA ENCONTRAR v3(t).

La matriz que origina el determinante sustituto 3 (Ds3) es:

[  5, -2, -2/s, -1]

[ -2,  5, -1/s, -1]

[  0, -2,  4/s, -1]

[ -1, -1, -1/s,  4]

El Ds3 es:

150

s

Ds3/Dp:

2

3 s

Expresado en fracciones parciales:

2

3 s

Antitransformando tenemos v3(t):

2/3

Expresado v3(t) con formato punto decimal:

0.66667

———————————————————————

PARA ENCONTRAR v4(t).

La matriz que origina el determinante sustituto 4 (Ds4) es:

[  5, -2,  0, -2/s]

[ -2,  5, -2, -1/s]

[  0, -2,  5,  4/s]

[ -1, -1, -1, -1/s]

El Ds4 es:

60

- –

s

Ds4/Dp:

4

- —-

15 s

Expresado en fracciones parciales:

4

- —-

15 s

Antitransformando tenemos v4(t):

-4/15

Expresado v4(t) con formato punto decimal:

-0.26667

Función de Transferencia con Matlab

Diciembre 1st, 2009

El siguiente script para matlab grafica los diagramas de Bode, Nyquist y Polar para una función de transferencia dada.

Por ejemplo, si ejecutamos el script y ponemos 1/(p^2+3*p+1) como función de transferencia:

>> diagramas
T(s)=1/(p^2+3*p+1)
Un nombre para el ejercicio: ejemplo

>> diagramas

T(s)=1/(p^2+3*p+1)

Un nombre para el ejercicio: ejemplo

El script genera un archivo html que dice lo siguiente:

Informe de la Función de transferencia (ejemplo)

Ejemplo de diagrama de Bode, Nyquist y Polar

El script de matlab guarda una imagen, así que puede ser estudiado como ejemplo para hacer eso y otras cosas interesantes, como crear una función de transferencia a partir de una función simbólica en matlab.

HyperTerminal en Windows 7 o Windows Vista.

Octubre 28th, 2009

Como acabarás de descrubrir, el HyperTerminal desapareció en el Windows Vista.

Pasos para poder usarlo en el Windows 7 o Vista:

  1. Descarga el HyperTerminal.
  2. Descomprimí el rar en la carpeta que quieras instalar el HyperTerminal.
  3. Ejecutalo. No hay que instalar nada. Podés crearte un acceso directo si querés.

Simplemente copié los archivos necesarios de Windows XP y los comprimí.

Lista negra

Septiembre 21st, 2009

¿Cansados de recibir SPAM? Yo si.

Me llegan e-mails con promociones y me aseguran que no son SPAM porque si les pido que me remuevan de sus listas lo harán. Algunos te remueven, otros no. Pero de todas formas es SPAM porque es publicidad por la que nunca pedí. Juntaron mi dirección de algún sitio en internet y ahora me envían publicidad.

Así que a continuación voy a ir poniendo esas direcciones desde donde me envían SPAM en mi lista negra, así otros que quieran juntar direcciones para enviar publicidad se encarguen de enviárselas a estos señores también. A ver si se aguantan entre ellos ;)

wilsonblanco@hipuu.com.py
info@coicom.com
info@misdramascristianos.com
donsala@donsala.com.ar
semiventas_bd@hipuu.com.py
blancodigital@hipuu.com.py
contacto@miamihardimport.com.ar
gaston@miamihardimoprt.com.ar
pptcristiano@hotmail.com
info@powerpointcristiano.com
tuministerioinfantil@hotmail.com
info@tuministerioinfantil.com
johnburrows.rrpp@gmail.com

El que quiera colaborar deje las direcciones desde las que les envían SPAM (y que son leídas por alguien si responden) en los comentarios.

¿Qué le da su valor al dinero?

Septiembre 15th, 2009

¿Te has preguntado porqué todos queremos dinero? Siendo que es un simple pedazo de papel, ¿de qué nos sirve?

Desde el punto de vista estrictamente legal (por lo menos en Argentina), sólo la moneda es dinero. Ésta es el medio de pago físico impuesto por la ley.

Pero desde un punto de vista más amplio, el dinero es todo lo que sirve como medio de cambio, en el sentido de que se acepte ampliamente como medio de pago. Por ejemplo: papel moneda, cheque, tarjetas de crédito, tarjetas de débito, etc.

Oculta en el párrafo anterior está la respuesta a nuestra pregunta original: ¿por qué vale el dinero?. El dinero vale porque es aceptado. En el caso de la moneda del país, vale porque el gobierno la establece como medio de pago por ley.

Antes de que existiera el dinero las transacciones comerciales se llevaban a cabo por medio del trueque. O sea, yo tengo algo que necesitás y al mismo tiempo vos tenés algo que necesito, así que hacemos el intercambio.

Pero esto trae muchas complicaciones. Lo tuyo podría ser más valioso que lo mío, por lo tanto tendríamos que fijarnos si yo tengo algo más que te pueda interesar. Si no lo tuviera se complicaría la transacción. Yo tendría que conseguir algo más para vos, tal vez haciendo otro trueque con otra persona. Y la transacción se complica más y más.

Eso limita el comercio al punto de hacerlo casi imposible. Muchas sociedades utilizaban arroz, café, cacao, semillas, y hasta cigarrillos como dinero.

Luego aparecieron las monedas, con valor intrínseco. O sea que valían por si mismas, por los metales con las que estaban fabricadas.

Los primeros billetes, con valor representativo, fueron emitidos por el Banco de Inglaterra en 1694. Su valor dependía de los depósitos en oro del país. Si llevabas el billete al banco te daban su valor en oro y vice versa: para emitir billetes tenían que depositar oro como respaldo.

Hoy en día los gobiernos no tienen respaldo en oro para sus billetes. A veces los países simplemente emiten billetes, los sacan de la imprenta. Esto produce inflación y es un tipo de impuesto disimulado. Estados Unidos, por ejemplo, dejó de respaldar el dolar con oro en 1971.

Otro día hablamos más sobre como se emite dinero, o como se crea el dinero. También analizaremos el problema del “virus del débito”. Pondré el link aquí. Mientras tanto los dejo con un video sobre otras causas de la inflación.

Asignación de teclas para HP 50g/49g+.

Julio 27th, 2009

Antes que nada quiero hacer una aclaración para que no te confundas si tu pantalla no se ve como la mía.

Mi pantalla, por ejemplo, se podría ver así:

Mi Pantalla

Mientras que, para la misma acción, la tuya se podría ver así:

Tu Pantalla

Eso se debe a que yo tengo instaladas las librerías necesarias para poder ver las entradas SysRPL, que decodifican los nombres de las entradas.

Si querés hacer lo mismo podés instalar extable2.lib. Copiala al puerto 2:FLASH y luego reiniciá la calculadora (ON+F3). También podés ver el tutorial sobre como instalar una librería. Además tenés que tener la bandera –85 set (SysRPL stk disp).

Pero si no querés instalarlo, por ahora no te preocupes, porque aunque veas “External… FlashPtr…” etc en vez del nombre correcto, el programa va a funcionar igual. Simplemente no lo vas a poder ver correctamente.

Otra cosa: Tengo la calcu en modo RPN (el otro es algebráico). Para cambiar entre RPN y ALG tenés que presionar MODE, W, OK. Esto cambia el “Operating Mode..” de RPN a Algebraic (o viceversa) y le da el OK. Para seguir estos ejemplos tenés que tener la calcu en ese modo (RPN).

Bueno, aclarado esto, manos a la obra…

El modo USER.

Jugá con esta secuencia de teclas y fijate si notás algún cambio en la pantalla de tu calculadora: LS, ALPHA, LS, ALPHA,LS, ALPHA

Como podrás ver, lo que cambia es una etiqueta arriba en la pantalla. Cambia entre “USR“, “1US” y luego desaparece.

El orden en el que cambia, está determinado por la bandera numero -61 del sistema (-61 system flag). Si está set ([USR] locks User), primero aparece  USR yluego 1USR. Si está clear ([USR][USR] locks), primero aparece 1USR y luego USR.

Si querés probar, para entrar a las banderas del systema tenés que ir a MODE, FLAGS (FLAGS).

En realidad decir que la bandera -61 determina “el orden en el que cambia” es simplemente un modo didáctico (o introductorio) de decirlo. A decir verdad USR quiere decir que se está en el modo USER. 1US queire decir que una tecla (la próxima) se evaluará en modo USER y luego se abandonará el modo USER. Y cuando desaparece la etiqueta es que no se está más en modo USER.

Así que la bandera -61 determina de que modo se traba (lock) el modo USER. Si está visible la etiqueta USR se considera que está trabado. Si está la etiqueta 1US no está trabado, pues luego de presionar una tecla (una funcional, no los shifts) ya dejaremos de estar en modo USER, por lo tanto no está trabado.

Si “[USR][USR] locks”, debemos presionar LS, ALPHA, LS, ALPHA para la etiqueta USR. (presionando solamente LS, ALPHA quedaríamos en 1US).

Si “[USR] locks User”  con presionar LS, ALPHA es suficiente para que aparezca la etiqueta USR. Si lo volvemos a hacer aparece 1US.

Y al final ¿qué es el modo USER? La siguiente bandera, la -62, determina si estamos o no en modo USER (la -61 tenía que ver con cómo entrabamos al modo USER). Al estar set, se muestra la etiqueta USR, al estar clear no se muestra. El modo USER quiere decir “Modo teclas de usuario” (User keys on).

Cuando uno presiona una tecla funcional de la calculadora, ésta comprueba si se está en modo USER o no:

  • Si está en modo USER, se fija si el usuario le dió alguna asignación a la tecla. Si es así la ejecuta. Sinó ejecuta la asignación predefinida.
  • Si no está en modo USER ejecuta la asignación predefinida de la tecla sin importar si el usuario le asignó otra función o no.

Instalando KeymanPlus.

El manual de referencia avanzado (en inglés) de la calculadora documenta algunas funciones para asignar teclas de usuario y mostrar las asignaciones hechas (ASN,DELKEYS, RCLKEYS, STOKEYS).

Pero en este post vamos a utilizar una librería que le da mucha mas potencia a las teclas de usuario: Keyman.

Instalá la librería Keyman (KeymanPlus) en tu calculadora (ver como). En el archivo zip también va a estar la documentación en castellano si le querés dar una mirada (KeymanE.htm).

Luego de haber reiniciado, presioná RS, LIB, Keyma para ingresar al menú Keyman. Vas a ver algo así:

Menu Keyman 1

Fijate que  el menú sige. Presioná NXT para ver el resto (y NXT otra vez para ver el primero):

Menu Keyman 2

El comando A?D.

En la librería Keyman un signo de interrogación (?) en el nombre del comando significa que si presionás ese comando ejecuta la función que está antes del signo, y si presionás y mantenés presionado el comando por un instante (unos 300 ms aproximadamente) ejecuta la función que está después del signo.

En el caso del comando A?D, A significa Assign (asignar) y D Delete (eliminar). Asigna o elimina la asignación de una tecla.

Hagamos una asignación simple. Presioná 1, ENTER. Y luego presioná el comando A?D. Se tiene que ver así:

AsnK

Se muestra el mensaje AsnK, que significa que lo que está en el nivel “1:” del stack se va a asignar a la tecla que presionés a continuación. Presioná la X por ejemplo. Ya está asignado el 1 a la X. Ahora volvé a presionar la X y fijate como la X hace aparecer un 1.

Probá alguna combinación, como ALPHA, X por ejemplo. La función es la normal. Esto es porque la asignación afectó solo a la X. Las otras variaciones como RS, X o LS, X no fueron afectadas. Ya vamos a ver las diferentes combinaciones. Pero primero vemos como borrar una asignación.

Para borrar la asignación presioná A?D por unos instantes. Se va a ver algo así:

DelK

A continuación presioná la tecla cuya asignación querés borrar, en este caso la X. Listo. Todo ha vuelto a la normalidad.

Las combinaciones de teclas.

Cada tecla tiene su código, que está dado por su número de fila, su número de columna, un punto y un código de combinación, en ese orden.

La tecla HIST (sola, sin ningún shift ni alpha) por ejemplo tiene código 41.1, donde fila=4, columna=1 y combinación = 1.

Las combinaciones que puede tener una tecla son:

  • 1: La tecla sola.
  • 2: LS y luego la tecla. A esta combinación de presionar una tecla y luego la otra la simbolizaremos por la primera tecla, una coma, y luego la otra: LS, la tecla.
  • 21: Mantengo presionada LS y, sin soltarla, presiono la tecla. A esta combinación de presionar una tecla y sin soltarla presionar la siguiente la simbolizaremos por la primera tecla, un signo más, y luego la otra: LS + la tecla.
  • 3: RS, la tecla.
  • 31:  RS + la tecla.
  • 4: ALPHA, la tecla.
  • 41: ALPHA + la tecla.
  • 5: ALPHA, LS + la tecla. O sea, presionás y soltas ALPHA, luego presionas LS, y sin soltarla presionás la tecla.
  • 51: ALPHA, LS + la tecla.
  • 6: ALPHA, RS, la tecla.
  • 61: ALPHA, RS + la tecla.

Entonces, por ejemplo, la combinación ALPHA, RS+HIST sería: 41.61. Y la combinación LS + P sería: 44.21.

Cuando uno asigna una tecla de usuario mediante A?D, la asignación se realiza solamente a la combinación que uno utilizó cuando A?D te pidió la tecla (diciendo: AsnK).

Si en vez de X, hubieras presionadoALPHA, RS + X, la asignación solamente se habría realizado para 63.61. Por lo tanto solo esa combinación escribiría el 1 que le asignamos. Cualquier otra combinación funcionaría de la forma predeterminada (la “normal”).

Tené en cuenta que si asignás algo a una combinación de teclas, a la hora de borrar esa asignación (presionando A?D por unos instantes), tenés que darle la combinación correcta que querés borrar. ¿Se entiende? A?D va a borrar solamente esa combinación (la que le des), las otras no se tocarán.

Los comandos RclK y K&SA.

El comando RclK espera a que presiones una tecla, o cualquier variante de ella (combinación), y te devuelve la asignación de usuario que tiene esa combinación si es que tiene alguna. Sino simplemente dice XX.XX not asnd, siendo XX.XX la combinación que hayas presionado.

El comando K&SA también espera a que presiones alguna combinación. Pero en vez de darte la asignación de usuario que tiene esa combinación, te da, en el nivel “2:” (o “3:”) del stack el código XX.XX de la combinación que presionaste y en el  nivel “1:” la función del sistema que se ejecuta predeterminadamente (la “normal”) para esa combinación. También puede mostrar otras cosas. Fijate en la documentación de Keyman que otras cosas muestra a veces.

Lo que más nos interesa de K&SA es que devuelve la combinación que presionaste. Esto ayuda cuando uno no se acuerda de memoria el código para una combinación. De paso, el código se llama rc.p: r=row(fila), c=column(columna), p=plane(plano). El resto que devuelve lo podemos borrar nomás y la utilizamos para ver el código.

Asignar programas.

Uno puede asignar cualquier cosa que esté en el stack a una combinación rc.p.

Por ejemplo. En electrónica es muy común tener que realizar el cálculo del valor final de una combinación de resistores en paralelo. La fórmula del valor de resistencia equivalente, teniendo resistores R1, R2, R3… Rn en paralelo, es 1/(1/R1+1/R2+1/R3+…+1/Rn).

El siguiente programita hace ese cálculo:

paralelo

Lo puedo asignar, por ejemplo, a la combinación RS + P (44.31), que me recuerda a Paralelo y no interfiere con la llamada a CAT, ya que a CAT puedo acceder mediante RS, P(44.3).

Entonces ahora puedo poner los valores de los resistores (8, 5 y 6) en el stack seguidos por el número de resistores (3):

resistores

Y luego, presionando RS + P ya los tengo metidos en la fórmula:

formula

Doble clic y clic largo.

¿Qué pasaría si a una rp.p le asignara un programa que quedara a la espera a ver si la vuelvo presionar luego de algunas décimas de segundo (doble clic), y en tal caso hiciera una cosa, y en caso de que pasaran las décimas de segundo y no la volviera a presionar hiciera otra? Pues eso hace el comando IFD (if double clic).

También podría hacer otro programa que esperara a ver si sigo presionando la tecla por algunas décimas de segundo, y si es así hiciera una cosa, y sino otra (clic largo). El comando IFL (if long clic) lo hace.

Poné en el stack una cadena que diga “DOBLE” y otra “NORMAL” (abrí comillas con RS, COMILLAS y escribí la cadena presionando ALPHA para poder ingresar las letras) . Así:

doble

Luego presioná IFD. Queda así si no tenés instalado extable2:

external

Y así si tenés extable2 y la flag -85 set:

conlib

Eso que hay en el stack es un programa en SysRPL que dice que si detecta doble clic, escribe la cadena “DOBLE”, sino, escribe “NORMAL”.

Asigná el programa a la tecla X por ejemplo. O sea, presioná A?D y luego X. Probá haciendo clic o doble clic en X. Para borrar la asignación presioná A?D por unos instantes y luego X.

Ese código se lo podés asignar a cualquier combinación. Lo mismo podés hacer con IFL para detectar clics largos.

Repetí los pasos de arriba pero no lo asignes a la tecla. Ahora escribí “LARGO”:

LARGO

Presioná DERECHA para invertir las posiciones (para que “LARGO” quede arriba):

LARGOinv

Ahora presioná IFL. Asigná (con A?D) el resultado a algún rc.p que quieras, por ejemplo a RS, COMILLAS. Ahora probá haciendo RS, COMILLAS. Haciendo RS, doble clic COMILLAS. Y RS, manteniendo COMILLAS presionada.

Como verás, ya le asignamos tres códigos diferentes para una combinación. Una si la combinación recibe un click, otra si recibe doble clic y otra si recibe un clic largo. Así se puede hacer para cada combinación para cada tecla, por lo tanto las posibilidades son muchísimas.

Si querés asignar a una tecla un comportamiento con doble clic, y para el clic común querés el comportamiento “normal”, tenés que poner arriba lo que querés que haga la tecla para doble clic, abajo el código rc.p de la tecla y presionar IFD. De este modo para doble clic se ejecuta lo de arriba y sino se ejecuta lo que haría normalmente el código rc.p que pusiste. Consultá el manual de Keyman para más información y ejemplos.

Otros comandos.

Los otros comandos están explicados en la documentación de Keyman (KeymanE.html) en el archivo zip.  Creo que con esta explicación ya se puede tener una base suficiente como para ir directamente a la documentación, que tiene varios ejemplos.

Documentar las asignaciones.

Cuando empieces a crearte muchos accesos directos en tu teclado te vas a empezar a olvidar de todo lo que tenés.

Una forma simple de documentar tus teclas es la siguiente.

  1. Elegí una combinación de documentación. Por ejemplo ALPHA + tecla.
  2. Cada vez que asignes algo a alguna tecla, asignale a ALPHA + esa tecla la explicación de lo que hace. O agregale a una explicación anterior si es que ya tenías una.

Ejemplo:

Le vamos a asignar a RS + COMILLAS un programa que ponga “HOLA” en el stack:

HOLA1

Asignalo (con A?D) a RS + COMILLAS.

Ahora hacé lo mismo con un programa que diga << “CHAU” >> pero asignalo a LS, COMILLAS (soltá el shift antes de presionar X).

Ahora creá un programa que diga: << “LS+: DICE CHAU(este símbolo rojoPUNTO)RS: DICE HOLA” >>

Se ve así si lo editás (EDIT):

dice

Asignalo a ALPHA+COMILLAS. Ahora cada vez que presiones ALPHA+COMILLAS vas a poder ver todas las asignaciones que tenés para la tecla COMILLAS. Obviamente tenés que ir actualizando la información cada vez que asignás algo nuevo.

En este caso LS+ significa LEFT SHIFT (el blanco) y sin soltar (por eso el +) la tecla en cuestión. Y RS significa RIGHT SHIFT (el rojo), pero soltándolo antes de presionar la tecla en cuestión.

Otra cosa que me sirve es asignar << 1200 MENU >> a la tecla K para clic largo. De esta forma haciendo un clic largo en K se abre el menú de la librería Keyman.

Como instalar una librería en la HP 50g/49g+.

Julio 27th, 2009

Es más simple de lo que parece.

Tomemos como ejemplo la librería Keyman (keymanplus para la 49g+/50g). Andá a esta página y descargá el zip.

Copía el archivo KeymanPlus en algún directorio de tu calculadora (HOME por ejemplo). Lo podés hacer conectando la calculadora mediante el cable USB con el programa Conn4x o copiando KeymanPlus en la tarjeta SD de tu calculadora. En el caso de la SD no necesitás copiarlo a un directorio de tu calculadora. Simplemente insertás la SD en la calculadora.

Copiar el archivo a un puerto.

Una vez que tengas el archivo KeymanPlus en la calculadora (o en la SD en la calculadora), presioná LS, FILES para abrir el explorador de archivos. Vas a ver algo así:

File Manager

Presioná OK. Vas a ver la librería. Seleccionala.

KeymanPlus

Ahora copiala (COPY) o movela (MOVE) a, por ejemplo, el puerto 2:FLASH:

PICK DESTINATION

Presioná OK. Ya está copiada.

Reiniciar la calculadora.

Para terminar la instalación debés reiniciar la calculadora. Presióna ON + C (sin soltar ON).

Ahora la librería ya está instalada.

Acceder (entrar) a la librería.

Se accede a la librería entrando a su menú. Presioná RS, LIB. Vas a ver los nombres de todas las librerías que tenés instaladas. Presioná en el que diga “Keyma” para ingresar al menú Keyman.

Otra manera de acceder al menú de una librería es escribiendo el número de librería y luego el comando MENU.

Si vas al explorador de archivos e ingresás al puerto 2, donde guardaste Keymanplus, vas a ver que tiene el número 1200 (L1200 dice).

Por lo tanto podés escribir 1200 MENU como se muestra a continuación:

1200MENU

Al darle ENTER vas a ver el menú de esa librería.

¿Qué es KIVA?

Julio 5th, 2009

Kiva es una organización sin ánimo de lucro que permite a cualquier persona prestar dinero (desde 25 dolares en adelante), a través de internet, a pequeñas empresas o emprendedores en regiones pobres para ayudarlos a salir de la pobreza.

Kiva, o alguna de sus organizaciones “socias” alrededor del mundo, analiza el plan de negocios presentado por el microempresario y si ve que tiene buenas posibilidades de prosperar en vez de hundir al microempresario en deudas, lo aprueba y lo pone en su página para que algún prestamista preste la cantidad de dinero que le parezca (a partir de 25 dolares) para ese emprendimiento.

Una vez que se ha juntado todo el dinero para ese emprendimiento, se le otorga el préstamo al microempresario.

Un ejemplo.

Este video, hecho por Kieran Ball, sigue el camino de un préstamo de $25, que va desde Londres hasta el pueblo de Preak Tamao en Camboya.

Un Puñado de Dólares: La Historia de un Préstamo Kiva de Kieran Ball en Vimeo.

¿Y después?

A medida que el préstamo se va devolviendo, los prestamistas van recuperando el dinero en su cuenta.

Pueden extraer ese dinero, volver a prestarlo para otros proyectos o donárselo a Kiva.

Mas información.

Para más información puede visitar:

Kiva – Wikipedia.

Lista actual de emprendedores que necesitan un préstamo (en la página de Kiva, en inglés).

FEVAL – HP 50g/49g+ EVAL a 203 MHz.

Junio 29th, 2009

[English version]

Hice una librería, SOLAMENTE para la HP 49g+ o la 50g, que permite evaluar un objeto a 203 MHz. O sea, hace lo mismo que el comando EVAL de la calculadora pero a 203 MHz en vez de los 12 MHz o 75 MHz a los que trabaja normalmente.

La librería está basada en las herramientas ClockSpeed Adjustment Tools de Alistair Borowski.

Como dice Al, parece que no daña la calculadora. Pero usalo bajo tu propio riesgo.

Aclaro que el procesador de la calculadora está fabricado para funcionar a 203 MHz. HP lo “underclockeó” a un máximo de 75 MHz (o 12 MHz cuando inactiva). Pero aunque el procesador está diseñado para esa velocidad, tal vez los circuitos no.

De todas formas aquí está la librería para los que, como yo, quieren usarla para algunos cálculos largos:

FEVAL.rar

Ejemplo:

<< ‘500!’ FEVAL >>

Como instalar la librería.

Extraer el contenido de FEVAL.rar y copiar el archivo LIBFEVAL.hp (Ctrl+C):

Copiar LIBFEVAL.hp

Pegarlo en algún directorio de la calculadora, por ejemplo el HOME.

Pegar en HOME

Ir a HOME en la calculadora (o donde lo hayas copiado):

Ir a HOME

Seleccionar LIBFEVAL y copiarla (COPY):

Copiar LIBFEVAL

Pegar en el puerto 2: FLASH o también puede ser en el “0: IRAM” o el “1: ERAM”:

Pegar en un puerto.

Reiniciar la calculadora presionando ON + C.

Poner en el stack algún objeto para evaluar y presionar Shift Derecho, LIB:

Menú LIB

Presionar FEVAL para entrar al menú de la librería y FEVAL otra vez para ejecutar el comando:

FEVAL

También se podría haber escrito la palabra FEVAL simplemente y el comando se ejecutaría igual. El comando FEVAL ya funciona como cualquier otro comando de la calculadora. Inclusive aparece en el catálogo (Shift derecho, CAT):

Catálogo.

Inclusive se puede presionar el HELP desde el catálogo para ver la descripción:

HELP

Asignar a la tecla EVAL (para doble clic).

Instalá el archivo Keymanplus de la librería Keyman de la misma forma que instalaste LIBFEVAL (acordate de reiniciar la calcu al finalizar).

Andá al menú LIB (Shift derecho, LIB). Poné en el stack lo que se muestra en la imágen:

MENU Keyman

Presioná IFD y luego ->TO? (una sola vez):

IFD y ->TO?

Ahora presioná A?D y luego la tecla EVAL.

Ya está. Cada vez que hagas doble clic en la tecla EVAL, en vez de ejecutarse EVAL se ejecutará FEVAL.

Lo podés comprobar:

  • Poné ‘500!’ en el stack.
  • Presioná ENTER para duplicarlo.
  • Presioná la tecla EVAL y fijate cuanto tarda.
  • Borrá el resultado (no el ‘500!’).
  • Doble clic en la tecla EVAL para volver a evaluarlo pero ahora con FEVAL.

Más rápido ¿no?