Learning mbed

What I have tried so far :

  • Playing with LEDs : OK (24/11/2009)
  • Playing with 16x2 LCD screen : OK
  • Playing with NOKIA 6100 : OK but line 128 and 129 (bottom of the screen) can't be used (yet)
  • Playing with SD card reader : OK, with 1GB Sandisk card
  • Playing with HTTP server : OK
  • Playing with simple RPC over http : OK (thanks to Llya and Rolf Meyer)
  • Playing with 3 x 4 Keypad : OK
  • Playing with 2 Xbees Pro and 2 mbeds: OK (thanks to Vlad and Simon)
  • Playing with RFID : OK
  • Playing with OneWire thermometer : OK (Thanks to Petras) (31/12/2009)
  • Playing with IR sensor using AnalogIn : OK (02/01/2010)
  • Playing with AudioOut : OK (02/01/2010)
  • Playing with SoundREC : OK (02/01/2010)
  • Playing with InterruptIn and Ticker : OK (09/01/2010)
  • Writing class for 4DGL screen : graphics, text and touch managment is done, SD card has to be done (24/01/2010)
  • Playing with Serial LCD 20x4 : OK (30/01/2010)
  • Playing with Accelerometer : OK but get strange result...  needs more work (30/10/2010)
  • Playing with USB serial driver : OK (01/02/2010) Thanks to Chris
  • Test motor controlling : OK (21/11/10)
  • Playing with servos : OK (27/11/10)
  • Playing with EmbeddedArtists LPCXpresso board : on going mostly with th help of other mbeders

What's Next :

  • Test Carbon Monoxyd sensor
  • Test magnetometer
  • Test UltraSonic range finder... Trouble to get correct data information using WR1... no solution yet
  • Test new myrpc from Llya
  • Learn C++..... on going

"Big" demos :

  • Digicode system using Keypad and LCD sceen to simulate door opening. If code is good, lauch webserver : OK (12/12/2009)
  • Reading RFID cards on one mbed and sending ID to a remode mbed using two Xbee modules, display on NokiaLCD : OK (20/12/2009)



Note from Llia :

The "myrpc" example blinks the LED, so yes, it is needed for that function, and no, it is not needed for yours. Since you obviously want to implement another function, my guess is that you don't need a pin for LED, so it can be removed.

From what you posted it appears that you did not declare lcd object, hence all the compile errors. I assume you would want your lcd hooked up to some mbed pins, right? Then you probably want to let your object instantiation know which pin(s) to use, and the class should create the actual object somewhere. But to me it is a more difficult way... Here's why:

I guess that you have lcd class taken from some other example. I suggest it would be easier to start with working lcd example, then incrementally add rpc capability to it. It will be easier because "myrpc" class just demonstrates how to hook up an existing function to RPC. Nothing prevents you from making a good working lcd class RPC-able.

Here's how I recommend attacking the problem of RPC:

First look at the code between #ifdef MBED_RPC and #endif, make sense out of it. (Hint: code between #ifdef MBED_RPC and #endif describes class constructor and functions/arguments that are accessible via RPC, but it uses different syntax which fills in data structures. You will have to map C++ to these descriptions)

Then copy-paste that code into your lcd class .cpp and .h files as a template, then replace "myrpc" with "lcd" everywhere (your class name), remove "blink" function description since you don't need it and insert function(s) that you want, following the syntax of the "blink" example.

06 Dec 2009

I have a page written up on XBee communication if you want to have a look and try it out, works flawlessly, gotta love serial communication.

mBed + xBee

06 Dec 2009

Thanks Vlad, I know your page ;-), that's the reason why I bought Xbees (still waiting for them as I buy in the US and get delivered in France...) so I will definitely bother you if I run into programming trouble ;-)

19 Dec 2009

Thanks Vlad, Xbee demo works like a charm !

02 Mar 2010

"Playing with Serial LCD 20x4 : OK (30/01/2010)"

for my project I would like to use that : http://www.robot-electronics.co.uk/htm/Lcd02tech.htm is it the one you play with ?

did you write a special library or only made some hard coded try ? or do you use the "TextLCD with I2C Interface" with some modification ?

thank you


JF Pion




02 Mar 2010

Bonsoir Jean-François,

Je ne pense pas, il s'agit d'un écran Sparkfun qui utilise un controlleur �HD44780 : http://www.sparkfun.com/commerce/product_info.php?products_id=462

J'ai effectivement commencé à bricoler une bibliothèque mais je n'en suis qu'au début. Ca reste facile car c'est du port série.


10 Nov 2010


J'aurais besoin d'un peu d'explication sur les serveurs web.

Dans un premier temps je voudrais piloter les LED du Mbed par une interface web.

Je sais que je dois implanter un serveur web dans le mbed mais je ne comprend pas trop comment cela marche.



11 Nov 2010


Pour le serveur http, c'est assez facile, il suffit de compiler le programme HTTP Server du cookbook et de brancher le mbed sur un reseau IP avec un serveur DHCP.

Ou bloquez-vous ?

11 Nov 2010

Merci de m'avoir répondu

En fait j'essaie de comprendre comment tout cela fonctionne dans un premier temps.

J'ai vu le code du HTTP server, je n'ai pas encore tout compris.

Comment fait-on si on veut piloter le mbed via une interface web que nous avons nous même créée. Cette interface doit être stockée sur le serveur web et donc sur le mbed non?

Comment faire pour qu'en tapant une adresse internet on puisse piloter le mbed, j'ai du mal à concevoir le lien entre l'interface à créer (en html, php css il faudra que je me penche la dessus aussi) et le serveur web et aussi comment y accéder hors d'un réseau local.

Je sais comment ça marche pour accéder à ma neufbox sur le réseau local: en tapant une adresse ip qui est locale, je pense que c'est aussi simple avec le mbed en local mais je voudrais le faire à distance.

11 Nov 2010 . Edited: 11 Nov 2010

Pour piloter le mbed via http, il faut utiliser la fonction de serveur RPC. Cela permet de passer des instructions au microcontrolleur. Pour allumer une led, il faut passer la fonction RPC write. Voici un exemple de page web permettant de le faire :

var staticCall = function(url){
var myImg = document.createElement("IMG")
myImg.src = url

<p>LED1 <a href="javascript:staticCall('')">ON</a> <a href="javascript:staticCall('')">OFF</a></p>

On triche, quant on clique sur le bouton, on appelle une fonction javascript qui fait l'appel RPC et demande une image. Il n'y pas d'image retournée, mais ce n'est pas grave, c'est une ruse pour faire l'appel RPC.

12 Nov 2010
Ok super merci beaucoup pour ces éclaircissements.
Si j'ai bien comprit: le code en html on le fait avec le bloc note par exemple et dans le compileur mbed on fait Import et on importe ce fichier dans notre projet en cours.
Dans le main avec les fonctions des librairies HTTP on fera appel à cette interface.
Peut-être qu'il faut simplement compiler le programme avec l'appel de l'interface html et mettre ce fichier dans le mbed a coté du .bin comme on le ferait pour travailler avec des fichiers avec les fonctions fopen() etc...
12 Nov 2010

La page HTML, il faut la copier dans le mbed comme le fichier .bin, ce n'est pas lié au compilateur.

24 Nov 2010

Re bonjour

J'ai wrapper un socket RJ45 avec le mbed mais je n'ai aucun résultat, je ne pense pas m'être trompé sur la connection du RJ45.

Est-ce suffisant de connecter le mbed à une neufbox?

25 Nov 2010

MAJ J'ai réussi la connection par ethernet. C'était un probléme avec les connecteur du magjack que j'utilise, je ne savais pas que tout les socket RJ45 n'était pas standardisé.

25 Nov 2010

Always nice to keep it readable for everyone


25 Nov 2010

sur un forum anglophone la courtoisie est de poster en anglais ou de mettre une traduction (et ça augmente la chance d'avoir de l'aide par la même occasion)


in english forum basic courtesy is to post in english or to provide translation (increasing the hope for help by the way)

27 Nov 2010 . Edited: 27 Nov 2010

Good question : as this is my notebook page and not a forum page, do I have to keep it in English ? What the mbed rule for this ? As far as I can read, our Japanese members do not have a problem with this ;-)


Bonne question : comme il s'agit d'une page de mon notebook et pas du forum, suis-je obligé de l'écrire en anglais ? Quel est le point de vue de la mbed team ? En tous cas les japonais du site ne se posent pas la question (et ça ne me dérange pas)

1 comment on Learning mbed:

27 Nov 2010


To answer your question - at the moment there's no rule or guidance about language, as far as I know!

As mbed becomes more and more popular around the world, it's inevitable that people will want to have discussions in the language they feel most comfortable with.

The challenge with dealing with that is getting the balance right. On the one hand mbed is now international, on the other, we want to keep everything here accessible to as many people as possible.

So it's a developing situation right now, I think as is normal in technical things, English is the default here, but other languages are not banned :)

We have discussed some technical 'solutions' to the languages issue, including something like automatic integrated google translate into your own language. Would be interested in any ideas you guys might have about it.

Please log in to post comments.