Autor Tema: ejecutar dos instrucciones al mismo tiempo  (Leído 16322 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: ejecutar dos instrucciones al mismo tiempo
« Respuesta #15 en: 29 de Julio de 2006, 09:09:44 »
Hola Tapi8!

Me gusta ver ese entusiasmo.
Si queres reconocer comandos por voz, seguramente va a hacer falta algo mas que medir la intensidad o duracion de los comandos. No conozco el tema, pero el sentido comun me dice que debe ser necesario hacer un analisis de las frecuencias a travez del tiempo del comando.
Cada comando esta compuesto por fonemas, cada uno con sus caracteristicas espectrales. Para reconocer "derecha", habria que ver cuales son los fonemas implicados, y el PIC deberia buscar en una tabla o memoria externa las coincidencias con fonemas conocidos para saber que comando estas diciendo.
Se me ocurre (yo tambien soy un principiante...) que la capacidad de un PIC (no se un dsPic) es insuficiente para una tarea semejante.
Igualemente, todo lo que estas haciendo te va a servir, y mucho, para aprender, que es lo importante.

Saludos, y adelante!
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

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: ejecutar dos instrucciones al mismo tiempo
« Respuesta #16 en: 29 de Julio de 2006, 09:48:00 »
bueno os voy a poner el programa no creo que este bien a la primera pero es un punto de paratida
      RB0= MOTOR 1 adelante
      RB1= MOTOR 2 adelante
      RB3= MOTOR 1 atras
      RB4= MOTOR 2 atras
      RA0= ENTRADA MICROFONO (micro)
INICIO
           BTFSS       PORTA,0            chequea micro si 1 o 0
           GOTO        INICIO              si 0 va inicio
           CALL         DELAY               300ms esto no es seguro
           BTFSC       PORTA,0            si 0 solo una silaba LEFT va a la izquierda
           GOTO        ATRAS               si 1 salta al siguiente moviniento
           BSF           PORTB,0            SOLO UNA SILABA GIRA IZQUIERDA
ATRAS
           CALL         DELAY               espera 300ms
           BTFSC       PORTA,0           chequea micro
           GOTO        ADELANTE
           MOVLW      0CH                 si el micro 0 activa M1 y M2 atras
           MOVWF      PORTB
ADELANTE
           CALL         DELAY             
           BTFSC       PORTA,0
           GOTO        DERECHA
           MOVLW      03H                 activa M1 y M2 ADELANTE
           MOVWF      PORTB
DERECHA
           CALL         DELAY
           BTFSC       PORTA,0
           GOTO        GIRODER
           BSF           PORTB,1          activa M2 adelante
GIRODER
           CALL         DELAY
           BTFSC       PORTA,0
           GOTO        GIROIZ
           MOVLW      09H
           MOVWF      PORTB           M1 adelante M2 atras da vueltas en redondo derecha
GIROIZ
           CALL         DELAY           
           BTFSS       PORTA,0         chequeo a 1 y no a 0 porque al ser la ultima da igual. creo
           GOTO        END
           MIVLW       05H               
           MOVWF      PORTB          M1 adelante M2 atras gira en redondo izquierda
           end


bueno como ya dije no pretendo que funcione a la primera solo es para ver si podroa ser viable

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: ejecutar dos instrucciones al mismo tiempo
« Respuesta #17 en: 29 de Julio de 2006, 12:27:07 »
gracias por los animos aitopes. yo tambien creo que esto del reconocimiento de voz debe ser mas complicadopero quien sabe esto con vuestra ayuda creo que va a funcionar.
voy a hacer unas aclaraciones sobre el progreama anterior obvie algunas cosas como configurar puertos y algunas mas.si deciros que el robot para el que esta hecho es un triciclo con dos ruedas motrices en paralelo atras y una rueda loca delante,cada rueda trasera lleva un motorcillo de dc,quiero decir que toda la direccion del robot depende de estos motores
               

                                                          0 rueda loca




                                              0--M2           0--M1
                                           

se supone que los ceros son las ruedas lo digo porque quedo bastanae mal
                                           


                                 

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: ejecutar dos instrucciones al mismo tiempo
« Respuesta #18 en: 09 de Agosto de 2006, 07:16:12 »
bueno sigo con el programilla este y aunque estoy de medias vacaciones le estuve dando un repaso  y queria hacer alguna comprobacion y me he dado cuenta que no tengo un compilador-simulador de asembler tengo el CCS pero creo que este no vale, hay alguno que se pueda integrar en el proteus? o alguno que traiga ya todo de serie compilador y simulador. Despues cuando empiece el curso lo probare en el taller del instituto de F.P. si es que me dejan.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: ejecutar dos instrucciones al mismo tiempo
« Respuesta #19 en: 09 de Agosto de 2006, 08:27:47 »
bueno sigo con el programilla este y aunque estoy de medias vacaciones le estuve dando un repaso  y queria hacer alguna comprobacion y me he dado cuenta que no tengo un compilador-simulador de asembler tengo el CCS pero creo que este no vale, hay alguno que se pueda integrar en el proteus? o alguno que traiga ya todo de serie compilador y simulador. Despues cuando empiece el curso lo probare en el taller del instituto de F.P. si es que me dejan.

Si, el MPLAB IDE de Microchip.  Trae un editor de texto, simulador y ensamblador.  Además es gratis.

Clickea aquí: MPLAB IDE
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: ejecutar dos instrucciones al mismo tiempo
« Respuesta #20 en: 09 de Agosto de 2006, 14:13:06 »
gracias por responder y por la informacion y por la rapidez ya veo que tu no estas de vacaciones o son vacaciones activas.Ya me baje el MPLAB creo que ya lo habia bajado en otra ocasion pero desde que estoy en el foro bajo tantas cosas y soy tan desordenado que a veces no se para lo que son. De esta vez le he puesto yo un nombre a la carpeta a ver si asi me aclaro gracias de nuevo

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: ejecutar dos instrucciones al mismo tiempo
« Respuesta #21 en: 09 de Agosto de 2006, 15:51:34 »
gracias por responder y por la informacion y por la rapidez ya veo que tu no estas de vacaciones o son vacaciones activas.Ya me baje el MPLAB creo que ya lo habia bajado en otra ocasion pero desde que estoy en el foro bajo tantas cosas y soy tan desordenado que a veces no se para lo que son. De esta vez le he puesto yo un nombre a la carpeta a ver si asi me aclaro gracias de nuevo

Los que están de vacaciones son nuestros compañeros foristas de españa!!  Los de argentina seguimos dándole duro al trabajo  :? :?
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado the real PHLAKO

  • PIC10
  • *
  • Mensajes: 2
Re: ejecutar dos instrucciones al mismo tiempo
« Respuesta #22 en: 10 de Septiembre de 2006, 04:08:54 »
huyyyyy, seria un magno proyecto el de capturar voz, ve los datasheet de los grabadorres de vos tipo ISD4000 series, yo tengo uno por ak y lo incluire en un proyecto, pero ahora tengo problemas con otra parte de este, pero viendo el diagrama de blokes puesdes aclarar el funcionamiento :)

chaos :)

PD1 veo caras conocidas por ak :)

PD2 no me corre la emulacion de I2C :(
SIEMPRE TE RECORDARE AMADO Y FIEL COMPAÑERO "LOBO"

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: ejecutar dos instrucciones al mismo tiempo
« Respuesta #23 en: 11 de Septiembre de 2006, 15:55:33 »
PD1 veo caras conocidas por ak :)

Así, es... habemos muchos que somos de abmos foros :) :) 

No te será tan fácil escabullirte  :D :D :D

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: ejecutar dos instrucciones al mismo tiempo
« Respuesta #24 en: 14 de Septiembre de 2006, 14:37:37 »
hola the real phlako no creo que este programa se le pueda llamar de reconocimiento de voz solo es una chorrada que se me ocurrio, pero me haria ilusion que funcionara aunque fuera con limitaciones no se que quieres que te explique? algo sobre el programa? el circuito todavia no lo monte ,estoy esperando que empiece el curso de F.P. para probarlo y empieza el 28 de este mes tampoco hice todavia la simulacion en proteus y no se si habra que corregir alguna cosa
un saludo tapi8

Desconectado recuperarusuario

  • PIC10
  • *
  • Mensajes: 7
Re: ejecutar dos instrucciones al mismo tiempo
« Respuesta #25 en: 14 de Septiembre de 2006, 17:39:00 »
Microchip vende una librería de reconocimiento del habla (de la que hay una versión demo descargable) para el dsPIC30F5011 y otros, el enlace es http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en023596 y según parece hay que hablarle en inglés USA.

También hay otros IC de reconocimiento del habla (RH) como el HM2007 de HMC de y el MSM6679 de OKI (de esto hay info en www.alldatasheet.com)

Por último también he visto un módulo de RH con la referencia RSC36.

Yo no empezaría a generar código de RH sin antes haber grabado varios wav con las órdenes que se pretende reconocer (cinco o seis), analizar cómo varían su frecuencia e intensidad y montar una tabla con esos datos. Por otra parte habría que convertir la señal analógica que capta el micro en señal digital y por último compararla con las de la tabla del principio (Ahora sí que hará falta parir código). En fín, un trabajo duro. Mucha suerte.

Saludos, cordiales.

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
Re: ejecutar dos instrucciones al mismo tiempo
« Respuesta #26 en: 14 de Septiembre de 2006, 18:12:22 »
Hola, tema complicadillo aunq no imposible!, este año para la práctica de una asignatura hicimos un 'pequeño' programa para el reconocimiento de voz mediante matlab. Como punto de partida tendrás que tomar varias muestras de cada uno de las ordenes, en nuestro caso pretendiamos reconocer los números del 0 al 9, con nuestras voces y con las de los compañeros de clase, los porcentajes de reconocimiento no quedaron muy allá, pero sirvió como punto de partida para hacer algo mas gordo, nosotros utilizamos metodos sencillos, como es el cálculo de la energía, y la correlación, ambos pueden ser 'fácilmente' implementados en un PIC... Como te decía para empezar deberías tomar varias muestras, segundo paso es hacer que esas muestras tengan media nula y varianza unidad... para evitar problemas con que se hable mas fuerte o cerca del micro, una vez tengas las muestras acondicionadas, calculas el valor medio de los estadisticos que vas a usar, en este caso el de la energía y la correlación. Una vez tienes estos dos parámetros para cada uno de los comandos ya puedes almacenarlos en el PIC y empezar a procesar... la señal analógica que introduzcas al PIC tendrás que muestrearla a la misma frecuencia que has muestreado anteriormente las muestras valga la redundancia... Una vez muestreada la señal tendrás en la memoria del PIC una ristra de datos, en primer lugar deberías detectar el principio y el fín del comando y rechazar el resto, a continuación tendrás que procesar esos datos válidos como antes, es decir, haces que su media sea nula y que la varianza sea la unidad, seguidamente calculas la energia y la correlación, y con esto habrás reducido la señal de entrada a dos valores, solo resta comparar estos dos valores con cada uno de los otros valores que obtuviste para las muestras, quien mas se le aproxime debería ser el comando que has dicho...

Esto es un método bastante bastante sencillo y con un grado de acierto entre el 70-80% mas menos. Siempre puedes complicarlo todo lo que quieras, jugando con la FFT y demás artilugios matemáticos, detectando fonemas, etc. La verdad es que el campo del reconocimiento de voz es algo muy interesante! Animo pq aunq parezca complicado es un sistema relativamente sencillito de reconocimiento se puede implementar ;) Ahora eso sí, es muy probable que necesites un PIC mas 'gordo' que el 16F84.

Saludos, suerte y adelante!
« Última modificación: 14 de Septiembre de 2006, 18:16:25 por J1M »

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: ejecutar dos instrucciones al mismo tiempo
« Respuesta #27 en: 15 de Septiembre de 2006, 05:26:24 »
bueno como bien deciis tanto recuperarusuario como J1M los programas de reconocimiento de voz son asi de complicados y un 16f84a no tendria capacidad para eso, eso tendria facil solucion, un PIC mas grande que cuesta 2 o 3 euros, el otro problema es que yo tampoco tengo conocimientos ni capacidad para hacer un programa tan complicado y eso tiene peor solucion jejejeje.Por eso queria hacer que funcionara de alguna manera este.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: ejecutar dos instrucciones al mismo tiempo
« Respuesta #28 en: 15 de Septiembre de 2006, 08:22:27 »
bueno como bien deciis tanto recuperarusuario como J1M los programas de reconocimiento de voz son asi de complicados y un 16f84a no tendria capacidad para eso, eso tendria facil solucion, un PIC mas grande que cuesta 2 o 3 euros, el otro problema es que yo tampoco tengo conocimientos ni capacidad para hacer un programa tan complicado y eso tiene peor solucion jejejeje.Por eso queria hacer que funcionara de alguna manera este.

tapi8 si te dicen que es complicado hacerlo con un microcontrolador poderoso, más lo será aún hacerlo con uno menos poderoso!

Por ejemplo, si quiero hacer unos cálculos matemáticos con un dspic y que me demore poco tiempo, para hacer lo mismo con un 16f84 puede ser tan complicado que tal vez necesitaría varios pics de estos o hasta cabe la posibilidad (muy probable) de que sea imposible.

A menudo hacer un software que cumpla las mismas funciones que otro con un pic más modesto requiere habilidades mayores.  Se debe recurrir a muchos artiligios y reutilización rutinas, de posiciones de memoria y un sin fin de cuestiones.

Un proyecto mal definido y evaluado de entrada lleva al fracaso y eso es muy frustrante.  Es mejor detenerse un tiempo a razonar mejor el problema, ver qué cosas hacen falta , qué cosas uno las tiene (conocimientos , materiales, tiempo, etc) y qué cosas no.  A partir de ahí ver si realmente se puede o no hacer el proyecto, por más que sea un hobby.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: ejecutar dos instrucciones al mismo tiempo
« Respuesta #29 en: 15 de Septiembre de 2006, 13:11:30 »
gracias por el consejo maunix y se que estas en lo correcto con tu consejo, pero se que no me va a frustrar el que no me funcione. A mi edad (44) ya no se lleva eso, y por otro lado estoy aprendiendo cosas que no se aprenden leyendo programas sino escribiendolos.
Quisiera saber tu opinion sobre el concepto del programa, esto es, mientras un pin reciba un 1 logico este se puede medir en tiempos y a cada cierto tiempo le correspondera ejecutar una instruccion.
En el codigo que escribi en este mismo hilo hay fallos, por ejemplo creo que al final de cada etiqueta tendria que llevar un GOTO INICIO tampoco se si el tiempo para cada silaba (300ms) esta bien pero como la prueba del programa no la voy a hacer hasta finales de este mes o principios del siguiente no me corre mucha prisa
gracias por anticipado tapi8