Autor Tema: tarjeta para controlar motores por i2c  (Leído 2841 veces)

0 Usuarios y 1 Visitante están viendo este tema.

_jm_

  • Visitante
tarjeta para controlar motores por i2c
« en: 08 de Julio de 2006, 20:23:51 »
Hola a ver si me podeis ayudar con este esquema antes de que me ponga a hacer su pcb. Me gustaria saber que añadirle, cambiarle o quitarle. Os cuento un poco de que va.

La idea es hacer un circuito para controlar 4 motores de corriente continua por pwm (un robot con 4 ruedas, 2 a 2 diferencial), para ello uso el puente en h l298 que da hasta 2 amperios por canal, poniendo en paralelo las salidas de cada puente se podria controlar dos motores de mayor amperaje.

Para controlar los motores voy a usar dos pics 12f683, de 8 patitas. Ya se que aqui todo el mundo se iria a un micro mayor, usaria solo uno, pero mi objetivo es aprender sobre los pics, y la mejor forma de hacerlo es haciendo pequeños proyectos de este tipo, por eso empiezo con los mas simples (8 patas) y luego ire subiendo segun vaya haciendo los distintos modulos del robot, poniendo pics mayores en estos.

Para la comunicacion de esta tarjeta con el resto de los modulos voy a usar un protocolo i2c, este pic no tiene ningun periferico i2c por lo que habra que implementar todo por soft. Bueno aqui viene mi primera duda, como asignar las patas del pic. Que cambiariais, es mi primer diseño con pics y no ando muy seguro.

Tengo 6 patas I/O de las cuales la GP3 es solo entrada, no se puede poner como salida, a ella tambien va el reset. Como voy justo de patas mi idea es usar esta pata como SCL, ya que esta tarjeta nunca se va a comportar como master, simplemente recebira la velocidad, sentido etc.. que tiene que dar a los motores. Mirando el protocolo veo que la señal SCL siempre la genera el maestro, por lo que al usarlo como entrada me valdria el pin. Solo cuando el esclavo no puede recibir un dato pone esta linea a tierra, aqui lo tendria que usar como salida, pero creo que es una opcion de la que puede preescindir, si no es asi corregidme.

Podriaa sacrificar el led y usarlo como SCL y poner el reset a uno, pero me gustaria mantenerlo porque siempre es util, sobre todo a la hora de detectar reseteos causador por lo motores.

El pic lleva un modulo para pwm (gp2)que aun no se muy bien como funciona pero ese lo asigno a la señal de pwm del puente. Gp0 y gp4 seleccionan los sentidos del motor, son salidas a uno y a cero.

Si alguien sabe o ha usado este pic y asignaria las patas de alguna otra manera pls que me lo diga, yo lo unico que he hecho con el es encender y apagar leds. Tengo dudas sobre todo en la pata GP3 del reset.

Y la otra pregunta es que condensadores añadiriais para filtrar el ruido, la fuente de alimentacion va a ser la misma para los motores y para todos los modulos del robot, los motores van directamente conectados a las baterias, dos paquetes de nimh de 7.2V, 14.4 voltios en total. Mi idea es hacer una fuente conmutada para bajar a 5 o 6, esto sera lo ultimo porque depende del resto del bot. Pongo los tipicos condensadores entre alimentacion y tierra de 100n en los integrados, y luego los que van en la carcasa de los motores. ALgun condensador mas?

Faltan las resistencias de pull-up del i2c pero estas iran en la tarjeta del master, no se si esto puede llegar a influir en algo. R2 y R1 son unas resisntencias para inicializar la señal de control del puente a 0 mientras el pic inicializa sus salidas.

Bueno os añado el circuito a ver si sale bien.

Gracias por leer hasta aqui y espero cualquier comentario sugerencia.

Desconectado Artifox

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 455
    • Quadbot
Re: tarjeta para controlar motores por i2c
« Respuesta #1 en: 17 de Julio de 2006, 08:37:58 »
Hola Lordramy hace dias que queria escribir pero no he tenido mucho tiempo, pero igual aca van mis comentarios:

Te aclaro que nunca he usado los pic's de la gama baja asi que no se si me equivocare en algunas cosas. Que lenguaje de programacion vas a usar???? CCS, PBP, ASM, etc?

Si piensas poner tus pic's como esclavos, como detectarian que esta llegando datos por el bus i2c??? te lo pregunto pues he visto en varios esquemas donde hay un pic esclavo que no tiene el periferico i2c en su arquitectura, le ponen una linea mas que va al pin de interrupcion externa, de manera que el master justo antes de empezar a enviar datos "despierta" a todos los esclavos para que escuchen, y logicamente solo escuchara el esclavo que corresponda. En el caso que puedas implementar esto (con un pin mas para que se "despierten" los esclavos) me parece que el pin de SCL iria al pin del led, el de SDA quedaria igual y el de "despierten" al antiguo SCL. No se si me explique bien... ojala me entiendas la idea :mrgreen:

Por otro lado te recomiendo que le pongas bateria aparte a tu robot, pues el ruido que generan los motores es muy fuerte (te lo digo por experiencia) y puede generar reseteos en los pic's, perdida de datos en comunicacion, sobrecalentamiendos en los reguladores, etc... en pocas palabras no es muy seguro... Te recomendaria que pongas una bateria de 9v con 200mAH recargable y le pongas un regulador a 5V con un par de pequeños condesadores te ira muy bien y no ocuparas mucho espacio, eso si, recuerda de unir las tierras de todo tu circuito.

Bueno, cualquier cosa pregunta no mas... Nos vemos  :-/ :-/ :-/ :-/

Video Quadbot
Saludos desde mi querido Perú.
Si realmente queremos que el mundo cambie debemos empezar por nosotros mismos... ;)