Celebrando el aniversario del robot SAM me dieron ganas de construir uno nuevo. Sería una óptima plataforma para experimentar nuevas tecnologías que podrían ser publicadas en Inventable durante la evolución del proyecto. Cuando era chico soñaba construir robots como el de la fotografía de introducción de este artículo aunque si con los años me di cuenta que era mejor hacer cosas más simples y que se asemejaran más al robot de esta foto de los años 50 (un roomba prehistórico).
He pensado de usar una raspberry PI 3 como cerebro por su potencia de elaboración y para poder programarla cómodamente en un lenguaje de alto nivel (probablemente Python), en modo remoto, desde mi escritorio y a través de la red WiFi de casa (con VNC, ya hablaré de este tema más adelante). Disponer de la Raspberry PI 3 significa tener una computadora completa a bordo, donde puedo conectar telecámaras y otras cosas USB, usar librerías de todo tipo como por ejemplo de reconocimiento de imágenes y hasta de inteligencia artificial. Aclaro que los posts que publicaré de este proyecto no serán tutorials, no explicaré como construir un robot sino mas bien lo haré como una forma de compartir con ustedes esta experiencia. Por este motivo las descripciones, los circuitos y las imágenes no serán prolijas y detalladas como lo hago habitualmente, véanlo como algo experimental.
Bueno, todo muy lindo pero debo empezar con lo más sencillo: una base, con ruedas. Este es el primer paso y representa el concepto mismo de robot móvil, dejando de ser un simple montaje electrónico para convertirse en una entidad autónoma (y con personalidad!).
El robot se llamará SAM-Z porque la Z se parece al número 2 (el nombre lógico de este robot sería SAM-2 pero no me gustaba mucho como sonaba) y porque después de tanto tiempo transcurrido desde el primer SAM ya habré llegado a la última letra del abecedario 🙂
Volviendo a la estructura de la base, la configuración con dos ruedas delanteras motrices y una posterior libre me gusta mucho, la he usado en el primer robot SAM y también en Calimaro, el robot con transistores. He decidido de adoptar para la base nuevamente el octógono irregular porque es fácil de hacer pero al mismo tiempo da al robot buenas características de maniobrabilidad. He profundizado bastante este argumento en mis artículos sobre la construcción de Calimaro.
Para evitar de usar una base un aluminio muy espesa, he pensado de agregar un refuerzo rectangular di madera terciada donde se encuentran los motores de tracción. Como motores usaré un par que había comprado años atrás en una feria de electrónica. Las cajas de engranajes son de plástico, no muy buenas, pero los ejes para las ruedas son grandes y además los motores tienen incorporados los sensores IR de giro.
Usaré ruedas para carritos, que se venden en las ferreterías. La de atrás, que debe ser libre, la dejo con su soporte metálico, atornillándola a la base, mientras que las ruedas de tracción, más grandes, las desmonto de sus soportes y las adapto, con un taladro, para que entren a presión en los ejes de los motores.
He probado a desmontar los sensores de giro de los motores y el circuito parece bastante simple aunque si he tenido que hacer algunas pruebas para descubrir la polaridad de alimentación y verificar que funcionen con 3,3V que es la tensión de trabajo de la Raspberry.
Los niveles lógicos de salida, alimentando con 3,3V son muy buenos (0V para el bajo y 3,2V para el alto). Estos sensores de giro tienen dos salidas para poder determinar el sentido de rotación (cálculo por cuadratura).
En mi caso, el micro ya sabe el sentido de giro del motor (es él que lo controla) por lo tanto me sirve solo una salida. Por las dudas agrego cables a las dos salidas pero usaré solo una.
Para las colisiones sería más elegante usar sensores a ultrasonidos o a infrarrojos pero se necesitan instalar varios para obtener una cobertura completa, sin zonas ciegas. Por ahora adopto el sistema a microswitch y antenas (alambres de acero) que usé en el robot a transistores porque es muy seguro y muy simple de hacer. Después agregaré otros sensores de aproximación, provablemnete IR, pero sin la preocupación de cubrir bien todo el frente del robot ya que las antenas serán siempre activas.
Monto los microswitch con distanciales en modo tal de dejar espacio para futuros sensores más sofisticados.
Bueno, la parte de abajo (motores, ruedas y sensores de colisión) ya está lista, en el post próximo sigo con la parte de arriba.
Vuestros comentarios y opiniones serán bienvenidos.
Hasta la próxima.
Artículos relacionados:
-SAM-Z Segunda parte: la alimentación del robot
- El robot Calimaro
- El robot SAM
- Driver para motores
Indice de todos los artículos de Inventable
Los contenidos de este blog son originales y están bajo una licencia Creative Commons BY_NC_ND
Para los ataques de ira uso un martillo de plástico, así no hace corto 🙂 .
Bueno, te decidiste al final. Yo ya tengo la Raspberry 3, pero todavía ni siquiera la enchufé por vez primera. Voy a ver si la pongo en marcha a la brevedad para practicar, a ver si puedo darte una mano en algo.
Después sigo.
Un abrazo
Juan
Pegale una ojeada a esto: https://pixycam.com/pixy2/
Muy bueno Juan, realmente impresionante. Ya que estamos en argumento, uno de los objetivos más importantes de SAM-Z es precisamente el sistema di auto-recarga, el robot debería buscar y engancharse a una «robot docking station» automáticamente. ¿Ideas?
Mirá este video: https://www.youtube.com/watch?v=vyJfpf-QpD4
He empezado hace poco a hacer algunas pruebas con OpenCV en Python para mi trabajo, es una libray muy potente y que podría servir. Me parece ingenioso el sistema con los dos contactos.
Me gustaría sumarme, aunque mis conocimientos de Python son mínimos. Voy a leer un poco y veré en qué puedo ayudar.
Busqué muy por encima lo de OpenCV y me doy cuenta de que todavía me falta mucho. Si no enchufo pronto la Rpy me voy a quedar en el pasado…
Si con 3.3 V lográs 3.2 V de salida en los opto, lo más seguro es que sean PNP con salida por colector, por la muy poca caída, digo.
Si, tenés razón, son niveles de transistores saturados, no sabía que se producían fototransistores PNP, nunca vi uno.
Yo tampoco.
Salvo que al hacer el dibujo te hayas mezclado + y -, en cuyo caso serían NPN comunes y corrientes. El sentido de los led también podría ser parte de la confusión. Qué sé yo, es que lo de los PNP me parece tan raro…
Puedo estar equivocado, pero no creo que sea físicamente posible hacer un fototransistor PNP «puro», tal vez algún híbrido de un NPN que reciba la luz y un PNP de salida, pero el PNP puro no creo.
Esa explicación redondearía todo. Sí, puede ser como decís.
Aunque no me explico la forma en que el NPN comandaría al PNP.
Que bueno!!! Me alegro muchísimo que estén nuevamente sumergido en algo tan apasionante.
El hecho que lo compartas a modo de experiencia día a día, si bien cambia un poco el formato del Inventable, para un desarrollo como este, estimo que sin duda es la mejor opción.
Enhorabuena por este nuevo reto que te has impuesto y sobretodo por el retorno a la publicación de nuevos artículos.
Un abrazo
HJ
Gracias Héctor, me alegra tanto leerte acá. Un robot junta en un único proyecto un montón de especialidades y tantos desafíos. Espero que ustedes puedan ayudarme. Un abrazo.
Hola, he reactivado el account Twitter de inventable para poder publicar los progresos en el desarrollo del robot SAM-Z, no es necesario que se inscriban, pueden ver las novedades y si quieren, comentar acá.
He agregado el link de Inventable en Twitter en alto a la derecha de la página y también en el menú principal.
Perfecto! Seguimos además las novedades por Twitter. Saludos.