Here is a rundown of my current project, currently dubbed PiHead, which is still in very early stages.
- A low-cost, easily configurable and customizable device that can be mounted on a quadrocopter, car dashboard, paintball gun, or robot, that will stream a live video feed to a smartphone or PC with no latency. This box will be an easy addition to any project where a remote real-time video is needed with motion and location information.
I started thinking about a project to get a Raspberry Pi mounted to a rifle so that it can stream live video to a Google Glass or equivalent. this way, the rifle no longer needs to be aimed by bringing it to your face. Such devices exist, but are extremely expensive and closed-source. With further thought, such a device could be useful for many other applications, such as quadrocopters and car dashboards. A motion sensor and GPS would add great functionality too.
With all the press surrounding the new VR headsets, this device could act a remote head, in a sense. With two cameras and two microphones for binaural sound, you could strap this onto a RC car or quadrocopter and be fully immersed with a VR headset. This is where I decided on the project name PiHead. Unfortunately, the RPi2 does not allow dual cameras, so my initial project would have to be 2D only.
I have begun testing the core features of the hardware and plan to program the RPi2 in Python, given it's popularity with the RPi community. I am familiar with Java programming, so I plan to write an Android app that will receive the feed from the RPi, and even be able to configure the RPi remotely.
- Stream 1080p or 720p live video to remove devices (Android, IOS, PC).
- Record video stream onto the RPi as needed.
- Motion sensor to detect specific events and react accordingly (customizable).
- GPS module to log location of the RPi and of specific motion events.
- Custom Android/IOS apps to interface with device, to reduce latency and to configure RPi.
- LiPo battery power for 2+ hours of operation.
- Open-source and customizable.
- RPi code in Python.
- Multiple board options, such as Raspberry Pi A+ (if powerful enough to work, but with smaller footprint and less power usage) or new Snapdragon dev board (built-in WiFi and GPS).
- Interchangeable camera (NoIR) and lenses.
- 4G/LTE module for streaming over carrier networks.
- Bluetooth or XBee to communicate with other devices (e.g. quadrocopter controls).
- 3D PiHead:
- - Compute Module instead of RPi2.
- - Dual PiCamera for streaming to VR headsets.
- - Dual microphones for binaural stereo sound.
Current hardware purchased:
- Raspberry Pi 2.
- PiCamera 5MP.
- Adafruit 9-DoF motion sensor.
- 16GB MicroSD Class-10 card.
Tested setting up the RPi as a WiFi access point at startup and having Android phone and Windows PC connect to it. Working perfectly.
Tested streaming low-latency video using the MJPG-Streamer package. Low latency streaming possible, tweaks necessary for Windows PCs at 1080p.
Tested Gstreamer/VLC streaming, but with very poor RPi2 encoding performance above 480p resolution. Poor handling of dropped packets. Further testing possible, but MJPG approach better for situations where packets get dropped.
Tested interfacing with Adafruit 9-DoF motion sensor board using Python and the I2C bus, working, but require further work.
I am looking for a programmer that is willing to join me on this project that is familiar with Python programming and has their own RPi2+PiCamera. If you have experience with Adafruit motion sensors or UDP/TCP networking too, excellent! If you happen to be in Houston Texas, even better!
Feel free to offer any feedback about this project!