uControl
Marzo 30, 2017, 05:53:32 *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: [1] 2 3 4 5 6 ... 27   Ir Abajo
  Imprimir  
Autor Tema: Calculadora Cientifica-Gráfica con PIC  (Leído 153480 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Ariel
Global Moderator
dsPIC
****
Desconectado Desconectado

Sexo: Masculino
Mensajes: 10751



WWW
« : Febrero 12, 2009, 04:10:12 »

Bueno, luego de algunos mensajes sobre el tema en otros hilos, inauguro este para ir plasmando la idea. Seria bueno llevar a cabo este proyecto por que aprenderiamos MUCHO en el camino.

La idea, básicamente, es usar un display grafico de 128x64 pixeles monocromatico como este


para hacer una calculadora cientifica que pueda graficar datos estadisticos o funciones mas o menos como esta:



Hilos paralelos, que tratan temas relacionados con este proyecto:

* C18: Function Parser para Calculadora Cientifica

* CCS: Software Calculadora Cientifica Gráfica

* ¿Que nombre te gusta para este proyecto?

* Funciones Gráficas en CCS (de uControl))

He puesto todo lo que tenemos terminado en el Wiki, aclarando que se pasen por aqui para ver las novedades. O para participar de alguna forma!

* Calculadora Cientifica y Gráfica con PIC

Antes que salgas corriendo, dejame decir que no es TAN complejo y que no tenemos por que hacer todo de salida. Se puede comenzar son lo básico, e ir agregando cosas hasta lograr algo muy completo.

En este post voy a ir actualizando las especificaciones que surjan de las respuestas.

BrunoF ha desarrollado el soft para la calculadora!  rolleyes2

Características actuales:

Parseador:

  • Reconocimiento de hasta 3 incógnitas distintas: x y y z;
  • Reconocimiento de números decimales o enteros de longitud variable;
  • Reconocimiento de las operaciones básicas: + - * / % ^;
  • Reconocimiento de las funciones trigonométricas, trigonométricas inversas, trigonométricas hiperbólicas y trigonométricas hiperbólicas inversas;
  • Reconocimiento de las operaciones adicionales log() ln() abs() rnd() sqrt() y sgn();
  • Reconocimiento de paréntesis anidados y su jerarquía;
  • Reconocimiento de multiplicaciones implícitas(ej. 3x, (2*3)(6/2));
  • Reconocimiento de los números especiales PI y e;
  • Optimización de utilización de memoria RAM para poder compartirla con otras funciones de la calculadora;
  • Menos de 50ms @12 MIPS en convertir ecuaciónes semi-complejas a notación postfija;
  • Insensitive case. Reconoce indistintamente ente mayúsculas y minúsculas;
  • Algoritmo de precodificación de operadores(ej. "sin(" a 's', "cos(" a 'c') para optimización posterior de pasaje a notación postfija;
  • Flexible y fácilmente adaptable a nuevas funciones,variables,constantes,etc.

Evaluador:

  • Evaluación de las funciones básicas + - * / ^;
  • Evaluación de ciertas funciones trigonométricas, trigonométricas inversas y trigonométricas hiperbólicas;
  • Evaluación de las operaciones adicionales log() ln() abs() y sqrt();
  • Evaluación de variables;
  • Evaluación de constantes(PI y e);
  • Capacidad de compartir memoria con otras funciones, para ahorro de RAM. Utilización mínima de memoria;
  • Velocidad de procesado aún no calculada(son bienvenidas las pruebas de ustedes para averiguarlo);
  • Flexible y fácilmente adaptable a nuevas funciones,variables,constantes,etc.

Graficador:
  • Grafica ecuaciones en el espacio(3D) con proyección isométrica para dar sensación de 3D y profundidad;
  • Grafica ecuaciones en el plano(2D),pero actualmente está deshabilitado;
  • Permite mirar en una zona específica de la función;
  • Flexible y fácilmente adaptable a nuevos tipos de graficación.

Cosas por hacer(ToDo List):
  • Interfaz y menúes en pantalla para la calculadora/graficadora;
  • Agregado de otros tipos de cálculo, como matrices, derivadas,integrales,etc;
  • ...


Requerimientos:
  • Proteus 7.0 o superior para poder simularlo;
  • Compilador PICC para poder recompilar el codigo si quieren modificarlo;

Consumos actuales:
PIC:Worst case RAM:ROM:Worst case Stack levels:
18F455017%(348 bytes)63%(20640 bytes)5(of 31 avaiable)
18F672213%(434 bytes)16%(20718 bytes)5(of 31 avaiable)

Forma de uso:
  • El sistema comienza pidiendo la ecuación de entrada. Podés escribir con el teclado la ecuación y deberá ir apareciendo en la terminal virtual.
    Se puede corregir la ecuación de entrada utilizando la tecla Backspace. Una vez escrita la ecuación, presione la tecla <ENTER> de su teclado;
  • Luego se le pedirá que ingrese el valor mínimo de X. Ingrese un valor ya sea entero o decimal y cuando haya terminado presione <ENTER>;
  • Luego se le pedirá que ingrese el valor máximo de X. Ingrese un valor ya sea entero o decimal y cuando haya terminado presione <ENTER>;
  • Luego se le pedirá que ingrese el valor mínimo de Y. Ingrese un valor ya sea entero o decimal y cuando haya terminado presione <ENTER>;
  • Luego se le pedirá que ingrese el valor máximo de Y. Ingrese un valor ya sea entero o decimal y cuando haya terminado presione <ENTER>;
  • Si todo fue ingresado correctamente, la graficación deberá comenzar. La terminal virtual indicará cuando la graficación haya finalizado.

Ejemplo:
  • Ingreso sin(x)*cos(y) y luego presiono <ENTER>;
  • Digito -8 y luego presiono <ENTER>;
  • Digito 8 y luego presiono <ENTER>;
  • Digito -4 y luego presiono <ENTER>;
  • Finalmente digito 4 y luego presiono <ENTER>;
  • El programa comienza a graficar...;

Finalmente, les dejo algunas capturas de pantalla de diversas superficies con las que he "jugado". Espero les guste.





Ecuación:Gráfica:
(x/4)^2-(y/4)^2
x^2+y^2
sqrt(20-x^2-y^2)
sin(x)cos(y)

Sus graficas o ecuaciones son bienvenidas! :D

página del proyecto original:en foro uControl
Repositorio del parseador y evaluador:http://github.com/brunof/PicParser
Repositorio del software de la calculadora/graficadora:http://github.com/brunof/PicCalcGraph


ZeK005 agregó esto con respecto a la calculadora HP48G, quizas nos ayude:

- Manuales de Usuario: HP48G (28 MB)
http://isa.umh.es/temas/calc/hp%2048g_user's%20guide_English.pdf

- Manual del de uso y programación con ejemplos (en Español):
manualUserRPL (4,8 KB)

http://isa.umh.es/temas/calc/manua2lUserRPL.pdf

- Manual de Programación UserRPL (RPN) (1 MB)
http://isa.umh.es/temas/calc/curso_UserRPL.pdf

- Manual de Programación SystemRPL (1.3 MB)
http://isa.umh.es/temas/calc/progsysrpl.pdf

- Tabla comparativa de funciones de calculadoras HP
http://isa.umh.es/temas/calc/cccs200.xls

- Fuentas especiales usadas en los manuales HP49font (500 KB)
http://isa.umh.es/temas/calc/HP49Font.zip

- Enlaces y recursos WEB
http://www.hpcalc.org
« Última modificación: Diciembre 18, 2009, 06:26:25 por Ariel » En línea

Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert
Ariel
Global Moderator
dsPIC
****
Desconectado Desconectado

Sexo: Masculino
Mensajes: 10751



WWW
« Respuesta #1 : Febrero 12, 2009, 05:43:38 »

Precios de PIC18F conseguibles en Electrocomponentes SH, Peron 1455, Capital Federal, Argentina (al 12-02-09):

PIC18F2550-I/SP  $44.26- (u$s 12.64) + 10.5% de IVA
PIC18F4550-I/P   $62.05- (u$s 17.72) + 10.5% de IVA

Estos son los datos del segundo, el más apto segun mi opinion:

* Image1.gif (16.62 KB - descargado 18802 veces.)
« Última modificación: Febrero 12, 2009, 05:53:57 por Ariel » En línea

Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert
Leon Pic
Moderador
dsPIC
******
Desconectado Desconectado

Sexo: Masculino
Mensajes: 5694


Cumulonimbus


WWW
« Respuesta #2 : Febrero 12, 2009, 06:16:12 »

Yo me prendo pero de seguro calladito, porque por ahora, el mejor lenguaje en que programo es en ASM, ya estoy en C (CCS), pero mucha tela no le estoy dando.
En línea

Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.
Ariel
Global Moderator
dsPIC
****
Desconectado Desconectado

Sexo: Masculino
Mensajes: 10751



WWW
« Respuesta #3 : Febrero 12, 2009, 06:19:57 »

Estate atento, por que es bastante posible que algunas cosas haya que terminar haciendolas en ASM :)
Ademas, el ir viendo el proyecto a medida que avanza te puede ayudar a programar en C. Si usamos el de Microchip, tambien voy a esta en CERO al arrancar.  Undecided
En línea

Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert
Meta
PIC12F
**
Desconectado Desconectado

Mensajes: 425


« Respuesta #4 : Febrero 12, 2009, 06:38:29 »

Si quieren más información por si acaso le sayude algo.

http://www.msebilbao.com/notas/downloads/Modulo%20Pantallas%20Graficas-Manual%20Usuario%20Marzo%202008.pdf

En línea
ZeK005
Administrator
PIC24F
*****
Desconectado Desconectado

Sexo: Masculino
Mensajes: 2742



« Respuesta #5 : Febrero 12, 2009, 08:35:11 »

Estate atento, por que es bastante posible que algunas cosas haya que terminar haciendolas en ASM :)
Ademas, el ir viendo el proyecto a medida que avanza te puede ayudar a programar en C. Si usamos el de Microchip, tambien voy a esta en CERO al arrancar.  Undecided

Yo tambien estare comenzando desde CERO con C... y por ende prefiero comenzar con C18 por ser de microchip.

Por otro lado, aqui (http://www.mcelectronics.com.ar/productos/pic18.html) podemos comprar un 18F4550 a U$S13 por unidad IVA incluido.
« Última modificación: Febrero 12, 2009, 08:39:44 por ZeK005 » En línea
Ariel
Global Moderator
dsPIC
****
Desconectado Desconectado

Sexo: Masculino
Mensajes: 10751



WWW
« Respuesta #6 : Febrero 12, 2009, 09:04:18 »

Justamente acabo de escribirles a mcelectronics, y me dicen que pensemos que PIC18 o PIC24 necesitamos y nos cotizan la informacion.... Asi que deberiamos ver mas o menos que necesitamos. (Está bueno contar con esa opción!)

Arranco yo...:)

- Pines para un teclado de 6x9 o 6x10 (15 o 16 pines)
- Pines para el GLCD (11, creo)
- 1 PWM para el brillo del GLCD
- 1 puerto USB (podemos conectar la calculadora a la PC)
- I2C (Eeprom externa, etc)
- Si es DIP, mucho mejor
- Abundante RAM

De que me olvido?
« Última modificación: Febrero 13, 2009, 07:24:58 por Ariel » En línea

Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert
ZeK005
Administrator
PIC24F
*****
Desconectado Desconectado

Sexo: Masculino
Mensajes: 2742



« Respuesta #7 : Febrero 12, 2009, 09:36:11 »

A ver... sin tener en cuenta las cosas baratas, voy pensando mas o menos que necesitaremos para la calculadora.

- Display LCD Grafico
- Microcontrolador 18F4550 (si es que se hace con PIC) o JB16 o JW32 (si es que se hace con freescale)
- Eeprom externa de entre 64 y 128K (si es mas grande mejor)
- Abundante RAM como dice ariel, aqui pueden pedir muestras gratis (http://everspin.com/sample-request.html , hacen envio de hasta 2 samples sin preguntarte absolutamente nada, yo pedi hace 4 dias 2 memorias ram de 4 Mb modelo MR2A08A y ya estan en camino, tambien podriamos ver de pedir la muestra gratis de 16 Mb)
- Teclado de 40 u 48 teclas (5x8 o 6x8), si no hay disponibles podriamos armar uno sin problemas con unos cuantos pulsadores.

Creo que eso seria lo basico para arrancar con el proyecto. Mas adelante quizas se necesite algo mas. No pongo los conectores ni nada de eso ya que son baratos en comparacion con el resto. Para el PWM podemos usar un 555 o sino dejar un brillo fijo para abaratar costos.
La memoria RAM como dije pueden pedir muestras gratis y con eso encarar el proyecto, lo mismo con los micros Freescale, si es que decidimos hacerla con este micro, pueden pedir muestras gratis de JB16 y JW32 en la pagina de Freescale. Creo que tambien seria posible conseguir quien nos envie muestras gratis de memoria eeprom.
Entiendan que el hecho de pedir muestras gratis es para poder encarar el proyecto, si todo sale en orden ahi si deberiamos comprar los materiales necesarios.

SALUDOS Wink

En línea
Ariel
Global Moderator
dsPIC
****
Desconectado Desconectado

Sexo: Masculino
Mensajes: 10751



WWW
« Respuesta #8 : Febrero 12, 2009, 10:05:23 »

No se que piensa la mayoria, pero yo prefiero algun PIC. Es la unica familia que conozco, tengo las herramientas como para programarlos, etc.

Ese PIC18 parece suficiente, pero si gustan, podemos mirar las hojas de datos de los PIC24 para aprovechar el curso que est'a comenzando.

Respecto de la RAM, me referia a la memoria para el programa, interna del microcontrolador. No creo que nos haga falta RAM externa. Y las EEPROM son conseguibles por poco dinero. Tengo una de 256Kb con interface I2C (creo que es 24C256 o algo asi), en DIP8, que me cost'o unos 6 pesos.

El teclado lo voy a hacer con pulsadores, sin dudarlo. Asi distribuimos las teclas como nos de la gana. Hay una familia de pulsadores (manana van fotos) que vienen de 12x12mm y de 6x6mm. Se pueden usar los grandes para los digitos y las funciones mas comunes, y los peques para el resto, tal como se ve en la calculadora Casio del primer post.

Ya estoy dejando por hoy. Manana pongo las fotos que mencione, y las demas ideas que tenga. Por lo pronto, se de alguien que me va a explicar como hacer el encendido/apagado mediante "soft touch", con un pulsador, un transistor y poco mas. :)

Saludos!
En línea

Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert
ZeK005
Administrator
PIC24F
*****
Desconectado Desconectado

Sexo: Masculino
Mensajes: 2742



« Respuesta #9 : Febrero 12, 2009, 10:16:12 »

Buenisimo Wink despues me contas que es un soft touch jajajaja Tongue
En línea
Leon Pic
Moderador
dsPIC
******
Desconectado Desconectado

Sexo: Masculino
Mensajes: 5694


Cumulonimbus


WWW
« Respuesta #10 : Febrero 12, 2009, 11:57:25 »

Además de lo mencionado, necesitaremos un cerebro nuevo  Grin Grin Grin

Hablando en serio, necesitamos organizarnos y decidir con que vamos a trabajar, así nos podemos derivar trabajos y luego juntarlo todos en uno.

Yo voto por el PIC y al igual que Ariel, es la única familia con que he trabajado. Por eso, voto con por el PIC18F4550 por capacidad de memoria de programa y memoria de usuario. Estaría bueno hacerlo con un PIC24, pero tardaremos mucho en hacer este proyecto, porque ni siquiera aún, hemos empezado el curso y nos falta muuuuucho por aprender de esta familia.

El tema del LCD, no dispongo de ninguno, por lo que queda en ustedes decidir por cual.

Teclado, hasta lo podemos armar nosotros mismo. Así que esto, no es muy complejo por decidir. En definitiva, uno comprado, tendrá mejor presentación.
En línea

Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.
ZeK005
Administrator
PIC24F
*****
Desconectado Desconectado

Sexo: Masculino
Mensajes: 2742



« Respuesta #11 : Febrero 13, 2009, 12:16:24 »

Bueno... entonces vamos redondeando el proyecto y es con lo que trabajaremos.

Micro: 18F4550
Display: Grafico de 128x64 pixeles
Teclado: 54 teclas (6x9 - 15 pines)

Asi de esta forma podemos encararlo mas rapido, despues podriamos migrarlo para PIC24. Deberiamos decidir el lenguaje y comenzar a hacer por lo menos que sume jajaja.

Lo unico que si les voy a pedir, es un poco de paciencia hasta que arme mi programador y que me ayuden en mis dudas, ya que como sabran yo siempre trabaje con Freescale y tengo muy poca experiencia en PICs. Mas aun, nunca use C para programar micros por que siempre use ASM. Creo que esto es una oportunidad para que pueda aprender cosas en las que todavia no estoy muy interiorizado y agradezco que me tomen como parte del proyecto Wink

SALUDOS
En línea
Ariel
Global Moderator
dsPIC
****
Desconectado Desconectado

Sexo: Masculino
Mensajes: 10751



WWW
« Respuesta #12 : Febrero 13, 2009, 07:36:45 »

Perfecto! Grin

A la tarde me desocupo de las obligaciones laborales del dia, y me pongo a resumir un poco los "modulos" de hard que tenemos que pensar, y las rutinas que deberiamos construir. Tambien tenemos que acordar que MPlab, que C18, etc vamos a usar para no tener "incompatibilidades".  Tongue

Ya tengo en mente una linda listita de cosas para meterle al bicho este. Lastima que no va a quedar lo suficientemente portable como para llevarla encima  Undecided...ja ja ja!
En línea

Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert
Ariel
Global Moderator
dsPIC
****
Desconectado Desconectado

Sexo: Masculino
Mensajes: 10751



WWW
« Respuesta #13 : Febrero 13, 2009, 12:40:51 »

Bien!
Aqui vamos.

Creo que esto es lo que tenemos que ir definiendo. Agreguen toooodo lo que seguramente me he olvidado

Hardware:
- Tamaño, disposion y tipo de pulsadores para el teclado
- Tamaño del PCB del teclado + display (*)
- Micro a utilizar (PIC18F4550 hasta el momento)
- Eeprom externa
- Fuente de alimentación (Interna, externa, proteccion, etc)
- Boton soft para encendido/apagado (je je je...en breve les cuento que es esto)

(*) El PCB del micro y demas componentes tendria que tener el mismo tamaño, para poner debajo de la de las teclas y display.

Software
- Rutinas manejo display: Init, text, line, circle, etc.
- Rutinas manejo teclado
- Rutinas matematicas
-

El soft deberia ser atomizado en rutinas para que si alguien quiere montar algo similar pero con un display de 2x16 pueda hacerlo simplemente reemplazando algunas rutinas.

Esto está muy escueto, pero servira para comenzar a discutir un poco :)

Mi idea (creo que la de muchos de uds. tambien) es mantener esto Open Source. Es decir, ir publicando (aca y/o en el wiki) todo lo necesario para que cualquiera pueda hacerse su propio cacharrito. ¿Estan de acuerdo?

Saludos!


En línea

Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert
Ariel
Global Moderator
dsPIC
****
Desconectado Desconectado

Sexo: Masculino
Mensajes: 10751



WWW
« Respuesta #14 : Febrero 13, 2009, 12:44:42 »

Teclado:
Esta podria ser una disposicion orientariva. Acabo de dibujar (por primera vez!) un componente para el PCBWizar, inaugurando la Libreria uControl. Es el display GLCD128x64 que no existia, y que pueden ver mas abajo.  Cool

Tengo que rutearlo y dotarlo de un conector que una esta placa con la del micro. Dar nombres a las teclas y poner las etiquetas para que figuren en el silk screen. Pienso copiar las de la calculadora Casio. ¿Les parece bien? Tongue

En un rato me pongo. Este es mas o menos el diseño. Mide unos 9x20cm. No es TAAAAN grande. Creo que 20cm deberia ser nuestro limite superior, para no complicarnos al hacer el PCB.


Opinen, opinen, opinen, opinen y....corrijanme. Por favor! :)

* Image1.gif (58.74 KB - descargado 18675 veces.)
« Última modificación: Febrero 13, 2009, 12:46:51 por Ariel » En línea

Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert
Páginas: [1] 2 3 4 5 6 ... 27   Ir Arriba
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.21 | SMF © 2011, Simple Machines
SMFAds for Free Forums
XHTML 1.0 válido! CSS válido!
Página creada en 0.08 segundos con 24 consultas. (Pretty URLs adds 0.011s, 2q)
loggkey