I'm planning to use a Rpi to control a simple robot. I'll write the robots logic in python, and my goal is create a way for a person at another computer to control this robot interactively. In addition to simple text/integers I would also like the UI to display frequently updated image stored using Pillow on the Pi.

I have come up with the following ideas for making work:

  1. Write a tkinter UI on the Pi, then use ssh X-forwarding to get it to the other computer. However all processing will be done on the pi and this may be slow.

  2. Set up a web server on the Pi running a nice interactive page which the other computer can connect to using a browser. However I have no idea how to do this, as I have only very basic html knowledge. I looked at the documentation for python frameworks such as Flask or Tornado, but none of it popped out as being able to solve my problem.

  3. Write a tkinter UI for the other computer, and communicate with the pi using something like 0MQ. However I have no experience with such stuff, and it might be less portable between different machines.

What is recommended in this situation? Are any of those methods terribly bad, and should be avoided at all costs? ? Is there a good solution I'm overlooking? Honestly I like number 2 the most, and a tkinter type library for interactive web pages would be brilliant.

I'd post more links the the different libraries I mentioned but apparently I'm not cool enough for that :(

1 Answer 1


You can use WebIoPi for interactive GPIO library for Raspberry Pi.

The development versions are detailed in https://code.google.com/p/webiopi/

  • I'll try it out as soon as I get the chance. The library solves the problem of sending commands to the pi, but non of the examples demonstrate how to send images to the browser.
    – Michal
    May 12, 2014 at 11:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.