PostHeaderIcon Raspberry Pi Robot – Connecting the H-Bridge & Motors

It has been a while since I have posted anything so here we go with a quick post on how to get the motors and H-Bridge connected up to our Raspberry Pi.

Below is an image of how my Raspberry Pi is currently Connected:

Two Motors (Tank)


For this project we will be using four of the Raspberry Pi’s GPIO pins, two per motor.  In the diagram below you will see a diagram of a L298N (hopefully yours will look the same or very similar).  Each motor will have two wires running from them, this will allow us to connect them to “output A” and “output B”.

We will be connecting our battery pack up to the +12v power terminal since we will be providing the H Bridge Motor Controller with 6v from the battery pack that is in our Zumo Chassis.  We will also want to run the ground from the battery pack and also from the Raspberry Pi to the ground terminal on the H Bridge Motor Controller.

Finally we want to run our input cables from the Raspberry Pi GPIO ports to the four input pins of H Bridge Motor Controller.  I have done them in the following order :

Pin 1: Yellow Cable should be GPIO 16

Pin 2: White Cable should be GPIO 18

Pin 3: Green Cable should be GPIO 21

Pin 4: Orange Cable should be GPIO 19


This is all there really is to connecting your motors and motor controller up ready for coding our Raspberry Pi robot to move!

If you have an questions or suggestions please leave a comment below.



PostHeaderIcon Raspberry Pi Robot – Flashing LEDs – The Code

Below you will find the example Python code that we will be using to flash the two LEDs that we wired up in the previous post.


import RPi.GPIO as GPIO
import time


GPIO.setup(16, GPIO.OUT)
GPIO.setup(18, GPIO.OUT)

GPIO.output (16, True)
GPIO.output (16, False)

GPIO.output (18, True)
GPIO.output (18, False)



The first two lines of code are to import the Raspberry Pi module and the Time modules to enable us to use the Raspberry Pi and Time related specific functions.

The next line is to set the GPIO pinouts up.  Since we are using the standard Raspberry Pi pinouts we just set this as BOARD.

After that we will define which of the Raspberry Pi GPIO pins we will be using as output pins.  As you may remember from the previous post we will be using pins 16 and 18.

The next block of code will send power to pin 16, wait for one and a half seconds before turning the power off again.  These few lines of code will therefore light our red LED for one and a half seconds before turning it off.

The final block of code is exactly as above but it will light our green LED for one and a half seconds before turning it off.

Finally we will run GPIO.cleanup() which will turn off the pins we have been using and return them back to the default state for next time we want to use them.

Once you have got your code typed up and saved as from within a terminal prompt run the following command and watch your LEDs light up in turn for one and a half seconds.


sudo python


That is all for this post if you have any issues with this code please leave a comment below.

PostHeaderIcon Raspberry Pi Robot – Flashing LEDs – The Circuit

In this brief guide we will show you how to connect up two LEDs to the GPIO ports on your Raspberry Pi and control them via Python Script.  From this point onwards I will assume that your Raspberry Pi has a fully working install of Raspbian and is connected to your WiFi or Wired Network.  Rather than working directly on the Pi I will be connecting via SSH to create and execute our code.

You may be wondering why we are bothering tinkering around with LEDs rather than diving straight in and getting some motors up and running.  There are two reasons for this the first is I am still waiting for my L298N motor Controller to arrive.  The second reason is that the basic Python code we will be using to light a few simple LEDs will be pretty much the same code we will be using to turn a motor on and off.

Below you will find a list of items we will need for this project.

Amount Part Type Properties
1 Red LED package 5 mm [THT]; color Red; leg yes
1 Green LED package 5 mm [THT]; color Green; leg yes
2 270Ω Resistor package THT; tolerance ±5%; resistance 270Ω; pin spacing 400 mil; bands 4
1 Raspberry Pi B rev1 processor Broadcom SoC BCM2835 ARMv6; variant Raspberry Pi B(Rev 01)

Below is a diagram of how we will be connecting our components together on our breadboard (protoboard).  Connect the Ground (Black cable) to the Ground connector on the Raspberry Pi GPIO, this is the third pin down on the side nearest your breadboard.  Plug both LEDs and resistors into the breadboard as shown and the connect the live (or signal cables) to GPIO pins 16 (for the Red LED) and 18 (for the Green LED).  Once that is complete connect the live cables into the slot below the longer leg (Positive) of each LED as shown.  If everything looks exactly like it does in the diagram then it is time to move onto the coding part of this guide.

Flashing LEDs_bbLater in the week I will post the code that we will be using to turn these LEDs on and off and explain what the code does and different ways we can improve it.

PostHeaderIcon Raspberry Pi Robot – Baking your Pi

I’m not going to cover setting up the Raspberry Pi from scratch as there are many sites available that already cover this subject in far more detail than I can provide.

For my project I am using Raspbian Debian Wheezy and an 8GB SD card.  To learn how to install the image onto your SD card have a very good install guide here.

To enable the Pi to be able to freely roam around we will have to install a USB WiFi adapter.  I have used this rather generic slimline dongle from Amazon.

Setting up the WiFi access is pretty simple especially if you are using the GUI, if you do run into any issues the following guide on has you covered.

Our Raspberry Pi should now be in a state where it can site wirelessly on the network ready for us to start creating and running our Python scripts.

In the next post we will cover wiring up two LEDs and creating a basic Python script that makes the LEDs flash.

PostHeaderIcon Raspberry Pi Robot – Project Overview

After being introduced to Raspberry Pi controlled robotics by Chris over at I have (after owning a Pi since launch) finally decided to do something useful with my Raspberry Pi.

The basic goal of this project will be to create a remote controlled vehicle that can be controlled with a smartphone over wifi using a web server that will be running on the Raspberry Pi.

Once this basic goal has been met the project could (and probably will) be expanded to install a webcam on the robot or the addition of an ultrasonic sensor to stop unwanted collisions.

This should prove to be an interesting and informative project as I have very little electronics experience other than what I can vaguely remember from secondary school well over fifteen years ago.


  • Raspberry Pi – The “brains” of the project this will drive the controller that runs the wheels.
  • USB wifi adaptor – To enable the robot to roam free rather than be tethered via a cable.
  • USB Battery Pack – To power the robot and free the robot from being tethered via a cable.
  • AA Battery Pack – To power the robot and free the robot from being tethered via a cable.
  • AA Batteries – To power the motors and motor controller.
  • Breadboard – This will be used for prototyping and testing components.
  • Zumo Chassis Kit – A two tracked platform that we will build our robot on.
  • 2x 50:1 Motors – The motors that drive the tank tracks. One per side.
  • L298N Controller – This will control the speed & direction of our motors.

In the near future I will be making further posts and guides on how I have managed to bring my robot to life.

Stay tuned for further articles that will hopefully include subjects such as:

  • Setting up your Pi from scratch. (including wifi and remote access).
  • Building the Zumo Chassis for our robot.
  • Connecting the L298N to our Raspberry Pi and Motors.
  • Example Python code for movement.
  • Installing the webserver on the Raspberry Pi.
  • Creating the scripts for movement.
  • Bringing the web server and scripts together.