Mats's blog

Uploading MRLComm to the Arduino

Mats's picture

A short video showing how to upload MRLComm.ino to the Arduino using the Arduino IDE.

It is also possible to upload it using the WebGui, but I prefer to do it this way, since it's easier to understand what's happening.

A little video that explains about i2c and the different devices that can be used in MRL

Mats's picture

I have been working on adding support for i2c to MyRobotLab during the spring and a bit of the summer.

So what is i2c ?

It's a very simple 2 wire addressable serial protocol. So you can, in theory, connect up to 126 different devices on the same 2 wires. You can find many different devices that use the i2c protocol. For example servodrivers, ad converters, gyro accelerometers, power measuring devices, LCD and OLED screens, temperature measuring devices, real time clocks and so on.

i2c interface and Arduino

Mats's picture


We had a lot of fun yesterday working together on MRLComm and Arduino. Four people ( Grog, kwatters, camality and me ) working on the same sourcecode, discussing different options and ways to make the software better and add some more functionallity.

Sometimes we think in different ways, and sometimes its difficult to explain in a short shoutbox. So creating a post to describe something that is a bit larger is necessary. So thats what I'm doing now to explain the way I think about the i2c interface and the device drivers. Any comments are welcome. 

Software reset in Arduino

Mats's picture


To avoid runaway tasks in MRLComm if MRL is closed, this code could be exected when MRLComm detects that the contact with MRL has been lost.

void(* resetFunc) (void) = 0;  // Define the reset function at address 0

resetFunc();  // Call the reset 
It will then end up in the initial setup() and reinitiate. So all pins will be reste to their initial state and the communicaiton will go into it's initial state.

Installing MyRobotLab on Raspberry Pi

Mats's picture


I have seen in the InMoov forum that a few people are starting to use MyRobotLab in Raspberry PI, so I will share what steps I went thru. I'm not going to rewrite guides that already exists, but I will link to the instructions that I have used.

The first step is to get an operating system installed on the Pi. I installed the latest ( Jessie ) Raspbian using this giude:

Adafruit 16-Channel Servo Driver connected to the Raspberry PI i2c port

Mats's picture

A small video showing the progress with creating a generic i2c interface. Yesterday I created a smalla Java program to test using the i2c interface directly on the Raspbery PI GPOI pins without using the Arduino.

I downloaded latest release of Pi4j and used BlueJ IDE to create the Java test program.

BjueJ has a much smaller footprint than Eclipse or NetBeans and it works well for creating small testprograms and small projects on the PI.

InMoov head chatbot

Mats's picture




MRL chatbot in the robot head using Raspberry PI 2 with WiFi, speaker and Arduino Uno mounted in the head. 

Using Arduino, Servo(s), ProgramAB, AcapelaSpeech, WebGUI, MouthControl, ProgramAB, WebKitSpeechRecognition and HtmlFilter services.