From: Petter Reinholdtsen Date: Wed, 1 Sep 2010 18:57:07 +0000 (+0000) Subject: More on the robot. X-Git-Url: https://pere.pagekite.me/gitweb/homepage.git/commitdiff_plain/bdd3e9d5c068611e7d98fe77c7f1f726c02e8501?ds=sidebyside More on the robot. --- diff --git a/blog/data/2010-09-01-spykee.txt b/blog/data/2010-09-01-spykee.txt new file mode 100644 index 0000000000..7fac1440b6 --- /dev/null +++ b/blog/data/2010-09-01-spykee.txt @@ -0,0 +1,52 @@ +Title: My first perl GUI application - controlling a Spykee robot +Tags: english, nuug, robot +Date: 2010-09-01 20:55 + +

This evening I made my first Perl GUI application. The last few +days I have worked on a Perl module for controlling minen recently +aquired Spykee robots, and the module is now getting complete enought +that it is possible to use it to control the robot driving at least. +It was now time to figure out how to use it to create some GUI to +allow me to drive the robot around. I picked PerlQt as I have had +positive experiences with the Qt API before, and spent a few minutes +browsing the web for examples. Using Qt Designer seemed like a short +cut, so I ended up writing the perl GUI using Qt Designer and +compiling it into a perl program using the puic program from +libqt-perl. Nothing fancy yet, but it got buttons to connect and +drive around.

+ +

The perl module I have written provide a object oriented API for +controlling the robot. Here is an small example on how to use it:

+ +

+use Spykee;
+Spykee::discover(sub {$robot{$_[0]} = $_[1]});
+my $host = (keys %robot)[0];
+my $spykee = Spykee->new();
+$spykee->contact($host, "admin", "admin");
+$spykee->left();
+sleep 2;
+$spykee->right();
+sleep 2;
+$spykee->forward();
+sleep 2;
+$spykee->back();
+sleep 2;
+$spykee->stop();
+

+ +

Thanks to the release of the source of the robot firmware, I could +peek into the implementation at the other end to figure out how to +implement the protocol used by the robot. I've implemented several of +the commands the robot understand, but is still missing the camera +support to make it possible to control the robot from remote. First I +want to implement support for uploading new firmware and configuring +the wireless network, to make it possible to bootstrap a Spykee robot +without the producers Windows and MacOSX software (I only have Linux, +so I had to ask a friend to come over to get the robot testing +going. :).

+ +

Will release the source to the public soon, but need to figure out +where to make it available first. I will add a link to +the NUUG wiki for +those that want to check back later to find it.