Difference between revisions of "OHMC2020 Hardware instructions"

From Open Hardware Miniconf
Jump to: navigation, search
(Chassis Preparation)
(Mount Raspberry Pi On Chassis)
Line 256: Line 256:
 
The car is now ready for mounting the Perception Module.
 
The car is now ready for mounting the Perception Module.
  
== Mount Raspberry Pi On Chassis ==
+
== Mount Perception Module On Chassis ==
  
Insert the 4 cable ties through the base plate. Start by going down through the slot, then back up through the round hole. When the cable ties are in position, drop a coloured plastic spacer onto the tail of each cable tie:
+
Attach the Lego pieces to the bottom of the Perception Module, leaving 2 holes at both the front and the back:
  
[[File:dc-90-pi-mount.jpg|600px]]
+
[[File:2020-dc-39-mounting.jpg|600px]]
  
Place the Raspberry Pi onto the tail ends of the cable ties, so that it sits on the coloured plastic spacers. Close the cable ties, gently tighten them, and clip off the ends:
+
Place the Perception Module on top of the acrylic base plate, and push the Lego pieces down into the base plate:
  
[[File:dc-100-pi-mount.jpg|600px]]
+
[[File:2020-dc-40-mounting.jpg|600px]]
  
 
== Mount Camera And Hat ==
 
== Mount Camera And Hat ==

Revision as of 08:56, 11 January 2020

Before You Begin

There are several steps where it's possible to destroy the Raspberry Pi, the camera, or other expensive parts of the kit. Please don't rush! Read these instructions carefully, and check before making any soldered connections, attaching the camera, or attaching power.

WARNING: Do NOT connect or disconnect items such as the servo or speed controller while power is applied. During testing we accidentally destroyed several servos by doing this. Make sure everything is powered down before doing ANY work on the car.

WARNING: Please put your car "on blocks" (wheels off the ground) when testing for the first time or after major changes. The cars can run away very fast, which would be unfortunate! Only put your car on the ground when you have confidence in its operation.

Parts Required

There are 6 major items included in your kit:

  1. 1/16th scale RC car chassis, with a steering servo, a motor speed controller, and a NiMH battery.
  2. NiMH battery charger.
  3. Raspberry Pi 4 and Pi camera (packed together in camera box)
  4. Laser cut acrylic and plywood frame parts.
  5. Partly-assembled "Dingo Cap" PCB.
  6. A bag of small parts.

For reference, this is a complete kit with all the parts spread out. It looks like a lot, but we'll be tackling it in easy stages:

2020-dc-1-all-parts.jpg

The parts bag should contain:

  • 1 x power pigtail (Tamiya connector with red and black leads)
  • 3 x rubber bands (only 2 required)
  • 4 x grey Lego pieces
  • 1 x black 40-way header socket
  • 1 x 128x64 pixel OLED screen (in plastic case)
  • 1 x 10-DOF IMU module (purple PCB with 8-pin header)
  • 4 x 12mm brass spacers
  • 4 x 5mm brass stand-offs
  • 4 x 6mm brass stand-offs
  • 4 x 12mm M3 bolts
  • 4 x M3 nuts
  • 2 x M3 washers
  • 2 x 4.5x4.5x7mm tact switches
  • 12 x 6mm countersunk M3 bolts
  • 2 x laser-cut camera mounts (straight slot)
  • 2 x laser-cut camera mounts (angled slot)


2020-dc-2-small-parts.jpg

You will also be given a micro SD card and adapter separately, pre-loaded with Raspbian and the necessary software.

Dingo Cap soldering

Most of the parts have already been fitted to the Dingo Cap, so you only need to install a few parts. This should be a simple assembly job if you already have experience with soldering, but if this is your first time it may seem daunting. We'll have instructors ready to help you through it, so don't worry, you can do it!

Warning: the assembly sequence is CRITICAL, because there are modules and connectors on both sides of the PCB. If you get the order wrong, it may be impossible to complete the assembly. Make sure you follow these steps in order, and check each step before you proceed to the next.

Step 1: Buttons

The kit includes 2 small buttons. These are commonly referred to as "tactile switches", or abbreviated to "tact switches".

Look carefully at the tact switches, and you will see that they have 2 pairs of pins that come out opposite ends of the body. This is to help you put the switch into the PCB the right way. Warning: if you find that you have to dramatically bend the pins to make them fit, you're probably putting them into the PCB the wrong way!

Insert the tact switches into the PCB in the spots labelled "SW1" and "SW2" near the bottom left corner. The pins should be coming out of the left and right sides of the switch as oriented in the photo below. If the pins are coming out of the top and bottom, you need to rotate it 90 degrees.

Make sure you're inserting the switches from the top of the PCB. There's nothing to physically stop you putting them in from the wrong side, so make sure the PCB is oriented as you see in the photo:

2020-dc-3-tact-switches.jpg

Push them flat against the PCB so they are straight, and use a blob of blu-tac to hold them in place:

2020-dc-4-tact-blu-tac.jpg

Turn the PCB over, and solder the pins in place from the bottom. This is why you need the blu-tac!

2020-dc-5-tact-soldering.jpg

Step 2: IMU Module

The IMU module is the small purple PCB with a row of holes on one edge. This module must be installed before the OLED, otherwise you won't be able to solder the connections.

Insert the 8-way pin header through the module from the bottom, which is the side without any parts. The pin header has long pins on one side, and short on the other. The short side goes through the module. Smoosh some blu-tac on to hold it in place:

2020-dc-6-imu.jpg

The pin header can move around a bit, so make sure it's perpendicular to the module. It should stick straight through like this:

2020-dc-7-imu.jpg

Turn the module over, and solder the pin header in place on the top of the board:

2020-dc-8-imu.jpg

After soldering just one pin, check that the header is still perpendicular to the board. At this stage it's still possible to re-heat the joint and adjust the position if you need to. Once more pins have been soldered, it's much more difficult to fix any alignment problems.

Remove the blu-tac, and insert the IMU module onto the Dingo Cap PCB.

Warning: The module will fit on either side of the PCB, but it must go on the bottom as shown here. The correct location is just above the "linuxconfau" logo:

2020-dc-9-imu.jpg

Use blu-tac to hold it straight, so that it is parallel with the Dingo Cap PCB:

2020-dc-10-imu.jpg

Turn the PCB over, and solder the pins in place:

2020-dc-11-imu.jpg

Use a pair of side-cutters to trim the extra length off the header pins.

Warning: Trimming header pins can be dangerous! If you just clip them off, they will shoot off at close to light speed and seek out the nearest eyeball. Make sure you cover the board with the palm of your hand when you cut the pin off. The photo below shows where to cut it, but there should be a hand covering the board:

2020-dc-12-imu.jpg

Step 3: OLED Module

The OLED module is installed in a similar way to the IMU, except that it comes with the pin header already installed which saves you the first step.

Note: The holes in the Dingo Cap PCB are a very tight fit for the pin header. Be very careful pushing it onto the board, and work it on slowly while keeping it parallal to the PCB.

2020-dc-13-oled.jpg

Do not attempt to push the module all the way down. The top right corner of the module will sit on top of a grey inductor, and the module must be pushed down until it is parallel with the Dingo Cap PCB. There will still be a gap between the black plastic spacer and the PCB. This is normal:

2020-dc-14-oled.jpg

Turn everything over, and solder on the pins from below:

2020-dc-15-oled.jpg

Step 4: Raspberry Pi Header

This is the trickiest part of the entire assembly process, but after soldering the previous joints you should be ready for this! Just take it slowly, and if it looks like anything is going wrong please ask for help immediately. It's easier to fix mistakes as you go, rather than fix them later.

Insert the 40-way Raspberry Pi header into the Dingo Cap PCB from below, and use blu-tac to hold it in place:

2020-dc-16-pi-header.jpg

Check that you've inserted the header on the correct side of the PCB, which is the bottom. The purple IMU module should be on the same side.

Turn everything over, and you should see the top of the Dingo Cap PCB with the header pins sticking through.

You will need to solder all 40 of the pins to the Dingo Cap PCB, without getting a "bridge" of solder between any pins. This is made a little more difficult because the OLED module gets in the way of the inside row of pins.

Begin by soldering one pin at each end of the header, so that it's held firmly in place:

2020-dc-17-pi-header.jpg

With just those pins soldered, check that the header is sitting flat against the PCB. You can adjust it now by re-heating the joints on the end, but you can't adjust it later.

Continue with soldering the rest of the pins. Because of the lack of clearance, it's best to do the inside row of pins first, and then do the outside row:

2020-dc-18-pi-header.jpg

Step 5: Power pigtail

There are 3 pairs of large gold pads on the edge of the PCB. 2 pairs aren't used for the miniconf: they're for different applications, including replacing the supplied NiMH battery with a LiPo battery.

Apply solder to the pair of pads closest to the coloured pin headers. This is called "wetting" the joint, and it will make soldering the wires on much easier.

Don't worry about keeping the holes clear. We're not going to use them for inserting the wires, they'll just provide an electrical connection between the front and back of the PCB. It's fine for them to be filled with solder:

2020-dc-19-power-pigtail.jpg

Hold the red lead of the pigtail against the solder pad closest to the coloured pin headers. Use the soldering iron to heat up the wire and the pad together, so the solder flows between them and makes a solid joint.

Warning: Because these joints are quite large, they will retain heat for a while and the solder will remain molten even after you remove the soldering iron. Make sure you hold everything very still for a few seconds after taking the iron away, otherwise you can burn yourself on the solder and mess up the joint.

2020-dc-20-power-pigtail.jpg

The result should be the power pigtail connected parallel to the PCB:

2020-dc-21-power-pigtail.jpg

Perception Module assembly

Take the Raspberry Pi out of the box, and insert the shorter (5mm) brass standoffs from the bottom. Be careful to use the 5mm standoffs: there are also 6mm standoffs in the kit, and they must be used in the right place. They look very similar so check them against each other to make sure you're using the short ones.

Screw the brass spacers on from the top of the Pi, and do them up tightly with your fingers:

2020-dc-22-pi-standoffs.jpg

Once all 4 corners are done the Pi should sit neatly on the standoffs:

2020-dc-23-pi-standoffs.jpg

Using your fingers, very carefully pull up the ends of the small grey clip on the camera connector until it "clicks" into the upper position. Do not pull the clip right off! It only moves a couple of millimeters:

2020-dc-24-camera-clip.jpg

Get the Pi camera out of its bag, and insert the ribbon cable through the slot in the Dingo Cap. Check the photo below for the correct orientation of all the parts. The silver contacts on the ribbon cable should be towards you in this picture, and there is a blue plastic layer on the other side of the cable:

2020-dc-25-camera.jpg

Carefully insert the ribbon cable into the Pi camera connector so that the silver contacts are almost completely inside the connector. Then use your fingers to gently push the grey clip back down until it clicks, which will lock the cable in place:

2020-dc-26-camera.jpg

Slide the Dingo Cap down the camera cable until it can be seated onto the Raspberry Pi. Push the Pi header into place, and then screw the 6mm brass standoffs in through the Dingo Cap. Do them up tightly with your fingers:

2020-dc-27-standoffs.jpg

Gently fold the camera cable over itself so that it comes directly up from the top edge of the PCB, and then sit the laser-cut side plate onto the Dingo Cap. Use 4 x M3 6mm countersunk bolts to attach it to the brass standoffs:

2020-dc-28-side-plate.jpg

Turn everything over, and attach the other side plate:

2020-dc-29-side-plate.jpg

Now it's time to attach the camera. There are 2 sets of camera mounts included: straight, and angled.

To mount the Perception Module on the Dingo Car, we want to use the angled mounts. This tilts the camera down towards the track when the car is driving. Straight mounts are also supplied so you can use the Perception Module for other applications, with the camera pointing directly ahead of the module.

Put the straight mounts aside and keep them for future use:

2020-dc-30-camera-mounts.jpg

The camera mounts go on the inside of the side plates, with the slot angled slightly forwards and the rounded corner towards the Raspberry Pi:

2020-dc-31-camera-mounts.jpg

Use 2 x M3 6mm countersunk bolts to attach each camera mount. The bolt screws directly into the plastic, but be careful not to strip the plastic by over-tightening:

2020-dc-32-camera-mounts.jpg

Guide the camera ribbon cable around the Perception Module, and slide the camera down into the mounts as shown. It will be a tight fit, and you may need to slightly spread the side plates.

The end result should look like this:

2020-dc-33-camera.jpg

Final mechanical integration

Prepare Raspberry Pi

Fit the

Chassis Preparation

Use a Philips-head screwdriver to remove the 4 black screws holding the rear spoiler mount onto the chassis:

Dc-20-remove-screws.jpg

Fit the laser-cut plywood bracket labelled "REAR" onto the chassis, using the original screws to go through the bracket and into the spoiler mount. It doesn't need to be very tight:

2020-dc-34-rear-mount.jpg

Put the 2 x 10mm M3 bolts through the chassis at the front and the laser-cut plywood bracket labelled "FRONT". Use the 2 x M3 nuts to secure the bracket. Once again, it doesn't need to be very tight:

2020-dc-35-front-mount.jpg

Use one of the Lego pieces to check which side of the clear acrylic base-plate is the best fit. Because of the angle of the laser, the base-plate has been tuned so that the holes on one side of the plate should be a very accurate fit for Lego. The other side is probably too large, so the Lego pieces won't clip into place firmly:

2020-dc-36-lego.jpg

Once you have determined the correct side for attaching Lego, bolt the clear acrylic base-plate to the larger plywood base plate using 2 x M3 12mm bolts, washers, and nuts:

2020-dc-37-bases-bolted.jpg

Slide the assembly down onto the chassis, while pushing the leads for the steering servo and the ESC (electronic speed controller) up through the slot on the right side of the car:

2020-dc-38-bases.jpg

The car is now ready for mounting the Perception Module.

Mount Perception Module On Chassis

Attach the Lego pieces to the bottom of the Perception Module, leaving 2 holes at both the front and the back:

2020-dc-39-mounting.jpg

Place the Perception Module on top of the acrylic base plate, and push the Lego pieces down into the base plate:

600px

Mount Camera And Hat

Be VERY careful with this part. If you insert the camera ribbon cable backwards, it can destroy both the camera and the Raspberry Pi. It's also very easy to physically break the connector.

Start by threading the camera cable though the slot in the hat, so that it's oriented as shown below. The blue part of the cable is on the other side, and the metal fingers are on the close side:

Dc-180-camera.jpg

The socket for the flex cable has a small black clip that rises up about 2mm from the connector. Very carefully raise it by prising it up from the ends. Don't break it off!

Then slide the flex cable into the connector. Check again that the blue side of the cable is against the black clip, as shown here. Then use your fingernail or a small screwdriver to gently click the black clip straight down into the connector. When it clicks down it will grip the flex cable and hold it tightly in place:

Dc-190-camera.jpg

When you are confident that the camera cable is inserted correctly, slide the Donkey Car Hat down onto the Raspberry Pi header. It should sit neatly on the rubber stopper:

Dc-200-camera.jpg

Feed the camera through the vertical slot in the camera mount, towards the front of the car. Bend it up and use the supplied double-sided tape to attach it to the top of the camera mount:

Dc-210-camera.jpg

Attach Steering, Speed Control, and Power

Feed the pair of servo cables up through the hole in the base plate. The shorter cable is the throttle. The longer cable is steering.

Plug the connectors into the 3-way headers.

The black wire goes to the "G" (GND) pin.

The red wire goes to the "V" (VCC, or power) pin.

The white wire goes to the "S" (Signal) pin.

Dc-230-servos.jpg

Insert the power cable with the ferruled end into the "+" screw terminal. You may need to loosen the screw first, to allow room for the ferrule to be inserted. Then tighten the screw down again. It doesn't need to be very tight: firm enough to hold the ferrule securely, but don't strip the screw!

There's nothing to insert in the "-" terminal. The board already has a GND connection through the speed controller (throttle) cable.

Dc-240-power.jpg

SD Card and Pre-Flight Check

Insert the SD card into the Raspberry Pi. The socket is hidden underneath the Pi, just near the handy indentation in the base plate. Amazing coincidence. Insert the card with the contacts up:

Dc-250-sd-card.jpg

All the hardware is now complete. The battery should still be disconnected.

On the top of the chassis (under the base plate) is a small power switch. They're in different places on different cars, but mostly they are near the middle and located under the hole near the camera mount. It has small writing on it saying On and Off. Put it in the Off position.

Your Donkey Car is now ready to be started.

Dc-270-complete.jpg

WARNING: There is no power control for the Raspberry Pi. The power switch controls the chassis (the steering servo and speed controller) but doesn't control the Pi. To control power to the Pi, you must connect and disconnect the battery. Don't leave the battery connected and leave the car, because the Pi will drain the battery all the way to dead flat if you're not paying attention.

More Information

The Donkey Car project is very well documented at www.donkeycar.com. We will step you through setup and training at the miniconf, but if you want to investigate further and learn more about it after the conference is over you can find a huge amount of information at the official Donkey Car site.