Trondheim-Bratislava, July 2005 - January 2006
See also: Controlling RoboPet from RCX
First, Richard has made some investigations of the LEGO IR tower and realized that it really
emits the signals the way we wish:
Read more about what the program did
and we concluded that the thread that is sending the required signals gets scheduled out by Windows,
and thus the proper sequence is not transmitted. Therefore we changed the program so that it would
run on the highest possible priority, and now it seems to control the robot reliably.
You can use it to send all the possible commands RoboSapien recognizes, and you can
even write a little script with time delays, which will be sequentially sent to the robot.
When you run the program from the command window without arguments, it will print its usage.
Download:
Old version sapien2i.zip utilizes direct control of TxD and thus avoids spurious impulses generated in asynchroneous communication due to start/stop bits (on the cost of higher CPU load and administrator rights requirement).
ir2ir.zip - Windows console application for IR-codes conversion (UIRT, Pronto, Sapien hex-codes)
RoboSapien video:
(c) 2005 www.robotika.sk Pavel (ppetrovic (at) acm.org) and Richard (balogh (at) elf.stuba.sk).
RoboSapien is a humanoid
toy robot with many pre-programmed behaviors that can be started from a handy remote control.
In order to steer the robot from the PC, one needs to send infrared control signals to
the robot. LEGO RCX infrared tower connected to a serial port is a device capable of doing it.
It emits the IR light according to the state on the TxD pin of the serial port.
Thus knowing the protocol
of the Robosapien IR communication, we could easily write a program that sends the
control commands to the robot.
Then Pavel wrote a program using high-precision timers in Windows that was sending the
walk IR sequence to the tower, however, the robot did not move. So Richard analyzed the situation:
This program controls both RoboSapien, RoboSapien V2, RoboPet, and with raw hex values also some other WowWee robots. It contains a simple DLL that allows you to control a robot from your own Windows applications. Linux version included. Java and C# support included. OCX version (support for Imagine Logo). VisualBasic.NET example. Many thanks to Ruby Duck and Robert Oschler for valuable feedback!
This version allows controlling LEGO robots too (using rcxrepeater program). Even more! Control your WowWee robot
through LEGO robot even using LEGO USB IR-tower (by relaying through RCX), or store sequences of commands into your RCX and invoke them with PRGM button (or from PC).
Lately, the communication part has been rewritten using the asynchronous communication,
featuring no need for administrator or superuser priviledges, and CPU utilization falling from 100% to 0%.
Read more about how the WowWee robots are controlled using serial protocol...December 23rd 2007, experimental:
sapieniso.zip - combined archive with both synchronous and asynchronous version now with the support for the
i-SOBOT!
Older:
sapienX.zip - controling RoboSapien using LEGO IR-tower (WIN32 console application)
Previous version (without RCX support, more stable): sapiena.zip.
Visit EvoSapien site for RoboSapien Dance Machine project, Voice Controlled Robopet Video, and more.
Where to buy? In Slovakia and Czech Republic, you can buy RoboSapien from www.gameexpress.sk and www.gameexpress.cz.
(purchasing after clicking on this link will support www.robotika.sk).