Marty the Robot from Robotical – a review of this lovely educational robot

In 2016, Edinburgh-based Robotical introduced their robotic platform, Marty the Robot. Successfully funded through a Crowdfunding campaign, the robot has now been updated to version 2, via another successful campaign, and is now available to buy from their online shop. Robotical sent me a Marty to have a play with and look more closely at the product and, vitally, the (frankly) dizzying array of resources available on the website.

Retail packaging

First of all, I was blown away by the retail packaging for the product. The box is solid, held closed by a magnet and substantial, not to mention colourful as you can see above. The rear of the box is informative and contains ideas for how you will use Marty to explore robotics.

My Marty review unit (which I need to return, so I’m going to be completely honest as I get no long-term benefit!) came pre-assembled, but it was easy to see the way the interior packaging had been designed to house the kit parts and the completed robot.

As you can see, Marty sits in the packaging on the right hand side with a piece of foam to pack the cavity out. On the left hand side is a pocket for the Quick Start Guide (thank goodness!) – they’ve really thought about the fact that kids, with the excitement of getting Marty, will want to crack on. The box does say that the product is designed for 10+ years with adult supervision, but the educational material (which I will cover later) goes down to 8 years old, allowing for children whose intelligence is slightly ahead-of-the-curve.

Movement cards

Also included in the box (though I think these are available to be purchased separately) are a set of robotic movement cards. These intrigued me – what were they for? Then it occurred to me – they are ideal for “unplugged” action mapping.

The users could use the cards to map out a series of movements without touching the programming side, work out what they want Marty to do, and then program the robot to do their bidding. A very good idea, especially if you’re sharing a Marty in a large group of kids. Some can get straight into the programming, others can use the cards, then they can swap. The cards are in bright, solid colours so if one added a Raspberry Pi to Marty and a camera module, one could do some OpenCV programming and literally “follow the cards”.

I realised, later, that Marty has a colour sensor on his foot – these cards are actually usable as tools without doing any programming. Ingenious! You just need to use the colour sensing blocks in Scratch and then place Marty on them or you can just put Marty in colour-sensing mode by pressing the A button and then he’ll just move according to the cards. How clever is that?! There’s even a worksheet that covers this.

Getting the robot out

Marty comes easily out of the foam packaging and stands freely:

It has very good balance because the feet are big enough! This robot has character. It reminds me a little of Spongebob Squarepants in colour scheme. There are a bunch of stickers to use on Marty, but I didn’t because they need the unit back, but I can see that this would be a great thing for those more artistically, rather than technically, inclined to get involved with the robot.

First steps

I referred to the Quick Start Guide to get going:

The first thing to do was to insert and connect the battery. This was easy – a couple of clips hold the back of the head on and then the top comes off. I was slightly bewildered initially until I realised that the entire battery component, including the plastic case, needed to go into Marty. That’s just me over-thinking things, though, I think!

Next, I turned it on (yay, they pre-charged the battery!) and matched the indicator lights to determine that the battery had enough “juice” to play around with. It did, so next I downloaded the app from the Google Play Store for Android onto my phone. I made sure Bluetooth and Location Services were turned on as implied by the Guide and then started the app. I scanned for Marty robots and… Nothing. Nothing appeared. I tried a few more times at different distances from the robot, but it wouldn’t find it for some reason. I checked the Bluetooth scanning manually through the phone and, sure enough, there was a Marty waiting to be paired. Curious. Then, I remembered the old programmers question:

Have you tried turning it off and on again?

So, I disabled Bluetooth, waited two seconds and turned it back on again. This time, the app scanner picked up my Marty and paired with it. I ended up on the app dashboard. There were a few options here – remote control; calibration; programming with Scratch; update firmware. I thought I’d start with the remote control and, sure enough, pressing on the buttons in the app caused Marty to move about.

I was immediately struck by how good the movement was. They’ve clearly chosen some excellent servos for the job and everything “just works” in a very fluid way.

Calibration enables you to manually manipulate Marty into a “ready” position (arms straight down, legs straight and nothing bent, eyebrows straight across) and then record that position for later use.

The firmware update requires you to plug Marty into a USB socket for power and then wait while the update occurs. I didn’t need to bother – after all, Marty was already working, but I thought I’d see how long it took. The answer was: about 10 minutes for the over-the-air update. Not bad, considering.

Next up was programming in Scratch. I’m always a little apprehensive about Scratch (being from a text-based programming background) but I needn’t have worried. Even with my rudimentary Scratch knowledge, I was able (on my phone, no less!) to program Marty to do a sequence of movements based on the blocks provided.

Everything was very self-explanatory and it was, indeed, possible to do it using my mobile phone. In class, of course, phones tend to be banned, so you’d likely be using a tablet, which I expect would work even better, with a larger screen.

Resources, so many resources!

First of all, be aware that there are two sites for Marty the Robot – version 1 and version 2. I had version 2, so I started here, on the version 2 “Learn” site. I fed back to Robotical that having the multiple sites, and then having a further, separate site for the Knowledge Base, makes the experience feel a bit fragmented. The UI and fonts, for example, change depending on which site you are on. They’ve told me that they’re just about to start the process of unifying the resources and the look-and-feel, so that’s great news.

For educators the Learn site is fantastic. There are individual Lessons and grouped Lesson Packs for using Marty in the classroom. Each resource lists and explains the Curriculum areas it is aimed at:

… so with enough time to look around the Learn site, teachers will be able to find resources to hit specific learning points. It’s all very well-organised and structured for educators on the Learn site – there are the resources themselves, PowerPoint slides, Teacher Guides. I suspect that with a class set of Martys, teachers could fill at least an entire term if they wanted to!

Taking Marty further

This being a Raspberry Pi blog, it would be remiss of me not to mention that you can fit a Raspberry Pi into Marty! The Pi is screwed into the lid of Marty and then a cable used to connect the Pi to the RIC control board. You can take a look at the guide for doing this here. It seems quite a simple procedure.

Once you’ve done this, having prepared the Pi’s SD card beforehand, of course, the Pi is powered by Marty through the RIC board, so you don’t need to worry about a separate power supply. This does reduce the onboard battery’s usage time, though, of course. There are then lessons, beginning here on how to use Python on the Raspberry Pi to program Marty. You will need to make sure you’ve got a Pi 3 or Pi Zero W as the Pi 4 is not supported for some reason.

I ran out of time at this point, and didn’t have a spare Pi to hand, but you can see a demo video of the Marty working with the Raspberry Pi below:

See Marty in action

If you want to see Marty in action some more, take a look at the video below. It was for their Kickstarter (which is now successfully finished) but gives a real feel of the product and the people behind it. It also has a fantastic shot of Marty walking off a table and surviving the fall – it’s a robust little animal is Marty!

 

Free trial

If you are in Education and you would like to try Marty out for a couple of weeks, Robotical can arrange delivery and pick-up and also support you through the trial. All you need is a short call with them to arrange it. Take a look at this page on the website for more details and to book a slot.

Conclusion

A bit of history, first. Way back when, the first model of Raspberry Pi had been around for a little while and there was a Kickstarter campaign for a robot called Rapiro. It was a robot, driven by servos, with a Raspberry Pi in its head connected to an Arduino-alike controller board. It was twitchy, the servos weren’t up to much and calibration was a nightmare.

Marty the Robot gave me similar worries when it was on its way to me. Would it be difficult to use? Would it stand up to punishment? Would calibration be something from which it would never recover?

I’m pleased to say that Marty exceeds expectations as far as all these questions are concerned. Apart from that single Bluetooth connection problem (which you might not even come across – it might have just been my phone!) and the concern about fragmented documentation and resources which they are already addressing, it hits the spot as far as robotics in education is concerned. It is easy to use in the first instance – you can have a play right from the off by using the app on a tablet/phone and just moving the little dude about using remote control. That’s before you even get onto the more complex Scratch-based programming and, eventually, adding a Pi and using Python. It has quick wins all the way along. As evidenced by the video above, and from a short Twitter conversation I had with another trial user, the platform is robust and, if it’s treated with a child’s care, it should stand up to repeated usage. Calibration of the platform is easy, using the app, and it is so different from Rapiro in terms of twitchiness – it just doesn’t twitch and bounce at all. The servos are metal-geared, too, so the animation of the robot is smooth and these motors will last much longer than plastic-geared servos.

Now, let’s talk about price! Marty the Robot v2 is £314 plus VAT. This seems a little on the high side, but of course you’re buying not only the platform but also the resources to go with it. There are class packs, too, which are obviously more as you get more than one Marty. Looking at £314+VAT for a minute, though, just for the single, this is just about in reach of those who would like to buy it. I would like to see it more like £250 including VAT, personally, but then I am not privy to their development and ongoing costs. Is Marty worth that kind of money? A qualified yes. If you have the budget to stretch to buying a Marty, or even a class set of the robots, then it is well worth the investment as it should last you a long time. The resources are excellent, the platform is great.

What more can I say? I want one! 🙂

Raspberry Pi Digest – 10th June 2021 – a different way of blogging!

I’m trying something new out – a sort-of digest of Pi-related things I’ve found this week. Let me know what you think of the idea of these combined posts in the comments! 🙂

Air quality lamp

Guillaume Slizewicz has created a Raspberry Pi Zero W-driven lamp that lets you know about air quality. Called Canari, it turns air pollution data from APIs into light patterns. The two APIs are from smartcitizen.me and sensor.community. You can read more here and see a video on Vimeo or watch it below.

Pico VGA Library

Miroslav Nemecek has been busy developing a VGA library for the Raspberry Pi Pico. Able to output from the Pico to a VGA monitor in either PAL or NTSC, the library has been developed with gaming applications and technical demos in mind. Details of the wiring involved and the way you compile the library (Windows only, sorry) are available here, along with LOTS of lovely documentation. You can see a demo in the video below:

Apple eMate – a portable Raspberry Pi

“Billy the Kid” has taken an old Apple eMate 300 and converted it to house and use a Raspberry Pi 4 8GB model. This rare machine was launched in 1997 by Apple and had a screen and keyboard. This is a great project to make a Pi portable, although the procedure is long, complicated and definitely not something you want to mess up – Billy has estimated the cost at over $400. You can see the build over on YouTube or below (you might want to turn your volume down a bit as I almost jumped out of my chair when it started!):

Bop that Minecraft!

Seth Altobelli decided to make Minecraft just that little bit more difficult to control by using a Raspberry Pi Pico as the control board for a Bop It toy. You steer using an accelerometer that he added and the you hit one of the buttons to move. The other buttons are used for other commands and for jumping. He doesn’t go into the coding too much, but I assume he’s using the Pico to translate between the Bop It’s controls and a HID input. It makes Minecraft much easier incredibly difficult to control, but it’s certainly a cool project! You can see details of the “Technoblade” build and a long demo over on YouTube or watching the video below:

Build a simple physical mute button for video conferencing on Zoom using a Raspberry Pi Pico

Miguel Grinberg has written a really great beginners’ tutorial to the world of USB HID using the Raspberry Pi Pico. For this project, he adds a Pico to a breadboard then hooks up a simple momentary button. Pressing the button sends a keypress to Zoom which mutes and unmutes the software. The software is CircuitPython, which has USB_HID already available and it can easily be expanded to send other commands, like turning your video off, for example. You can read Miguel’s tutorial here.

For a more comprehensive StreamDeck example, take a look here.

Create a weather forecasting station using a Feather S2 and an OLED

At the moment, I am waiting for the second version of my PCB for the PicoPicorder. In a departure from my regular making, I decided to buy a Feather S2 from Pimoroni. This is a Feather-format board with built-in WiFI that comes with CircuitPython pre-installed (although I believe you can install MicroPython if you want to – but in the end, I stuck with CircuitPython). If you want to know more about the Feather S2, take a look at this website.

But what to do with it?

My step-daughter has recently started a (very) local waitressing job whilst waiting to find her dream job (we hope!). Until today, this was all very outside-based, due to COVID restrictions in the UK. WIth today’s slight relaxation of restrictions, she’ll be indoors some of the time, but they’re (very sensibly) keeping the outside area. I decided, therefore, that she needed a way of knowing what the weather was going to be like for upcoming shifts.

I also bought a FeatherWing OLED at the same time so decided to use that as the readout for a weather forecasting station. I decided that I didn’t just want to sandwich the two together (because that would give me quite a tall profile and I wanted something flatter. This meant either a PCB or a piece of stripboard. I will be going for the latter eventually, but first of all I decided to breadboard the two boards (as you can see in the image above). This involved soldering male headers to both boards, which was fairly easy (once I’d got used to my new varifocals!)

After sorting out the circuit, I wrote some code that would allow me to:

  • Select a location to forecast the weather for (because I wanted it to be multi-user, so added in my parents’ home town and the in-laws’ home town). (Button A on the OLED).
  • Retrieve a forecast from the OpenWeatherMap.org API (which I’d previously signed up for, on their Free tier). (Button B).
  • Display the current weather and the next 5 forecast weather readings. (Button C).

All my code is on GitHub if you’d like to take a look. Feel free to re-use and adapt if you’d like to. The API returns JSON, and there’s some conversion functions in there to get the data into a more manageable (smaller) packet. There’s probably a more efficient way to use the displayio library, but I wanted to get the code done in a day. I learned loads about Python, loops especially, doing this!

Here is a video demo of the device as it currently is on the breadboard. As you can imagine, it won’t take much to convert this to a stripboard version! I will then add a 3D printed box to put it in.

Let me know what you think of the project – and if you can think of any additional bells and whistles I can add!

Find the current location of the International Space Station and display it on an e-ink display with a Raspberry Pi

Graeme over at Raspberry Connect has created this nifty little project using a Raspberry Pi Zero W and a small e-ink display from SeeedStudio.

Using an open API, he grabs the position of the ISS and then plots it as a red dot on a world map (with a red trail to show its path). He also works out which geographical location the ISS is currently over and displays that as well, along with how far away that is from his current UK-based location.

It’s a great project, especially for kids learning where places are on the Earth and who have an appreciation of Space-type… things.

Graeme has documented the entire project over on his blog and it is well worth a look.

 

Sending and receiving messages from the grandkids with the Raspberry Pi-powered Yayagram

Spain-based Manu, who you can find on Twitter, needed to help his 96-year old grandmother communicate with her grandchildren. She is hard-of-hearing and not very tech-savvy, so having her use a mobile phone is a bit of a non-starter. To solve the problem, Manu built the Yayagram (Yaya means ‘Granny’ in Castilian) which uses a Raspberry Pi to communicate with the Telegram service.

The contraption is a box (as pictured) which connects Manu’s granny, via a jack cable, to her grandchildren and allows her to send voice messages to them by pressing and holding the red button. His granny, therefore, need only connect the jack cable to the appropriate grandchild’s port (or to the ‘send all’ port), record a message using the inbuilt microphone, release the button and away the message goes.

The grandchildren receive the message and can also send a reply (or an initial message) which gets printed out by the Yayagram using a thermal printer. Inside the box is a Raspberry Pi 4, connected up to all the peripherals and indicator LEDs over USB and GPIO.

Manu has found that the Yayagram has made his grandmother more independent, and, of course, more communicative with her family, especially in the times of COVID-19 restrictions.

You can read slightly more about the project, and see more photos, over on this Twitter thread.

Manu, his grandmother and the Yayagram