I made myself a little present this christmas by putting a “Karotz”:http://www.karotz.com/ under my christmas tree. This little digital bunny robot is the 3rd generation of a gadget that was once known as “Nabaztag”:http://en.wikipedia.org/wiki/Nabaztag.
Karotz can connect to the internet and you can deploy applications on it. It’s a tiny multitalent, speaks, blinks, turns his ears, takes photos and plays musik. The really cool stuff about all this, is that you can also access it via a “REST-api”:http://dev.karotz.com/api/.
I was a little disturbed by the bad documentation of the api, but since Karotz has had a pretty shaken history, I was willing to see over it. Nevertheless “I had a really hard time figuring out how to use the API”:https://groups.google.com/forum/?hl=en#!topic/karotzdev/FPTzH_d8FAU, especially the “interactiveMode sessions”:http://dev.karotz.com/api/interactiveid.html, which are crucial for interacting with Karotz. That’s why I wanted to give you a short HOW-TO wrapup on it.
h2. Basic Setup
First of all you need to have a Karotz up and running, like it’s described in the handbook. Register yourself at karotz.com and click on the “lab”:http://www.karotz.com/lab button at the bottom of the page. Once you registered yourself for all the developer stuff, you need to register a new application for yourself in order to get access to the credentials needed to talk to Karotz.
In order to get your own application, you need to create a “descriptor.xml”:http://dev.karotz.com/dev/register_app.html#descriptor-xml and package it as a zip-file and then load it up to the appstore and then deploy it to your bunny. Here is an example, which exposes the install-id of your application, which you need to accesss your Karotz:
0.0.1 tts ears led multimedia external
Have a look at this “Christops Blog”:http://www.christophs-blog.de/2011/09/karotz-command-line-tool/ if you don’t get it working for yourself.
h2. Using the Gem
There are already some code-examples on the “developer-pages”:http://dev.karotz.com/api/signed.html#Php-sample on how to get an _interactive_id_ for your Karotz and some code has been released for Ruby as ruby-karotz “here”:https://github.com/MadsBuus/ruby-karotz and “here”:https://github.com/XVI-kondoh/Ruby-Karotz none of them exposing a nice API or describing the process of how to get all the peaces of the puzzle together. That’s why I am currently writing this…
So here is an example of how to interact with the “karotz gem”:https://rubygems.org/gems/karotz:
Karotz::Configuration.configure do |config| config.install_id = ENV['KAROTZ_INSTALL_ID'] config.api_key = ENV['KAROTZ_API_KEY'] config.secret = ENV['KAROTZ_SECRET'] end Karotz::Client.session do |karotz| karotz.ears karotz.led karotz.say karotz.play end
This will rotate Karotz ears, blink the LED, say ‘test’ and let it play the A-TEAM theme!