The Internet Of Linux Things

The Linux Foundation is a non-profit organization that sponsors the work of Linus Torvalds. Supporting companies include HP, IBM, Intel, and a host of other large corporations. The foundation hosts several Linux-related projects. This month they announced Zephyr, an RTOS aimed at the Internet of Things.

The project stresses modularity, security, and the smallest possible footprint. Initial support includes:

  • Arduino 101
  • Arduino Due
  • Intel Galileo Gen 2
  • NXP FRDM-K64F Freedom

The project (hosted on its own Website) has downloads for the kernel and documentation. Unlike a “normal” Linux kernel, Zephyr builds the kernel with your code to create a monolithic image that runs in a single shared address space. The build system allows you to select what features you want and exclude those you don’t. You can also customize resource utilization of what you do include, and you define resources at compile time.

By default, there is minimal run-time error checking to keep the executable lean. However, there is an optional error-checking infrastructure you can include for debugging.

The API contains the things you expect from an RTOS like fibers (lightweight non-preemptive threads), tasks (preemptively scheduled), semaphores, mutexes, and plenty of messaging primitives. Also, there are common I/O calls for PWM, UARTs, general I/O, and more. The API is consistent across all platforms.

You can find out more about Zephyr in the video below. We’ve seen RTOS systems before, of course. There’s even some for robots. However, having a Linux-heritage RTOS that can target small boards like an Arduino Due and a Freedom board could be a real game changer for sophisticated projects that need an RTOS.

Continue reading “The Internet Of Linux Things”

A Slew Of Open-Source Synthesizers

Hackaday reader [Jan Ostman] has been making microcontroller-based DIY synthesizers for quite a while now. Recently, he’s opened up the source for a lot of them so that you can play along at home. All of these virtual-analog synths and soundmakers can be realized on an Arduino or AVR ATmega328 if you happen to have one lying around.

Extra parts like a keyboard, some pushbuttons, or some potentiometer knobs to twiddle won’t hurt if you’d like to make something more permanent or more obviously playable, like [Jan] does. On the other hand, if you’d just like to get your feet wet, I’ve tweaked his code to be more immediately plug-and-play. The code is straightforward enough that it’s a good learning platform. So let’s take a quick tour through three drum machines and a string synth, each of which you can build on a breadboard in just a few minutes.

To install on an Arduino UNO, fetch the zip file from this GitHub repository, and move each subfolder to your Arduino sketch directory. You’re ready to play along.

Continue reading “A Slew Of Open-Source Synthesizers”

Ski Buddy Jacket Uses Arduino To Teach Youngsters To Ski

Snow skiing looks easy, right? You just stay standing, and gravity does the work. The reality is that skiing is difficult for beginners to learn. [19mkarpawich] loves to ski, but he was frustrated seeing crying kids on skis along with screaming parents trying to coach them. Inspired by wearable electronics, he took an Arduino, an old jacket, some LEDs, and created Ski Buddy.

Continue reading “Ski Buddy Jacket Uses Arduino To Teach Youngsters To Ski”

Home-Made Solenoid Motor

Want to really understand how something works? Make one yourself. That’s the approach that Reddit user [Oskarbjo] took with this neat electric motor build. He made the whole thing from scratch, using an Arduino, 3D printing, and ample quantities of wire to create a solenoid motor. This transforms the linear force of a solenoid, where a magnet is moved by a magnetic field, into rotary force. It’s rather like an internal combustion engine, but driven by electricity instead of explosions. Hopefully.

[Oskarbjo]’s engine seems to work, including a rather neat mechanism to detect the rotation of the shaft and relay that back to the controller. He hasn’t posted much detail in the build process, unfortunately, but did say that “If you’d want to build something similar I can probably help you out a bit, but half the fun is coming up with your own solutions.” Amen to that. We’ve seen a few neat solenoid motor builds, but this one wins points for starting from scratch. There is an Instagram video of the motor running after the break.

Continue reading “Home-Made Solenoid Motor”

Nerf Turret Controlled By Slack

What happens when you give a former Navy weapons engineer some development boards and ask him to build “something cool”? What happens when you give a kid finger paints? [Seb] obviously built an IoT Nerf Turret Gun controlled via a team communication app.

The weapon was a Nerf Stampede which was hacked so it could be fired electronically. The safety switch was bypassed and a relay provided the firing signal. The electronics stack consists of an Intel Galileo, a motor shield and a relay shield. The turret assembly was built using off the shelf structural parts from Actobotics. Stepper motors provide motion to the turret. The fun begins with how the software is implemented. An iBeacon network detects where people sit at in the office. So when you type in the name of your target in a messaging app, it knows where they’re sitting, aims at them, and pops a nerf dart at them.

The lessons learned are what makes such projects worth their while. For example, USB is a standard. And the standard says that USB cables be not more than 1.8 m long. [Seb] was reminded of this when his electronics worked on his workbench, but refused to work when placed in-situ and connected via a 3m long cable – the serial link just wouldn’t work.

Mounting the gun such that it was nicely balanced was another challenge. Eventually, he had to use a couple of AA cells taped to the front of the gun to get it right. This could be useful though, since he plans to replace the dead weights with a sighting camera. One last hack was to zip tie heat sinks to the motor drivers, and he had a good reason to do that. Read more about it in his blog. And check out the video as someone takes aim and shoots a target via SLACK, the team messaging application.

Continue reading “Nerf Turret Controlled By Slack”

Ridiculously Automated Dorm Room

Take three NRF24L0+ radios, two Arduino Nanos, and a Raspberry Pi. Add a bored student and a dorm room at Rice University. What you get is the RRAD: Rice Ridiculously Automated Dorm. [Jordan Poles] built a modular system inspired by BRAD (the Berkeley Ridiculously Automated Dorm).

RRAD has three types of nodes:

  • Actuation nodes – Allows external actuators like relays or solenoids
  • Sensory nodes – Reports data from sensors (light, temperature, motion)
  • Hub nodes – Hosts control panel, records data, provides external data interfaces

Continue reading “Ridiculously Automated Dorm Room”

Embed With Elliot: Audio Playback With Direct Digital Synthesis

Direct-digital synthesis (DDS) is a sample-playback technique that is useful for adding a little bit of audio to your projects without additional hardware. Want your robot to say ouch when it bumps into a wall? Or to play a flute solo? Of course, you could just buy a cheap WAV playback shield or module and write all of the samples to an SD card. Then you wouldn’t have to know anything about how microcontrollers can produce pitched audio, and could just skip the rest of this column and get on with your life.

Harmonic distortion down ~45db on an Arduino
~45db signal to noise ratio from an Arduino

But that’s not the way we roll. We’re going to embed the audio data in the code, and play it back with absolutely minimal additional hardware. And we’ll also gain control of the process. If you want to play your samples faster or slower, or add a tremolo effect, you’re going to want to take things into your own hands. We’re going to show you how to take a single sample of data and play it back at any pitch you’d like. DDS, oversimplified, is a way to make these modifications in pitch possible even though you’re using a fixed-frequency clock.

The same techniques used here can turn your microcontroller into a cheap and cheerful function generator that’s good for under a hundred kilohertz using PWM, and much faster with a better analog output. Hackaday’s own [Bil Herd] has a nice video post about the hardware side of digital signal generation that makes a great companion to this one if you’d like to go that route. But we’ll be focusing here on audio, because it’s easier, hands-on, and fun.

Continue reading “Embed With Elliot: Audio Playback With Direct Digital Synthesis”