Portabilizing The Kinect

Way back when the Kinect was first released, there was a realization that this device would be the future of everything 3D. It was augmented reality, it was a new computer interface, it was a cool sensor for robotics applications, and it was a 3D scanner. When the first open source driver for the Kinect was released, we were assured that this is how we would get 3D data from real objects into a computer.

Since then, not much happened. We’re not using the Kinect for a UI, potato gamers were horrified they would be forced to buy the Kinect 2 with the new Xbox, and you’d be hard pressed to find a Kinect in a robot. 3D scanning is the only field where the Kinect hasn’t been over hyped, and even there it’s still a relatively complex setup.

This doesn’t mean a Kinect 3D scanner isn’t an object of desire for some people, or that it’s impossible to build a portabilzed version. [Mario]’s girlfriend works as an archaeologist, and having a tool to scan objects and places in 3D would be great for her. Because of this, [Mario] is building a handheld 3D scanner with a Raspberry Pi 2 and a Kinect.

This isn’t the first time we’ve seen a portablized Kinect. Way back in 2012, the Kinect was made handheld with the help of a Gumstix board. Since then, a million tiny ARM single board computers have popped up, and battery packs are readily available. It was only a matter of time until someone stepped up to the plate, and [Mario] was the guy.

The problem facing [Mario] isn’t hardware. Anyone can pick up a Kinect at Gamestop, the Raspberry Pi 2 should be more than capable of reading the depth sensor on the Kinect, and these parts can be tied together with 3D printed parts. The real problem is the software, and so far [Mario] has Libfreenect compiling without a problem on the Pi2. The project still requires a lot of additional libraries including some OpenCV stuff, but so far [Mario] has everything working.

You can check out his video of the proof of concept below.

Continue reading “Portabilizing The Kinect”

PiClock – Time and Weather Information Overload

[Kevin] wanted a display where he could take a quick glance and get all the current environmental information he uses throughout the day. That information includes, of course, the time and date as well as weather information. We’re not just talking the current weather information but the forecast for the upcoming week as well as a map showing current weather patterns. To do this, [Kevin] came up with a unique system he’s calling the PiClock.

[Kevin] did some serious programming to get this clock project off of the ground. The weather data comes via the Weather Underground API and the map data from the Google Maps API. The main program is written in Python and will run on any OS running Python 2.7+ and PyQt4. If you’re interested in doing something similar, check out the source at github.

From the project’s name, it is no surprise that a Raspberry Pi is the brains here. A USB WiFi adapter allows access to the internet but an Ethernet connection would do just fine. Having the RaspPi hanging out with wires everywhere would be a little lazy, so [Kevin] opened up his 19″ LCD monitor and mounted the RaspPi inside the case. He tapped 5vdc off of the monitors power supply and used that to power the RaspPi, no external wall wart necessary! And if the PiClock’s background isn’t cool enough, some RGB LED strips were mounted to the back of the monitor to give an Ambilight effect.

Monitoring Power With A 555

[Diederich] is running a Raspberry Pi loaded up with Pimatic, a great home automation server that does just about anything you can throw at it. One thing it doesn’t do is monitor electricity and gas directly from the meter – you’re going to need hardware for that. [Diederich] stepped up to the plate and built that hardware using just a 555 timer. The total cost of adding this to his Pimatic setup was less than a dollar.

The 555 can be used as a timer, a trigger, and a bunch of them can be cobbled together into a CPU. [Diederich] isn’t using some fancy logic here; he’s just using the 555 as a Schmitt trigger with a phototransistor and his electricity meter. The output of the 555 is connected to the GPIO of the Raspberry Pi, and a Python script ties into Pimatic.

It’s a neat solution that only costs a dollar, and using the 555 has a few advantages: the 555 makes it possible to use long and thin wires back to the Pi, which means [Diederich]’s Pi doesn’t have to be located right next to his meter.

Smile for the Raspberry Pi Powered Photo Booth

[Roo] was tasked with finding a better way to take corporate employee photos. The standard method was for a human resources employee to use a point and shoot camera to take a photo of the new recruits. The problem with this method is many people feel awkward trying to force a smile in front of other people. Plus, if the photo turns out poorly many people won’t ask to have it retaken so as not to feel vain or inconvenience the photographer. [Roo’s] Raspberry Pi powered photo booth solves this problem in a novel way.

The new system has the employee use their own mobile phone to connect to a website running on the Pi. When the employee tells the Pi to snap a photo, the system uses the Raspberry Pi camera module to capture an image. [Roo] actually 3D printed a custom adapter allowing him to replace the standard camera lens if desired. The photo can be displayed on an LCD screen so the user can re-take the photo if they wish.

The system is built into a custom case made from both 3D printed and laser cut parts. The front plate is a frosted white color. [Roo] placed bright white lights behind the front panel in order to act as a flash. The frosted plastic diffuses the light just enough to provide a soft white light for each photo taken. Once the photo is selected, it can then be uploaded to the company database for use with emails, badges, or whatever else.

[Roo] also mentions that the system can easily be changed to send photos via Twitter or other web applications. With that in mind, this system could be a great addition to any hackerspace or event. The code for an older version of the project can be found on the project’s github page.

Continue reading “Smile for the Raspberry Pi Powered Photo Booth”

IoT Enabled Thomas The Tank Engine

This month the popular “Thomas the Tank Engine” toy celebrated its 70 anniversary. As a fun project, [tinkermax] wanted to bring this traditional toy into the age of IoT, while preserving its physical appearance and simple charm.

He used a model called the “Diesel” which seemed big enough to house the electronics, but proved otherwise once he inspected the innards. He needed to fit in an ESP8266 module, an accelerometer breakout, some discrete parts, a nifty analog multiplexer, and a 14500 3.7V LiPo. Once done, he was able to control its speed remotely over WiFi, with an auto “throttle-boost” that kicks in when the accelerometer senses that the train is going uphill, and has remote monitoring of battery state, engine load, inclination and track vibration – all in real-time using MQTT over WiFi. It’s quite a demonstration of the power of these super-cheap WiFi modules that are powering the current wave of IoT innovation.

The train motor works off a single 1.5V battery, so [tinkermax] tried a couple of boost converters to get the ESP-12 to work. But the modules were a tad bigger, and couldn’t provide the high peak current needed by the ESP-12. So he used a 14500 3.7V LiPo battery instead. A series diode drops the LiPo voltage to a circuit friendly 2.9V ~ 3.6V range. The ADXL345 accelerometer is used to measure “pitch” to detect going up and down a hill, “roll” to check for tilt or tip over and vibration to identify track defects. It communicates with the ESP-12 using a special Lite-SPI library that he wrote.

Two analog measurements are performed. One uses a resistor in series with the PWM driven motor to measure its current, with a low pass filter to smooth out PWM noise. The other is a resistor divider network used to monitor battery voltage. But the ESP-12 has just one ADC channel. Instead of adding another ADC module, [tinkermax] used a neat device – the FSA3157 – which allows two analog inputs to be channeled to a single output much like a SPDT switch. One PWM output is used to control motor speed and a second one to pulse a LED.

The sensor data is streamed 5 times a second over the MQTT protocol to a Raspberry Pi based MQTT broker. Finally, a JavaScript webpage receives the MQTT messages and plots the data graphically. One upgrade he would like to implement is speed measurement, to allow constant speed drive. If you have any ideas on how to extract that information from an accelerometer, chip in with your comments below. Check out his build log in the short video below. And if you’d like to see how all of this can be used in the real world, check this other video where [tinkermax]’s colleague gives a run down about a commercial enterprise IoT cloud platform hooked up to Thomas the Tank Engine.

Continue reading “IoT Enabled Thomas The Tank Engine”

Hot Swappable Raspberry Pi Rack

The Raspberry Pi has inspired many a hacker to take the inexpensive (~$35) microcomputer to the enterprise level. From bitcoin miners to clusters, the Raspberry Pi has found itself at the heart of many large-scale projects.

On hackaday.io [Dave] served up his own contribution with his Raspberry Pi Rack. Inspired by enterprise blade servers, he wanted to house multiple Raspberry Pi boards in a single enclosure providing power and Ethernet. The spacing between the blades and the open sides allow for each Pi to cool without the additional power and cost of fans.

Starting with an ATX power supply and Ethernet switch, Dave created a base that housed the components that would be shared by all the Pis. Using a 3D model of a Pi he found online, he began working on the hotswap enclosures. After “dozens of iterations” he created a sled that would hold a Pi in place with clips rather than screws and slide into his rack to connect to power and Ethernet.

Like most projects, some mistakes were made along the way. In his write up [Dave] describes how after printing the bottom plate he realized he hadn’t accounted for the holes for the Ethernet cable runs. Instead the cables run along the back wall in a way he now prefers.

You can find all the details and download the 3D models on his project page.

Eye-Controlled Wheelchair Advances from Talented Teenage Hackers

[Myrijam Stoetzer] and her friend [Paul Foltin], 14 and 15 years old kids from Duisburg, Germany are working on a eye movement controller wheel chair. They were inspired by the Eyewriter Project which we’ve been following for a long time. Eyewriter was built for Tony Quan a.k.a Tempt1 by his friends. In 2003, Tempt1 was diagnosed with the degenerative nerve disorder ALS  and is now fully paralyzed except for his eyes, but has been able to use the EyeWriter to continue his art.

This is their first big leap moving up from Lego Mindstorms. The eye tracker part consists of a safety glass frame, a regular webcam, and IR SMD LEDs. They removed the IR blocking filter from the webcam to make it work in all lighting conditions. The image processing is handled by an Odroid U3 – a compact, low cost ARM Quad Core SBC capable of running Ubuntu, Android, and other Linux OS systems. They initially tried the Raspberry Pi which managed to do just about 3fps, compared to 13~15fps from the Odroid. The code is written in Python and uses OpenCV libraries. They are learning Python on the go. An Arduino is used to control the motor via an H-bridge controller, and also to calibrate the eye tracker. Potentiometers connected to the Arduino’s analog ports allow adjusting the tracker to individual requirements.

The web cam video stream is filtered to obtain the pupil position, and this is compared to four presets for forward, reverse, left and right. The presets can be adjusted using the potentiometers. An enable switch, manually activated at present is used to ensure the wheel chair moves only when commanded. Their plan is to later replace this switch with tongue activation or maybe cheek muscle twitch detection.

First tests were on a small mockup robotic platform. After winning a local competition, they bought a second-hand wheel chair and started all over again. This time, they tried the Raspberry Pi 2 model B, and it was able to work at about 8~9fps. Not as well as the Odroid, but at half the cost, it seemed like a workable solution since their aim is to make it as cheap as possible. They would appreciate receiving any help to improve the performance – maybe improving their code or utilising all the four cores more efficiently. For the bigger wheelchair, they used recycled car windshield wiper motors and some relays to switch them. They also used a 3D printer to print an enclosure for the camera and wheels to help turn the wheelchair. Further details are also available on [Myrijam]’s blog. They documented their build (German, pdf) and have their sights set on the German National Science Fair. The team is working on English translation of the documentation and will release all design files and source code under a CC by NC license soon.