Raspberry Pi / Arduino Platform

The goal of this robot is to have a platform to test software such as facial recognition, natural language processing, neural networks, color detection, machine learning, and object classification. The project will use an Arduino Uno to control sensors and motors and a Raspberry Pi for harder computations.

This robot utilizes a medium sized tank kit from robotshop that has two motors with a gearbox attached to it. The motors are attached to an L298N H-Bridge. The H-bridge is then connected to an Arduino Uno microcontroller through 6 digital pins and a ground pin. The motor controller has a separate power unit of four AA batteries. The Arduino Uno is connected to a Raspberry Pi via a USB cable for power and to communicate.

The Raspberry Pi has an Edimax EW-7811Un Wi-Fi dongle, a USB hub, Bluetooth dongle for keyboard/mouse, and a 32-gigabyte microsd card. The Wifi dongle allows the robot to connect to a local router. This is useful because I am then able to connect to the raspberry pi via SSH to control the robot on my laptop or phone from VNC viewer application. At first I was powering the pi via USB to an outlet but in order to make it mobile I added a portable phone charger. The phone charger gives out 5v, 1000 mA which is ideal to power the Pi.

Currently I have the Pi platform take a command, a number from 1 to 5, which is entered in the serial monitor of the arduino ide on the Pi. The number corresponds with a specific movement i.e. 1 makes the both motors go forward at full speed. I am now working on adding a USB camera to run a facial recognition program.

July 19, 2016 update!

Added a speaker to the robot and a sonar ping sensor for distance calculations. The robot can now "see" objects and avoid them. Also the robot is programmed to play an R2D2 sound when it detects an object. See the video below.