Raspberry Pi Learns how to Control a Combustion Engine

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.

RasPi HCCI Engine Control[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.

Continue reading “Raspberry Pi Learns how to Control a Combustion Engine”

Tracking Power Usage With A Raspi

With tiny, Internet-connected computers everywhere these days, home automation is finally hitting it big. [Jelora] was looking for a few more home automation projects and realized his electric meter had a pair of ‘digital information outputs’. With a Raspberry Pi and a few bits of wire, he figured out how to read this digital output and put a log of his electricity consumption up on the web.

The digital output on [Jelora]’s meter is a bit odd; it’s 1200 bps, 7 bits per character, parity, with one stop bit. It’s also a 50 kHz AC signal for a binary ‘0’ and nothing for a binary ‘1’. To read this signal, [Jelora] is using a diode to throw out half the signal, a 6N138 optoisolator so the Pi isn’t connected directly to the meter, and a small cap to smooth out the signal. Simple, and it works.

This cleaned up signal is then connected to serial to USB chip and a PHP script scrapes the data every minute. The data received from the meter is stored in a data base along with a few other bits of information: if the meter is being charged peak or off-peak rates, and the price per kWh. All this is saved on an IDE hard drive (more reliable than the SD card, surprisingly), and a ‘electricity cost per day’ is plotted on a nifty graph and served up by the Raspberry Pi.

Dedicated Automobile Traffic Monitor with Raspberry Pi

[j3tstream] wanted an easier way to monitor traffic on the roads in his area. Specifically, he wanted to monitor the roads from his car while driving. That meant it needed to be easy to use, and not too distracting.

[j3tstream] figured he could use a Raspberry Pi to run the system. This would make things easy since he’d have a full Linux system at his disposal. The Pi is relatively low power, so it’s run from a car cigarette lighter adapter. [j3tstream] did have to add a custom power button to the Pi. This allows the system to boot up and shut down gracefully, preventing system files from being corrupted.

After searching eBay, [j3tstream] found an inexpensive 3.2″ TFT LCD touchscreen display that would work nicely for displaying the traffic data. The display was easy to get working with the Pi. [j3tstream] used the Raspbian linux distribution. His project page includes a link to download a Raspbian image that already includes the necessary modules to work with the LCD screen. Once the image is loaded, all that needs to be done is to calibrate the screen using built-in operating system functions.

The system still needed a data connection. To make things simple and inexpensive, [j3tstream] used a USB WiFi dongle. The Pi then connects to a WiFi hot spot built into his 4G mobile phone. To view the traffic map, [j3tstream] just connects to a website that displays traffic for his area.

The last steps were to automate as much as possible. After all, you don’t want to be fumbling with a little touch screen while driving. [j3tstream] made some edits to the LXDE autostart file. These changes automatically load a browser in full screen mode to the traffic website. Now when [j3tstream] boots up his Pi, it automatically connects to his WiFi hotspot and loads up local traffic maps.

The Smallest Portable Pi

What do you get when you take an extremely small Raspberry Pi clone and stuff it inside a Game Boy Advance SP? We don’t know what to call it, but it’s probably one of the best portable gaming machines ever made, able to run emulators ranging from the Apple II to playing Quake III natively on a tiny flip-top display.

This isn’t the first time we’ve seen [frostedfires]’ work on a tiny system stuffed into a Game Boy. The initial post on this build over on the bacman forums just covered the basics – getting an Odroid W up and running, and putting Quake III on the tiny display. Now that the build is complete, we can get a look at what it takes to turn a Raspberry Pi clone into one of the smallest portable projects we’ve ever seen.

Using a Raspi clone as the only component in a tiny portable emulation station isn’t possible, so [frostefires] added a few other bits of electronics to make everything work. There’s a joystick from a PSP in there to work as the mouse, a few extra buttons in addition to the stock Game Boy ones, A USB hub, WiFi adapter, speaker and amplifier, a battery and the related charging electronics, and a Teensy 3.1 to handle all the input.

It’s a very impressive build that can run emulators ranging from the Apple II to later generation Nintendo consoles and handhelds (including the Game Boy Advance), but since the HDMI connector is availble on the outside of the case, [frostedfires] can also use this as a tiny, portable media center. Check out the video below to see this Game Boy in action, playing Mario Kart and 1080p video.

Continue reading “The Smallest Portable Pi”

Multiplexing Pi Cameras

The Raspberry Pi and its cool camera add-on is a great way to send images and video up to the Intertubes, but what if you want to monitor more than one scene? The IVPort can multiplex up to sixteen of these Raspi camera modules, giving the Pi sixteen different views on the world and a ridiculously high stack of boards connected to the GPIO header.

The Raspberry Pi’s CSI interface uses high-speed data lines from the camera to the CPU to get a lot of image data quickly. Controlling the camera, on the other hand, uses regular old GPIOs, the same kind that are broken out on the header. We’ve seen builds that reuse these GPIOs to blink a LED, but with a breakout board with additional camera connectors, it’s possible to use normal GPIO lines in place of the camera port GPIOs.

The result is a stackable extension board that splits the camera port in twain, allowing four Raspi cameras to be connected. Stack another board on top and you can add four more cameras. A total of four of these boards can be stacked together, multiplexing sixteen Raspberry Pi cameras.

As far as the obvious, ‘why’ question goes, there are a few interesting things you can do with a dozen or so computer controlled cameras. The obvious choice would be a bullet time camera rig, something this board should be capable of, given its time to switch between channels is only 50ns. Videos below.

Continue reading “Multiplexing Pi Cameras”

Meme Themed Pinball Machine – Much Flipping, Y U No Win?!

Summoning 4chans, 9gags, Reddits and other denizens of easily-digested content, Liberty Games stripped apart a dilapidated “Baby Doll” pinball arcade machine and turned it into this meme-spouting monstrosity. A complete redo of the vinyl and graphics to sport dozens of familiar internet tropes was first, then they had Shapeways create internal scenery and finally some electronics were added to spice things up.

We have seen PINMAME-based digital machines but this took a different path. Pinball machines this old pre-date common transistors so they rely on electro-mechanicals for everything. This made hacking the machine challenging so the team intercepted most of the signals and tied them into a Raspberry Pi with a Pi-face interface board. A videoscreen was added to the scoreboard, triggering all manner of memey videos and sounds according to actions performed and unlocked on the screen.

If you yearn for expired pranks of years gone by and are bad at pinball, you are in luck. Losing the game gets you Rickrolled – over and over again. On the plus side, Nyan Cat rockets away to bonuses and even the Admiral himself warns you of impending danger.

We resisted the urge to write this article as a chain of one meme to the next, you will get plenty of that from the well-documented project conversion and the following video. Someone in the comments will probably make a list of all memes.

Continue reading “Meme Themed Pinball Machine – Much Flipping, Y U No Win?!”

Create an Inclinometer Using a Raspberry Pi

The latest gizmo that you can make using the cheap and easy Raspberry Pi is here courtesy of [Mark Williams]. He has hooked up an inertial measurement unit (IMU) to the Pi and built an inclinometer to use to measure the various angles of an off-road vehicle.

This particular guide goes through the setup of SDL to control the video output to a small screen. Then, a function is created to rotate the images based on input from the IMU so that the vehicle position can be shown graphically on the screen. Now, when your truck is about to roll over on a hill, you’ll get advance warning!

Of course, this whole project is predicated on installing the IMU and getting it up and running on the Raspberry Pi in the first place. [Mark] has you covered on a guide for setting that up as well. This delves into setting up the IMU over I2C to get it talking to the Raspberry Pi, and then converting the raw data from the IMU into data that is more usable. Be sure to check out [Mark]’s page for all of the code and details!