Robot diferencial pic

Hola buenas noches, estoy tratando de diseñar un robot diferencial, la cosa es que quiero ir mas allá de Arduino, así que estoy investigando de hacerlo con un pic.
Estoy estudiando la manera de poder conectar los 2 encoders de los motores al pic, pero no encuentro ninguno que posea 4 interrupciones externas para el conteo de los pulsos del encoder. He visto pics con solamente un QEI, pero tampoco me vale pues necesitaría 2 canales. He pensado también en hacerlo por módulos, es decir un pic mas pequeñito que controle el motor y un pic mas potente que le mande las ordenes.
Voy un poco perdido, a ver si alguno de ustedes puede guiarme un poco porque no se como hacerlo o mejor dicho la manera correcta de hacerlo.
Gracias y un saludo.
 
¿ Que es un "Robot diferencial PIC" ? :oops:

Mira que cosa es el "Multiplexado"
 
Usando el buscador lo primero de todo.
Cómo usar un encoder se ha explicado un innumerables veces.

Si nos cuentas que es un robot diferencial te lo agradecemos. Al menos yo no lo he oído en la vida.
 
Creo que no me explicado bien. lo que quiero saber es cual es la mejor forma de hacerlo, si el propio microcotrolador se encargue de gobernar todo el robot o poner microcontroladores a cada rueda y que manden la info a un micro central. No se si me explico.

Es un robot movil con ruedas con cinematica diferencial.

Un saludo
 
Ah, ahora lo entiendo.

Poder puedes hacer lo he creas que es más eficiente.
Cómo poder le puedes poner un microprocesador a cada tecla del pc, y otros seis en el ratón.
No es un chiste, un raton de bola lleva tres encoders y tres pulsadores.


Sopesa opciones, ventajas e inconvenientes.


Yo no haría eso, el número de inconvenientes supera ampliamente al de ventajas:

Ventajas, no se me ocurre ninguna
Inconvenientes, más caro, más voluminoso, más hardware, desarrollar y depurar sistemas multi-sistema es una pesadilla.

Pero bueno, solo es mi punto de vista, es tu proyecto.
 
Muchas gracias. Pues me decantare por la opcion de un microcontrolador. Con arduino si que hecho cosas ya que los pines del mega pueden ser usados como interrupcion. Pero ahora al pasarme a PIC no encuentro ninguno que posea mas de una interrupción externa

Un saludo.
 
No soy nada fan de los Pic, pero hay un mar de modelos, seguro que hay más de uno con varias interrupciones.
En última instancia se puede agregar un gestor de interrupciones externo. Las CPUs clásicas de 8 bits solo tenían dos, una enmascarable y otra no enmascarable y a partir de ahí controlaban todo.
 
Busca bien, y si no encuentras el PIC para tu proyecto, puedes usar un AVR, por ejemplo, el Atmega328p practicamente casi todos sus puertos estan lleno de interrupciones ( me refiero a los PCINT).
 
No entiendo bien lo que necesitas, pero veo que dices que los pic tienen una sola interrupción. Yo trabajé con el 16f84a que fue reemplazado si se quiere por el 16F628A. Este pic tiene interrupciones en el puerto B, pines RB4 al RB7. Serian 4 interrupciones enmascarables. Además tiene una No enmascarable en RB0.

No sé si es lo que buscas, pero quizás te sirva la info.

Saludos!!
 
No soy piquero pero después de la familia 16 hay familias más potentes que tendrán más de todo.
Por supuesto, pero no hay que matar moscas a cañonazos.
Por ejemplo, con un PIC16F84A implementé un puerto RS485 bidireccional que funcionó perfectamente, un protocolo de comunicación, un display, múltiples entradas digitales ... Todo ensamblador. Y me sobró memoria de programa.
 
Si que hay que matar moscas a cañonazos, y bacterias con bombas nucleares también.
Las diferencia en precio entre dos chips pueden ser céntimos. Las horas de un técnico competente son caras, con la incertidumbre sé si logrará o no un buen resultado. Usar chips obsoletos es pan para hoy y hambre para esta tarde.
Si vas a hacer una serie de millones de unidades te puede interesar ese ahorro, pero hay que considerar la discontinuidad del suministro de restos de stock, si vas a hacer dos unidades estás perdiendo dinero. Mucho dinero.
 
Última edición:
No sabemos el alcance de ese proyecto ...
No sabemos nada, ni siquiera lo que más importa que es la velocidad máxima de los pulsos que es lo que decide el hardware.

Si la velocidad es lenta porque son pocas revoluciones y pocos ppv hasta se puede leer por polling y la cantidad de encoder la limitarán los pines libres.
A medida que aumenta necesitás interrupciones. Usando interrupt on change en modo x4 podés leer dos encoders y en modo x2 hasta cuatro.
Con Arduino podés mas todavía porque son mas pines disponibles con interrupt on change.
Pero ya para velocidades altas esto ya no va y necesitás si o si contadores QEI o algún conteo por hardware.
 
Atrás
Arriba