TODOPIC
Mecatrónica => Robótica => Mensaje iniciado por: victor_esp_1982 en 28 de Septiembre de 2004, 12:25:00
-
HOLA SOY ESTUDIANTE DE ELECTRONICA Y TENGO QUE LLEVAR EL CONTROL DE LA MANO DE UN ROBOT. PARA ELLO VOY A UTILIZAR UN MICROCONTROLADOR PIC, PERO COMO NUNCA HE TRABAJADO CON ESTOS NO SE SI HABRÁ ALGUNO PARA LAS SIGUIENTES CARACTERISTICAS:
-LA MANO TIENE 16 SENSORES DE TACTO, DE TAL FORMA QUE EN EL MOMENTO QUE ALGUNO DE ELLOS SE ACTIVE, TIENE QUE SALTAR UNA SUBRUTINA QUE MANDE FRENAR LA MANO.
-40 ACTUADORES, ES DECIR, 40 SALIDAS
-20 ENTADAS DE LAS CUALES 16 SON LOS SENSORES.
MI MAYOR DUDA ES QUE NO SE SI HABRÁ ALGUN MODELO DE PIC QUE ATIENDA A 16 INTERRUPCIONES. HABER SI ME LO PODEIS DECIR O SINO DARME ALGUNA SOLUCION COMO PONERLE ALGUN PERIFERICO AL PIC PARA QUE ME PERMITA HACER ESTO
MUCHAS GRACIAS A TODOS
-
Hola
Para lo que pides... lo mas ideal (pero tambien lo mas complejo) seria usar un PIC18F8720 o algo asi, en encapsulado TQFP80 , tiene unos 63 pines I/O si no me equivoco.
Mi mayor duda es, si los 16 sensores que dices, darán a la misma conclusion (parar la mano) o si cada uno acabará en una accion diferente. Si todos van a lo mismo, no necesitas 16 interrupciones. Tan simple como una compuerta OR de 16 entradas (sabemos que no existen, pero combinando), y ello a una interrupcion simple.
Si es asi, hemos perdido ya 16 entradas. Asi, son 44 puertos I/O. En este punto, puedes optar por el PIC en encapsulado TQFP80, tendras pines de sobra.
De lo contrario, usa un PIC de 40 pines (el 16F877 o el 18F452), el cual te dara 33 pines I/O. Para los 11 pines faltantes puedes optar, por decoders 3-8 (cada uno te daria 5 pines mas, ojo, usalos para pines que solo vayan de salida). O de lo contrario, usar un 8255 para obtener muchos mas pines.
espero haberte ayudado, salu2
-
A lo mejor lo que digo es una burrada, y perdonad mi ignorancia en electrónica pero, ¿no es lo mismo una puerta OR de 16 entradas que empalmar todos los pulsadores en paralelo?
-
He de reconocer Elenita que tienes un dominio del lenguaje completamente abrumador.
Y ahora dime, guapetona, ¿la puerta lógica elimina los rebotes?
-
Con que ignorante en electrónica, ¡eh nocturno! Ya ...
- Si se usan pulsadores (interruptores) sí se pueden poner los 16 en paralelo en lugar de usar la puerta OR.
- Si se usan sensores (caso de la manita de arriba) que dan en su salida 0V o 5V (por ejemplo) no los puedes conectar en paralelo ya que se producirían cortos. Necesitarías usar la puerta OR, en este caso.
- Por supuesto las puertas no eliminan rebotes.
-
Al lado vuestro un completo ignorante, Pocher.
Sigo preguntando:
Si son interruptores, entendido.
Si son sensores, ¿serviría conectar la salida de cada uno de ellos a un diodo y luego empalmar estos diodos?, así se evitarían los cortos ¿no?
-
pues parece q nocturno no quiere descartar la idea del empalme

Creo q con los diodos la cosa funcionaria. haria falta alguna resistencia de pull up/down segun la configuracion no??
-
hola amigos
pues en definitiva lo que dice nocturno seria una especie de OR. Si miras detalladamente que cosa hacen los 16 sensores con diodos y lo que hacen con una puerta OR, te vas a dar cuenta que es lo mismo. Conectando la salida de los sensores con el anodo del diodo y el catodo del diodo conectado con una resistencia pull-down(a masa) funciona igual. Cuando los sensores no estan activados, la señal de los diodos tiene logico "0", cuando algun sensor toma logico "1", la señal toma el nivel logico de "1".
Habria que ver si los sensores tienen una salida Three State, si es asi pues la cosa es diferente.
Espero que no me haya equivocado, sino decirlo.
Aloha
-
Compañeros, se pueden eliminar los rebotes con la compuerta si ésta es del tipo Smith Trigger, porque tiene una ventana de memoria.
Saludos,
-
Vale, se pueden poner todas los sensores a una misma línea, ¿Pero como sabriais cual ha sido activado?? Yo optaría por un micro más corriente (incluso el F84) y colocar un expansor de líneas I/O, por ejemplo el PCF8574. Controlado por bus I2C te permite controlar 8 líneas I/O extra y además posee una línea para activar una interrupción del PIC cuando varía una de las entradas, (existe el 8574 y el 8574A, que difieren en la dirección de acceso). Microchip también posee uno de 16bits.
Personalmente me parece más facil conectar los sensores directamente a líneas del PIC, pero menudo bicho hay que poner e infrautilizar.
-
Está claro que sería una solución muy elegante y probablemente la mejor, pero el supuesto de los interruptores empalmados sólo servía si todos tenían la misma función: parar la mano.
Evidentemente, si cada uno de ellos requiere una reacción distinta, de nada sirve todo esto.
Bueno, miento, sirve de algo. Yo he aprendido un huevo.
-
Como la mayoria, tira la piedra pero esconde la mano, ni nos concreta nada, ni nada...

-
Y que opina el nuevo usuario que nos ha dejado hablando aquí como los locos??? 


Por cierto Nuevo Usuario, cómo es tu nombre?
Saludos,
-
Lo de los nicks blank debe ser TAMBIEN problema del foro (eramos pocos y pario la abuela), pues accediendo a su profile vemos que su nick es victor_esp_1982.
a este no lo volvemos a ver mas, seguro...
salu2
-
Hola a todos, soy el nuevo usuario que os hizo esta pregunta, jeje. Efectivamente mi nick es Victor_esp_1982. No os he dicho nada pq llevo unos cuantos dias fuera y no he tenido acceso a internet. De todas fomas muchas gracias a todos, ahora me leeré mejor vuestras respuestas y ya os ire contando pq ni yo mismo se muy bien si en caso de que se active cualquier senser la mano va a hacer lo mismo(pararse) o dependiendo del q sea hara cosas distintas, Tengo q hablar mas del tema con mi tutor del proyecto y eso será mañana.
Muchas gracias por todo y ya seguire haciendo mas preguntas, si no os importa contestarme, jeje
SALUDOS
-
ya me he leido bien vuestras respuestas, muchas gacias.Lo de la puerta or ya lo habia pensado, ya os dire si lo puedo utiliza cuando sepa bien la idea del profesor. De lo otro q me habeis dicho os comento. Si pones decodes para ampliar las salidas, no tiene el poblema de q siempre vas a tene una salida activa?es decir si tengo a las entadas de un decoder 3-8 tres ceros, se me va a poner a 1 una salida no?y si quiero q todas las salidas esten desactivas para q no actue de ninguna foma la mano? No se si me estais entendiendo, espero q si, jeje.
Lo otro q no entiendo muy bien es lo del expansor de E/S. Eso luego como se utiliza?activando un bit de algun registro paa q el micro lo sepa?el resto es igual a la hora de pogramarlo o cambia mucho.
Muchas gracias a todos me ha sido muy util
-
Es bueno ver q escribes denuevo.

Cuando tengas mas detalles sobre la funcion de cade sensor nos cuentas, asi vemos vemos q se nos ocurre para controlarlo.
Suerte con el proyecto
-
Bueno, lo de los decoders era porque andabas ajustado de pines, no obstante, si no quieres que no haya ninguna activada, simplemente activas el pin /ENABLE (creo que lo tienen) para que se desactive el circuito.
salu2
-
hola chicos y chicas
Soy el q inicio este tema, ya tengo respuesta. Al final el micro q voy a utilizar para mi proyecto es el pic18F8720. Asiq, ahora me toca imprimirme el datasheets de este micro y leermelo pq es la primera vez q pogramo un pic.
El problema de esto es q soy un poco torpe con el ingles pero bueno poco a poco me ire haciendo con el, espero ...
Sabeis vosotos donde puedo encontrar manuales en castellano sobre este mico o otro q se pograme igual , con los mismos registros ... o aunq sea en ingles mas resumido pq el datasheets son 380 hojas y ...
muchas gracias de nuevo pq me estais ayundando un monton
-
Uf, menudo PIC que has elegido...como comprar un BMW serie 7... te sale caro, pero tiene muchisimas prestaciones... no obstante consume mucha gasolina (en este caso tu paciencia soldandolo y aprendiendo a programarlo jeje).
Yo pedi tres de samples, pero nunca he logrado estañarlos... no existe ningun zocalo para ellos, y con mi JBC de 30W dificilmente podria...
Pero bueno el micro en si me apasiona, pensar que puedes acoplarle hasta 2 megas de memoria externa de programa... y la cantidad de puertos que tiene...
Bueno, si aprendes a usarlo bien, es todo un lujo de PIC. Y para tu proyecto de mano robotica, vendria de perlas.
Al respecto de las interrupciones multiples, he tenido una idea. Si los 16 sensores son independientes, usando 5 pines, puedes "recrear" 16 interrupciones. Todos los pines activarian el pin INT0 (mediante una OR) , y por otra parte, mediante un conversor 16-4 que ocuparia otros 4 pines del PIC, hariamos, que en el momento de la interrupcion, el PIC compruebe esos puertos, para saber que sensor provocó la interrupcion. Espero que te valga de ayuda.
Y danos noticias de tu proyecto... AH! No quiero que 65535 words de programa (o 2mb externos mas, si te lo puedes permitir) solo den para estrechar la mano y demas... teniendo el PIC que tienes, deleitanos (y deleitale al profe) con algo magistral.
salu2!!
-
hola manex_1987, la verdad que si q es la leche el micro por lo poco q he podido leer. Elegimos este precisamente por la memoria de programa externa ya q al parecer yo solo tengo q hacer q la mano haga funciones basicas como abrirse o cerrarse o coger objetos con cieta sensibilidad... pero tiene q tener memoria suficiente para que el profesor mas adelante vaya añadiendo acciones. Una cosa que me sorprendio porque al parecer tb quiere poner un programador en la placa y por usb cagar el programita directamente al pic q haga la nueva accion, ya os infomare pq esto si q me extraño y por ahora esta muy fuera de mis conocimientos, jeje
Lo q si q os agradeceria es que me pongais enlaces con manuales de este micro en castellano o alguno parecido, esq yo no se si no se buscarlos pero solo encuentro de la familia pic16 y no creo q me valgan para mucho , no?
Un saludo, amigos
-
Victor, pasa que el 18F8720 no lo usa demasiada gente (esta al alcance de unos pocos "locos" jeje), por lo que no hay traduccion al español de su data. Si que lo hay para pics tan comunes como 16F84,16F628,16F877,etc...
Por cierto el proyecto que es, fin de carrera, o es que vas para doctorado?? jejeje menudas cosas que se os ocurren hacer, desde luego...
Ah, no olvides que el manejo de memoria externa exige bastantes pines, por lo que tal vez tengas que volver al "raciocinio"... pues segun el datasheet, usa 27 pines (!!!) para usar la interfaz... mal asunto...
salu2