How to turn your Sphero BOLT into a character

Ashleigh Bartlett-Needham
7 min readOct 28, 2018

--

Sphero BOLT character

Sphero BOLT entertainment robot/character code

So I recently got my hands on Sphero BOLT. I was attracted to this latest iteration of the Sphero robotic ball because of the 8x8 programmable LED matrix, and the endless coding opportunities it can provide. I was influenced by this article about Sphero BOLT and Javascript. And I certainly haven’t been disappointed. In fact, the matrix to me is the perfect opportunity to give this little robot ball a personality. So if you want to turn your Sphero BOLT into a character, here’s how.

Sphero BOLT charging

Sphero BOLT character design

The first step to turning this awesome robotic ball toy, into something with a little bit of character is to think about what that even means.

When I think of robot characters, I can’t help but consider the TV and movie characters we’ve all come to love. From Johnny 5, to Wall-E, these characters are the embodiment of what most people want from an entertainment robot in their home.

So to replicate this behaviour, a robot character would have to be:

  1. Entertaining (or maybe even slightly irritating…Claptrap I’m looking at you). Jokes, riddles or games could be helpful to emulate this.

2. Autonomous, mostly. While you don’t really want your Sphero BOLT wandering off, it needs to be able to entertain itself while you do your own thing.

3. Personable. While robots are majorly “uniform” everyone wants their robot to be an individual. Which goes against “the code” so to speak. This could be helpful with facial expressions, and “personality”.

Sphero BOLT character

Sphero BOLT robot Personality

Since the 90’s, and the first incarnation of Furby, robotic toy developers have focused on an idea of personality. Poochi, Teksta, RoboSapian, Pleo, and even Anki’s latest offering, Vector, all boast a “personality”. And if you break this down, it basically means a series of pre-programmed movements, noises and animations that display a “human” emotion or personality. And this is used in reaction to something the user does, or doesn’t do. To give the appearance of a personal reaction. Almost 20 years ago Furby created this by building different personalities into their weird gremlin like creature, that would be activated by the way that children (or the young at heart) interacted with them. And over the years they have developed on this winning formula. Surely we all know of a Satanic Furby?

To achieve this “personality” with Sphero BOLT, the LED matrix is the perfect tool. After some planning, designing, and re-designing, I decided that for my robot, creating 2 bright eyes would do the trick. And I looked at how the different personality features could be shown.

Here is some of the planning:

And these are some of the finished animations, shown on the Sphero Edu app:

By combining these with the right sounds, the overall effect can be impressive.

Sphero BOLT entertainment robot

Once Sphero has some personality, the next thing is to make it entertaining. So for this Sphero needed some functions. I chose to add jokes, riddles, and a simple game I’d already written as these entertainment functions. And it was important to set a variable to make sure that jokes or riddles would not be repeated. Hearing the same cheesy joke twice or three times in a row would not be fun, or entertaining!

But interacting all the time with Sphero BOLT was not what I wanted. I feel that, for a robot to have character, it has to be able to do things on it’s own too. So for an entertainment robot, Sphero BOLT also has to be able to entertain itself. For this I made more animations for Sphero BOLT to implement, every 15 seconds, when not interacting with humans. While these don’t actually form any purpose, they do help breathe life into the created persona. You could also easily increase, or decrease the time between animations, depending on your preferences.

Bored animation Sphero BOLT LED matrix

Sphero BOLT interaction

Once all the pieces of the character design are in place, it is time to think about exactly HOW to interact with the Sphero BOLT character. Sure you can sit it on the desk, and watch it. But that’s not an interactive experience. And Sphero products, by design, are created to be interactive. I mean, it’s a robot ball!

So, I decided on 2 forms of interaction. Human initiated interaction. And robot initiated interaction. After all, if a robot is going to have character, it needs to reach out to it’s human friends from time to time.

Here is the planning:

Sphero BOLT human initiated interaction

Humans need to be able to interact with this robot ball. So here is part of the completed code, shown on the Sphero Edu app:

As you can see, a user can shake, twist or bump to interact with Sphero directly, by prompting the collision event. And this will result in an appropriate reaction (dizzy, sad or angry). Which adds to the character/personality development.

But users also need to be able to get Sphero to tell jokes or riddles, or play a game. So for this I decided to use the free-fall event. Simply throw Sphero in the end, and as it falls back down you will be prompted to either play, listen to a joke, or listen to a riddle. All the user needs to do is shake Sphero to answer positively.

Sphero BOLT robot initiated interaction

Robots with character don’t just hang around waiting on human sidekicks though. They actively seek them out. Just like Anki’s Cozmo does so effectively. So to create a robot that seems friendly, it has to reach out to humans too.

One way for Sphero BOLT to effectively do this, is through the speak command. This reads out text, using the Google Assistant voice, through your smart device. This could be a good way to attract attention, and encourage interaction.

In my program, I set Sphero BOLT to reach out like this every minute, when the robot hasn’t been interacted with by the user. You could easily change this time limit depending on your preferences.

Sphero Edu app

The Sphero Edu app has been great to work with when creating this program. It has an intuitive design, and it’s really straightforward to use. Especially to create animations on the LED Matrix, which is essential if you want to turn your Sphero BOLT into a character.

I initially wrote this program using the JavaScript text programming option, but as many of the Sphero users are youngsters, I also created it with blocks too. To help make it easier for them to understand and edit themselves.

How to turn your Sphero BOLT into a character: summary

Turning Sphero BOLT into a character is a lot of fun. It involves looking at:

  1. Animations and sequences to create “personality”
  2. How to make the robot entertaining, when there are only limited input forms (sensors)
  3. And how much interaction is the right amount

I used Sphero Edu to create the program,and found it extremely easy and intuitive to use.

If you want a link to the completed program, or you want to check out more cool robot related projects, follow me on Instagram.

--

--