[Butia-devel-list] Protocolo PC<->Butiá sobre USB
Guillermo Reisch
greisch en fing.edu.uy
Vie Jul 21 16:55:59 -03 2023
Manual, bue, esta la información de bobot en la wiki de butia
https://www.fing.edu.uy/inco/proyectos/butia/mediawiki/index.php?title=Bobot
Después cambiamos el "bobot" (en lua echo por Jorge) por "pybot" (en python
echo por Alan) que se comunica con la usb4aButiá directamente usando la
librería pyusb, ahí ya no necesitamos el servidor tcp/ip esperando comandos
(ya que usamos pybot como una api directamente y no como un servidor aunque
también tiene server por lo que vi...)
https://www.fing.edu.uy/inco/proyectos/butia/mediawiki/index.php?title=PyBot
Codigo esta en butia/turtlebots/pybot
Y por ultimo si te interesa el formato protocolo USB no hay otra que ver el
USB4Butia (que es la placa con el pic18f4550 que maneja el butia 2.0)
https://www.fing.edu.uy/inco/proyectos/butia/mediawiki/index.php?
title=USB4buti%C3%A1
El usb4butia esta basado en usb4all
https://www.fing.edu.uy/inco/proyectos/butia/mediawiki/index.php?title=Usb4all
que es un proyecto de grado de Andres Aguirre.
La tesis final con la documentación de usuario y todo esta en
https://sourceforge.net/p/usb4all/code/ci/master/tree/doc/usb4all/
Igual que todo el firmware de butia que esta en:
https://sourceforge.net/p/usb4all/code
el protocolo que usa usb4all (implementado en el firmware)
https://www.fing.edu.uy/inco/proyectos/butia/mediawiki/index.php?
title=Usb4all#3._Protocolo_de_Comunicaci.C3.B3n
es un RPC (Remote Procedure Call) [bloqueante] en que le mandas un mensaje a
algún modulo y el modulo responde, tienes un modulo principal o admin que se
encarga de abrir otros modulos, y cada modulo (por ejemplo "grey" o sensor de
grices) tiene funciones particulares [en el caso de "grey" GET_VALUE=1]
En pybot el manejo del modulo admin esta en:
turtlebots/pybot/device.py
Y cada modulo particular podes ver las funciones que soporta en:
turtlebots/pybot/drivers/$NOMBRE_MODULO
Ejemplo:
# Abrir modulo grey (obtenido de device.py)
[0][10][0][0][1][1]['g']['r']['e']['y'] => usb4all
Si podes desde la app android instalar un interprete python ya podrías correr
el código de pybot en la app y utilizarlo como una api.
Espero no haberte confundido más todavía :-P
Saluds
Guillermo Reisch
El jueves, 20 de julio de 2023 23:21:13 -03 Eduardo Trápani escribió:
> Hola,
>
> Estoy tratando de comunicarme desde una aplicación Android en una Beta
> Crux de Ceibal con el adaptador USB OTG.
>
> Intento seguir el codigo de bobot[1] pero honestamente, en lua me pierdo
> entre los objetos y los mensajes sobre USB. Los send() envían por
> ejemplo todos el mismo código para leer sensores (aparentemente
> GET_VALUE=0x01) pero no veo cómo indicar a cuál sensor se refiere.
>
> ¿Hay algún documento que cuente un poco cómo es el protocolo de
> conversación USB con la Butiá? Puede ser algo general, es para entender
> el flujo de la comunicación y cómo se elige el dispositivo (sensor,
> motor) con el que se quiere hablar. Si no hay documento, ¿alguien puede
> comentar por arriba cómo funciona la charla con la Butiá sobre USB?
>
> [1] https://sourceforge.net/p/butia/code/ci/master/tree/bobot/
>
> _______________________________________________
> Butia-devel-l site list
> Butia-devel-l en fing.edu.uy
> https://www.fing.edu.uy/mailman/listinfo/butia-devel-l
Más información sobre la lista de distribución Butia-devel-l