RoboHAT – Robotics Controller for Raspberry Pi

Links for Various Resources for the 4tronix RoboHAT

rh09

 

See the bottom of this page for software library and downloads.

 Useful Links

Know your RoboHAT

rh12a

Clockwise from top left:

  • 2-way screw terminal for DC Motor 1 (left motor if using the Python library)
  • EEPROM containing the HAT information for the device tree
  • DRV8833 motor driver chip
  • 2-way screw terminal for DC Motor 2 (right motor)
  • 4-pin male connector for the Ultrasonic distance sensor (HC-SR04)
  • 6-pin female connector for the I2C breakout. This is the standard header used on all 4tronix controller boards
  • 4 x 3-way (GVS) inputs. These accept 3-5V input signals and are converted to the 3.3V logic required for the Raspberry Pi GPIO pins. They are labelled with both pin numbers and Broadcom GPIO numbers
  • Blue Power indicator LED
  • Jumper to select power input method for the motor driver. In most cases this should be to the left so that a single set of batteries can be used to power the Raspberry Pi and the motors. If you want a separate power supply for the motors, then move this jumper to the right and connect the separate motor power to the 2-pin screw terminal
  • 2-pin screw terminal for optional separate motor power
  • DC Jack for the main power input. This is the input from your (typically) 7.2V battery pack and is used to create the 5V for the Raspberry Pi and to drive the motors directly (if motor power jumper is to the left)
  • 6 x 3-way (GVS) outputs. These provide a 5V driven output from the Raspberry Pi GPIO pins. They are labelled with both pin numbers and Broadcom GPIO numbers

 

Pin Assignments

RoboHAT signals are mapped directly to individual GPIO pins as follows:

Description

In/Out

J5 Pin Number

Broadcom Number

1 Motor1 A

Out

36

16

2 Motor1 B

Out

35

19

3 Motor2 A

Out

33

13

4 Motor2 B

Out

32

12

5 Ultrasonic

In/Out

38

20

6 Input 0

In

7

4

7 Input 1

In

11

17

8 Input 2

In

29

5

9 Input 3

In

13

27

10 Input 4

In

15

22

11 Input 5

In

16

23

12 Output 0

Out

18

24

13 Output 1

Out

22

25

14 Output 2

Out

12

18

15 Output 3

Out

31

6

 

Python Software

To download the library and example programs from the internet, you can use the following commands from your Raspberry Pi in the home folder. (open LXTerminal from desktop):

  • wget http://4tronix.co.uk/robohat.sh -O robohat.sh
  • bash robohat.sh

 

Files included

  • robohat.py This is the python library module, see the first few lines of the library for listing of all the exposed functions for controlling motors, LEDs and reading sensors
  • motorTest.py – cycles through various motor directions
  • motorTest2.py – use the arrow keys on your keyboard to control the direction and speed of the motors
  • motorTestRaw.py – cycles through various motors, but doesn’t use the library
  • irTest.py – check the state of the IR line and obstacle sensors sensors (assumes you have the sensors connected as shown in the Initio build instructions)
  • sonarTest.py – prints the distance using the UltraSonic sensor
  • servo.py – a very simple servo test using the RPI.GPIO PWM commands
  • servoTest.py – a more sophisticated test that uses ServoBlaster (servod) to create the timing pulses

PZM – Pi Zero Motor Shim

Add Motors to (Almost) Any Pi Zero Project

2016-01-22_0008a

Purchase here

This tiny little board (38 x 16mm) can be added to a Raspberry Pi Zero (or any other Pi for that matter) to provide dual H-Bridge control of 2 DC motors.

It is so thin (0.8mm) that it can be soldered onto the bottom of the connector (assuming you have added one to your Pi Zero), or you can solder on the female or male headers included in the kit so you can connect and remove it, however you have configured your Pi Zero.

2016-01-22_0007a

Above shows the PZM with a female header added so it can be plugged onto a “normal” male header as shown below, Note how the PZM sticks out from the Pi, so other boards can still be mounted as usual

2016-01-22_0002

 

Alternatively, you can mount it by soldering it directly to the bottom of the header, thus leaving the header free to attach other boards as shown below:

2016-01-22_0013a

2016-01-22_0012a

 

Contents

So what do you get in the package?

  • Ready assembled PZM shim
  • 3 x screw terminals
  • 3×2 Male header
  • 3×2 Female header

pzm_kit01

 

Programming?

This is a 4 pin driven, dual H Bridge. 2 pins control Motor A and 2 pins control Motor B

  • Motor A is physical pins 35 and 36 (Broadcom GPIO 16 and 19)
  • Motor B is physical pins 37 and 38 (Broadcom GPIO 26 and 20)
  • For each motor:
    • One pin High and the other Low for Forward
    • One pin Low and the other High for Reverse
    • Both pins Low will stop driving the motor and allow it to slowly coast to a halt
    • Both pins High will brake the motor and bring it to a halt very quickly
  • The pzm.py library module provides basic functions for forward, reverse, spin left, spin right, turn left/right forward, turn left/right reverse

 

Downloads:

From a terminal window on your Pi type the following lines exactly:
$ wget http://4tronix.co.uk/pzm.sh -O pzm.sh
$ bash pzm.sh

This will have created a pzm folder in your home directory, with the following files:

  • pzm.py python library
  • pzmTest01.py shows use of the motors without using the library
  • pzmTest02.py shows the motors moving in the same way as pzmTest01 but using the library (much simpler program)
  • pzmTest03.py allows the use of arrow keys (and , and . to change speed) to control the motor directions

 

Wiring?

  • Put power 3V to 11V on the terminal marked VIN and GND. If you are using low power motors you can use the 5V from the Pi (note this isn’t connected to the PZM board)
  • Reverse polarity protection is provided so you won’t break it by putting them on the wrong way round, but it won’t work until you get it right!
  • Connect one motor to Motor A and the other to Motor B
  • Done!

 

 

Assembling Pi2Go

Assembling Pi2Go

pi2go_01a

Pi2Go is the pre-soldered big brother of the popular Pi2Go-Lite kit. Assembly is simply a matter of screwing together and plugging connectors.

Overview of Steps

  1. Fit the front caster and line following assembly
  2. Fit the mounting pillars for your chosen Raspberry Pi
  3. Attach the motors
  4. Fit the Raspberry Pi
  5. Fit the battery box

 

Step 1 – Fit the Front Caster and Line Follower Assembly

Step01

You will need the M3 screws, 27mm pillars, ball caster and 9-way extended header and the line follower PCBA

Step02

Fit the 2 pillars to the front of the Pi2Go using 2 of the M3 screws

Step03

Carefully push in the 9-way header, then attach the line follower PCBA

<photo missing>

Use the remaining 2 screws to attach the ball caster. If there is a bit of slack in its position, ensure that it doesn’t touch the pins of the connector

 

Step 2 – Fit the Mounting Pillars for Raspberry Pi

For the older Raspberry Pi models with a 26-pin GPIO connector, you will need to fit 2 pillars. For the A+, B+ and RPi 2B you should fit 4 pillars

Step04

Fitting the pillars is a 2 step process: 1) fit the small 5mm pillars, 2) screw in the 16mm pillars.

Step05

The photo above shows the 5mm pillars in the mounting positions for A+, B+ and RPi 2B models

Use the very small 4mm screws to attach all the pillars. Note that the holes under the motors have been countersunk to allow the motors to sit flat onto the PCBA

Step06

The photo above shows the 16mm pillars added for the correct height (A+, B+, RPi 2B)

Step06a

The photo above shows the 2 pillars in place ready for the Model A or Model B

 

Step 3 – Attach the Motors

Step07

For this you will need 25mm screws, nuts and the motor mounts

Step08

Push the screws through the outer motor mount, then the motor, then the inner motor mount and attach to the nuts

Step09

 

Step 4 – Fit the Raspberry Pi

Step10

Using the extended header (in the bag with the battery box), connect the Pi onto the Pi2Go PCBA.

NB. Ensure that the mounting holes line up with the pillars! If they don’t then the Pi is not fitted correctly and may be damaged.

The above photo shows the RPi 2B in place. The A+ and B+ fit the same way.

Step10a

This photo (above) shows a Model B

 

Step 5 – Fit the Battery Holder

Step11

Use the 5mm pillars to attach the Raspberry Pi firmly to the mounting pillars. Use 2 or 4 pillars depending on your model of Pi (RPi 2B shown above)

For the Model A and Model B, you can now screw the battery holder directly to the 2 supporting 5mm pillars

Step12

For the A+, B+ and RPi 2B you will need to fix the support plates in place first

Step13

Ensure the one at the front has the threaded insert on the left of the Pi2Go and the one at the rear on the right. Also ensure that the wide parts of the mounting holes are at the top so that they can accept the heads of the screws.

Step15

Finally, screw in the battery holder using 2 of the very small 4mm screws

pi2go_01a

Now you can add batteries, software and enjoy!

iBoost64 – What is It?

iBoost64 Overview

iBoost64 is a little board to boost input signals and electrically clean them up. It is designed solely for use with the Pirocon2

Pirocon2 has 8 bi-directional pins that determine the direction (input or output) using the strength of the drive signal applied to them. We have found that some sensors have insufficient drive strength to reliably convince the level shifters that they should behave as inputs. This has the effect of appearing to randomly react to or ignore inputs – especially with marginal sensors.

This little board can be plugged onto the pins of the Pirocon that you want to use as inputs only. With the board in place, the selected signals are always inputs and cannot be outputs.

Because the power and ground pins go all the way across the 8×3 connector on the Pirocon, you can plug the iBoost64 into any position even with only 1 set of three pins (although it wouldn’t be very stable like that)

The iBoost64 has 6 inputs which can either be high or low (hence the 64 because 2^6 is 64)

  • 6 non-inverting schmitt trigger inputs
  • high hysteresis so slow moving signals produce a nice clean edge for the Pi
  • Enables weak sensor outputs to drive the Pirocon directly
  • Wheel sensors on Initio can be driven with 5V as intended and plugged directly into the iBoost64

Assembling Ultimate Initio Kit for Raspberry Pi with Pirocon

Ultimate Initio kit for Raspberry Pi

ultpi_01b

You should already have followed the instructions for assembling the chassis here.

In this section we will add the Pirocon2 controller, the obstacle sensors, line sensors and the pan/tilt assembly with ultrasonic sensor.

The (optional) iBoost64 is also used to boost incoming signal strength and resolve issues with marginal IR sensors, including the wheel sensors on the Initio

 

Quickstart Pinout Description

If you use the recommended iBoost64 input signal booster, then we can connect the 8 I/O signals as follows:

  • Pin 7 – Left Obstacle sensor
  • Pin 11 – Right Obstacle sensor
  • Pin12 – Left Line sensor
  • Pin 13 – Right Line sensor
  • Pin 15 – Left Wheel sensor 1 (Optional)
  • Pin 16 – Right Wheel sensor 1 (Optional)
  • Pin 18 – Tilt Servo (Output – not connected to iBoost64)
  • Pin 22 – Pan Servo (Output – not connected to iBoost64)

 

1. Fitting the Pirocon to the Raspberry Pi

ultpi_20

Screw the support pillar to the underneath of the Pirocon. The position shown above is suitable for a Raspberry Pi Model B+, Model A+ or Raspberry Pi 2 Model B

Use the hole in the centre if using a Model A or Model B

ultpi_21

Push the Pirocon carefully onto the GPIO pins of the Raspberry Pi, ensuring the pins are placed correctly as shown in the photo above

ultpi_22

Connect the motor wires as shown. Red – Black – Black – Red

It won’t damage it if you connect them differently, but the example programs won’t go the direction that you would expect

ultpi_23

Plug the Black/White cable with the DC Jack into the left-most pins on the switch PCB on Initio and the DC Jack end into the Pirocon as shown above.

Check all the wiring again very carefully, then now is a good time to see if the Pi powers up and you can control the motors.

Use 6xAA batteries. These should be good quality rechargeable batteries. We recommend Energizer Extremes or Eneloops

Connect a monitor, keyboard and mouse to the Raspberry Pi, plug in your SD card and switch on. The green light near the On/Off switch should turn on, the LEDs on the Pi should start flashing and the booting sequence should appear on the monitor. If not, switch off and double check the wiring.

Instead of using the batteries, you can plug a micro-USB cable directly into the connector on the Pi. This is an excellent way to get started and allows you to test everything (except the motors, which may turn but only slowly) without using batteries.

 

2. Mounting Obstacle Sensors

ultpi_02

Check that each sensor has 2 mounting collars. Screw one onto the body of the sensor, leaving room at the front for the second one

ultpi_03

Push the sensor through from the rear of the mounting bracket and screw on the second collar. Feed the wires up through the holes in the top plate

ultpi_04

Repeat for the second side

ultpi_05

Connect to the Pirocon2 (or the iBoost64 as below)

  • Left sensor to Pin 7 (marked x07 or #04)
  • Right sensor to Pin 11 (marked x11 or #17)

The wire colours from the obstacle sensor are:

  • Red:  5V
  • Black:  Gnd
  • White or Yellow: Signal

Make sure you connect them to the correct pins on the Pirocon or iBoost64

ultpi_06

 

3. Mounting the Line Sensors

ultpi_07

First, take the 30cm female-female jumper strip of 10 wires and split it into three strips:

  • Brown, Red, Orange, Yellow (this is for the Ultrasonic Sensor)
  • Green, Blue, Purple (this is for the Left Line Sensor)
  • Grey, White, Black (this is for the Right Line Sensor)

ultpi_08

Next, prepare the two Line Sensors and 2 of the 3x8PB screws as shown

ultpi_09

Screw the line sensors in position as shown, using the screwhole in the middle of the circuit board

ultpi_10

Connect the Green, Blue, Purple wire to the Left Sensor and the Grey, White, Black cable to the Right Sensor

** Note some sensors have the pins in order 5V, Signal, Gnd; other have them in order Signal, 5V, Gnd – make sure you know which wire colour is connected to which.

ultpi_11

Connect the sensors to the Pirocon or iBoost64 (shown below)

  • Left sensor to Pin 12 (marked x12 or #18)
  • Right sensor to Pin 13 (marked x13 or #27)

ultpi_06

 

4. Connecting the Pan/Tilt Assembly

ultpi_12

This is now supplied fully assembled with the Initio Ultimate kit. If you have an unassembled one, then please visit the assembly instructions here (opens in new window)

Take 4 of the 2.0x6PB screws (these are the smallest ones in the packet and there are 6 of them)

ultpi_13

Screw the base of the pan/tilt assembly to the upper plate in the position shown

Rotate the pan/tilt carefully left and right to access the screw holes

ultpi_14

Connect the Pan servo (bottom servo) to Pin 22 (marked x22 or #25)

Connect the Tilt servo (upper servo) to Pin 18 (marked x18 or #24)

Note the colours of the servo wires and ensure they are connected correctly:

  • Black: Gnd
  • Red: 5V
  • Orange or White: Signal

 

5. Connecting the Ultrasonic Sensor

ultpi_15

For this you will need the mounting plate, saddle clamp and the final 2 of the 2.0x6PB screws used in step 4

ultpi_16

Push the 4-way 30cm female-female cable that you made in Step 3 onto the top of the ultrasonic sensor:

  • Brown: Gnd
  • Red: Echo
  • Orange: Trig or Ping
  • Yellow: 5V or VCC

ultpi_17

Screw the saddle clamp over the cable terminals as shown above

ultpi_18

Clip the whole assembly to the front of the Pan/Tilt assembly as shown above

Note that you can purchase additional clip-on mounts so you could mount a camera on one and simply clip it off to change from Ultrasonic to Camera

ultpi_19

Connect the other end of the cable into the ultrasonic pins located between the 2 motor terminals

Ensure that Brown is Gnd, and they are in the order as shown

 

The main build of your Ultimate Initio Kit for the Raspberry Pi is now complete.

 

6. Connecting the Wheel Sensors (Optional)

Note that the wheel sensors require additional code to operate properly that is not included in the python library.

It is recommended that you do not fit these until you are familiar with the operation of the rest of the robot.

If you want to fit them, use Pins 15 and 16 (marked x15, x16 or #22, #23 and note that the silk screen on the board has these swapped over)

For each Wheel Sensor, connect:

  • Black to Gnd
  • Red to 5V
  • Orange or Brown to the selected pin (in fact, each wheel has 2 sensors that are slightly out of phase so you can get direction of travel from them, but you will then need 2 pins for each sensor)

It is recommended to leave the wheel sensor cables unconnected to start with

 

Initio Chassis Build

Building the Initio Chassis

step11a

As with all kits of this type, there are a variety of ways to put this together. The following steps assume you will be building one of our Arduino or Raspberry Pi kits.

1 What’s in the Box?

step01

The Initio chassis comprises the major parts:

  • Base chassis with fitted motors, gearbox, battery box, switch PCB and wheel sensors
  • Top plate
  • 4 wheels
  • 3 bags of screws (with labels)
  • Wires to connect to switch PCB depending on use
  • Wire tidies to keep your cabling neat
  • Bag of plastic pillars and brackets
  • Plastic plate to clip onto a mini-pan tilt

 

2. Which Screw is Which?

screws01b

From left to right:

  1. 36 screws for mounting the general purpose stand-offs etc. (you shouldn’t need these for the basic build, but 2 are used for mounting line followers)
  2. Three types of screws for sensors:
    1. 2 wide head screws for mounting obstacle sensor brackets (one each)
    2. 6 small screws for mounting the pan/tilt assembly (4) and mounting the saddle clamp to the pan/tilt plate (2)
    3. 4 long screws for mounting the line follower support pillars (2)
  3. Two types of screws for upper plate and controller
    1. 10 small screws for mounting the Arduino or Raspberry Pi (and L298N motor board if used)
    2. 8 wide head screws for mounting the upper plate

 

3. Connect Battery Cable to Switch PCB

step02

** It is very important to attach this to the correct connector as shown above  (labelled “batt”). Please double-check this before connecting batteries

On more recent units there are 2 connectors to the left of the battery connector on the switch board. They are both the same. Use one for the DC Jack and one for the bare-ended cables (if they are required for your build)

 

4. Fit the Line Follower Support Pillars

step03

There are six 40mm pillars in the kit. 4 of them have flattened ends and 2 of them are straight. The 4 with flattened ends are to support the upper plate, so select the 2 straight ones for this task.

step04

Use 2 long screws (3x12PB) from Bag2 and the 2 pillars

step05

Screw the pillars in place. Note: you can vary the separation of the line following sensors by mounting the pillars in different holes, or to a lesser extent by twisting them once fitted

 

5. Fit the Obstacle Sensor Brackets

step06

Use the 2 wide head screws (3x8PWB) and the two plastic mounting brackets

step07

Screw the brackets in as shown above. You may want to turn them slightly away from each other so it detects obstacles off to the sides

 

6. Fit the Upper Mounting Plate

step08

For this we will need the 8 longer screws with wide heads (3x10PWB) and the four 40mm pillars with flattened ends

step09

Screw the 4 pillars in tightly from underneath, ensuring that the flattened ends fit snugly into the recess in the plastic plate

step10

Ensure the flattened ends at the top of each pillar fit into the recesses in the top plate, then use the remaining 4 screws to tighten the plate in position

 

7. Chassis build is now complete

step11a

 

8. Fit your chosen controller

Note that there are many mounting positions that can accommodate a number of different boards from the Raspberry Pi, Arduino and other families. Depending which board is being fitted, some of the other pillars may need to be removed to avoid fouling on components underneath the boards. Simply snip off the unwanted pillars using side-cutters, nail clippers, or a sharp knife.

Some of the pillars that you are not screwing into should be left to support the board – only cut off the ones that are in the way

step12

Use the small screws (2.6x8PB)

Fitting an Arduino

step13

For the Uno, all 4 mountings can be used if desired. I generally use only 2

 

Fitting a Raspberry Pi Model B

step14

 

Fitting a Raspberry Pi Model B+

step15

 

 

Agobo Software

Software for Agobo

Python

You can download the latest python software: as a RAR file, or from GitHub

Alternatively, you can use the following commands from your Raspberry Pi in the home folder. (open LXTerminal from desktop):

  • wget http://4tronix.co.uk/agobo.sh -O agobo.sh
  • bash agobo.sh

 

Files included

  • agobo.py This is the python library module, see the first few lines of the library for listing of all the exposed functions for controlling motors, LEDs and reading sensors
  • motorTest2.py – use the arrow keys on your keyboard to control the direction and speed of the motors
  • irTest.py – check the state of the IR line sensors
  • sonarTest.py – print the distance using the UltraSonic sensor
  • ledTest.py – flashes the white LEDs on Agobo. NOTE: This does not operate the neopixels on Agobo2, see the note below
  • switchTest.py – shows the state of the mode switch once per second
  • neopixel.py and strandtest.py – produce pretty patterns on the neopixel attached to PlusPlate and any extended ones see Adafruit’s blog for info

 

Setting up Agobo2 Neopixels

Before you can use the neopixels on Agobo2, you will need to install the necessary drivers. This is the same operation as for the PlayHAT, so let’s use the instructions for that. You can always move the files over to your Agobo folder afterwards

Ensure your Raspberry Pi is connected to the internet

$ sudo apt-get install git$ git clone https://github.com/4tronix/PlayHAT
$ cd ~/PlayHAT
$ sudo apt-get install python-pip python-dev
$ sudo python setup.py install

Now you can run the strandtest.py demo as follows:
$ sudo python strandtest.py

Agobo Hackable Robot for Raspberry Pi Model A+

Specification

  • Designed for Raspberry Pi Model A+ (Can also fit B+ and 2B using optional mountings)
  • Pre-assembled. Only requires front caster, battery holder and Pi to be screwed on and then push the wheels on.
  • Raspberry Pi plugs directly onto the main PCB
  • Two N20 size metal geared motors fully and individually controllable in software
  • Built in line-follower sensors with indicator LEDs
  • Separately controllable front LEDs left and right (on Agobo2 these are fully addressable RGB neopixels)
  • Power on/off switch and LED
  • Connector for optional plug-in ultrasonic distance sensor
  • Breakout header for a standard serial console cable (ideal way to program a headless Model A+)
  • Breakout I²C header for our IP Display dongle
  • Prototyping area to add your own sensors
  • Fully replicated 40-pin GPIO header so you can attach your own addons
  • Additional mounting holes to attach sensors or extra hardware

 

Optional Extras

  • Ultrasonic sensors (HC-SR04) which simply plugs into the connector at the front
  • Acrylic cover with mounting hardware to cover and protect the Raspberry Pi Model A+ (included as standard in Agobo2)
  • PlusPlate™ Additional prototyping board and mounting hardware. This allows a full size area to add your own electronics from a simple LED, to more complex items including integrated circuits, RF modules and neopixels. See separate specification. The board comes complete with single, ready-wired, neoPixel with interface to extend to many, and a position for nRF24L01 socket
  • Serial console cable which allows easy access to the Raspberry Pi command line without any setup required
  • Super short micro USB cable to tidy up the battery connection
  • Pre-loaded SD card with the latest Raspbian software and Agobo software (Python and Scratch)
  • Wifi dongle
  • Additional mounting accessories to enable mounting the Raspberry Pi B+ or Raspberry Pi 2 Model B

 

Software

  • A Python library module and examples can be downloaded directly onto the A+ (if it has an internet connection) or transferred via USB stick or console cable
  • ScratchGPIO supports Agobo as an Addon board type from release 6.xxx (TBD)

 

Links

 

Agobo Features Walk-Through

Agobo with Ultrasonic sensor, WiFi dongle and short USB cable added to standard build

(Agobo2 has the Raspberry Pi turned 90 degrees so that fitting the B+ and 2B is possible)

Agobo – The Hackable Pre-Built Robot for the Raspberry Pi A+

Base Build

  1. Pre-Built PCB with the following items pre-installed and ready to use
  2. 2 x Metal geared Motors
    1. Left motor on physical GPIO pins 19 and 21
    2. Right motor on physical pins 24 and 26
  3. Two InfraRed IR line sensors
    1. Left on physical pin 7 with Red indicator LED
    2. Right on physical pin 11 with Green indicator LED
  4. Two White LEDs at the front (Agobo v1 only. On Agobo2 these are replaced by full addressable RGB neopixels)
    1. Left on physical pin 15
    2. Right on physical pin 13
  5. Mode switch – or whatever you want to use it for on physical GPIO pin 16
  6. Ultrasonic uses physical pin 23 for BOTH Ping and Echo. Swapping the direction of this pin is handled within the python library and ScratchGPIO
  7. I2C pins broken out to 6-pin connector with 5v, 3.3V and Ground
  8. Serial pins connected to a convenient 4-pin male connector so serial console cables plug right in (includes power and ground)
  9. Fully replicated 40-pin GPIO connector and prototyping area with 5v, Ground and 3.3V strips for you to add your own sensors, LEDs, or whatever
  10. All other pins free to do what you want

 

PlusPlate

  1. Lots more prototyping area
  2. Designed so ICs can fit in 4 different rows with easy access to 5V, Ground and 3V distribution lines
  3. A great way of adding any sort of electronics
  4. Use the Acrylic cover to safely protect your designs
  5. Physical GPIO pin 12 is brought to a pre-fitted neopixel which is directly controllable in python (and ScratchGPOIO??)
  6. Both the input and the output to the neopixel is brought to an expansion header so your pre-fitted pxiel can be in parallel with or in addition to the first pixel in your strip or ring of pixels
  7. All unassigned GPIO pins (as well as 5V, 3.3V and Ground) brought to a separate row of accessible pads
  8. A position for a standard nRF24L01+ module using SPI connections
  9. With the PlusPlate™, the Agobo becomes infinitely hackable!

 

Assembling the Agobo Robot for Raspberry Pi A+

 Click on any image below to enlarge

*Note. Images still show the Agobo v1 build. Agobo2 is similar but rotated 90 degrees.

Basic Build

1. Check you have all the parts:

  • Agobo ready built main board
  • 2 rear wheels
  • Front caster bag containing read-assembled caster
  • Acrylic cover with “Agobo2” etched on
  • Battery holder clip
  • 16mm countersunk screw
  • M3 nut
  • 4 x 11 mm female-female pillars
  • 8 x 6mm screws
  • Battery with connector/charge cable
  • 4 male-female pillars (5mm)
  • 4 nylon washers

 

2. Fit the Front Caster

For Agobo2 this has already been done for you, so skip to Step 3

This is a fiddly task, but it is the only one. Once it is done, the rest is easy

agb10_02

Put the main ball in the housing, and the small balls into the “corners” as shown above

 

agb10_03

Put on the cover plate and hold it all together with your fingers, as you place it on the PCB

 

agb10_04

Then use the small (10mm) screws to fix it to the PCB.

That wasn’t so hard, right? (NB. If using the PlusPlate™, or wiring onto the replicated header pads, you will need to use the 3mm spacers and the longer screws – this is a much trickier operation)

 

3. Fit the Battery Holder

For Agobo2, the battery holder is fitted to the Acrylic plate, so skip to step 4

agb10_05

You will need the 5mm small acrylic plate, 20mm countersunk screw, M3 nut and the battery clip

 

agb10_06

Remove the backing plastic from the acrylic plate – it should be bright and transparent

Push the screw through from the top of the battery clip, through the acrylic plate, through the PCB and tighten the M3 nut underneath

 

4. Add the Mounting Pillars for the Pi

agb10_07

You will need the 4 female-female pillars (11mm) and the 8 screws (M2.5, 6mm)

 

agb10_08

Screw the 4 pillars into the PCB in the positions shown

 

5. Fitting the Acrylic Plate

agb10_12

 

6. Add the pillars

agb10_13

Screw the 5mm male-female pillars in to the 11mm pillars that hold the Raspberry Pi A+

 

3. Fit the Acrylic Cover

agb10_15

  • Peel off the protective covering from the acrylic plate (now it is nice and shiny!)
  • Screw the battery clip to the offset hole in the acrylic using the 16mm screws and M3 nut (the 5mm spacer acrylic piece is not required)
  • Now use the 6mm screws with the nylon washers to hold the acrylic cover to the small pillars
  • All done!

 

—–

Using with the PlusPlate

1. Check you have all the parts

agb10_16

To attach the PlusPlate you will have to do some light soldering.

First, fit the 2x20pin male headers to the main board as shown above

 

2. Re-Attach the Front Caster with spacers

agb10_17

Note: This is really tricky – take it carefully and patiently. There is a knack to doing it, which is described below, but it takes a few attempts before you can do it quickly.

You will need the longer screws and the 3mm spacers found in the bag with the front caster.

  • Prepare the front caster as before and hold in one hand
  • Hold the main PCB vertical (ie. resting on the back end (USB connector end)
  • Put one long screw through the hole in the PCB
  • Put a spacer over the screw so that it rests on it – remember, the screw is horizontal at this point. Gravity is your friend.
  • Screw into the caster assembly with the other hole of the caster upwards(careful, though as it is easy to over-tighten)
  • Now turn the caster into the correct position, and push the other spacer into position
  • Then, screw the second screw in.
  • Now, you can have a cup of coffee, or glass of wine, or whatever. You deserve it!

 

3. Add the Mounting Pillars

agb10_18

Use the 4 Male-Female 11mm pillars and screw each on in, holding the Pi in place

 

4. Prepare the PlusPlate

agb10_19

Solder the 40-way female header to the bottom of the PlusPlate

agb10_20

Push in the 40-way extended header

agb10_21

 

5. Connect the PlusPlate and Battery

agb10_22

Push the PlusPlate with extended headers into the male headers that you soldered onto the main PCB

 

agb10_23

Fix the PlusPlate with the 6mm screws (from the base build)

Add the battery clip to the PlusPlate using the 12mm countersunk screw

 

agb10_24a

Fit the battery and off you go!

 

You can also add the Acrylic cover with the PlusPlate

agb10_25a

Use the 5mm Male-Female pillars and mount the acrylic cover with the overhang at the front

Leave the battery clip fitted to the PlusPlate to reduce the overall height.