Hola Elchecho, acertaste.
El funcionamiento del transistor es sencillo, en corte/saturación. Cuando en la salida del puerto serie hay +9V con respecto a GND, como el transistor es NPN se satura, y entre colector y emisor hay una tensión de 0V. Por lo tanto, en la entrada del L293 hay unos 0V.
Cuando la tensión en la resistencia de la base del transistor es -9V, el transistor esta en corte, de forma que entre el colector y emisor hay una tensión de 5V. El transistor es como si no estuviera, y en la entrada del L293 tenemos 5V.
Respecto al L293, con las entradas 1A, 2A, 3A y 4A podemos controlar el sentido de giro, aunque ahora está puesto para que gire siempre en el mismo sentido. Si sabemos que los motores sólo van a girar en un sentido, podríamos haber hecho un circuito con el L293 mucho más sencillo, y sin usar tantos diodos, pero lo hice así por si acaso.
Por cierto... no te extrañes si al calcular intensidades y tensiones te salen cosas raras, esque he calculado los valores a ojo... si esque aprendí en FP...

Respecto al plugin... ISI publicó hace tiempo el código fuente de un plugin de ejemplo (en C++). Sólo hay que cojer ese ejemplo y cambiarle lo que quieras. Desde el plugin puedes acceder en tiempo real a la telemetría y a los botones de entrada, entre otras cosas.
Esles, lo montaré en una protoboard, por si tuviera que realizar cambios.
Saludos!