Robosapien Hacking2
Robosapien Hacking2
Main
Hacks
Robosapien Hacking
Gallery
Old Gallery
INFO Information
Main Group: Dan
Bluetooth
Java setup
Java coding Purpose and Overview
Robosapien writeup The purpose of the project was to modify commercially available
Robosapien robots for use in a class environment. After researching
possibilities to accomplish the goal, we decided on using an additional
onboard microcontroller, a serial to Bluetooth adapter, a USB
Bluetooth adapter, and a Java API to handle the communications.
Using Java and Bluetooth, students were easily able to manipulate
the robots. The student projects turned out well, and can be seen in
this site's photo gallery(Follow link on main Robosapien page).
Onboard processor
I selected the BasicX processor from Netmedia for use in the robots.
These are slightly more expensive than Parallax processors, but
packed with better features, including floating point support, which I
intially used for communications with the robot. I selected these
processors rather than something like a PIC because it was unclear
at the beginning of the project if students would be doing onboard
programming. In addition, the BasicX/Basic Stamps have builtin
serial communication hardware and libraries, making the circuit
design and coding process simpler.
To power the processor, I took the 6V Vcc from the Robosapien's
main board and added another Dcell battery to supplement the
voltage. The voltage fluctuates when the motors are activated, and
the Dcells add enough voltage that even during motor use with an
old battery the processor still gets the 5 volts it needs to operate. A
5v linear regulator was used to protect the processor andprovide
power for the Bluetooth serial adapter.
The processor is also connected to the touch sensors such that the
processor pins are pulled to ground when the sensors are hit. The
sensors are disconnected from the main board processor so that the
robot does not automatically stop on impact(useful for playing
robosoccer, or pushing boxes).
Finally, one pin from the processor is used to send signals to the
robot over the IR channel. The IR circuitry runs at 3.3V, but the
http://www.dancartoon.com/old/robosapien_writeup.html 1/3
6/3/2015 Robosapien Hacking
processor runs at 5V, so a Schottky didoe is used as a voltage clamp
to protect the robot(Suggested by Tom Handley, another Robosapien
hacker).
Power
Students had the choice between battery power and wall power. I
added a DC power supply to the robot and provided ACDC adapters.
A switch on the back of the robot selected between the power
sources. The wall power was slightly weaker than the battery power
for a couple of reasons. First, the power adapters only provided ~1.5
amps, which may not have been enough for intensive tasks like
walking. Second, the regulators that I used were only rated for 11.5
amps, so this also limited the power provided(6 volts is a
nonstandard voltage, and higher current regulators for this voltage
are hard to find). Third, the regulators may have been dropping out
as the power adapters provided less than the requird 6 volts under
heavy current draw(although this never caused the robots to reset if
it was occuring). A better approach would be to purchase higher
current probably 23 amp 6 volt power supplies with built in
regulators.
Bluetooth
The Bluetooth adapter on the robot is a Bluetooth to serial adapter.
This allows communication between the BasicX and a computer
without special communications code for either system. The PC
Bluetooth adapters create what appears to be an additional serial
port to the operating system. The user can then run any code that
talks to the serial port over the connection. The Bluetooth to serial
adapter is powered through the serial port by the robot and claims to
consume minimal amounts of power(untested).
Software
I provided a Java API for use with the robots. The API and some
sample programs provided students with the information that they
needed to control the robots, and coding did not appear to be a
problem in the students' projects. A group of students also developed
a C interface to the Java code to make it easier to combine with
OpenCV, a vision package written in C.
Problems/Fixes
Overall the projects turned out well, but some improvements could
be made. First, the wall power supply issue should be fixed, as
mentioned above. Second, communication between the BasicX and
robot is unidirectional. There is, however, bidirectional
communication over Bluetooth with the PC to ensure that information
is communicated. As a result of the unidirectional communication,
there were times when the robot would not receive sent commands.
This is likely the result of interference from the rest of the IR
circuitry. The IR diode may have been picking up ambient infrared
and garbling communications from the BasicX(which is directly
connected to the main processor). If this is the problem, one solution
is to simply disconnect the IR circuitry since this is only really
necessary for use with the Robosapien remote control. Another
possible way to do the communication while keeping the IR circuit is
http://www.dancartoon.com/old/robosapien_writeup.html 2/3
6/3/2015 Robosapien Hacking
to get feedback from the robot. There is no IR feedback from the
robot, but the robot's eyes do change patterns whenever a command
is received, so these could be used to determine if a command has
been successfully transmitted, and retransmit on failures.
Besides these issues, there were no other major problems with the
robots. Students discovered that the robots don't walk in a straight
line, but one group fixed this problem by adding some cutlery to the
lighter side of the robot.
Next
I still have to finish modifying the Robosapien V2. It is more
complicated internally than the V1, but the IR communications are
pretty similar, and other hackers have already determined and
documented the IR protocol. BasicX code is available to those who
need it, and schematics should be complete soon.
http://www.dancartoon.com/old/robosapien_writeup.html 3/3