Bringing eLua to the mbed

[Karl] loved his mbed – a tiny little ARM-powered microcontroller platform – but he wanted an interactive programming environment. BASIC just wasn’t cutting it, so he decided to bring eLua to his mbed.

When choosing an interactive development environment for microcontrollers, you generally have two choices: old or huge. Sure, there is a middle ground with Python on an ARM, but why not use something explicitly designed for microcontrollers?

To get eLua running on his mbed, [Karl] downloaded the latest version and plopped it on his mbed. The current version, 0.9, doesn’t have support for an SD card, severely limiting its usefulness. [Karl] got around this by wiring up an SD card to the mbed, giving him gigabytes of space for all his development work.

While the AVRs and PICs of the world are stuck with languages like C or worse, the new ARM boards available are more than capable of running a complete eLua development environment, with everything accessible through a terminal. [Karl] even wrote his own editor for the mbed and he’ll shortly be working on a few dozen embedded projects he has in mind.

Building a blink based input device


Fans of the AMC show Breaking Bad will remember the Original Gangsta [Hector Salamanca]. When first introduced to the story he communicates by ringing a bell. But after being moved to a nursing home he communicates by spelling out messages with the assistance of a nurse who holds up a card with columns and rows of letters. This hack automates that task, trading the human assistant for a blink-based input system.

[Bob Stone] calls the project BlinkTalk. The user wears a Neurosky Mindwave Mobile headset. This measures brainwaves using EEG. He connects the headset to an mBed microcontroller using a BlueSMiRF Bluetooth board. The microcontroller processes the EEG data to establish when the user blinks their eyes.

The LCD screen first scrolls down each row of the displayed letters and numbers. When the appropriate row is highlighted a blink will start scrolling through the columns until a second blink selects the appropriate character. Once the message has been spelled out the “SAY!” menu item causes the Emic2 module to turn the text into speech.

If you think you could build something like this to help the disabled, you should check out where builders are connected with people in need.

Continue reading “Building a blink based input device”

Python frontend is a GUI for different microcontrollers


[Navin] has been hard at work producing a GUI which works with different micocontrollers. The idea is to make it even easier to develop projects by simplifying the feedback and control you can get from the prototyping hardware. The best part about it is that he designed the software to interface with any hardware which can be programmed in C++.

The screenshot above shows the program communicating with an mbed board which has an ARM microcontroller. But the Arduino board (which uses an ATmega chip) is supported as well. Support for additional architectures can be added by writing your own configuration file for the chip. The Python program then asks for the com port it should be using for this session.

The source package, including the code which runs on the microcontrollers, can be found at the project repository. The functions used in the sketches are quite simple and should be a snap to drop into your own code projects.

Vodafone USB 3G modem driver from mbed

Wow, that’s a really simple hardware setup to supply your device with a 3G Internet connection. Better yet, the software side is just as simple thanks to the Vodafone USB Modem library for mbed. It will work for any of the cell data plans offered by Vodafone. The only problem you may have is not living in one of the 30 countries serviced by the telco.

The dongle seen at the right is sold by Vodafone and is meant to be used for Internet data, so you won’t be doing anything that might get your SIM banned. Connecting to the network is a one-liner thanks to the previously mentioned library. From there, gets and posts can be done with your favorite package. The  Hello World example uses HTTPClient. And since the mbed is simply an ARM platform it shouldn’t be hard to use the library with the ARM chip of your choice.

Professional looking dog robot was actually [Martin’s] Master’s Thesis

If you think this thing looks good you should see it move. [Martin Smith] hit a home run on the project, which was his Master’s Thesis. Fifteen servo motors provide a way for the bot to move around. Having been modeled after a small canine the gait is very realistic. The tail is even functional, acting as a counterweight when moving the legs.

The project was meticulously built in a 3D environment before undertaking any physical assembly. The mechanical parts are all either milled from aluminum or 3D printed. Two mBed boards mounted on its back allow it to interact with its environment. One of them handles image processing, the other drives the array of motors. And of course it doesn’t hurt that he built some Larson Scanners in as eyes.

Don’t miss the video after the break which shows off the entire project from planning to demonstration. We can’t help but be reminded of the rat-thing from Snow Crash.

Continue reading “Professional looking dog robot was actually [Martin’s] Master’s Thesis”

mbed and a few resistors runs console, VGA, and PS/2

[Jordan] writes in to show us a project he has been working on called MbedConsole. Living up its name [Jordan] has managed to run a 640×480 VGA output, PS/2 port and console all from the mbed itself. We really mean from an mbed only; no extra hardware is required aside from a few resistors and connectors, a VGA monitor and PS/2 keyboard. The code is open source and links are included in the blog. There are even instructions for including your own graphics.

There are a few things to tackle still, like SD card support. Currently the PS/2 keyboard lights for caps-lock are not functional. [Jordan] would love to know what else we’d see going on something like this, with 400k of flash and 20k RAM left there certainly is a bit of room for some interesting stuff. One of his main goals is to get rid of the C interface and port an interactive shell over that could do something like BASIC or Forth (to give it that retro environment feel). We have seen the mbed in a handful of projects, what do you think?

Automating household devices with Google Calendar

[Shane] is building a new house and wants some, “subtle home automation” as he calls it. His first project is hooking up a small heater to the Internet, and judging from his demo video everything is going swimmingly.

[Shane]’s project is built around an mbed microcontroller that connects to the Internet via an Ethernet connection. The mbed has a temperature controller and a solid state relay to turn the heater on an off; simple enough, but we really like how easily [Shane] connected his project to Google Calendar.

After looking over the Google API, [Shane] was understandably overwhelmed. He figured out that by syncing the mbed’s clock to network time and sending a GET request for one minute in the future, the mbed would always know what was scheduled with a minimal delay.

Now, all [Shane] does to turn on his heater is schedule a time and temperature in Google Calendar. He can do this from across the globe or country and makes for a really slick part of a home automation system.

Continue reading “Automating household devices with Google Calendar”