Go to any control systems class, and you’ll see a final project that demonstrates loops, integration, and everything else that can be learned in a semester or two of control theory. This project is not from one of those classes. It is, however, very cool: it balances a 40mm steel ball on the rim of a lasercut wood wheel using nothing more than a solar cell as a sensor.
[Manuel] was inspired to build this ball-balancing device after seeing a similar project at CCC about six years ago. He doesn’t remember who made it, and eschewed the PC/Matlab architecture of the original, but this build retains one interesting feature of its muse. The input to the control system is just a high intensity light bulb and a solar cell. The 40mm steel ball blocks the light reaching the solar cell most of the time. Slight variations in voltage go through the control system to keep this ball balanced on top of the wheel.
The only hardware for this build is a motor, a motor driver, and an ATMega644P. The first revision of the hardware was just a few breakout boards stuffed into a rat’s nest of wiring in the base of the build, but this has been fixed in version two with a new PCB. Video below.
Continue reading “Balancing A Ball With A Solar Cell”
Linux is generally considered the go-to OS for under powered computers. Wanting to challenge the preconceived notion that Linux requires ‘a computer made in the last 20 years,’ [Dmitry] built the worst Linux PC ever around a simple 8-bit microcontroller.
The ATMega1284p [Dmitry] used doesn’t have a lot to offer as far as RAM and storage goes; just 16 kilobytes of SRAM and a paltry 128 kilobytes of Flash storage. While this may be voluminous in the embedded world, it’s peanuts compared to the gigabytes of RAM and hard drive space on even a low-end netbook. To solve this problem, [Dmitry] threw an antique 30-pin RAM SIMM at the problem. It’s wired up directly to the microcontroller, as is the 1 Gigabyte SD card that serves as the PC’s hard drive.
Linux requires a 32-bit CPU and a memory management unit, something the puny microcontroller doesn’t have. For [Dmitry], the best course of action was emulating an ARM processor on an AVR. We’re not sure if we’re dealing with genius or madness here, but it did prove to be a valuable learning exercise in writing a modular ARM emulator.
How fast is it? [Dmitry] tells us it takes two hours to boot up to a bash prompt, and four more to load up Ubuntu and login. If you want a Megahertz rating, good luck; the effective clock speed is about 6.5 kilohertz. While the worst Linux PC ever won’t win any races, its simple construction puts it within the reach of even the klutziest of hardware builders; the entire device is just a microcontroller, RAM, SD card, a few resistors, and some wire.
If you’d like to build your own worst Linux PC, [Dmitry] has the firmware and disk image available to download. If you want to watch the
time-lapse of this thing booting, check out the video after the break.
Continue reading “Building the worst Linux PC ever”
When the RepRap team found themselves pushing the limits of the Arduino, they started looking for alternatives. They found it in the ATMega644P. It has four times the memory and four times the RAM compared to the ATMega168 used in the standard Arduino. It also has 32 I/O pins. They ported the Arduino software to the microcontroller and started producing Sanguino boards. Now that the base design is nailed down, they’ve begun expanding it to their specific purpose. Pictured above is a prototype RepRap motherboard. While the Sanguino is barebones, this board has onboard connectors for all of the RepRap’s motors, so you can just plug it in. It is also designed to support the future Generation 3 electronics. Probably the most interesting feature is the SD card slot. The goal is to eventually have a board that can run the RepRap without a host computer if necessary; it will manufacture designs directly from the flash card.
The RepRap project, which is a printer that can make components using rapid prototyping technology, and it is designed so that it can eventually self replicate. Has released a new breakout board for the Sanguino that provides access to all the pins as screw terminals. The Sanguino is an Arduino compatible board based on the ATmega644P chip. You can populate the full board with all the components and have a fully functional single board. You could populate only the screw terminals and plug your Sanguino, and use it as a breakout board as well. The board design is released on Google Code.