There’s A Bug In My Robot

What has six legs, 25 LEDs, a Microchip CPU, can be sewn into clothing, and even plugged into a Raspberry Pi? The answer, it turns out, is the CodeBug–a low cost computer board aimed at the educational market. These board were crowdfunded and are now available for general purchase. [Mike Redrobe] took one of the boards, connected a few servos and used the CodeBug’s Scratch-like language to create a small robot.

You can see the robot in the video below. Programs download via USB (the board looks like a USB drive). You can also send commands over USB to operate in tether mode, or you can directly plug the board into a Raspberry Pi.

Continue reading “There’s A Bug In My Robot”

Hardware Virtualization In Microcontrollers

Look at any sufficiently advanced CNC machine or robot, and you’ll notice something peculiar. On one hand, you have a computer running a true operating system for higher-level processing, be it vision or speech recognition, or just connecting to the Internet. On the other hand, you have another computer responsible only for semi-real-time tasks, like moving motors, servos, and reading sensors and switches. You won’t be doing the heavy-lifting tasks with a microcontroller, and the Raspberry Pi is proof enough that real-time functions aren’t meant for a chip running Linux. There are many builds that would be best served with two processors, but that may be changing soon.

Microchip recently announced an addition to the PIC32 family of microcontrollers that will support hardware virtualization. This addition comes thanks to the MIPS M5150 Warrior-M processor, the first microcontroller to support hardware visualization.

Continue reading “Hardware Virtualization In Microcontrollers”

Simplest Electricity Monitoring Solution Yet

Monitoring your home’s energy use is the best way to get a handle on your utility bills. After all, you can’t manage what you can’t measure! The only problem is that most home energy monitoring systems are cumbersome, complicated, or expensive. At least, until now. [Kevin] has created a new electricity meter based on Particle Photons which should alleviate all of these problems.

The Particle Photon (we get confused on the naming scheme but believe this the new version of what used to be called the Spark Core) is a WiFi-enabled development board. [Kevin] is using two, one to drive the display and one to monitor the electricity usage. This part is simple enough, each watt-hour is accompanied by a pulse of an LED on the meter which is picked up by a TLS257 light-to-voltage sensor. The display is a Nextion TFT HMI (touch screen) which is pretty well suited for this application. The data is corralled by emoncms, part of the OpenEnergyMonitor platform, which ties everything together.

For a project that has been done more than a few times, this one does a great job of keeping the price down while maintaining a great aesthetic. Make sure to check out the video below to see it in action.

Continue reading “Simplest Electricity Monitoring Solution Yet”

ARM Programming On Mars

Before you overreact to the title, keep in mind the latest version of Eclipse is code named “Mars.” It is always a bit of a challenge to set up a generic ARM tool chain. If you don’t mind sticking to one vendor, shelling out a lot of money, or using Web-based tools, then you might not have this problem. But getting all the tools together can be annoying, at best.

[Erich Styger] works with students and knows they often stumble on just this step so he’s provided clear documentation for getting Eclipse, the ARM gcc compiler, and a full set of tools installed. He focuses on Windows and the Kinetis platform, but the steps are virtually the same regardless. Just get the right tools for your operating system and skip the Kinetis-specific parts if you don’t need them.

Continue reading “ARM Programming On Mars”

Pulse Density Modulation

[esot.eric] was trying to drive a motor and naturally thought of using pulse width modulation (PWM) to control the motor speed. However, he found that even with a large capacitor, his underpowered power supply would droop before the PWM cycles were complete. So instead of PWM he decided to experiment with pulse density modulation.

The idea is to use smaller pulses over a longer period of time and make the average power equal to the percentage motor speed desired. With a PWM system, for example, if the time period is T, a 50% PWM drive would have the  drive high for T/2 and low for the other half of the cycle. With pulse density, each pulse might be T/10 (as an example) and then the output would be on for 1/10, off for 1/10, on for 1/10 and so on, until by time T you’d still get to 50%. The advantage is the output capacitor gets a kick more often and has less opportunity to droop.

Continue reading “Pulse Density Modulation”

Embed With Elliot: Practical State Machines

Raindrops on roses, and whiskers on kittens. They’re ok, but state machines are absolutely on our short list of favorite things.

There are probably as many ways to implement a state machine as there are programmers. These range from the terribly complex, one-size-fits-all frameworks down to simply writing a single switch...case block. The frameworks end up being a little bit of a black box, especially if you’re just starting out, while the switch...case versions are very easy to grok, but they don’t really help you write clear, structured code.

In this extra-long edition of Embed with Elliot, we’ll try to bridge the middle ground, demonstrating a couple of state machines with an emphasis on practical coding. We’ll work through a couple of examples of the different ways that they can be implemented in code. Along the way, we’ll Goldilocks solution for a particular application I had, controlling a popcorn popper that had been hacked into a coffee roaster. Hope you enjoy.

Continue reading “Embed With Elliot: Practical State Machines”

Stuffing Everything On A DIP32 Package

Putting an full microcontroller platform in a DIP format is nothing new – the Teensy does it, the Arduino nano does it, and a dozen other boards do it. [Alex] and [Alexey] aren’t content with just a simple microcontroller breakout board so they’re adding a radio, an OLED, an SD card reader, and even more RAM to the basic Arduino platform, all in a small, easy to use package.

The DIPDuino, as [Alex] and [Alexy] are calling it features an ATmega1284 processor. To this, they’re adding a 128×32 pixel OLED, a micro SD slot, and 1Mbit of SRAM. The microcontroller is a variant that includes a 2.4 GHz Zigbee radio that allows for wireless connections to other DIPDuinos.

What are [Alex] and [Alexey] going to do with their cool little board? They’re planning on using the OLED for a watch, improve their software so the firmware can be updated from the SD card, and one of [Alex]’s friends wants to build a RepRap controller with one of these. There’s a lot of potential with this board, and we’re interested in seeing where the guys take the project from here.