Self-Learning Helicopter Uses Neural Network

model helicopter attached to boom

Though this project uses an RC helicopter, it’s merely a vessel to demonstrate a fascinating machine learning algorithm developed by two Cornell students – [Akshay] and [Sergio]. The learning environment is set up with the helicopter at its center, attached to a boom. The boom restricts the helicopter’s movement down to one degree of motion, so that it can only move up from the ground (not side to side or front to back).

The goal is for the helicopter to teach itself how to get to a specific height in the quickest amount of time. A handful of IR sensors are used to tell the Atmega644 how high the helicopter is. The genius of this though, is in the firmware. [Akshay] and [Sergio] are using an evolutionary algorithm adopted from Floreano et al, a noted author on biological inspired artificial intelligences. The idea is for the helicopter to create random “runs” and then check the data. The runs that are closer to the goal get refined while the others are eliminated, thus mimicking evolutions’ natural selection.

We’ve seen neural networks before, but nothing like this. Stay with us after the break, as we take this awesome project and narrow it down so that you too can implement this type of algorithm in your next project.

 

[Read more...]

The Nickelphone

nickelphone

[Tyler Bletsch] sent us a tip about his new build: a keyboard that redefines “coin-operated.” The Nickelphone can emit square wave tones via a piezo buzzer, but [Tyler] made this 25-key piano as a MIDI keyboard capable of driving a full synthesizer.

He chose an ATMega644 as the brain because it’s Arduino-friendly but has more data pins—32—than the usual ATMega328 chip, which allows him to provide each key with its own pin. Each coin was soldered to its own wire and connects up to a 1MΩ resistor array. Coin-presses are recognized by the simple capacitive sensing technique outlined here, but [Tyler] needed to take advantage of a workaround to accurately detect multiple presses.

Check out [Tyler's] detailed project guide for more information as well as the source code. Check out the video of the Nickelphone after the break, then browse through some other capacitive touch hacks, like the Capacitive Touch Business Card or the Capacitive Touch Game Controller.

[Read more...]

Building the backend of Internet controlled devices

[Adam] and [Jeremy] took on the challenge of designing a system that would make it easy to control appliances from the Internet. We’ve seen the concept many times before; it involves some method of switching mains power and connecting that mechanism to the Internet. This design is both well planned and nicely executed.

We’re always very interested in the power switching for a project like this. It’s good that an approved electrical box houses all of the high-voltage parts in the project. Here a GA8-2B02 solid state relay switches power between the incoming cord and the two outlets. We didn’t get a look in the box, but hopefully there’s a partition between those wires and the low-voltage control wiring which uses a standard 3.5 mm audio jack as an interconnect.

An ATmega644 drives the control signal for the relay. It’s connected via Ethernet cable to the Internet through the use of an ENC28J60 chip which takes care of LAN communications. This is essentially a light-weight web server that will be easy to adapt to receive commands from just about any web-connected sender.

[Thanks Bruce]

Two saxophone synthesizer builds for the price of one

[Bruce Land] has been sending in student projects from the electronic design course he taught at Cornell last semester. By a curious coincidence, two groups build saxophone synthesizers with the same key arrangement as a real sax.

First up is [Brian Wang]‘s digital sax. There’s a small microphone in the mouthpiece and a series of buttons down the body of the sax telling the ATMega664 what note to play. The data for the saxophone synthesis was created by looking at a frequency plot of a sax, bassoon, harp, and pipe organ. [Brian] has the synthesis part down pat; there’s definitely a baritone sax in that little microcontroller.

Next up is [Suryansh] and [Chris]‘s PVC pipe saxophone. It’s the same general principle as [Brian]‘s project – the musician blows into the sax (we really like the kazoo mouthpiece) and a small mic picks up the sound of the wind. If the microphone output is above a certain threshold, the buttons are read and a note come out of the sax. We’re picking up a whiff of alto sax here; shame there wasn’t a duet with the two teams.

After the break you can see both saxophone projects in all their glory.

[Read more...]

Playing Pong with your mind

It seems [Charles Moyes] and [Mengxiang Jiang] won’t suffer from the sore wrists and thumbs from an Atari controller any longer. They built a version of Pong played by concentrating and relaxing while wearing an EEG headset.

Right now, there’s only enough hardware for one player; when the player operating the red paddle concentrates the paddle moves up – relax, it goes down.

The hardware portion of the build is fairly tricky business. [Chuck] and [Mengxiang] built a circuit to amplify the tiny voltages between their ears into something a microcontroller can read. The circuit is loosely based on this Arduino EEG build, but highly refined as the elegance of an ATMega644 requires.

The EEG amplifier has a cutoff of under 50 Hz, perfect for reading the Alpha waves correlated with concentration. The oscillations from the skull-cap are sent through the ATMega to MATLAB where after a pass through an FFT the brain waves are converted to mouse scroll wheel output.

There’s a demo video available where you can see spectators screaming at the poor test subject telling him to relax and concentrate on command. You can check that out after the break.

[Read more...]

3D whiteboard without the whiteboard

This one is so simple, and works so well, we’d call it a hoax if April 1st hadn’t already passed us by. But we’re confident that what [William Myers] and [Guo Jie Chin] came up with exists, and we want one of our own. The project is a method of drawing in 3 dimensions using ultrasonic sensors.

They call it 3D Paint, and that’s fitting since the software interface is much like the original MS Paint. It can show you the movements of the stylus in three axes, but it can also assemble an anaglyph — the kind of 3D that uses those red and blue filter glasses — so that the artists can see the 3D rendering as it is being drawn.

The hardware depends on a trio of sensors and a stylus that are all controlled by an ATmega644. That’s it for hardware (to be fair, there are a few trivial amplifier circuits too), making this an incredibly affordable setup. The real work, and the reason the input is so smooth and accurate, comes in the MATLAB code which does the trilateration. If you like to get elbow deep in the math the article linked above has plenty to interest you. If you’re more of a visual learner just skip down after the break for the demo video.

[Read more...]

DIY Segway: fast, silent, and open

This is a picture of the guts of a diy Segway project (translated). Everything fits into a tiny space under the platform upon which the rider stands. It’s tight, but makes for a sleek look when the diamond plate is covering up all of the internals.

An ATmega644 controls the vehicle. It does so by using a PID control scheme to monitor a gyroscope, driving the wheels to maintain the center of balance. Electronically, the most complicated part of the build is the motor controller. It seems to be an original design, using an ATmega48 and several other integrated circuits. It was hard for us to figure out how this was implemented, but with some intensive study of the three schematics that go into the module we’d bet you can get to the bottom of things. We certainly like the outcome, as this personal transport is whisper quiet. Take a look at the clip after the break to hear for yourself.

Note: Be careful if you’re reusing the code from the translated link at the top. Google translator also translates the variable names in the code and might break how it works due to inconsistencies in the translation.

[Read more...]

Follow

Get every new post delivered to your Inbox.

Join 93,825 other followers