AVR Atmega Based PID Magnetic Levitator

[Davide] saw our recent post on magnetic levitation and quickly sent in his own project, which has a great explanation of how it works — he’s also included the code to try yourself!

His setup uses an Atmega8 micro-controller which controls a small 12V 50N coil using pulse-width-modulation (PWM). A hall effect sensor (Allegro A1302) mounted inside the coil detects the distance to the magnet and that data is used by a PID controller to automatically adjust the PWM of the coil to keep the magnet in place. The Atmega8 runs at 8Mhz and the hall effect sensor is polled every 1ms to provide an updated value for the PWM. He’s also thrown in an RGB LED that lights up when an object is being levitated!

So why is there a kid with a floating balloon? [Davide] actually built the setup for his friend [Paolo] to display at an art fair called InverART 2013!

After the break check out the circuit diagram and a short demonstration video of the device in action!

Oh yeah, those of you not impressed by magnetic levitation will probably appreciate acoustic levitation.

Continue reading “AVR Atmega Based PID Magnetic Levitator”

A Shell For The Stellaris & Tiva

cli

When [antoker] is working on a microcontroller project, he often has to write short bits of test code to make sure everything in his circuit is working properly. This is a time-consuming task, and a while back he started on a small side project. It’s a command line interface for a microcontroller that allows him to send short commands to the uC over a serial connection to play around with the ADC, UART, and GPIO pins.

[antoker]’s tiny Unix-like environment is based on modules  that can keep track of the time, print the current commands and stack to a terminal, and query things like the current speed of the uC and the available Flash and RAM.

This tiny shell also has scripting capabilities and a jump function, making this a true programming language, however minimal it is. Right now [antoker]’s work is available for the TI Stellaris and Tiva series microcontrollers, and a video of a scripted Larson scanner is available below.

Continue reading “A Shell For The Stellaris & Tiva”

8-Bit Video Game Is Best Of Retro Gaming On A Shoestring Budget

[Petri] wrote in to show off the 8-bit gaming system and original platformer which he and [Antti] developed. Don’t get us wrong now, it’s impressive that the duo were able to put together what looks like a very interesting game. But we’ve seen many industry-leading video games developed with just one or two people (we’re thinking all the way back to the days of Atari). Nope, what’s most interesting to us is that the console is also their creation. We should note that the title screen was the work of their friend [Juho].

Take this with a grain of salt, as the bottom right image in the vignette obviously includes an Arduino. But isn’t it a testament to the state of open hardware and the sharing of knowledge through the Internet that this is even possible on the hobby level? And just because we call it “hobby” doesn’t mean you have to lower your expectations. This thing is full featured. Watch the clip after the break to see the ATmega328 driving a 104×80 resolution screen with a 256 color palette, while using four audio channels for the chiptunes. The thing even utilizes an original NES controller port for user input.

And for those of you who are thinking we’ve seen the same thing before, we never get tired of seeing projects where a lot of hard work has obviously paid off!

Continue reading “8-Bit Video Game Is Best Of Retro Gaming On A Shoestring Budget”

An ARM Powered Business Card, Part Two

Card

While most microcontroller powered business cards opt for something small and cheap, [Brian] is going in an entirely different direction. His business card features an ARM processor, some Flash storage, a USB connection, and enough peripherals to do some really cool stuff.

This is the second iteration of [Brian]’s business card. We saw the first version, but this new version makes up for a few mistakes in the previous version. The biggest improvement is the replacement of the Molex USB plug with bare traces on the board. [Brian] couldn’t find a board house that could fab a board with the proper thickness for a USB plug, but a few strips of masking tape did enough to beef up the thickness and make his plug nice and snug. Also, the earlier version had a few pins sticking out of the board for programming purposes. This wasn’t an idea solution for a business card where it would be carried around in a pocket, so these pins were replaced with a connectorless programming adapter. Just a few exposed pads gives [Brian] all the programming abilities of the last version, without all those prickly pins to catch on clothing.

With his new business card, [Brian] has an excellent display of his engineering prowess and a very cool toy; he has a project that will turn this card into a keyboard emulator, randomly activating the Caps Lock button for a few seconds every few minutes. A great prank, and a great board to give to future employers.

Using DMA To Drive WS2812 LED Pixels

It’s pretty well known by now that the LED pixel hardware which is starting to be commonplace, both WS2811 and WS2812, needs pretty strict timing in order to address them. There are libraries out there which mean almost no work on your part, but that’s no fun. [Elia] started looking into what it takes to drive the hardware, trying out a few 8-bit micros before moving to 32-bit with the help of an STM32VL Discovery Board. The move to a beefier processor brings a lot of speed, but why bit bang everything? He came up with a way to use the PWM and DMA features of the chip to drive the LEDs.

DMA is the Direct Memory Access unit that allows you to change the values being sent to the pixel without interrupting the processor. This is done by pre-loading the data at a memory location. This buffer is automatically read by the DMA unit — its values are used to set the PWM timer compare trigger in order to send out logic values show in the diagram above.

If you do want to delve further into this topic here’s a collection of techniques for driving the WS2811.

Continue reading “Using DMA To Drive WS2812 LED Pixels”

Arduino-Based Power Failure Alert System

arduinoPowerFailBox

When the power went out at his parents’ shop and ruined the contents of their fridge, [Lauters Mehdi] got to work building a custom power failure alert system to prevent future disasters. Although some commercial products address this problem, [Lauters] decided that he could build his own for the same cost while integrating a specific alert feature: one that fires off an SMS to predefined contacts upon mains power failure.

The first step was to enable communication between an Arduino Micro and a Nokia cell phone. His Nokia 3310 uses FBus protocol, but [Lauters] couldn’t find an Arduino library to make the job easier. Instead, he prototyped basic communication by running an Arduino Uno as a simple serial repeater to issue commands from the computer directly to the phone, and eventually worked out how to send an SMS from the ‘duino. [Lauters] then took the phone apart and tapped into the power button to control on/off states. He also disconnected the phone’s battery and plugged it into an attached PCB. The system operates off mains power but swaps to a 1000mAH 9V backup battery during a power outage, logging the time and sending out the SMS alerts. A second message informs the contacts when power has been restored.

Head over to [Lauters’s] project blog for schematics and photos, then see his GitHub for the source code. If you want to see other SMS hacking projects, check out the similar build that keeps a remote-location cabin warm, or the portable power strip activated by SMS.

Battery Backup For RasPi Keeps Your Data Safe

We’ve all raised a clench fist in anger over lost data, and it’s usually the result of unjustified optimism and lack of planning. [George] shared his solution that prepares for the worst: a circuit that provides backup power to a RasPi and its hard drives. [George’s] Pi setup runs as both an Apple Time Machine server and a website backup server, and a power outage could corrupt the data stored on the Pi’s attached hard drives.

Rather than turn to commercial solutions, however, [George] wanted to take advantage of the Pi’s low power consumption and create an inexpensive custom circuit that would safely and automatically power down the devices upon loss of power. To detect a power failure, the build connects one of the Pi’s GPIOs to an opto-isolator, which—through a zener diode—connects to the 12V wall adapter: though [George] welcomes suggestions for alternative methods of safely identifying a mains power loss. The rest of the circuit serves as a trickle charger for the two attached 9V batteries and as a regulator to supply the correct voltage to the RasPi. Power MOSFETs connected to a GPIO handle the delayed power off.

You can view (and edit!) the circuit online here and find the relevant source code on [George’s] website. If you want to build your own RasPi file server, try cramming all the parts into an old optical drive enclosure.