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
Otia no había visto que las placas no existían (hablar que comentarle a joviwap que nos las pase), lo de los post borrados fue un pequeño pique que hubo y que ya esta solucionado. Respecto a lo que comentas:
- El 7805 en placa es solo para alimentación desde fuente, el diseño tenia una entrada de 5V y un puente de diodos para alimentarlo solo con 4 pilas (según se monte una configuración u otra).
- Los jumpers están pensados para que si te equivocas no puedas cargarte la placa (hubo una discusion larga sobre esto).
- Las conexiones para 8 servos eran del estilo Vcc-Pin-GND que daban la posibilidad de alimentar los módulos desde la placa de control. Si no te gustan no los montes... 🙂
- La resistencia en serie para los pines de salida estaba contemplada (resistencias de 1k y 1/6W), dado que el pic debe trabajar por tensiones (niveles CMOS de 5v) no importa ponerlas allí. Lo único que puede hacer es en las entradas analógicas (si estas son directas y no pasan por un buffer) falsear un poco la medida.
A ver si joviwap sube otra vez las placas y las puedes ver (yo creía que tenía una copia, pero con el ultimo formateo de disco debo haberla perdido).
S2
Ranganok Schahzaman
Pues francamente al ser una placa de iniciación yo la haría lo + simple posible y dejarse de histórias de "pongo esto por si...".
Si se rompe un componente, pues se cambia y listo. Lo + importante es q la gente pille contacto con el robot y se inicie en la programación y le de un vistazo al esquema del robot.
La idea del pelacables JM me parece perfecta y lo único que yo personalmente pondria es un MAX232 para comunicar con el PC que va muy muy bien para depurar.
Es tan solo una opinión. Yo no creo que compre la placa
Salu2!
Si, cuanto más simple mejor, he estado mirando las placas que vende microchip de los kits de iniciación y en ningun puerto de I/O te mete una resistencia en serie para protegerlo, excepto a sus pulsadores en placa. Además no se puede poner en todos, ya que si quieres poner un led por ejemplo, con una de 1k te irias a menos de 5mA que no son suficientes. Si los de microchip no las pone en los kits de iniciación, como los pickit y similares, pues será la opción más conveniente.
Yo creo que lo mejor es dejarlas sin r, si se rompe el pic que es lo que se puede romper, pues de momento son gratis... y si dejan de serlo quien rompa uno aprenderá para la próxima vez XD.
Respecto a los del max232 he dudado mucho si ponerlo, yo creo que con dejar las conexiones basta, y si se quiere usar se hace un circuito externo para pinchar al bot y al pc con el max232 y los condensadores, o con algún chip para convertir de rs232 a usb, ya que los pcs nuevos que se venden ya desde hace tiempo han dejado de ponerlo.
Bueno voy a empezar con el eagle, a ver lo que sale.. XD. S2
Hombre 5mA para un led normal (rojo, verde o ambar de 3 o 5 mm) es más que suficiente, para los demas (ultravioleta, blancos, azules o de alta luminosidad) mejor ponerle un driver de salida (un bjt es más que suficiente en muchos casos).
S2
Ranganok Schahzaman