For his PhD at the University of Michigan, [Adam] designed a Raspberry Pi-based system that controls an HCCI engine, a type of engine which combines the merits of both diesel and gasoline engines. These engines exhibit near-chaotic behavior and are very challenging to model, so he developed a machine learning algorithm on a Raspberry Pi that adaptively learns how to control the engine.
[Adam]’s algorithm needs real-time readings of cylinder pressures and the crankshaft angle to run. To measure this data on a Raspberry Pi, [Adam] designed a daughterboard that takes readings from pressure sensors in each cylinder and measures the crankshaft angle with an encoder. The Pi is also equipped with a CAN transceiver that communicates with a low-level engine control unit.
[Adam]’s algorithm calculates engine control parameters in real-time on the Pi based on the pressure readings and crankshaft position. The control values are sent over CAN to the low-level engine controller. The Pi monitors changes in the engine’s performance with the new values, and makes changes to its control values to optimize the combustion cycle as the engine runs. The Pi also serves up a webpage with graphs of the crankshaft position and cylinder pressure that update in real-time to give some user feedback.
For all the juicy details, take a look at [Adam]’s paper we linked above. For a more visual breakdown, check out the video after the break where [Adam] walks you through his setup and the awesome lab he gets to work in.
[Pariprohus] wanted to make an interesting gift for his girlfriend. Knowing how daunting it can be to make your own tea, he decided to build a little robot to help out. His automated tea maker is quite simple, but effective.
The device runs off of an Arduino Nano. The Nano is hooked up to a servo, a piezo speaker, an LED, and a switch. When the switch is turned to the off position, the servo rotates into the “folded” position. This moves the steeping arm into a position that makes the device easier to store and transport.
When the device is turned on to the “ready” position, the arm will extend outward and stay still. This gives you time to attach the tea bag to the arm and place the mug of hot water underneath. Finally the switch can be placed into “brew” mode. In this mode, the bag is lowered into the hot water and held for approximately five minutes. Each minute the bag is raised and lowered to stir the water around.
Once the cycle completes, the Nano plays a musical tune from the piezo speaker to remind you to drink your freshly made tea. All of the parameters including the music can be modified in the Nano’s source code. All of the components are housed in a small wooden box painted white. Check out the video below to see it in action. Continue reading “Automated Tea Maker”→
Computer vision is a tricky thing to stuff into a small package, but last year’s Hackaday Prize had an especially interesting project make it into the 50 top finalists. The OpenMV is a tiny camera module with a powerful microcontroller that will detect faces, take a time-lapse, record movies, and detect specific markers or colors. Like a lot of the great projects featured in last year’s Hackaday Prize, this one made it to Kickstarter and is, by far, the least expensive computer vision module available today.
[Ibrahim] began this project more than a year ago when he realized simple serial JPEG cameras were ludicrously expensive, and adding even simple machine vision tasks made the price climb even higher. Camera modules that go in low-end cell phones don’t cost that much, and high-power ARM microcontrollers are pretty cheap as well. The OpenMV project started, and now [Ibrahim] has a small board with a camera that runs Python and can be a master or slave to Arduinos or any other microcontroller board.
The design of the OpenMV is extraordinarily clever, able to serve as a simple camera module for a microcontroller project, or something that can do image processing and toggle a few pins according to logic at the same time. If you’ve ever wanted a camera that can track an object and control a pan/tilt servo setup by itself, here you go. It’s a very interesting accessory for robotics platforms, and surely something that could be used in a wide variety of projects.
[Bauwser] had some spare RC Helicopter parts laying around and cobbled together an RC Hovercraft. It worked but not to his liking. That’s okay though, he know it was just a prototype for what was to come; a fully scratch built hovercraft with parts spec’ed out specifically to make it handle the way [Bauwser] wanted.
He started out by sketching out some cool faceted shapes that would both look good and be easy to construct. Sheets of a light but rigid foam were then cut into the appropriate shapes and glued together to create a three-dimensional body. The foam was then covered with a layer of fiberglass and resin to add some strength. A hole was cut in the body to mount a 55mm ducted fan which provides the required air to fill the skirt and lift the vehicle. Another ducted fan is mounted at the back of the craft and points rearward. This ducted fan provides the forward thrust and a servo vectors this fan in order to make turns.
[Bauwser] sewed the skirt himself. It is made out of an old beach tent. The fabric is extremly light and flexible, perfect for a hovercraft. During the test runs, dirt and debris was getting trapped in the skirt tube. A quick trip back to the sewing machine to add some gauze netting fixed that problem and keeps debris collection to a minimum. In the end, [Bauwser] shows what a great DIY RC build can look like with a little planning and experimentation.
An easy way to conceptualize active filters is thinking about audio speakers. A speaker crossover has a low-pass, high-pass and band-pass effect breaking a signal into three components based upon frequency. In the previous part of this series I took that idea and applied it to a Universal Active Filter built with a single chip opamp based chip known as the UAF-42. By the way, it’s pretty much an older expensive chip, just one I picked out for demonstration.
Using a dual-ganged potentiometer, I was able to adjust the point at which frequencies are allowed to pass or be rejected. We could display this behavior by sweeping the circuit with my sweep frequency function generator which rapidly changes the frequency from low to high while we watch what can get through the filter.
In this installment I’ll test the theory that filtering out the harmonics which make up a square wave results in a predictable degradation of the waveform until at last it is a sine wave. This sine wave occurs at the fundamental frequency of the original square wave. Here’s the video but stick with me after the break to walk through each concept covered.
About a dozen old Capcom arcade titles were designed to run on a custom CPU. It was called the Kabuki, and although most of the core was a standard Z80, a significant portion of the die was dedicated to security. The problem back then was arcade board clones, and when the power was removed from a Kabuki CPU, the memory contents of this security setup were lost, the game wouldn’t play, and 20 years later, people writing emulators were tearing their hair out.
Now that these games are decades old, the on-chip security for the Kabuki CPU is a problem for those who have taken up the task of preserving these old games. However, now these CPUs can be decuicided, programming the chip and placing them in an arcade board without losing their memory contents.
Earlier we saw [ArcadeHacker] a.k.a. [Eduardo]’s efforts to resurrect these old CPUs. He was able to run new code on the Kabuki, but to run the original, unmodified ROMs that came in these arcade games required hardware. Now [ArcadeHacker] has it.
The setup consists of a chip clip that clamps over the Kabuki CPU. With a little bit of Arduino code, the security keys for original, unmodified ROMs can be flashed, put into the arcade board (where the contents of the memory are backed up by a battery), and the clip released. [ArcadeHacker] figures this is how each arcade board was programmed in the factory.
Most of us have had a sibling that would sneak into our room to swipe a transistor, play your guitar or just mess with your stuff in general. Now there’s a way to be immediately alerted when said sibling crosses the line, literally. [Ronnie] built a laser trip wire complete with an LCD screen and keypad for arming and disarming the system.
The brains of the project is an Arduino. There’s a keypad for inputting pass codes and an LCD screen for communicating if the entered code is correct or not. [Ronnie] wrote his own program using the keypad.h, liquidcrystal.h and password.h libraries. A small laser pointer is shined at a Light Dependent Resistor which in turn outputs an analog signal to the Arduino. When the laser beam is interrupted, the output voltage drops, the Arduino sees that voltage drop and then turns on the alarm buzzer. The value that triggers the alarm is set mid-way between the values created by normal daylight and when the laser beam is hitting the LDR. [Ronnie] made his code and wiring diagram available for anyone who’s interested in making their own laser trip wire.
Hopefully, [Ronnie’s] pesky little brother didn’t watch his YouTube video (view it after the break) to find out the secret pass code. For a laser trip wire sans keypad, check out this portable one.