Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola, estoy intentando de hacer estos días una especia de robot zero para iniciación a la robótica. Y me gustaría que me diesen ideas, y tb saber que no veis útil, o en que puedo estar equivocado, ya que sólo es una primera versión de la que haré el pcb para ir trasteando y probar los periféricos del pic.
La idea es hacer una placa capaz de controlar el movimiento del robot y diversos sensores, y además tenga la opción de conectarle distintos módulos como pueden ser circuitos con i2c, conectarla al pc para un bootloader etc.. Para futuros circuitos, como puede ser un control desde mando de la televisión etc. El módulo de cny70 va de serie, ya que es el primer concurso al que todo el mundo se apunta.
Como microcontrolador he elegido el pic16f877a que tiene 5 puertos, por lo que da muchas opciones de conexión. Tb lleva dos modulos de ccp ideal para controlar dos motores diferenciales.
He elegido este pic sobre un 18 porque hace bastante fácil su programación en ensamblador, sólo 35 instrucciones frente a las muchas de los 18. Además es uno de los pics más usados.
Bueno os cuento un poco como se me ha ocurrido distribuir los pines:
He decidido dejar libres los pines del i2c y de la usart, para poder comunicar el pic con el exterior.
Los pines del timmer 0 y 1 están disponibles para conectar la placa de dos encoders hechos con sensores cny70, aquí no se si tendre que meter un rc pasobajos para poder eliminar los posibles picos que me de el sensor, ya que lleva un trigger smichdt interno que podría falsear la cuenta.
Luego las dos patillas de ccp junto con 4 más del puerto B las uso para controlar un l298. Es un puente en H capaz de controlar un par de motores de hasta 2 amperios con picos de 2.5. Mi idea inicial era colocar dos de estos puentes, con sus canales en paralelo para poder controlar motores de hasta 4 amperios, y disminuir por dos la potencia disipada y caída de tensión en el puente en el caso de motores menores de 2A. Pero un integrado de estos sale sobre 7 euros, por lo que encarecería bastante la placa.
El cristal me he decidido por usar uno externo de 20 MHz, aunque haya que sacrificar 2 pines sobre los 8 MHz internos, qué opináis?
Leds y pulsadores 3 y 3, no más, los pulsadores los he puesto con una resistencia en serie con el puerto, para evitar un posible corto si el puerto es configurado como salida, y por error se pulsa. Os parece buena forma de prevenirlo, o me afectaría en algo? Tb evitaría poner esta resistencia, poniendo la R de pull-down, pero si configuro el puerto como salida y le meto un 0 y pulso a 1 supongo que pasaría lo mismo?
Para la programación he dejao la opción del ICD2, incluir esto cuesta dos pines + incluir el pulsador de reset que nunca viene mal. Aunque un programador de estos es caro, para quién lo disponga resulta muy cómodo, además que te permite hacer el debug del icd2, que tampoco es para tirar cohetes.
El puerto D lo he dejado accesible totalmente, ya que creo que es ideal para conectar entradas digitales, como pueden ser los cny70, ya que lleva trigger smichdt interno, y esto evitaría tener que poner el clásico 74 externo, esto aún no lo he probado a ver como sale. Tb tiene la opción de PSP.
El puerto E tb es accesible totalmente, aquí se encuentra 3 adc, que dejo como entradas analógicas para conectar posibles sensores.
Como veis, he dejado 3 pines en conectores de 3, para poder conectar un servo o un sensor de distancias (un sharp por ejemplo) directamente a la placa. Aquí dudo en cuantas conexiones de este tipo dejar, y no sé si es la mejor opción. Lleva un condensador entre el pin y tierra para los sensores de infrarrojos, creo que es del orden de micros, al ser la frecuencia del servo sobre 50 Hz, su impedancia supongo que no afectaría a la señal de control? tengo que hacer los cálculos.
Bueno agradezco cualquier comentario, corrección, sugerencia que me podáis dar. Si creeis que algo necesario para un robot de este tipo no está, pls decidmelo.
Es una primera versión para ir trasteando, casi es más un entrenador de la que sacare el pcb para ir probando y ver que poner y que quitar.
Os adjunto el esquema.
Un resumen de lo que lleva:
I2C, USART accesible, ICD2
8 I/O digitales con trigger smichdt.
2 Pulsadores
1 Reset
3 Leds
Cristal de 20 Mhz
2 entradas al timmer0 y 1 para dos enconders.
1 pin con una interrupt on change
3 I/O con adc.
Control de un l298 en dirección y sentido, para control diferencial
3 conectores en placa para servo o sensores tipo infrarrojos de medis distancia, que requiere alimentación (2 analógicas)
No sé si me dejo algo. Gracias
La imagen no he conseguido subirla más grande, espero que no se vea muy mal. Hay la opción de subir imagenes directamente al foro? o sólo se puede a través de paginas de imágenes? s2
JM, Se pueden subir como archivos adjuntos, lo unico malo es que alargara la pagina hacia la derecha. Si tienes algun problema consultamelo.
Dejo esta entonces que aunque un poco pequeño se entiende. thx.
JM eres un campeón!
Me parece muy correcto las elecciones de PINS, no me he leído la parrafada, pero dandole un vistazo al esquema se me ocurren un par de cositas:
- El conector de USART no tiene toma de GND y seria bueno ponerlo para tener una referencia de tensión.
- La conexión "oficial" del Reset del ICD no es del todo correcta, creo recordar que los de Microchip montan una Resistencia serie con el pulsador al pin de reset y un condensador paralelo con el pulsador.
Salu2!