Autor Tema: Bot con 16f877  (Leído 62159 veces)

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

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Bot con 16f877
« Respuesta #45 en: 08 de Julio de 2005, 11:31:00 »
hola amigos:

que compilador van a utilizar para programar el PIC, yo uso PBP 2.46 y tengo un ejemplo de un bot rastreador de luz y para los servos utiliza unicamente la funcion:

PULSOUT Pin,Period
" Send a pulse 1mSec long (at 4MHz) to Pin5
PULSOUT PORTB.5,100

y en la conexion lo alimenta a + y - y el otro hilo va directo al micro...

Desconectado RaDoN

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1498
RE: Bot con 16f877
« Respuesta #46 en: 08 de Julio de 2005, 16:09:00 »
Bueno, estoi replanteando el esquema, y visto que necesito 2 encoder uno por ruedas por el problema descrito por nocturno (los 2 servos no giran identicos), creo que los controlare (su movimiento) por medio de CNY70. Ahora estoi pensando si ponerlo en RB4 y 5 (para tener posiblidad de interrupcion) pero como en este puerto tb va los bumpers (interruptores de fin de carrera) no se como puede quedar la cosa ... porque no se como voi hacer el algoritmo para estos encoders ...

Aver que opinais, y si hay alguna otra forma de hacer que siga recto cuando no tiene ninguna informacion del exterior (como el de seguir una linea). Escuchado algo de un diferencia de tracción, pero me suena a chino y si es muy complejo no se si merecera la pena.
Si juegas contra el mejor, pierdes como los demás.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
RE: Bot con 16f877
« Respuesta #47 en: 08 de Julio de 2005, 16:40:00 »
Una solucion es la de hacer una operación OR con las señales exteriores que pueden variar y la salida de esta operación la puedes conectar a un pin que permita interrupciones y una ves en la rutina de interrupciones verificar cual es la entrada que se modifico y la provoco...

Otro forma que es la que yo suelo utilizar (consume mas potencia de proceso del micro) esta basada en la rutina de delay (yo la llama asi) porque la utilizo para obtener distintas bases de tiempos calibradas, para que?...

Por ejemplo si tengo una rutina que me actualiza constantemente el DISPLAY, esto consume mucha potencia, con lo que le asigno un delay de 0,5 Seg, esdecir el DISPLAY se actualiza cada medio segundo, en este caso tendrías que aplicar un delay a tu rutina de lectura de puertos suficientemente rapido para que se actualicen sin perdida de datos... por su puesto esto consume los recursos de un timer... espero haber me explicado.
Saludos desde Granada, España.

Desconectado RaDoN

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1498
RE: Bot con 16f877
« Respuesta #48 en: 08 de Julio de 2005, 17:20:00 »
Si algo te entendido, creo que compartire los 2 encoders (cny70) con los 2 bumpers en las interrupciones exteriores, el problema que yo le veia a esto esque como el robot esta andando, estara todo el rato saltando la interrupcion, no se como afectara esto al desarrollo del resto del programa normal ...
Si juegas contra el mejor, pierdes como los demás.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
RE: Bot con 16f877
« Respuesta #49 en: 08 de Julio de 2005, 18:06:00 »
Software + hardware = dolor de cabeza... jejejeeee¡¡¡!!!.
Saludos desde Granada, España.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: Bot con 16f877
« Respuesta #50 en: 08 de Julio de 2005, 23:54:00 »
A ver, hagamos unos cálculos:
decías que tus servos van a un máximo de 60rpm. Si el disco marcado que le pones tiene, por ejemplo 20 marcas, eso serían 1200 interrupciones por minuto, o sea 20 por segundo, que es lo mismo que decir que tienes 50ms para hacer cosas entre interrupciones cuando el robot va a toda leche.
A en un micro a 20MHz, que furula a 4MIPS, le daría tiempo a ejecutar 200.000 instrucciones entre cada marca de la rueda. Sólo falta ver si serás capaz de apretar tu programa para que quepa ahí. Aunque siempre puedes poner menos marcas a las ruedas y perder un poco de precisión.

Desconectado RaDoN

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1498
RE: Bot con 16f877
« Respuesta #51 en: 09 de Julio de 2005, 04:17:00 »
Ok, muchas gracias, optaremos por eso (y esperemos que pueda samplear el 16f877-20 no solo por la pasta, si no por que aquí en sevilla solo esta la versión a 4 Mhz). Valla con auna!!! Sonrisa Gigante

Dentro de poco subire el esquematico final ...
Si juegas contra el mejor, pierdes como los demás.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
RE: Bot con 16f877
« Respuesta #52 en: 09 de Julio de 2005, 10:22:00 »
Bueno si optas por las interrupciones externas, no te valdra solo una operación OR, tendras que realizar un circuito que genere un pulso, cada vez que haya una variacion en sus entradas, independientemente del estado de las de mas, por ejemplo si una entrada de un bumpers queda a 1, siendo una operación OR con todas las de mas la salida siempre seria 1... mi ejemplo anterior solo hacia a una mencion generica, en realidad el circuito de interrupciones sera algo mas complicado... una forma muy simple de obtener un timer extra es la de colocar una frecuencia fija en el PIN de interrupciones...
Saludos desde Granada, España.

Desconectado RaDoN

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1498
RE: Bot con 16f877
« Respuesta #53 en: 09 de Julio de 2005, 10:36:00 »
Si te refieres a "clasificar" la interrupcion al ser atendida, y sabes que la produjo no creo que complique mucho el soft ...

Lo que no se es como se comportara el PIC a la entrada del CNY70 (que le de un 1 ó 0) ademas de estando las resistencias pull-up de este activadas Avergonzado

Tengo que probarlo ...
Si juegas contra el mejor, pierdes como los demás.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
RE: Bot con 16f877
« Respuesta #54 en: 09 de Julio de 2005, 11:33:00 »
No, me refiero al hardware...
Con solo una entrada a 1 la salida siempre sera 1... que dando el circuito inutilizado...



CNY70 directamente al Pic?... te refieres a la salida del 40106, las salidas suelen ser de muy baja impedancia... prácticamente cero... otro tema es la potencia que pueden disipar sin romperse...
Saludos desde Granada, España.

Desconectado RaDoN

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1498
RE: Bot con 16f877
« Respuesta #55 en: 09 de Julio de 2005, 13:37:00 »
Aja, pero realmente para saber que ocurrio así con las puertas OR, habria que multiplexarlos, es decir, no ahorro ningun pin I/O del PIC (o eso me parece amíGiño.

Los bumpers van directos sí, (contactan haciendo corto a masa) por lo que tengo que activar las resistencias pull-up. Y a lo otro que me referia, es si no tiene  ningun problema el comportamiento cuando uso las entradas con resistencias pull-up cuando estas estan conectadas al 40106 ... me explico mejor, a la salida del 40106, ¿el pic leera bien el bit (5v o 0v) aun estando activadas las resistencias pull-up?
Si juegas contra el mejor, pierdes como los demás.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
RE: Bot con 16f877
« Respuesta #56 en: 11 de Julio de 2005, 08:11:00 »
Si no estoy equivocado las resistencias internas del pic son de 4k7, pero que en principio debería funcionar sin problemas, incluso con valores inferiores, otra cosa es que el fabricante del chip la recomiende, es cuestion de colocar una R en alguna salida del 40106 y probar si la tira correctamente a masa, bueno cuando lo pruebes nos cuentas...
Saludos desde Granada, España.

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Bot con 16f877
« Respuesta #57 en: 12 de Julio de 2005, 10:22:00 »
Hola:

Radon aqui hay un ejemplo de como conxionar un DS1307 http://www.rentron.com/CCS_C/SERLED_C.htm

incluye un ejemplo para PIC16F876A en C... Suerte...

Un abrazo....

Desconectado RaDoN

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1498
RE: Bot con 16f877
« Respuesta #58 en: 12 de Julio de 2005, 10:35:00 »
Muchas gracias Flash y respecto a la bateria y la direccion en el bus i2c? como va ... (recuerdo que tengo ya una memoria con la direccion 0 -a0,1 y 2 a masa-).

Edito realmente no me entero de nada del ejemplo jajaja ... intentare verlo con calma, espero vuestra ayuda Sonrisa Gigante

Edito2 ya me enterao de algo ... poco, pero algo. Alguien tiene la libreria para el DS1703 de eagle please ?
Si juegas contra el mejor, pierdes como los demás.

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Bot con 16f877
« Respuesta #59 en: 12 de Julio de 2005, 11:48:00 »
Hola radon:

La bateria es 1 pila de 3V (CR2032), y el byte de control es %11010000 propio del fabricante... tengo otro diagrama pero no se como poner una imagen en un post como hago para subirla...?