RaspiDuinoRover is a project about making a rover with a Raspberry Pi (and its camera module) and an Arduino Uno, and controlling it with an iPhone. (or iPad, or iPod Touch).
RaspiDuinoRover is made of three main parts:
The base of the rover is made of a Dagu Rover 5 Tracked Chassis. The Raspberry Pi camera module is mounted on a pan/tilt support with servos, and a lighting feature based on three white LED is added to allow the use of the camera in the dark. It should be possible to replace camera module by a NoIR camera module and white LED with IR LED if you want / need a discreet illumination.
Servo motors, Raspberry Pi, Arduino Uno and camera lighting are powered by a common 5V power line. This 5V power may come from a wall power supply (at least 2A), while the chassis motors have their own power source. It may be possible to make a common power supply for all items, including chassis motors, but this page won't cover this topic.
RaspiDuinoRover needs the following items to be built:
To help you with the assembly, you may refer to the following files:
You'll first have to upload “Arduino/Arduino.uno” sketch to your Ardunio Uno and build the assembly.
Important: Don't forget to cut “Vin” jumper on the backside of the shield.
Then you have to install UV4L, following these steps (steps 1 to 6). You'll need to install the following packages: “uv4l”, “uv4l-raspicam”, “uv4l-raspicam-extras” and “uv4l-server”.
You may want to use the following settings in “/etc/uv4l/uv4l-raspicam.conf” file (adapt to fit your needs):
width = 640
height = 360
framerate = 30
quality = 10
server-option = --port=8080
server-option = --use-ssl=no
then restart “uv4l_raspicam” service with “service uv4l_raspicam restart”.
Then update “./RaspberryPi/config.py” file to fit your needs.
When you're done, just launch RaspiDuinoRover with “./RaspberryPi/raspiduinorover.sh start” as root user. When you want / need to stop it, just execute “./RaspberryPi/raspiduinorover.sh stop” as root user.
The start script will start RaspiDuinoRover server.
Streaming will be started when a user connects to the server (have a look to “./RaspberryPi/bin/stream.sh” script) and will be stopped when the last user disconnects.
Just open XCode project then build and install RaspiDuinoRemote on your iDevice. If you don't have an Apple iOS Developper account, you may use RaspiDuinoRemote within iOS Simulator.
When application is started, enter hostname (or IP adress) of your Raspberry Pi, the server port (default value is 8000, unless changed into “config.py” file) and MJPEG stream URL (if you use MJPEG Streamer, it should be “http://<raspberrypi_ip>:8080/?action=stream”. Then tap “Connect” button.
All sources and schemas for the project are available on GitHub.
Work in progress
With tracked chassis