All of this movement is controlled by a custom RIC (Robot Interface Controller) based upon an ESP32 microcontroller. It has built-in Bluetooth, wireless LAN, an accelerometer, and a speaker. It’s powered by a rechargeable battery with a built-in USB-C charger.
With his big blue head and various accessories, Marty is a good-looking piece of kit, the sort of personable toy that children can make friends with. However, there’s a lot to unpack here, surprisingly so for a device that looks very much at home on the shelf of a local toy store. There is a scalable level of complex interaction that can move right from key stage 2 (7-year-old and upwards) to the university level.
Right at the entry level, you don’t need any computer at all. With an optional IR colour sensor (£19), Marty is controlled by placing coloured cards on the floor: green to move forward, purple to slide right, and so on.
The next stage of interaction is via an Android or iPhone app. This connects to Marty via Bluetooth and provides button controls (walk, rotate, and so forth). The app also has a built-in version of Scratch 3 that is packed with blocks to control Marty. So children can use Scratch to create programs for Marty and learn the basics of programming with a physical device (much more interactive than watching a sprite shuffle around the screen). To this end, there are a range of teacher guides and lesson plans available.
Raspberry Pi connection
The app is also used to connect Marty to a local wireless LAN, which is where Raspberry Pi can step in. Once on your network, you can move from Scratch to Python and connect to Marty using the MartyPy library. For example, here was our program to make Marty dance:
from martypy import Marty my_marty = Marty("wifi","192.168.0.45") my_marty.dance()
There’s a comprehensive Knowledge Base portal on Robotical’s website with example code, tutorials, and a Python function reference guide.
Marty does not - by default - contain a Raspberry Pi computer. Instead, you connect to the built-in RIC (Robot Interface Controller). However, you can install a Raspberry Pi inside the head unit and connect it to the RIC using the supplied cable.
Putting a Raspberry Pi inside Marty gives it independence from the network and other computers or the app. There’s also a decrease in latency time, so response time is faster. There’s the tantalising possibility to expand Marty’s abilities with voice interaction and image processing to make the robot more like a walking smart assistant.
Even if students never make it that far, learning code by moving a physical device around, rather than shuffling sprites around on the screen, is a powerful concept. And we found Marty personable, fun to play with, and packed with features – some of which scale surprisingly high up. The detailed documentation helps get you started and gives you direction.
A great little robot that brings Scratch and Python code to life. Don’t be fooled by the cute exterior: there’s a lot of potential inside this robot.