Conexión en serie entre Raspberry Pi y Roomba

0

Tengo un Raspberry Pi con este cable FTDI y un Roomba 560. El Roomba tiene un puerto SCI para permitir Control de la roomba vía serial. Instalé la biblioteca de PySerial en el pi y envié comandos válidos a Roomba, pero el roomba no responde. Tengo el TXD del cable conectado al TXD del roomba, el RXD en el cable cableado al RXD en el roomba y una conexión a tierra en el cable al suelo en el roomba (todo en su puerto respectivo). No tengo alimentación que vaya del cable a la roomba o viceversa.

Lo que no puedo entender es por qué los comandos no funcionan. No hay ningún mensaje de error al ejecutar el código de Python. Esta es la hoja de información del puerto SCI de Roomba.

Código:

import serial

ser = serial.Serial('/dev/ttyUSB0')
# this is the defualt Roomba baud rate
ser.baudrate = 57600

# Start SCI - puts into safe mode
ser.write(chr(128))
# Enable full mode
ser.write(chr(131))
# Spot clean
ser.write(chr(134))

print 'Done'
    
pregunta Ian Hyzy

3 respuestas

0

La especificación .pdf para el puerto SCI es obsoleta o incorrecta, la serie 5XX usa el puerto 115200, por eso no funcionó.

    
respondido por el Ian Hyzy
1

Parece que tienes a Pi y Roomba hablando por el mismo cable y escuchando por el otro.

Conecte la línea de transmisión de la Pi a la línea de RX de Roomba, y viceversa.

Primera regla para solucionar problemas de comunicaciones en serie: ¡Intercambie las conexiones en los pines 2 y 3!

    
respondido por el Peter Bennett
0

El Roomba tiene un pin de "detección de dispositivo" que debe presionar bajo para encender el Roomba e inicializar la conexión. A veces las personas conectan esto al pin RTS (¿o fue el CTS?) Del adaptador serie. La detección del dispositivo podría ser lo mismo que presionar el botón de encendido del Roomba. Después de que Roomba imprima el modelo y la versión de firmware en el puerto serie, debería estar listo para recibir comandos.

No recomendaría conectar el pin de detección del dispositivo de 5V directamente al 3V Pi. Puede simplemente realizar un cortocircuito a tierra manualmente (y brevemente) para comenzar.

    
respondido por el joeforker

Lea otras preguntas en las etiquetas