fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Avisos
Vaciar todo

Proyecto Amebot, basado en RPi Bare Metal

7 Respuestas
2 Usuarios
0 Reactions
6,225 Visitas
antoniovillena
Respuestas: 5
Topic starter
(@antoniovillena)
Active Member
Registrado: hace 10 años

Antes de nada: soy malo para los nombres. Así que si se os ocurre algo mejor, estaría encantado de cambiarlo.

Este proyecto tiene su origen en un manual de prácticas que hice como proyecto fin de carrera para la Universidad de Málaga. El libro está aquí:

http://antoniovillena.es/imagenes_foros/LibroDePracticas.pdf

Lo interesante es la segunda parte del mismo, en la cual se habla de la programación Bare Metal, que sería más o menos programar una RPi como si fuera un microcontrolador. Es decir, prescindimos del sistema operativo, por lo que el arranque es inmediato. Para llevar a cabo esto de una forma práctica hay que comprarse un conversor USB-Serie y enviar los programas mediante bootloader. El conversor serie que yo uso es este:

http://www.aliexpress.com/store/product//1084310_1902247221.html

Ojo, es un poco especial porque tiene 6 pines cuando la mayoría tiene 4. La razón es porque utilizo el pin DTR para resetear la Raspberry, ya que de otra manera habría que hacer un molesto reset manual.

Para seguir el manual necesitáis una placa auxiliar. Me quedan algunas PCBs, aunque es fácil crearse una con los esquemas y una placa de agujeritos. El manual se centra en ensamblador, aunque las herramientas de compilación cruzada también te permiten programar en C. La idea es que os leáis el manual y luego en una segunda fase apliquéis los conocimientos al robot.

El robot está en desarrollo. He pedido esta plataforma por ebay:

http://www.ebay.com/itm/311172280337

Voy a utilizar una RPi A+. El puerto GPIO lo dividiré en 3 secciones:

  • A la izquierda, control de motores, botón de reset y selección de programa a ejecutar. Esta parte está diseñada, aunque falta desarrollar el nuevo bootloader. Tiene un switch rotatorio de 10 posiciones (de 0 a 9). La idea es que si no hay nada enchufado al puerto serie, el robot arranque con el programa Bare Metal kernelx.img, siendo la x la posición del switch (por ejemplo kernel8.img si la posición es la 8). En el caso de enviar un programa por el puerto serie, este se escribirá en el kernelx.img correspondiente y se ejecutará.

  • En el centro, sensores. No está diseñada aún. Quiero hacer algo sencillo y flexible a la vez con 10 sensores CNY70, dando la posibilidad de cambiar los de los extremos por encoders para los motores. Los dos CNY70 centrales serán fijos y los demás se podrán ajustar en altura para optimizar el algoritmo de rastreo. La idea es utilizar el robot a modo de rastreador.

  • A la derecha del todo, y coincidiendo con la parte extendida de los modelos plus pondré un adaptador (ya diseñado) para que se pueda enchufar la placa auxiliar. De esta forma tendríamos 6 leds, 2 pulsadores y un altavoz disponibles para el robot que siempre vienen bien.
  • En este archivo tenéis el diseño de la primera y tercera parte:

    También tengo pensado programarlo de un modo inalámbrico. Conectando otra RPi a modo de mochila sobre el robot podemos suplir las funciones de un PC. La conexión serie sería directa (sin necesidad de conversor USB-Serie) y a través de ssh con el SO Raspbian y un pincho USB podemos hacer lo mismo que con un PC y un puerto serie cableado.

    He pedido componentes y PCB para 20 placas de motores, con la idea de usarlas en las prácticas de la facultad. Mi idea es vender 10 a la facultad ya montadas (por 10 euros) y el resto por aquí sin montar (8 euros).

    No me quiero enrollar más para no hacer este post muy pesado, pero entiendo que dejo muchas cosas en el tintero así que si tenéis cualquier duda no tenéis más que preguntarme.

    Responder
    6 respuestas
    furri
    Respuestas: 2708
    (@furri)
    Ardero
    Registrado: hace 19 años

    Respuesta como vocal de la asociación:
    Genial, como sabrás la web ha sido remodelada totalmente y aún hay módulos por terminar, en cuanto la web se encuentre totalmente operativa el robot podria publicarse en la sección de "robots" actualmente en fase de implantación, te mantendré informado.

    Respuesta como robotero:
    Mi permanente falta de tiempo igual no me deja reproducir el robot aunque tengo todos los materiales... RPi, plataforma, conversor USB-Serie TTL, etapas de potencia.... y ademas voy a Málaga una o dos tardes a la semana (vivo en Marbella), asi que si quieres tomar un café y charlar del tema pues tambien podria ser.

    furri

    Responder
    antoniovillena
    Respuestas: 5
    Topic starter
    (@antoniovillena)
    Active Member
    Registrado: hace 10 años

    Pues yo encantado. Ahora mismo todo el tema robótico/electrónico lo tengo en mi pueblo, pero les dije a mis tutores de proyecto que les iba a mostrar el robot cuando tuviese algo visible. Así que cuando tenga el robot en Málaga te aviso y quedamos una tarde. El robot no va a ser nada del otro mundo, lo interesante es el entorno de programación con la Raspberry.

    Responder
    furri
    Respuestas: 2708
    (@furri)
    Ardero
    Registrado: hace 19 años

    ¿en que andas en la UMA?, acabando?, postgrado?...

    Normalmente voy a Málaga miercoles y/o viernes por la tarde, los demas dias será complicado por tema laboral, si necesitas algo de cacharreo con la parte hardware del robot dimelo.

    Responder
    antoniovillena
    Respuestas: 5
    Topic starter
    (@antoniovillena)
    Active Member
    Registrado: hace 10 años

    Estoy trabajando para una empresa del CTM. La carrera la acabé hace 10 años a falta del proyecto, que debido al plan Bolonia tenía que completar este año para que me pudieran dar un título. Mi PFC es el manual de prácticas para RPi que he puesto arriba, el cual tengo pensado extender (ya está acabado y defendido) a una plataforma microbótica. El hardware está casi diseñado (a falta de rematar la placa de sensores). Pero entre que la envío a fabricar voy a tardar un mes. Mi intención es mostrarte el robot una vez terminado y el entorno de programación. Como estás más metido en este mundillo seguro que le sacas más partido que yo.

    Responder
    Página 1 / 2
    Compartir: