Building a Robotic Arm
Algorithms and ProgrammingElectrical EngineeringEngineering DesignStructures and Processes

Building a Robotic Arm

Grades 6–12
6 hr 25 min
24 steps
Groups of 5
Grades 7-12Grades 9, 10, 11, 12Grade 12Grade 6+2

Standards Alignment

Grades 7-12

  • 1.3.2: Follow protocols and practices necessary to maintain a clean, safe and healthy work environment.

Grades 9, 10, 11, 12

  • NS.10.PS.2: Research and apply appropriate safety precautions (refer to ADE Guidelines) when designing and/or conducting scientific investigations
  • P.8.PS.1: Calculate voltage, current, and resistance from a schematic diagram:<br /><table width="80%"><tr><td align="center">Ohm's Law</td><td align="center">Series</td><td align="center">Parallel</td></tr><tr><td align="center">V = IR</td><td align="center">V<sub>source</sub> = V<sub>1</sub> + V<sub>2</sub> + V<sub>3</sub>…</td><td align="center">V<sub>source</sub> = V<sub>1</sub> = V<sub>2</sub> = V<sub>3</sub>…</td></tr><tr><td align="center">I = <img src="http://www.purl.org/ASN/resources/images/D100025D/pg10.P.8.PS.1.1.gif" align="middle" alt="pg10.P.8.PS.1.1.gif" /></td><td align="center">I<sub>source</sub> = I<sub>1</sub> = I<sub>2</sub> = I<sub>3</sub>…</td><td align="center">I<sub>source</sub> = I<sub>1</sub> + I<sub>2</sub> + I<sub>3</sub>…</td></tr><tr><td align="center">R = <img src="http://www.purl.org/ASN/resources/images/D100025D/pg10.P.8.PS.1.2.gif" align="middle" alt="pg10.P.8.PS.1.2.gif" /></td><td align="center">R<sub>total</sub> = R<sub>1</sub> + R<sub>2</sub> + R<sub>3</sub>…</td><td align="center">R<sub>total</sub> = <img src="http://www.purl.org/ASN/resources/images/D100025D/pg10.P.8.PS.1.4.gif" align="middle" alt="pg10.P.8.PS.1.4.gif" /> + <img src="http://www.purl.org/ASN/resources/images/D100025D/pg10.P.8.PS.1.4.gif" align="middle" alt="pg10.P.8.PS.1.4.gif" /> + <img src="http://www.purl.org/ASN/resources/images/D100025D/pg10.P.8.PS.1.5.gif" align="middle" alt="pg10.P.8.PS.1.5.gif" />…</td></tr></table><br /><br />Where V = voltage, I = current, R = resistance
  • MF.1.P.7: Draw free body diagrams of all forces acting upon an object
  • MF.3.P.2: Calculate the magnitude of torque on an object:<ul><li>τ = Fd(sinθ)</li></ul>Where τ = torque
  • MF.2.P.2: Resolve two-dimensional vectors into their components:<ul><li>d<sub>x</sub> = d cosθ</li><li>d<sub>y</sub> = d sinθ</li></ul>
  • MF.2.P.3: Calculate the magnitude and direction of a vector from its components:<ul><li>d² = x² + y²</li><li>tan<sup>-1</sup>θ = <img src="http://www.purl.org/ASN/resources/images/D100025D/pg5.MF.2.P.3.gif" align="middle" alt="pg5.MF.2.P.3.gif" /></li></ul>
  • MF.2.P.10: Solve problems in circular motion by using centripetal acceleration:<ul><li>a<sub>c</sub> = <img src="http://www.purl.org/ASN/resources/images/D100025D/pg6.MF.2.P.10.1.gif" align="middle" alt="pg6.MF.2.P.10.1.gif" /> = <img src="http://www.purl.org/ASN/resources/images/D100025D/pg6.MF.2.P.10.2.gif" align="middle" alt="pg6.MF.2.P.10.2.gif" /></li></ul>
  • MF.2.P.5: Solve two-dimensional problems using the Pythagorean Theorem or the quadratic formula:<ul><li>a² + b² = c²</li><li>x = <img src="http://www.purl.org/ASN/resources/images/D100025D/pg5.MF.2.P.5.gif" align="middle" alt="pg5.MF.2.P.5.gif" /></li></ul>
  • NS.12.PS.3: Utilize technology to communicate research findings

Grade 12

  • SC.O.BII.1.1: implement safe procedures and practices when manipulating equipment, materials, organisms, and models.

Grade 6

  • Select the most appropriate materials to develop a solution that will meet the need.

Showing 12 of 20 standards.

Lesson Steps

1

Exploring the World of Robotics

25 min

Overview

 

Welcome to robotics! In this unit, you will embark on an exciting journey into the world of robotics! You will build your own robotic arm, learn different control paradigms, and program it to accomplish various challenges. You will get hands-on experience with coding and other cutting-edge technologies as they explore the potential of robotics

 


Introduction to Robots

 

So - let’s start with the basics. Ask yourself a few questions:

 

  • How can you tell if a machine is a robot?
  • What do we expect from a robot?

 

Reflect on these questions. Then watch the video below to help you understand the difference between robots and other kinds of machines.

 

 

A robot is different from a remote controlled machine through its autonomous capabilities and advanced programming. Autonomous means it can make its own decisions. While both robots and remote-control machines can perform tasks, a robot possesses the ability to make decisions and carry out actions without constant human direction.

A robot is designed to understand its environment through sensors, process information, and do complex tasks based on its programming.

This autonomy allows robots to adapt to changing situations, learn from experience, interact with their surroundings, and do meaningful things in the physical world. This is more sophisticated than a remote-controlled machine, which relies solely on external human commands for operation.

 


Bot or Not

 

Think about the definition of a robot. With that in mind, take a look at these videos and consider whether or not you would call each of these devices a robot.

 

Battlebots Ascender Vacuum Cleaner
DJI Mavic Drone Tesla in Full Self-Driving Mode

 


Assessment

 

Let's take a look at how these devices match up with our criteria for defining a robot

 

  BattleBots Vacuum Drone Tesla
Self Controled? NO YES NO YES
Intelligence? NO YES NO YES
Sensors? NO YES YES YES
Complex Tasks? YES YES YES YES
 Bot or Not? NO YES NO YES

 

Some of these devices are very close to something we might consider a robot, yet they do not meet every criteria as they were shown in the videos:

 

  • BattleBots: This video shows several humans controlling the Warhead, which is the point. These machines are technically not robots.
  • Ascender Vacuum Cleaner: These machines are robots.
  • DJI Mavic Drone: If controlled by human input, drones are not robots. If they fly autonomously, they are robots.
  • Tesla: A Tesla in full self-driving mode is a robot. If the human takes control, it is no longer a robot.

 


Learning Objectives

 

Because robots are used in many different fields such as medicine, manufacturing, logistics and security, these skills can prepare you for many potential careers. These videos will show you just a few examples of fields where robots are important. Click to watch each of them.

 

Factory Automation (Fanuc palletizing robot) Logistics/Warehouse (SQUID warehouse automation robot)
Food Preparation (ABB Robotics delta robots) Agriculture (Multiple companies)

 

In this Classbox you will build your own robotic arm and program it by using different control methods. Get ready to unleash your creativity and learn assembly techniques, circuit building and programming skills along the way. Below you can see what you will be able to do in this course - these learning objectives will become clearer as you work through the unit:

  • Given a set of materials and instructions, you will be able to assemble a 3DoF (3 Degrees of Freedom) robotic arm that meets the specified design criteria.
  • Given a set of increasingly sophisticated control methods, you will be able to apply them to achieve certain challenges.
  • Given a set of performance criteria and constraints (the challenges), you will be able to program the robotic arm to operate and accomplish a wide range of tasks.

In addition to achieving the learning objectives, this course will also provide you with opportunities to develop and build important durable and technical skills. You can apply these skills in many different careers. For example: robot operator, robot programmer, installation/maintenance technician, robotics engineer, or system integrator. Below are some of the key skills you will develop from completing this project:

 

Durable Skills

  • Critical thinking: You can analyze robotic arm performance characteristics in each control paradigm, identify patterns, and use this information to improve the robot’s performance.
  • Adaptability: You can adapt to challenges and changes in the project, such as unexpected technical issues or design flaws. They can also adapt to working with different team members and adjust their approach accordingly.

  • Learn how to learn: You can learn how to break down large, complex challenges into smaller, more approachable tasks that can be solved one at a time — enabling a solution to the large complex challenge.

Technical Skills

  • Mechanical assembly: You will learn how to assemble the linkages and joints in the robot so that it functions well, while learning how to successfully apply mechanical tools and fasteners.
  • Circuit building: You will learn how to build circuits and use microcontrollers, potentiometers, motors, and other electronics to construct and control the robotic arm.

  • Programming: You will learn how to enable autonomous actions by programming the robot using the Arduino Integrated Development Environment (IDE) and a scripting language to create robotic path programs.

  • Robotics: You will learn the principles of mechatronics and how to integrate different systems to build a functional robotic arm like those used in industry.

 

In any technical undertaking, there are three aspects common to all successful implementations. If you want to succeed, it is very important that you know the right methods to use in each situation (What), apply the right technique to each method (How), and execute all methods in the right order (When).

A more simple way of saying this: You need to know what to do, how to do it, and when to do it.

The method for assembling each type of joint has its own dedicated technique that makes it quick and easy to put together, but difficult if you don’t know what to do. You must apply these techniques when instructed and be careful to execute each step of the building process in the correct order - otherwise you may have to take apart much of what you have already built in order to assemble a later step.

 


About the Robotic Arm Classbox

 

Let’s open your Betabox Robotic Arm kit! It has everything you need to build an awesome Robotic Arm.

 

 

Let’s start with the parts that will become the robot itself. Most parts are acrylic, sometimes called by the brand name Plexiglas. Your robot may be a different color acrylic. Don’t worry. They are all built the same way.

 

 

We pre-mounted servo motors on several of the components. And we included a bag of hardware, with extras in case you lose one or two.

 

WARNING!

On these preassembled servo components, DO NOT TURN THE ATTACHED PARTS UNLESS OR UNTIL THE INSTRUCTIONS TELL YOU TO DO SO. 

You might break or damage the servos if you turn the parts too far.  Leave the parts in the orientations shown in the image below until you are instructed to adjust the part positions.

 

 

Your kit also includes electronics to control the robot arm. You will find an ESP32 microcontroller and breakout board, a breadboard, an AC-to-DC adapter, potentiometers, various small electronics components, and a PS4 Gamepad controller.

 

 

Although we don’t need it yet, we’ll be using the PS4 controller soon.  To be ready, make sure your controller is fully charged. There is a charger cable in the box with the PS4. You’ll need to plug it into a USB A port, like the one on your computer, or a standard 5VDC phone charger.

 

Planning Ahead:  Prepare the PS4 Controller for Future Use

Plug the other end into the charging port of the controller, which is a USB Micro-B connector.

 

ATTENTION! 

It may take up to two hours to fully charge the battery. While the battery is charging, the front LED (the “light bar”) will slowly blink orange. When charging is complete, the light bar will turn off. Don’t leave the charger plugged in longer than necessary.

 

Your kit also includes the handy WorkBench Base and Integrated Organizer (IO) from Phase Dock - it will keep all the small parts easy to find and safe while you build the robot arm. Finally, inside this workbench you will find some tools, a pencil, and some foam blocks that you can use to complete the challenges.

 

 

 

 


Video Walkthrough

 

2

Safety

30 min

Overview

 

In this section, you will learn how to protect yourself and your projects from injury or damage as you work with electricity and electronics. You will understand why electricity can be dangerous to humans, identify ways to avoid electrical damage, and describe methods to keep you, your workspace, and your project safe.

 


Protecting Yourself and Your Work

 

You may be asking yourself, "Just how is electricity dangerous?" To answer this question, we need to understand two aspects of electricity: the “pressure” pushing it through a wire, measured as voltage, and the amount of electricity that's being pushed through that wire, measured as amperage.

For you to get an electrical shock, you have to touch an exposed wire that has electrons being pushed through it by some force, measured in volts. Higher pressure is measured as higher voltage. Your skin does a great job of protecting you from this pressure (voltage)—but only up to a point. Once you cross a certain threshold—about 50 volts—the electrons can begin to penetrate your skin. That number gets lower if your skin is wet, and a lot lower if your skin is broken or cut. When this happens, you start to feel the painful sensation of an electric shock.

Now it gets dangerous because it’s not the voltage that kills you—it’s the amount of electricity flowing through your body (measured in amps) once the voltage opens the door. Even moderately high currents—as little as one amp—can burn you or stop your heart. How much current can flow from a wall outlet? Fifteen or twenty amps—and 120 volts can penetrate your dry skin.

That’s why we have created a safe learning environment that has low-voltage/low-current devices so you can experiment to your heart’s content without hurting yourself or someone else. You can still damage the electronic components you’ll use in this class, and even your computer under some circumstances, if you’re not careful. But it's very unlikely that you'll hurt yourself if you follow our precautions. So please pay close attention to this section; review safety practices often; and whatever you do, DON’T experiment with anything directly powered by a wall outlet. Always power your projects with a battery or a low-voltage transformer.

 


Avoid Ruining Your Kit!

 

As you know by now, power from a wall outlet can be very dangerous!

In these courses, we will never use wall outlets directly for power. When we do plug into the wall, we use transformers that convert high-voltage alternating current into the low-voltage direct current that your components are designed for, at a level that is safe for you.

You still need to be careful and pay close attention to the details. Even with low-voltage current, you can burn up the electronic components in your kit before you know what went wrong.

 

Review these guidelines to avoid burning the electrical components of your kit.

NEVER work on a circuit while power is applied. That means any kind of power, including batteries, and plugging your project into your laptop. Disconnect your USB cable from your computer before changing anything in your circuit.

Do not connect power to a circuit until the circuit is finished and you have carefully checked your work.

 

If you smell anything burning, immediately disconnect the power and examine your circuit to find out what went wrong. Be careful how you handle and connect batteries—especially rechargeable lithium-ion batteries. Batteries store energy, and the chemistry they use can be flammable. If you connect the two ends of a battery together, known as a short circuit, you can start an explosive fire that is very difficult to put out.

 


Keep Your Workspace Safe

 

Keeping you and your workspace safe is the top priority. Review the following guidelines to ensure your safety while you have fun with your breadboard:

 

 


Keep Your Components Safe

 

While most of the components you use are not too expensive, some are. As you advance in your work with electronics, components can become very expensive—hundreds of dollars each. Microcontrollers start at about $7 and can cost $100 or more. Even on the low end, if you fry several microcontrollers in a row, we may have to ask you to take out a loan to chip in for that.

Frying an electronic component (letting the magic smoke out of it) is almost always a sad thing. How does it happen? There are several ways:

 

 

Applying too much voltage to any component is a sure way to smoke it. Almost everything you will be using has a maximum rated voltage, and it’s your job to make sure that is never exceeded.

 

Common voltages in our projects are 12V, 5V and 3.3V. There is not much difference between 5V and 3.3V, but you will quickly fry a newer generation 3.3V microcontroller if you put 5V into one of the pins.

 

In some cases, applying the voltage but not providing current (measured in amps) will damage your components as well. Motors are a good example - they need enough electricity flowing through them to do their job. If they don’t get that, they won’t perform well, and may actually get hot and slowly die.

 

Some electronic components that use direct current are sensitive to the direction of the flow of electricity through them. They will only work with the electricity going in one direction. In extreme cases, they will die if the current is reversed. We say that these components have "polarity"

LEDs are a good example of a component with polarity. If you plug an LED into the breadboard backward, it will not light up. You might think it has burned out without realizing that it was just installed backward. The LED will not die; it just will not light up. So how can you tell which way to plug in an LED? Look closely at a new LED where the legs (called "leads") have not been bent and are still parallel. One lead is longer than the other.

 

 

That is not an accident. The longer leg is the POSITIVE lead; that wire always needs to be inserted into the breadboard TOWARDS THE DIRECTION THAT POWER IS COMING FROM. In a circuit by itself, we would connect the long lead to the red wire and the short lead to the black wire.

In this Fritzing diagram, you would insert the long leg of the LED in line with the resistor and the short leg of the LED into the GROUND power column. Because the LED is not large enough to reach that far, we use a short black jumper wire to connect the short leg of the LED to the ground/neutral column on the far side of the breadboard.

 

 


Keeping Electricity "In Bounds"

 

A key concept in working with electricity is knowing how to keep it “in bounds.” Most materials fall into one of two categories: they either conduct electricity or they don’t. If they do, we call them conductors; if they don’t, we call them insulators. Conductors are almost always wrapped in insulators to keep the electricity from leaking out to anything that could be damaged—like you.

Then, making sure that there is good insulation everywhere it needs to be is a key strategy in keeping you and your electronic components safe. Click each topic below to review the following safety guidelines!

 

Bare Wires

The single most important thing is to keep bare wires in different parts of your circuit from touching each other. Pay very close attention to any wire that is not covered in insulation. The bare part of the wire should never touch another uninsulated component that it is not supposed to be connected to. Double-check this before powering up your circuit each time.

Insulated Wires

Don’t use uninsulated wires where they may touch other energized wires or components. Always use insulated wires when possible.

Tool Inspection

Small cracks in the insulation on the handle of a tool, wire, or anything else can cause a nasty shock - or worse. Inspect your tools and equipment regularly.

Resistors

Use the proper resistor for your project. If a resistor is forced to dissipate too much power, it gets hot. Sometimes, it simply causes your project to fail. In worse cases, the resistor may cause materials around it (like the PCB) to catch fire.

Wire Treatment

Pulling on jumpers by the wires, instead of by the black plastic ends can break the connection and spoil your project. This is very difficult to troubleshoot, so treat your wires with care.

Wire Thickness

Also use the proper gauge (thickness) wire. Heavier wires can carry more current. Wires and power cords that are undersized can heat up and cause trouble. When in doubt, build it stout! Use the next larger gauge if you have any concerns that the wire you are using is too small. That will not be a problem in this course, but you should know about this rule as you move on to larger and more challenging projects.

Maximum Voltage

Tools such as multimeters have a maximum voltage rating. Know it and pay attention to it. People get electrocuted by using a meter beyond its voltage capability.

 


Avoiding Battery Fires

 

Finally, let’s circle back to lithium-ion batteries, which are another potential fire hazard just by themselves. The hazard occurs when the material in the battery becomes extremely hot and causes a fire and/or an explosion. This usually happens in one of two ways:

 

  • As the battery is being charged, the control circuitry may fail. If that happens, the charger will keep pumping more electricity into a battery that’s already full, and eventually, it gets hot enough to burn.
  • An even faster way to start a battery fire is to short-circuit a battery to itself or connect two batteries in a loop (positive on one battery to negative on the other). The batteries start to feed each other, get hot, and explode.

 

Lithium-ion battery fires are extremely dangerous because they can start by exploding, which sends shrapnel and burning chemicals everywhere—like into your eyes—and once started, they are hard to put out. Sometimes they have to burn themselves out. If the battery is close to you or in your pocket, that can be very bad.

Houses and cars have caught fire and people have been severely burned. Quality batteries have safety mechanisms – such as temperature monitoring – built into them to help prevent problems. If you buy batteries, look for these features.

Bottom line: Don't charge batteries unattended. Pay very close attention to polarity. Watch this video to see how a battery can easily explode:

 

  • Recall why electricity can be dangerous to humans
  • Identify ways to avoid electrical and battery damage
  • Describe methods to keep you, your workspace, and your project safe

Much of the information you have covered in this section considers circuits far more dangerous and powerful than what you will interact with - however, it is still important to have a broad understanding of electrical safety, as it will apply to the work you do with your robotic arm just the same.

3

Preparing Your Robotic Arm to Build

10 min

Overview

 

In this section, you will learn about various tools in your kit and prepare your robotic arm for assembly! This includes learning about two different types of screws and how to prep your robotic arm's plates if needed.

 


The Tools

 

Find the following tools and hardware:

 

  • Screwdriver
  • Paper Plate
  • Black Multi-Tool
  • Hardware Bag

 

▼ Figure 3.1.1

 


Preparing the Plates

 

Take a closer look at the plates for your robotic arm:

 

  • If you are the first person to use this kit, there may be paper backing on some of the parts.
    • If there is, use the scraper point of the MultiTool to remove the paper. The paper protects the acrylic while it is being manufactured and keeping it on can add unneeded friction to your robotic arm. Refer to the video below if you need help using the scraper.

If the parts do not have paper backing, yay! You can skip this step.

 


Nuts and Screws

 

Take a closer look at the nuts and screws that you have in your bag:

 

  •  Notice that you have three different lengths of screw.
    • You should use the screw gauge on your mult-tool before using any screw to confirm that it is the correct length.
      • Refer to Figure 3.1.3 below to see the different screws.
  • Notice that you have two different types of nuts
    • The flat nuts are standard hex nuts.
    • The ridged nuts are Nyloc nuts that are thicker and have a nylon ring on one side.
    • Refer to Figure 3.1.4 below and notice the difference between the two nuts.

 

▼ Figure 3.1.3

 

▼ Figure 3.1.4

4

Tab Assembly Method

10 min

Overview

 

You're going to start by building sub-assemblies that use the tab technique. By focusing on these components, you’ll become a pro with the tab assembly in no time.

 


Using the Tab Assembly Method

 

Tab joints always use M3x12mm machine screws and standard hex nuts. Make sure to use the gauge on the MultiTool to ensure you are using the correct hardware so that the process is as smooth as possible! 

If you follow the steps and tips below, the tab assemblies will become like second nature!

 

Tab Assembly Method Steps

 

Follow the steps below to practice the tab assembly method:

 

  1. Use the gauge to make sure you have an M3x12mm screw and a standard hex nut.
  2. Look for the letter next to the numbered joint.
  3. Insert the screw through the part so the screw head rests on the side with the “H”.
  4. Thread the standard hex nut onto the screw, just enough to get it started. The tip of the screw should be flush with the face of the hex nut.
    • Refer to Figure 3.2.1 below to see how this should look.
  5. Grab the mating tabbed part and make sure the joint numbers match.
  6. Align the hex nut with the cross-slot in the tab part.
    • Refer to Figure 3.2.2 below to see how this should look.
  7. Now align the tabs with the slots and mesh the two parts together.
  8. Gently tighten the screw ONLY after you slide the tabs into place. Make sure not to overtighten.

 

▼ Figure 3.2.1

 

▼ Figure 3.2.2

 

Reminder! 

Every tab joint is numbered and the part with the round hole where the screw enters is labeled with an “H”. “H” is for “Heads”: feed the screw from the front (labeled side) of the part so the head of the screw is on the side marked “H”. The matching part will have a cross-shaped hole and tabs marked with the same number.

5

Lower Arm Left Link Assembly

10 min

Overview

 

In this section, you will learn how to apply mechanical skills and carry out test routines while assembling the robotic arm. You will begin to build the lower arm left link, the first subassembly in the robotic arm. You will learn and apply one of the key assembly techniques used throughout the build.

 


Parts and Hardware

 

Find the following parts and hardware:

 

  • PN12 – Lower Arm Spreader
  • PN13 – Lower Arm Left Link
  • One M3x12mm machine screw
  • One standard hex nut

 

▼ Figure 3.2.3

 


Building the Lower Arm Left Link Assembly

 

Follow these steps to complete the subassembly:

 

  1. Use the gauge to make sure you have an M3x12mm screw and a standard hex nut.
  2. Look for the “H” on joint 22 of PN13.
  3. Insert the screw through PN13 so the screw head rests on the side with the “H”.
  4. Thread the standard hex nut onto the screw, just enough to get it started.
  5. Grab the mating part (PN12). Match joint number 22 on both parts.
  6. Align the hex nut with cross-slot 22 in the tab part.
  7. Align the tabs with the slots and mesh the two parts together.
  8. Gently tighten the screw ONLY after you slide the tabs into place.

You can also refer to the following video for visual instructions:

 

You have now completed this subassembly and may sit it to the side.

6

Upper Arm Assembly

10 min

Overview

 

In this section, you will continue how to apply mechanical skills and carry out test routines while assembling the robotic arm. You will begin to build the upper arm assembly of the robotic arm. This section will also require the use of the tabbed joint assembly method.

 


Parts and Hardware

 

Find the following parts and hardware:

 

  • PN16 – Upper Arm Left Link
  • PN17 – Upper Arm Spreader
  • PN15 – Upper Arm Right Link
  • Two M3x12mm screws
  • Two standard hex huts

 

▼ Figure 3.2.4

 


Building the Upper Arm Assembly

 

Follow these steps to complete the subassembly:

 

  1. Prepare the Upper Arm Right Link (PN15) by preloading joint 17.
    • Make sure the head of the screw is on the side marked “H”.
  2. Prepare the Upper Arm Left Link (PN16) by preloading joint 14.
    • Make sure the head of the screw is on the side marked “H”.
  3. Match the joint numbers to attach PN15 and PN16 to the Upper Arm Spreader (PN17).
  4. Gently tighten the screws to secure the three parts together.
    • Refer to Figure 3.2.5 below to confirm your assembly is correct.

 

▼ Figure 3.2.5

 

7

Penholder Assembly

10 min

Overview

 

In this section, you will build one of your end-of-arm toolings (EOAT) used on the robotic arm. This particular EOAT will allow your robot to carry a pen or marker for writing or drawing.

 


Parts and Hardware

 

Find the following parts and hardware:

 

  • PN29 – Penholder Top Plate
  • PN30 – Penholder Bottom Plate
  • PN31 – Penholder Left Sideplate
  • PN32 – Penholder Right Sideplate
  • Four M3x12mm screws
  • Four standard hex nuts

 

▼ Figure 3.2.6

 

Hint:

Arrange PN29 through P32 as shown in this diagram, or lay the parts on the Parts Guide you printed, with the labels facing up. This will make it easier to find the matching joint numbers.

 


Building the Penholder Assembly

 

Follow these steps to complete the subassembly:

 

  1. Prepare the Penholder Top and Bottom Plates (PN29 and PN30) for tab assembly by preloading them with screws and standard hex nuts.
    • Pay attention to the “H” and “T” markings to get the head of the screw on the correct side of each plate.
    • Use joints:
      • H32 and H33 on the Top Plate (PN29)
      • T34 and T35 on the Bottom Plate (PN30)
    • Refer to Figure 3.2.7 below to check your work.
  2. Align the hex nuts with the proper joints on plates PN31 and PN32
  3. Tighten the screws until secure being careful not to overtighten.
  4. Refer to Figure 3.2.8 below to check your assembly.

 

▼ Figure 3.2.7

 

▼ Figure 3.2.8

8

Gripper Assembly

10 min

Overview

 

In this section, you will build your other end-of-arm toolings (EOAT) used on the robotic arm. This particular EOAT will allow your robot to pick up and move different objects.

 


Parts and Hardware

 

Find the following parts and hardware:

 

  • PN21 – Gripper Baseplate + PN25 Active Jaw (with preinstalled servo)
  • PN22 – Gripper Lock Plate
  • PN23 – Gripper Left Sideplate
  • PN24 – Gripper Right Sideplate
  • One M3x12mm screw
  • One standard hex nut
  • Rubber band
  • Scissors

 

▼ Figure 3.2.10

 

Warning!

With preassembled components, DO NOT TURN THE SERVO or THE ATTACHED PARTS UNLESS OR UNTIL THE INSTRUCTIONS TELL YOU TO DO SO.

You might break or damage the servos if you turn the parts too far.  Adjust the parts as little as possible when necessary for the installation.

 


Building the Gripper Base Plate Assembly

 

Follow the steps below to assemble the gripper base plate:

 

  1. Prepare the Gripper Baseplate (PN21) for a tab joint by inserting an M3x12mm screw into the hole marked T25.
    • Remember, the “T” indicates that the screw head will be on the underside of this part.
    • Refer to Figure 3.2.12 below to check your preload.
  2. Being careful to match the joint numbers on both parts, insert the tabs of the right and left Sideplates into the Gripper Baseplate.
    • Refer to Figure 3.2.13 below to check your assembly so far

 

▼ Figure 3.2.12

 

▼ Figure 3.2.13

 


Securing the Servo and Sideplates

 

Follow the steps below to secure the servo and sideplates:

 

  1. Insert the Gripper Lock Plate (PN22) perpendicular to the Gripper Baseplate. It holds the Gripper Sideplates and secures the servo motor.
    • Make sure to notice that the plate will only fit in one way
  2. Push up the screw and nut at joint 25.
  3. Once the screw and nut are in place, tighten down the screw at joint 25.
    • Refer to Figure 3.2.15 below to see how to do this.
  4. Once the servo is captured, cut a half-inch piece of the rubber band.
  5. Loosen the Lock Plate screw (joint #25) just a little bit. Slide the rubber band bumper between the servo and the Lock Plate (PN22). Then gently tighten the screw again.
    • Refer to Figure 3.2.16 below to see how this should look.

▼ Figure 3.2.15

▼ Figure 3.2.16

9

Turret Assembly

10 min

Overview

 

In this section, you will be assembling the turret. The turret will allow your robotic arm to move from left to right.

 


Parts and Hardware

 

Find the following parts and hardware:

 

  • PN1 – Turret Baseplate with servo motor and PN28 Waist Servo Mounting Plate
  • PN2 – Turret Left Sideplate
  • PN3 – Turret Right Sideplate
  • PN4 – Turret Rear Spreader
  • PN5 – Turret Front Spreader
  • PN6 – Turret Stabilizer Strut
  • Five (5) M3x12mm screws
  • Five (5) standard hex nuts

 

▼ Figure 3.2.18

 

Warning!

With preassembled components, DO NOT TURN THE SERVO or THE ATTACHED PARTS UNLESS OR UNTIL THE INSTRUCTIONS TELL YOU TO DO SO.

You might break or damage the servos if you turn the parts too far.  Adjust the parts as little as possible when necessary for the installation.

 


Preparing the Baseplate

 

Follow the steps below to prepare the baseplate:

 

  1. Insert an M3x12mm machine screw through hole T1 from the underside.
    • “T” means “tails”.  This is the only tab joint that is approached from the back.
    • Refer to Figure 3.2.19 below to see how this looks.
  2. Barely start a standard hex nut on the screw.
    • Refer to Figure 3.2.20 below.

 

▼ Figure 3.2.19

 

▼ Figure 3.2.20

 


Adding the Stabilizer Strut

 

Follow the steps below to attach the stabilizer strut to the baseplate: 

 

  1. Slide the #2 tab of the Stabilizer Strut into the #2 slot in the Turret Baseplate.
  2. Slide the screw/nut you prepared on the Baseplate into the #1 slot on the Stabilizer Strut.
  3. Tighten the screw to install the Stabilizer Strut into the Turret Baseplate.
    • Refer to Figure 3.2.22 below to see how the assembly should look.

 

▼ Figure 3.2.22

 


Assembling the Turret Sideplates and Spreaders

 

Follow the steps below to assemble the turret spreaders and sideplates: 

 

  1. Grab the Sideplates (PN2 and PN3).
    • These parts look symmetric, but they are not. Take care to use the correct one.
  2. Using the tab assembly technique:
    • Insert M3x12mm screws into joints H5 and H8 on PN2
    • Insert M3x12mm screws into joints H6 and H7 on PN3.
    • Start standard hex nuts onto all four screws.
    • Refer to Figure 3.2.23 below to make sure your assembly is correct.
  3. PN4 and PN5 also are NOT symmetric and NOT interchangeable. Match the joint numbers to get the assembly correct. The engraved text on both spreaders must be right side up and facing out.
    • Refer to Figure 3.2.24 below to see the differences.
  4. Using the tab assembly technique:
    • Start with Left Sideplate (PN2) and Rear Spreader (PN4).
    • Fasten joint 5.
    • Connect the Front Spreader (PN5) to the Left Sideplate (PN2) at joint 8.
    • Tighten the screw just enough to capture it, not snugged fully into place. You should be able to wiggle the Spreaders slightly.
    • Refer to Figure 3.2.25 below to see how this should look.

 

▼ Figure 3.2.23

▼ Figure 3.2.24

▼ Figure 3.2.25

 


Finishing the Turret

 

Follow the steps below to complete the turret subassembly: 

 

  1. Make sure that the tab numbers match. The engraved labels on the Baseplate are facing upwards and so is the black servo horn.
    • Refer to Figure 3.2.26 below to see how this should look.
  2. Slide the tabs on the Baseplate that are labeled #3 into Sideplate PN2.
  3. Match the joint numbers in the Front and Rear Spreaders.
  4. Make certain the Baseplate tabs are fully engaged in the Right Sideplate slots.
  5. Tighten the screws on PN3.
  6. Snug down all the turret screws evenly. Don’t overtighten these screws. Just make sure the turret assembly is secure and square.
    • Refer to Figure 3.2.27 to see how the completed assembly should look.

 

▼ Figure 3.2.26

▼ Figure 3.2.27

10

Revolving Joint Assembly Method

10 min

Overview

 

In the following sections, we will build the parts of the robotic arm that use the revolving joint method.

Revolving joints are more complex than tab joints, and—if incorrectly assembled—can cause a lot more trouble. Your servos might burn out, and your robot might fail. Plus, you will have to do a lot of troubleshooting to find and fix the problems. It’s better to get everything right the first time! 

 


Revolving Joint Assembly Method

 

The most common joint in this robot is the revolving, or revolute, joint. This joint is used wherever two or three links of the arm are connected so they can pivot around the connection point.

Your robot will work best if these joints:

  • Use the correct hardware. (Screw length and nut type.)
  • Match the joint numbers.
  • “Layer” the parts in the correct order.
  • Allow the links to move freely without binding or locking up.
  • Don’t come apart in use.

Unlike the tab joints, revolving joints use different screw lengths and may have more than two components. Be careful to use the correct length screw. Revolving joints always use Nyloc nuts.

 

Reminder!

The circular hole for every revolving joint is numbered. Again, the numbered holes are also labeled. In addition to the “H” and the “T”, some parts are labeled “M”.

  • “H” is for “Heads”: feed the screw from the front of the part (the labeled side).
  • “T” is for “Tails”: feed the screw from the back side of the part (the unlabeled side).
  • “M” is for “Middle”: the “M” side of the part is in the middle of the joint. (This is less common.)

 

Using the Revolving Joint Assembly Method

 

Follow the steps below to practice the Revolving Joint Assembly Method:

 

  1. Use the gauge to select the proper length of screw.
  2. Select the acrylic links you need.
  3. Look for the joint number. The label on each mating part should have the same joint number.
  4. Line up the mating links in the correct order, with the correct orientation, so the through-holes in each link are lined up.
    • Double-check your plates to be sure you have the right parts and that they are in the correct order and direction.
  5. Put the screw through the joint in the correct direction.
    • Double-check the instructions before tightening the screw and Nyloc.
  6. Tighten the screw firmly but do not overtighten. It should just have enough torque (turning force) applied so that the links don’t rotate easily. 
  7. Once the screw is firmly tightened, hold the Nyloc nut steady with the wrench and back off the screw about a quarter-turn.

 

Testing Your Revolving Joints for Proper Torque

 

It is important that you test each revolving joint for proper torque. The torque test ensures your robot will function well and you should apply the torque test to every revolving joint right after you assemble it. As the robot gets built, some joints can no longer be tested by simply moving the parts.

 

Follow the steps below to test your joints for proper torque:

 

  1. Remove the wrench from the Nyloc.
  2. Gently try to spin the screw with two fingers
    • If the parts bind up at the screw, there is too much torque. Apply the wrench again and loosen the screw another eighth of a turn.
    • If the parts wobble, there is too little torque. Adjust the tightness until the screw turns smoothly without the parts wobbling.
    • If the parts turn smoothly with no wobbling or binding, it is the correct amount of torque.
  3. Test and adjust until you have the proper level of turning force on every revolving joint.

 

INCORRECT TOO TIGHT CORRECT “JUST RIGHT” INCORRECT TOO LOOSE
The links are “frozen.” The robot can’t move properly or at all.  The joint turns smoothly and freely without wobbling. It will move precisely and be easier to control. The links are floppy. The robot can move, but it will be less precise and harder to control. 

 

11

Upper Arm Actuator Subassembly

10 min

Overview

 

In this section, you will be using the revolving joint assembly method to create the Upper Arm Actuator. The servo for the Upper Arm functions as the robot's elbow.

 


Parts and Hardware

 

Find the following parts and hardware: 

 

  • PN9 – Left Servo Crank Arm (with preinstalled servo). This assembly is in the IO, not in the zip bag.
  • PN10 – Left Servo Main Link
  • One M3x10mm screw
  • One Nyloc nut

 

▼ Figure 3.3.3

 

WARNING!

With preassembled components, DO NOT TURN THE SERVO or THE ATTACHED PARTS UNLESS OR UNTIL THE INSTRUCTIONS TELL YOU TO DO SO.

You might break or damage the servos if you turn the parts too far.  Adjust the parts as little as possible when necessary for the installation.

 


Building the Upper Arm Actuator Subassembly

 

Follow these steps to complete the subassembly:

 

  1. Lay out the two parts with the servo on the side closer to you and the wire going left. PN10 is further from you. The notch of PN10 is up.
  2. Attach The Left Servo Main Link (PN10) to the Left Servo Crank Arm (PN9) at joint #11 using the revolving joint assembly technique.
  3. Check that PN10 is attached to PN9 on the same side as the black servo horn. You should be able to see the labels of both PN9 and PN10 on the side that is facing you.
    • Pay close attention to how joint #11 is assembled. This one is trickier than many of the others. Set the parts together and examine Figures 3.3.5 and 3.3.6 below to make sure everything is correct before you tighten the Nyloc.
  4. Tighten the screw gently until it bottoms out, then back it off by a quarter turn.
  5. Make sure you can easily rotate the screw with only two fingers with light resistance.

 

▼ Figure 3.3.5

 

▼ Figure 3.3.6

12

Lower Arm Parallel Link Subassembly

10 min

Overview

 

Now you will build the Lower Arm Parallel Link Subassembly. This will help give your robot structure and help it move correctly.

 


Parts and Hardware

 

Find the following parts and hardware: 

 

  • PN14 – Lower Arm Parallel Link
  • PN19 – Triangle
  • PN18 – Nylon spacer
  • One M3x14mm machine screw
  • One Nyloc

 

▼ Figure 3.3.6

 


Building the Lower Arm Parallel Link Subassembly

 

Follow these steps to complete the subassembly:

 

  1. Make sure to pay close attention to the order of parts here:
    • The Triangle is the bottom (notice the “M” on joint #20). That means the label for joint #20 of the Triangle is in the middle of the stack.
    • The nylon spacer sits on top of the Triangle at joint 20.
    • The Lower Arm Parallel Link (PN14) is on the very top (notice the “H” on joint #20). The head of the M3x14mm screw should be on this side of the joint.  
  2. Using a revolving joint, attach the Lower Arm Parallel Link (PN14) and a spacer to the Triangle (PN19) at #20.
    • Refer to Figure 3.3.8 below to see the completed subassembly.

 

▼ Figure 3.3.7

13

Add The Passive Jaw To The Gripper

10 min

Overview

 

You will now attach the passive gripper to the gripper frame that you built earlier. It is called a “passive” jaw because it isn’t powered by the servo. The Active Jaw is powered by the servo. The gears on the Active Jaw mesh with the Passive Jaw to engage and power it.

 


Parts and Hardware

 

Find the following parts and hardware:

 

  • PN26 – Passive Gripper Jaw
  • PN27 – White nylon Spacer (in your hardware packet)
  • Assembled Gripper Frame
  • One M3x14mm screw
  • One Nyloc nut

 

▼ Figure 3.3.8

 


Adding the Passive Jaw to the Gripper Frame

 

 Follow the steps below to attach the passive gripper to the gripper frame:

 

  1. Insert the M3x14mm screw into the T31 joint. 
    • Remember, “T” means that the screw head is on the unlabeled (back) side.
  2. Add the nylon Spacer (PN27).
    • Refer to Figure 3.3.10 below to see how this looks.
  3. Thread the screw between the Passive Jaw (PN26) and the Gripper Baseplate (PN21) using joint #31.
    • Take your time to get the Jaws to line up evenly before you tighten the joint. The tips of the Jaws should meet equally and mirror each other.
    • Refer to Figure 3.3.11 below to see how the alignment should look.
  4. Finish the joint with a Nyloc nut.
  5. Check your work! Use two fingers to spin the screw on the Passive Gripper Jaw to make sure it spins freely with little resistance.

 

▼ Figure 3.3.10

 

▼ Figure 3.3.11

14

Attach The Turret And Microcontroller To The Workbench

10 min

Overview

 

In this step, you will attach the Turret/Servo Assembly to the Phase Dock WorkBench. This stabilizes the robot arm for the initial wiring and servo tests!

The Turret/Servo Assembly functions as the robot’s “waist.” The waist allows the arm to turn to the left and right of the center by about 90 degrees, for a full range of 180 degrees, or half a circle.

You will add the ESP32 microcontroller (your robot’s “brain”) and connect the waist servo to test its function. The ESP32 may be the brains; but the breakout board helps the ESP32 by making it easier to connect wires and attach power.

 


Parts and Hardware

 

Find the following parts and hardware: 

 

  • Turret Sub-assembly
  • WorkBench Base
  • Two 8-32 machine screws.
    • These are the largest screws in the hardware packet! They will NOT fit in the MultiTool gauge!
  • Two brass thumb nuts
  • ESP32
  • Robot Arm Breakout Board
  • ESP32 Click Platform

 


Attaching the Turret

 

Follow the steps below to attach your robot arm to the WorkBench Base: 

  1. Thread the servo cable through the large handle opening on the WorkBench base.
    • Refer to Figure 3.4.2 below to see how this is done.
  2. Center and align the clear Turret Mounting Plate with two of the smaller holes in the WorkBench base.
  3. Insert the 8-32 screws from the top.
    • Refer to Figure 3.4.3 below to see how this is done.
  4. Use two brass thumbnuts to secure the Turret Mounting Plate from the underside of the WorkBench.
    • You can use the screwdriver to keep the screws from turning while you tighten the thumb nuts by hand from the underside of the WorkBench. Tighten the screws securely, but do not overtighten.
    • Refer to Figure 3.4.4 below to see how this is done.
  5. Thread the servo cable up through the WorkBench so you can connect it to the microcontroller.
    • Turn your WorkBench over so you are looking at the bottom side, with the waist servo facing away from you. We are going to use the right 8-32 thumbnut as a reference point.
    • Find the large hole diagonally down and to the right of the thumbnut.
    • Thread your servo cable through this hole.
    • Refer to Figure 3.4.5 below to see how this is done.
  6. Turn the WorkBench over and pull the cable gently through from the top.  Make sure the cable isn’t kinked anywhere and don’t pull it tight.
    • Refer to Figure 3.4.6 below to see the completed attachment.

 

▼ Figure 3.4.2

 

▼ Figure 3.4.3

 

▼ Figure 3.4.4

 

▼ Figure 3.4.5

 

▼ Figure 3.4.6

 


Attaching the ESP32 Microcontroller to the WorkBench

 

Follow the steps below to attach the ESP32 and Expansion Board to the WorkBench Base: 

  1. Remove the four screws that are in the WorkBench Arduino Click/Slide adapter.
  2. Line up the Expansion Board to the click and screw in at least two screws to keep it secure.
    • Avoid applying too much force to the screws so that you do not damage the board.
    • Refer to Figure 3.4.8 below to see how this should look.
  3. With the WorkBench sitting upright on your table and the robot facing away from you, locate a position behind the robot that leaves one row of large holes free. The Click won’t be perfectly centered due to the layout of the holes; it doesn’t matter if it is a bit left or right of center.
    • Refer to Figure 3.4.9 below to see how this should look.
  4. Orient the ESP32 so that its USB ports point to your left.  This is the best orientation to wire your servos to the microcontroller.
    • Refer to Figure 3.4.9 to confirm your ESP32 is in the correct orientation.
  5. Place the feet into the board first and then gently press down to lock it in place.

 

▼ Figure 3.4.8

 

▼ Figure 3.4.9

 


Wiring the Servo to the ESP32 Breakout Board

 

Follow the steps below to correctly connect the cable to the breakout board: 

  1. Find the pins labelled D27 and prepare to plug in the servo cable while keeping the following rules in mind:
    • The servo cable must be oriented correctly on the right pins on the breakout board or your robot will not work.
    • The connector on the servo cable must be attached so it is perpendicular to the breakout board, NOT parallel to it.
    • The orange wire must be facing outward when you place it on the pins.
  2. Double-check your work. If it is correct, gently push the connector down until it seats against the header base.
    • Refer to the Figures below to confirm everything is correct.

 

▼ Figure 3.4.10

▼ Figure 3.4.11

▼ Figure 3.4.12

 


Testing the Waist Servo

 

Your ESP32 has been preloaded with a program to help you test it. As you add sub-assemblies to the robot, you will power the robot to test and observe how it performs.
If something is stuck or wonky, you can troubleshoot each step along the way. This will make sure your robot is ready to perform its best for the next Units and Challenges.

 

Follow the steps below to test your waist servo: 

  1. Set the WorkBench base with the turret and ESP32 on a level and steady table or desk.
  2. Make sure there are no obstructions around the robot.
  3. Plug the AC-DC converter cable into a wall outlet and the barrel jack into your robot.
    • Refer to Figure 3.4.13 if you are having trouble finding the cable.
  4. Once the robotic arm starts moving it should do the following:
    • Snap to center.
    • Rotate back and forth through a 90-degree arc, going about 45 degrees to either side of the center.
  5. This movement will continue until you remove power.
  6. If you notice that your robotic arm is not behaving as expected refer to the troubleshooting section at the bottom of this page.

 

▼ Figure 3.4.13

 


Troubleshooting:

 

ALWAYS disconnect the AC/DC power cable before making changes to the wiring on the ESP32.


If the servo does not move:

  • Is the ESP32 getting power? Two red LEDs should be lit; one each on the ESP32 and the expansion board.
  • Are you plugged into a live outlet?
  • Is the barrel jack plugged in firmly?
  • Double-check your servo cable connection to the breakout board.
  • Is the connector on pin D27?
  • Is the connector perpendicular to the breakout board?
  • Is the orange wire facing Out and Away from the ESP32?
  • Is the connector fully seated down against the base of the pin headers?

Make any changes that are needed and try powering the ESP32 again.


If the robot moves but the turret does not move in an arc approximately 45 degrees to the left and the right of center:

  • Your Turret may not be oriented properly on the waist servo.  It will need to be “re-clocked.”
  • Discuss the problem with your Lab Instructor who can help resolve the problem.
15

Attach the Lower Arm to the Turret

10 min

Overview

 

In this section, you will attach the Lower Arm to the Turret.  The servo for the Lower Arm powers the robot’s “shoulder.”

As you probably know, humans like to apply human characteristics to animals and other non-human things.

You’ve already observed the waist, with its servo, allows the robotic arm to turn to the left and right just as your waist does.

The section you are about to build will be the shoulder joint. The shoulder enables the robot arm to move up and down.

 


Parts and Hardware

 

Find the following parts and hardware:

 

  • Lower Arm Left Link Sub-assembly
  • The Lower Arm Right Link (PN11) with its attached servo
  • Right Servo (shoulder) Clamp Plate (PN8)
  • U-shaped clear plastic Servo Spacer (No part number assigned; see the picture below and look for the spacer in the hardware packet.)
  • Two M3x10mm screws
  • One M3x12mm screw
  • Two Nyloc nuts
  • One standard hex nut

 

▼ Figure 3.4.14

 


Attaching the Lower Arm Left Link to the Turret

 

Follow the steps below to attach the Lower Left Arm Link to the Turret:

 

  1. Align your parts properly before you begin.
    • Make sure the engraving on both parts face the same direction.
    • Make sure the Lower Arm is on the left side of the Strut.
    • Make sure the head of the screw goes on the side labeled H28. The joint #28 of the Stabilizer Strut is labeled “M”, meaning that it will be in the middle of the two parts.
    • Refer to Figure 3.4.14 above to double-check that everything is oriented correctly.
  2. Attach the two parts using your screwdriver to reach the screw head through the servo cutout in the Turret Left Sideplate.
    • This is a revolving joint. It must turn freely. Test the torque before you go further.
    • Refer to Figure 3.4.15 below to see how this is done.

 

▼ Figure 3.4.15

 


Attaching the Lower Arm Right Link to the Turret

 

WARNING!

With preassembled components, DO NOT TURN THE SERVO or THE ATTACHED PARTS UNLESS OR UNTIL THE INSTRUCTIONS TELL YOU TO DO SO.

You might break or damage the servos if you turn the parts too far.  Adjust the parts as little as possible when necessary for the installation.

 

Follow the steps below to attach the Lower Right Link to the Turret:

 

  1. Preload joint H21 of PN11 with the screw and standard hex nut.
  2. Thread the end of PN11 through the rectangular servo hole in the Turret Right Sideplate (PN3).
  3. Straighten it and seat the servo squarely into the hole. The servo cable will exit toward the front of the robot.
  4. Mate the Right Link (PN11) with the Spreader (PN12) at joint 21.
  5. Tighten these two parts together using the tab assembly technique.
  6. Make sure the servo is properly oriented in the opening:
    • The notches in Lower Arm Left and Right Link (PN11 & PN13) must face towards the front of the robot. This allows the lower arm to reach as far down as possible.
    • The servo cable must point toward the front of the Turret.
    • Refer to Figure 3.4.16 below to make sure everything looks correct.

 

▼ Figure 3.4.16

 


Attaching the Shoulder Servo Clamp Plate

 

 Follow the steps below to add the servo clamp to the robot:

 

  1. Gently route the cable through the assembly
    • Gently thread the servo cable through the large cutout in the Clamp Plate. The labels on the Clamp Plate should face out.
    • Guide the cable back and thread it through the dogbone hole in the Clamp Plate.
    • Thread the cable through the dogbone in the Turret Sideplate.
    • Refer to Figure 3.4.18 below to see how this is done.
  2. Guide the Clamp Plate over the servo. Slide tab 4 into the number 4 retaining clips on the Baseplate.
  3. Gently snug the cable so it lies smoothly without loops or twists.
  4. When the clamp plate and the servo cable are nicely in place, insert an M3x12mm screw through the H10 hole in the Clamp Plate and through the Right Sideplate.
  5. Thread the Nyloc nut onto the screw. Partially tighten.
  6. Slide the U-shaped Servo Spacer between the Clamp Plate and the Sideplate. It should rest on the screw.
    • Refer to Figure 3.4.19 below to see how this is done.
  7. Gently snug the joint to hold the Servo Spacer in place.
    • Refer to Figure 3.4.20 below to see the final assembly.

 

▼ Figure 3.4.18

▼ Figure 3.4.19

▼ Figure 3.4.20

 


Wiring the Servo to the ESP32 Breakout Board

 

Follow the steps below to connect the shoulder servo cable to the breakout board:

 

  1. Plug the shoulder servo cable into the breakout board at pin D26. Make sure:
    • The cable is perpendicular to the board.
    • The orange wire is on the side toward the robot.
  2. Double-check that the cable is in the correct place.
    • Refer to Figure 3.4.22 below to confirm that it is wired correctly.
  3. Slide the cable down on to the header.

 

▼ Figure 3.4.22

 


Testing the Shoulder Servo and the Lower Arm

 

Follow the steps below to test the shoulder servo and lower arm: 

 

  1. Set the WorkBench with the partial robot on a level and steady table or desk.
  2. Make sure there are no obstructions around the robot.
  3. Plug the AC-DC converter cable into a wall outlet and the barrel jack into your robot and it should start doing the following:
    • Snap to center.
    • Rotate back and forth through a 90-degree arc, going about 45 degrees to either side of the center and move up and down.
  4. Observe the robot's motion to make sure it is smooth and that none of the servos are getting warm.
  5. If you notice that your robotic arm is not behaving as expected refer to the troubleshooting section at the bottom of this page.

 


Troubleshooting:

 

ALWAYS disconnect the AC/DC power cable before making changes to the wiring on the ESP32.


If neither the waist nor the shoulder moves:

  • Check if the ESP32 is getting power. Two red LEDs should light up; one each on the ESP32 and the expansion board. Are you plugged into a live outlet?
  • Double-check your servo cable connections to the breakout board.
  • Is the waist servo connector on pin D27?
  • Is the shoulder servo connector on pin D26?
  • Are the connectors perpendicular to the breakout board?
  • Are the orange wires facing Out and Away from the ESP32?
  • Are the connectors fully seated down against the base of the pin headers?
  • Make any changes that are needed and try powering the ESP32 again.

If the waist moves, but the lower arm does not:

  • Unplug the power.
  • Check the revolving joint for correct torque.
  • Look at the bottom of PN13 lower arm where it is attached to the turret. You can slide your screwdriver through the servo opening in PN2 to check it and adjust the torque if needed.
  • Power the ESP32 again.
16

Attach the Upper Arm Actuator Subassembly to the Turret

10 min

Overview

 

In this section, you will install the Upper Arm Actuator Subassembly onto the left side of the Turret.

Because this component attaches to the Turret, you might think it is also a lower arm. However, when it is in action, you will see that it controls the Upper Arm via the elbow joint.

 


Parts and Hardware

 

Find the following parts and hardware:

 

  • Upper Arm Actuator Subassembly
  • Left Servo Clamp Plate (PN7)
  • One M3x12mm screw
  • One Nyloc nut
  • U-shaped Servo Spacer (in the hardware packet)

 


Attaching the Upper Arm Actuator Subassembly to the Turret

 

Follow the steps below to properly install the Upper Arm Actuator Subassembly and servo clamp:

 

  1. Slide the Upper Arm Actuator through the cutout in the Left Sideplate (PN2) of the Turret.
  2. Carefully seat the servo in the opening. Again, the servo cable exits toward the front of the robot.
  3. Thread and adjust the servo cable the same way you did when assembling the Right (shoulder) Servo Clamp Plate.
    • Thread the servo cable through the large hole in the Clamp Plate (PN7).
    • Thread the cable through the dogbone in PN7, and through the dogbone on the left Sideplate of the Turret.
    • Carefully push the servo into the opening on the Turret Left Sideplate.
    • Adjust the Clamp Plate over the servo and, at the same time, gently snug the servo cable so that there are no loose loops or twists.
  4. Use an M3x12mm screw and Nyloc nut at the top of the Clamp Plate (joint #9).
  5. Slide the U-shaped Servo Spacer between the Clamp Plate and the Sideplate. It should rest on the screw.
  6. Gently tighten the screw to hold the Servo Spacer in place.
    • Refer to Figure 3.4.24 below to confirm that the assembly is correct.

 

▼ Figure 3.4.24

 

WARNING!

With preassembled components, DO NOT TURN THE SERVO or THE ATTACHED PARTS UNLESS OR UNTIL THE INSTRUCTIONS TELL YOU TO DO SO.

You might break or damage the servos if you turn the parts too far. Adjust the parts as little as possible when necessary for the installation.

 

Do not power and test the elbow servo yet. The elbow joint and Upper Arm are much more complex than the Lower Arm and we need to finish a few more steps before the next test.

17

Attach the Lower Arm Parallel Link and the Upper Arm Assembly to the Robot

10 min

Overview

 

In this section, you be adding the Lower Arm Parallel Link and the upper arm assembly to your robot arm. The axis of joints 13 and 18 is the elbow of your robotic arm. The Upper Arm Actuator and the elbow servo power and control the motion of the elbow which enables your arm to reach up, down, and out.

 


Parts and Hardware

 

Find the following parts and hardware: 

 

  • Lower Arm Parallel Link Subassembly
  • Upper Arm Subassembly
  • Two M3x14mm screws
  • Two M3x10mm screws
  • Four Nyloc nuts

 


Attaching the Lower Arm Parallel Link Subassembly to the Turret

 

Follow the steps below to attach the Lower Arm Parallel Link Subassembly to the Turret: 

 

  1. Line up the Lower Arm Parallel Link (PN14) so that it goes on the Right Sideplate of the Turret at joint #23.
    • Make sure that PN14 is attached on the OUTSIDE of the Sideplate. You need an M3x14mm screw and a Nyloc nut.
    • Refer to Figure 3.4.25 below to confirm that the plates are in the correct order.
  2. Using an M3x14 screw and Nyloc nut, secure PN14 to the sideplate.
    • Note the longer screw. It sticks out further than usual. It serves as a “stop” to prevent the Lower Arm from getting “stuck” at a bad angle.
    • Refer to Figure 3.4.26 below to confirm that the assembly is correct.

 

▼ Figure 3.4.25

▼ Figure 3.4.26

 


Add the Upper Arm Assembly

 

Follow the steps below to attach the upper arm assembly to the lower arm assembly: 

  1. Position the Upper Arm so that both Upper Arm Links are on the outside of the Lower Arm Links.
  2. Thread an M3x10mm screw through the Upper and Lower Arms at joint 13 from the outside of the Upper Arm. Start a Nyloc on this joint, but don’t tighten it.
    • Refer to Figure 3.4.27 below to confirm you have attached it correctly.
  3. Find joint 18 on three parts: the Upper Arm, the Lower Arm, and the Triangle (Upper Arm Actuator).
  4. Use an M3x14mm screw to attach the Triangle on the outside with the head of the screw on the Triangle (H18), the Upper Arm in the middle (M18) and the Lower Arm on the inside (M18).
    • Refer to Figure 3.4.28 to confirm that the plates are in the correct order.
  5. Finish joint 18 with a Nyloc nut and check for torque.
  6. Now, go back and tighten joint 13 and check for torque.
  7. Attach the Upper Arm Actuator to the Upper Arm at joint 12. The Actuator Link is on the outside of the Upper Arm.
  8. Use an M3x10mm screw and a Nyloc nut for this revolving joint. Check the torque.

 

▼ Figure 3.4.27

 

▼ Figure 3.4.28

 


Wiring the Servo to the ESP32 Breakout Board

 

Follow the steps below to connect the elbow servo to the breakout board:

 

  1. Align the elbow servo cable with pin D25. It is directly next to the shoulder servo cable on the breakout board. Make sure:
    • The cable is perpendicular to the board.
    • The orange wire is on the side toward the robot.
    • Refer to Figure 3.4.30 below to confirm that the cable is in the right position and orientation
  2. Gently push the cable down onto the header.

 

▼ Figure 3.4.30

 


Checking Your Joints

 

Before powering on the ESP32 to test:

  1. Check all six new revolving joints that you just added.
    • If any joint is too tight, the robot will not function properly.
    • Do a quick torque test on all six revolving joints before you power up the robot.
    • The left side has three (3) new revolving joints, and the right side has three (3) new revolving joints.
    • Refer to Figure 3.4.31 below to make sure you check all six joints.

 

▼ Figure 3.4.31

 


Test the Elbow Servo and the Upper Arm

 

Follow the steps to test the elbow servo:

 

  1. Set the WorkBench with the partial robot on a level and steady table or desk.
  2. Make sure there are no obstructions around the robot.
  3. Plug the AC-DC converter cable into a wall outlet and the barrel jack into your robot and it should start doing the following:
    • Snap to center.
    • Rotate back and forth through a 90-degree arc, going about 45 degrees to either side of the center, move up and down, and back and forward.
  4. Observe the robot's motion to make sure it is smooth and that none of the servos are getting warm.
  5. If you notice that your robotic arm is not behaving as expected refer to the troubleshooting section at the bottom of this page.

 


Troubleshooting

 

ALWAYS disconnect the AC/DC power cable before making changes to the wiring on the ESP32.


If the robot does not move:

  • Check if the ESP32 is getting power. Two red LEDs should light up; one each on the ESP32 and the expansion board. Are you plugged into a live outlet?
  • Double-check your servo cable connections to the breakout board.
  • Are the connectors on the correct pins?
    • Waist servo to D27
    • Shoulder servo to D26
    • Elbow servo to D25
  • Are the connectors perpendicular to the breakout board?
  • Is the orange wire facing Out and Away from the ESP32?
  • Are the connectors fully seated down against the base of the pin headers?
  • Make any changes that are needed and try powering the ESP32 again.

If the waist and the Lower Arm move, but the servos are getting hot or the Upper Arm movement does not move:

  • Unplug the power.
  • Check all six revolving joints for correct torque. Adjust any that are tight or rub.
  • Power the ESP32 again.
18

Attach The Upper Arm Parallel Link and First EOAT - the Gripper

10 min

Overview

 

In this section, you will finish your robot build by adding the upper arm parallel link and the gripper.  This will serve to create the wrist and fingers of your robot arm.

The wrist is where the end-of-arm tooling (EOAT) connects to the upper arm. The wrist in this robot is not powered. Observe how the robot moves; you will see that the Upper and Lower Parallel Links keep the EOAT parallel to the table. The jaws of the Gripper are effectively the robot’s “fingers” and are powered by the fourth and final servo

 


Parts and Hardware

 

 


Attaching the Upper Parallel Link

 

Follow the steps below to attach the Upper Parallel Link to the Triangle:

 

  1. Align the Upper Arm Parallel Link with the Triangle at joint 19.
    • Refer to Figure 3.4.32 below if you need a refresher on how the Upper Arm Parallel Link looks.
    • Make sure the Triangle is on the outside and PN20 is on the inside.
  2. Attach the two plates by using an M3x10mm screw and a Nyloc nut.
  3. Do a torque test on the joint.

 

▼ Figure 3.4.32

 


Attaching the End of Arm Tooling (EOAT) – the Gripper

 

Follow the steps below to attach the Gripper to the robot arm:

 

  1. Align the Left and Right Sideplates of the Gripper (joints 15 and 16) on the outside of the Upper Arm Links matching the joint numbers.
  2. Use two M3x10mm screws and two Nyloc nuts to attach the Gripper to the upper arm.
    • Refer to Figure 3.4.33 below to confirm the position.
  3. Align the Upper Arm Parallel Link (PN20) to joint 24 on the Right Sideplate of the Gripper.
  4. Use an M3x10mm screw and install a Nyloc nut in this revolving joint.
    • Refer to Figure 3.4.34 below to confirm your assembly is correct.
  5. Do a torque test.  Make sure the joints are secure but move freely.

 

▼ Figure 3.4.33

 

▼ Figure 3.4.34

 


 Connecting the Servo Cable to the ESP32 Breakout Board

 

Follow the steps below to route the gripper servo cable down the robot arm and plug it into the ESP32:

 

  1. Feed the servo cable through the dogbone on the Gripper Lock Plate (PN22).
  2. Being careful not to twist it, thread it down and up in the Upper Arm Spreader (PN17) and down and up in the Lower Arm Spreader (PN12).
  3. Leave enough “play” in the cable so that the arm can fully extend without the cable getting tight. There should be 1.5 to 2 inches of servo cable after it exits the lowest dogbone.
    • Refer to Figures 3.4.35 and 3.4.36 below to see the robot's full range of motion.
  4. Find the servo cable extender. You’ll use it to attach the gripper jaw servo to the ESP32.
  5. Plug it into the gripper servo cable. Match the wire colors: brown to brown, red to red, orange to orange.
    • Refer to Figure 3.4.37 below to confirm the correct orientation.
  6. Plug the gripper servo cable into pin D33. It’s next to D25 where you put the shoulder servo cable.  You should now have four connectors in a row on the ESP32.
    • Refer to Figure 3.4.38 below to confirm the cable is connected correctly.

 

▼ Figure 3.4.35

 

▼ Figure 3.4.36

 

▼ Figure 3.4.37

 

▼ Figure 3.4.38

 


Test the Gripper Servo and the Wrist Movement

 

Follow the steps below to test the wrist and gripper:

 

  1. Set the WorkBench with the partial robot on a level and steady table or desk.
  2. Make sure there are no obstructions around the robot.
  3. Plug the AC-DC converter cable into a wall outlet and the barrel jack into your robot.
  4. Observe the robot's motion to make sure it is smooth and that none of the servos are getting warm.
  5. Observe the end of arm tooling (EOAT). Does the Gripper move freely and stay parallel to the table surface?
  6. Observe the Gripper Jaws. Do they open and close smoothly?
  7. If you notice that your robotic arm is not behaving as expected refer to the troubleshooting section at the bottom of this page.

 


Troubleshooting:

 

ALWAYS disconnect the AC/DC power cable before making changes to the wiring on the ESP32.


If the robot does not move:

  • Check if the ESP32 is getting power. Two red LEDs should light up; one each on the ESP32 and the expansion board. Are you plugged into a live outlet?
  • Double-check your servo cable connections to the breakout board.
  • Are the connectors on the correct pins?
    • Waist servo to D27
    • Shoulder servo to D26
    • Elbow servo to D25
    • Gripper servo to D33
  • Are the connectors perpendicular to the breakout board?
  • Is the orange wire facing Out and Away from the ESP32?
  • Are the connectors fully seated down against the base of the pin headers?
  • Make any changes that are needed and try powering the ESP32 again.

If the waist, the lower arm, and the upper arm move, but the servos are becoming warm or even hot or the upper arm or wrist movement does not seem to be correct:

  • Unplug the power.
  • Check all revolving joints for correct torque. Loosen any that are tight or rubbing.
  • Power the ESP32 again.
19

Direct Control via Wireless Device

30 min

Overview

 

Now that you have constructed the robot, it’s time to learn how to make robots do useful work. In this section you will explore two different methods of controlling the robot.

 

You will run a fully automated program that moves a stack of blocks from one side of the workspace to the other, and then back again. Not only does this program test your robot’s functionality, but it also demonstrates how robots are used in the real world to do repetitive heavy-lifting tasks that humans don’t want to do.

 

You will also connect a wireless controller to the ESP32 microcontroller to run the robot. In this context, the PlayStation 4 (PS4) controller mimics the control pendants that are used to program industrial robots. Using buttons and joysticks on the PS4 controller, you will develop the ability to control the robotic arm precisely, accurately, and smoothly. This understanding is important for industrial and commercial robotics applications.

 

 


Automated Robotic Control

 

In this step, you will download and run a program that automates the robotic arm. It will move and stack two blocks over and over, back and forth, as long as the robot has power.

 

Robots can function in two fundamentally different ways.

 

Repetitive Tasks

Doing the same thing over and over again.

 

Most factory settings have the robot doing repetitive tasks, perhaps with minor variations in the pattern, but still in a predictable manner.

Automated Tasks

Automated (On their own)

 

Making decisions for themselves and reacting in entirely new ways.

 

 


Implement the First Automated Routine

 

To implement the first automated routine, you will do three tasks. Watch this video for the three tasks overview.

 

 

Vocabulary

 

 

 

 

  • Program, Code and Sketch are often used interchangeably by techie people.
  • These words basically mean the same thing.
  • The term “sketch” is used more frequently in the Arduino community. Because we are using the Arduino IDE, you may see more.
  • In this context, "sketch" means the same thing as computer code or computer program.

 

 


Powering Up Your Robot

 

So, your first task is to download the code and flash the microcontroller. To do this, you need to give it power. Because this is the first time running the robot, take extra care before giving it power.

 

Before you power it up, follow some simple safety instructions.

 

 

 

  1. Put the WorkBench back on top of the Integrated Organizer (the IO) to give the robot extra height in case the arm moves lower than expected.
  2. Clear all the area within a 12” radius around the robot so it doesn’t hit anything as it swings back and forth.
  3. Be ready to unplug the USB cable from your computer in case something happens that you don’t expect. This will stop the robot from moving without breaking it.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

It is also important to tuck the arm of the robot before powering it.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

YES - Tuck the arm back before powering

NO - Do not extend the arm before powering

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Your robot will start executing the previous program as soon as you plug it in. You should probably expect the waist servo to immediately start turning the entire robot back and forth.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Be ready to unplug the USB cable from your computer if something happens that you don’t expect. This will stop the robot from moving without breaking it.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

Task 1: Load the “Pick-and-Place” Program

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Now, it's time to Load the “pick-and-place” program. This will be the first time you will make your robot perform a useful task, but it will follow the same upload process you should be familiar with from testing your waist servo.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

If you need to, refer back to the Installing Arduino IDE document for your computer from Step 4 - specifically the Part Three – Flashing the ESP32 section.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Again, you should be able to locate the Program3--Auto_Block_Stacking file in your Robot Arm Program folder. If you cannot find it however, you can download another copy by clicking the button below.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Download Block Stacking Program

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Remember that the lower USB-C port on your breakout board does not communicate with the ESP32 to upload your program. Ensure that your USB-C cable is plugged directly into the ESP32.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Open the Program3—Auto_Block_Stacking.ino sketch file in the Arduino IDE.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Select the right Board (ESP32 Dev Module) and Port (whichever one is offered) in the Arduino IDE. You can do this by clicking the dropdown menu at the top-left of your IDE window. If your version of the Arduino IDE does not have this dropdown visible, you can also change your board and port selections by clicking on tools in the menu bar.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

The last step is to click on the Upload button at the upper-left corner of the Arduino IDE. It should look like a green arrow within a circle.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Be Patient! The code will take 30-60 seconds to compile and flash your robot. You can watch the IDE to see what is happening. Return to the Part Three – Flashing the ESP32 section of your Arduino IDE installation PDF if you have trouble with this

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

Task 2: Dry Run and Calibrate the Servos

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Once the pick-and-place program is successfully flashed to the microcontroller, the robot will start moving in the new routine. It will snap to attention at the center, wait for a second, and then go through its motions of grabbing and placing the blocks. To see what you can expect, watch the video.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Now it's time to do a dry run without blocks to learn if the robot should be calibrated. Note, that you always need to observe your robot carefully before making any changes.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Follow the instructions and click the yellow section to learn more about the process.

 

 

 

 

 

 

 

 

 

 

  1. With the robot still on the IO, place two blocks underneath the first position.
  2. Watch the arm move back and forth. It first grabs a phantom upper block, moves it to the other side, and sets it down. Then it comes back for a phantom lower block and grabs it. THIS IS WHEN THE ½ INCH MEASUREMENT APPLIES.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Tips About the Process

 

 

 

  • You want the gripper to clear the top of the blocks by about 1/2" or 12mm. This will put it at the right height above the table when we take the robot
  • If your robot is at the right height, the Z-coordinate on your robot is set. Congratulations! Skip ahead to Task 3.
  • If the gripper is too high or too low, you will need to adjust the height of the gripper by calibrating the servos. Go to the next slide.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Sometimes the linkage in the robot arm doesn’t exactly match the center point of the servo’s range of motion. If that is the case, you will need to calibrate the servo for the Z-coordinate.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Don’t worry, it’s not complicated. To calibrate, you will change one number in the code that runs the robot.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Go to the Arduino IDE and look at the code. Find Line Number 37. Adjust the value of the SHOULDER_OFFSET. Don’t change the value by more than 5 degrees at one time.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Gripper Too High

 

If the gripper is too high (that is, you observed that it is more than ½ inch above the calibration blocks), increase the SHOULDER_OFFSET value by 5, save the sketch, and reflash your microcontroller.

 

For example:

 

 

 

 

  • If the current value is zero, go to 5.
  • If it’s 10, go to 15.
  • If it’s a -10, go to -5, and so on.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Gripper Too Low

 

IIf the gripper is too low (it is less than ½ inch above the calibration block on the lower pass), decrease the SHOULDER_OFFSET value by 5, save the sketch, and reflash your microcontroller.

 

For example:

 

 

 

 

  • If the current value is 0, go to -5.
  • If it’s 10, go to 5.
  • If it’s -10, go to -15, and so on

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Once the gripper is at the right height on the lower pass, we’re ready to put it on the table and move some blocks!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

Task 3: Add Blocks and Go Live!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Let’s move some actual blocks! Unplug your robot from the computer to power it down. Never move the robot while it’s running.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

First take the WorkBench off the IO. Press the two release triggers on the handles and rotate the WorkBench and the robot up and off the IO. Watch this video to see how.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Set the robot on a clear spot on your desk or table and follow the instructions below.

 

 

 

 

 

 

 

 

 

 

  1. Set the robot on a clear spot on your desk or table.
  2. Power it up again. To make sure we have enough current, use the AC-DC power supply. Plug one end into the barrel jack in the ESP32 and the other into a wall socket.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Watch the arm move back and forth. The arm will return to center every time it completes a cycle. Pay attention to where it “placed” the last two phantom blocks.

 

Before it restarts the cycle, place two foam blocks in that spot. Adjust the location slightly, until the robot arm is stacking them consistently in the same position every cycle. See the video for guidance.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

When the blocks are in the correct place, your robot should repeat the task for a long time

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

Practice with the PS4 Controller

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Full automation is cool, but how do we get to that point? Isn’t there a way to control the robot directly?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

One way to teach the robot what to do is to use a gamepad controller like a Playstation PS4. It connects to the ESP32 microcontroller using Bluetooth communications. This lets us take advantage of the buttons and joysticks on the PS4 to control the robot in an intuitive, natural way.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Using the PS4 controller, you will learn to control the robotic arm quickly, precisely, accurately, and smoothly. This is important for industrial and commercial robotics applications – where speed is one factor, but accuracy, precision and smooth motions are also essential.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

This also serves as an introduction to a component of most industrial robots called a pendant. Pendants are used to move and teach industrial robots in many settings, so getting practice on a PS4 with this robot is a great way to start!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Wireless Pendant from Kuka

Wireless Pendant from Fanuc

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Now it's time to install Bluepad32.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Bluepad32 is the application that makes it possible for the PS4 controller to pair with the ESP32. You won’t get very far with the PS4 controller if you skip this step. The application will use bluetooth protocol, similar to the way you connect your headphones to your phone.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Open the Installing the IDE document again. Follow the steps in Part Five – Installing Bluepad32. If you need to view your Installation Guide again, you can download another copy by clicking below.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

We are going to flash our microcontrollers. We will be using a new board, new sketch, and new install procedures - pay careful attention. If you cannot locate your Program4--PS4_Controller file in the Robot Arm Program folder, you can download another copy by clicking below.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Download PS4 Controller Program

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

You’ve done this process already, but this one has a slight difference - We will use a new board along with the new sketch.

 

 

 

 

 

 

 

 

 

 

 

Once you have installed Bluepad32 the steps to flash your microcontroller are:

 

 

 

 

 

 

  1. Connect the USB cable between your computer and the microcontroller at the TOP connector, not the lower one.
  2. Open the appropriate sketch file in the Arduino IDE.
  3. Select the right Board (esp32_bluepad32) and Port (whichever one is offered) in the Arduino IDE. This can be done by using the dropdown at the top left of the screen OR by using the "tools" menu.
  4. Make sure the upload speed is set to 230400. This option can be found toward the bottom of the "tools" menu in the Arduino IDE.
  5. Click the Upload button at the upper-left corner of the Arduino IDE.
  6. If you experience issues during the flashing process, upload at a slower speed - select the 115200 upload speed from the "tools" menu instead and retry the upload

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

Pairing Your PS4 Controller

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Your controller should be charged since we plugged it in toward the beginning of the build process. Now it's time to use it with your robot. You must first establish communications - this process is called pairing, and you’re probably familiar with it from gaming.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Pairing requires a specific sequence:

 

 

 

 

  1. Press and hold the Share button on your PS4 controller.
  2. While holding down the Share button, press the Start button.
  3. Hold both buttons down until you see a fast double-flash from the light bar on your controller, then release both buttons.
  4. The light will continue to double-flash for a few seconds. Once the pairing is complete the light will turn to a steady blue. You can now control your robotic arm with the PS4 controller!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Notes About The PS4 Controller Connection

 

 

 

 

 

  • You will need to re-pair every time you restart, reflash or power-up the microcontroller on your robot.
  • The PS4 will shut down (lose communications) after a few minutes if you are not using it. To keep the connection alive, ping the robot every minute or so.
  • If the PS4 loses its connection, the light bar will go out.
  • To re-pair, you must power down the microcontroller on your robot. Wait 5 seconds, power it again, and then repeat the pairing sequence.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

If people think you are playing around because you are using a gamepad controller, you can set them straight.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

The PS4 controller works just like a pendant used by professionals to control industrial robots. The reasonable price and relative simplicity make it a good learning tool for students of robotics.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

In addition to the Start and Home buttons, you can see some other controls assigned to the robotic arm in the image on the screen.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Take some time to practice moving the robot arm. Focus on making smooth and coordinated movements with it. Have fun!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

Challenge: Use Direct Control to Stack Blocks

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Let’s start to learn how robots work in the real world by simulating some factory activities.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Stacking blocks is the perfect way to start. You will build coordination, learn how the robot moves, and better understand some of the challenges and limitations of all robotic arms. In this step, we will apply what you have learned about the wireless controller to practice stacking foam blocks.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

You will use the controller to make your robot pick up and stack foam blocks. This is very similar to a logistics process called palletizing. Palletization consists of placing goods on a pallet to consolidate the load, making it easier for handling equipment such as forklifts to transport it. See the images on the screen to have a better idea about the process.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Robots are great solutions to palletizing boxes

Robots can also be used to palletize bags and pails

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

To learn more about how robots can be used to palletize the goods, watch this video.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

So what are some of the reasons we might want to use robots for stacking pallets in the first place?

 

 

 

 

 

 

 

 

 

 

 

Doing more work

 

  • Robots can handle heavier things and can reach places that might be difficult for humans. They can do tasks that are impossible for us.
  • Right now, it's hard for employers to find employees to do jobs that are boring and tough on the body.

Staying Safe

 

  • Robots can work in dangerous situations without putting people at risk.
  • They prevent repetitive motion injuries for people. Even simple actions can hurt our bodies if we do them too much.

Feeling Better About Work

 

  • Use robots to do jobs that people never want to do. Think how you'd feel loading heavy bags of concrete onto a pallet for eight hours. Imagine doing that every day.
  • Robots can free workers to do more interesting and less physically tiring jobs. By using robots, we can hire people for their smarts instead of their muscles.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

Set up Stacking Challenge One

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Now we are starting the challenge. You’re going to start by stacking blocks into a tower in any location you choose. This challenge helps you focus on achieving precise control. It will also improve your understanding of the work envelope that the robotic arm can reach.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Instructions:

 

 

 

 

  1. Build the tower anywhere you want. Start your timer when you pick up the first block.
  2. Place the first block in your stack with the robot arm, not by hand. Add only one block to your tower at a time.
  3. Swing the robot to the side to pick up a new block; the block must be picked up from the table.
  4. How many blocks can you stack in a single tower? How long did it take you?

 

If you knock the stack down, you must start over. Reset the timer.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Comparison

 

 

  • The most blocks stacked one-at-a-time is 7, when the robot is sitting on the table. This is the highest stack possible with one block at a time, due to the reach of the arm (the extent of the robot’s work envelope).
  • The fastest time recorded to stack 7 blocks (August 3, 2023) is 3 minutes and 15 seconds (3:15).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Hints

 

 

  • Where you place the stack matters, because the work envelope of the robot can only reach maximum height in a narrow range of possible positions. To be able to stack 7 blocks you must find where the maximum height range is.
  • Likewise, where you place the gripper on the 7th block will determine if you can add it to the stack. If you grab the last block too high, you won’t have enough room under the block to place it on top of the stack of 6.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

Additional Challenges

 

 

 

 

 

 

 

 

 

 

 

Try some additional challenges to improve your understanding of the work envelope that the robotic arm can reach. Go through as many as you like before we move on to the next big one.

 

 

 

 

 

 

 

 

 

 

 

Next-Level Challenge 1

 

  • Unstack the blocks without knocking down the stack. How long does this take compared to stacking them in the first place?

 

Next-Level Challenge 2

 

  • Can you stack other items in the tower? Stand a whiteboard marker on the table. Can you grab it and set it vertically on a stack of blocks? How tall a stack can you put the marker on?

 

 

 

 

 

 

 

 

Advanced Challenge 1

 

 

  • Using the robot, stack a marker on a single block, then stack another block on top of the marker’s cap. Back the robot away from the stack with the block balanced on the marker.

 

Advanced Challenge 2

 

  • Set a second block on top of the block you stacked on the marker (balance two blocks, one at a time, on top of a standing whiteboard marker). Don’t touch any blocks or the marker with your hands. (Yes, this can be done!)

 

Advanced Challenge 3

 

  • Stand up a fine-tip Sharpie on the table, pick it up and stack it on a block. Then take the Sharpie off the block and set it back on the table, standing up.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

Set up Stacking Challenge Two

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Continue stacking blocks as high as you can in any location you choose.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

This challenge has a lot in common with the previous one. In addition to enabling you to build a higher stack, it teaches the importance of smooth control moves and accelerations. Depending on the payload the robot is carrying, this can be extremely important in a real-life situation.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Control the arm and the gripper to build a tall tower of blocks. The objective is to add two or more blocks every time, and to build the highest final stack possible.

 

Instructions:

 

All rules remain the same, with one exception:

 

 

 

 

  1. Add no fewer than two blocks to your tower at a time.
  2. Using the robotic arm, create the stack of blocks to be moved on one side of the work envelope. Place the initial stack wherever you like.
  3. Create and pick up a second stack with the robot to place them on top of your initial stack.
  4. How many blocks can you stack in a single tower using these rules? Can you stack other items in the tower?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

How do the Block-Stacking Exercises Make Palletizing Reliable and Efficient? Watch the video to learn more:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Compare your achievements with other students. Collaborate with your friends or classmates - consider building even higher towers by carefully placing entire stacks of objects on eachother. Do you have the precision to keep going?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

How does Stacking Blocks Apply to the Real World?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

We considered repeatability and precision in Stacking Challenge One.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

By asking you to pick up more than one block at one time, Stacking Challenge Two makes you think about and improve your control. Watch the video to see some common control failures.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

We had a lot of learning moments when we were learning how to control the robot. So don’t worry if you are not the smoothest right away.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Control means many things on a robotic arm:

 

  • Position, so the arm and the payload go where you want them to.
  • Smoothness, so you don’t drop or harm the payload.
  • Acceleration, so that you don’t strain the robot or its payload.
  • Speed, so that the job is done with optimal efficiency.  

 

As you experiment with your robot, think about what would be important if you were moving:

 

  • Heavy objects stacked high.
  • Objects that swing.
  • Open containers of liquid, like molten metal or paint.
  • People.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Control means that the robot goes only where it should, when it should, at an appropriate speed. Watch the video about this robot which goes where it should not go. What if it were a person instead of a “crash test dummy”?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

Challenge: Use Direct Control to Move Blocks to Target Locations

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Next you will apply what you have learned about the wireless controller to practice moving foam blocks to a targeted location. Again, this task requires precision, but, for the first time, accuracy is added to the challenge.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

This is more reflective of real-world tasks because most job requirements specify exactly where the payload must be placed. The robot and its programmer don’t get to make that choice.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

What does accuracy mean? Let's look at some examples in this video.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

So why does accuracy matter? It’s not enough to simply stack materials right on top of each other. In most cases, you will need to have the robot perform its tasks in a specific location or with specific timing.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

To understand how important accuracy and correct timing is in a real-world setting, watch as the robot in this video performs its highly accurate and precise tasks. Watch the video and try to think about each of the steps the robot performs and what could go wrong.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. The robot picks up an unfinished workpiece
  2. It uses an intermediate stage to change the orientation of the workpiece in its gripper.
  3. It places the workpiece in a shuttle that carries the workpiece to the grinding machine. Note that the shuttle holds two parts: an incoming unfinished workpiece, and an outgoing finished part.
  4. After sending the unfinished part in, the robot takes a finished workpiece out of the shuttle. It reorients the finished workpiece in its gripper using the intermediate stage again.
  5. It shows the finished part to a visual inspection machine. (You can see the shiny surface on the shank that has been ground smooth.) The gripper (the robot's hand ) spins the finished part so the inspection machine can check the entire part.
  6. When the robot "knows" the part is good, it puts the finished part into the "good-finished parts" section of the holding tray, and the process begins again.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Imagine what would happen if the robot was off by even half-an-inch. The blanks you saw in the video would fall over, or maybe knock over other parts in the tray. They could be damaged beyond use, or, worse, they might be picked up incorrectly by the robot on the next pass and damage the machine tool.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Machine tools can cost hundreds of thousands of dollars. They can be damaged very quickly because they can’t always tell when something is wrong.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Watch this next video to see what happens when accuracy fails. The robot doesn’t know and doesn’t care that there already is a bucket where it wants to place the second one. It is a “correct” spot, but at the wrong time, and the payload is destroyed. That is the programmer and the operator’s responsibility. The robot programmer and operator must make sure that everything runs smoothly, not just to keep production on time, but to prevent serious damage to equipment and products, and the people working nearby safe.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

Set up Target Challenge One

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Let’s start Target Challenge One. This challenge helps you learn about the importance of accuracy and control. It also improves your understanding of the envelope in which the robotic arm functions well. Print the PDF of excercise grids by clicking the button below. Print them one-sided (not back-to-back, use printer settings – Custom Size 100%) and grab the one labeled: Target Circles V2.0.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Download Exercise Grids

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Grabbing one block at a time, control the arm and the gripper to place blocks inside the target circles. The objective is to set blocks quickly and perfectly inside the target circles.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Instructions:

 

 

 

 

  1. Use the excercise grid labeled: Target Circles V2.0
  2. Set up your robot and place the Target Circles on the table as shown in the Image below.
  3. Align the black marks with the edges of your WorkBench. The Target Circles paper just “touches” the WorkBench; it is not “under” the WorkBench.
  4. Start a timer and measure how long it takes to move the blocks to their targets.

 

 

 

 

 

 

 

 

Check The Rules

 

 

 

 

 

 

  • All blocks must be “staged” and picked up from a location off the paper, as it is shown in the image
  • All four targets must have blocks in them when the challenge is complete.
  • Blocks fully in the middle target circle are worth 100 points.
  • Blocks partly outside the middle circle, but fully inside the outer target circle are worth 50 points.
  • Blocks partly outside the outer target circle are zero points.

 

Your Achievements

 

 

 

  • How many tries did it take you to get 400 points?
  • How fast can you place one block in each of the four targets and get no less than 300 points? (Have someone time you)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

Target Challenge Two

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

The next challenge combines Stacking Challenges with Target Challenges.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

This challenge will require you to achieve smooth control of the arm, precision, and accuracy – all three aspects of a successful robotic implementation. All aspects of your robot’s operation will be tested.

 

 

 

 

  • Control is needed to keep the stack of blocks from falling while you move them.
  • Control also builds speed to move the blocks efficiently, since time always matters.
  • Precision is important because the blocks need to be stacked squarely on top of each other so you can move them.
  • Accuracy matters. You get more points for accuracy in the challenge. But when a robot misses its target in real life, damage usually results.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Now, follow the instructions on the screen and start Target Challenge Two.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Picking up two (or more) blocks at a time, control the arm and the gripper to place blocks inside the target circles.

 

Instructions

 

 

 

  1. Set up your robot and place the Target Circles on the table as shown in the left image below. Align the black marks with the edges of your WorkBench. The Target Circles paper just “touches” the WorkBench; it is not “under” the WorkBench.
  2. Note that this is a two-stage challenge, because you start with all the blocks in a single level on the table (no pre-built stacks):
    • Stage 1 is when you build the two-block stack you’ll be moving.
    • Stage 2 is moving that stack accurately to its target location.
  3. Start a timer and measure how long it takes to stack the blocks and move them to their targets.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Check The Rules

 

 

 

 

 

 

  • All blocks must be “staged” on a single level (not pre-stacked) and picked up from a location outside of the paper.
  • Start by building your stacks. All two-block stacks must be created and moved from a location off the paper.
  • If a bottom block is fully in the middle of a target circle, that block and every block stacked on it is worth 100 points. Two blocks in a stack = 200 points. Three blocks in a stack = 300 points.
  • Stacks built on bottom blocks that are partly outside the middle circle, but inside the outer target circle are worth 50 points for each block in the stack. Two blocks in a stack = 100 points and so on.
  • Stacks built on blocks partly outside the outer target circle are worth zero points. Best to demolish those towers and start again.

 

Your Achievements

 

 

 

  • How many tries did it take you to get 1000 points?
  • How fast can you place one block in each of the four targets and get no less than 700 points? (Have someone time you)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

Final Challenge: Towers of Hanoi

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Next, you will tackle a classic computer science logic challenge, the Towers of Hanoi. It consists of three rods and a number of different-sized disks, which can be stacked in increasing size order on one of the rods. You can see how it looks below.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

The Towers of Hanoi is a classic puzzle invented by a French mathematician in 1883.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

This challenge is widely used for introductory computer programming courses because it forces the student to think through complex logic with many details to work out, so it moves beyond just the physical control of the robotic arm alone.

 

 

 

 

 

 

 

Real-world logistics, manufacturing and medical tasks often operate at very high levels of complexity. Being able to visualize solutions to these challenges is critical to becoming an effective robotics programmer, technician, or design engineer.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Solving this puzzle requires logical thinking and planning, as you need to figure out the right sequence of moves to successfully transfer all the disks to the target rod while respecting the rules.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

It's a great exercise in problem-solving, visualization, and strategic thinking!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

You can do the same exercise using blocks instead of discs. You just have to be careful to follow the rules. Instead of three rods, you can use three locations only, no more.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

The challenge is to move the entire stack of disks from one rod to another, following three simple rules:

 

 

 

  1. Only one disk can be moved at a time
  2. Each move involves taking the top disk from a stack and placing it on a different rod
  3. A larger disk can never be placed on top of a smaller disk.

 

The larger challenge is successfully picking the “target” rod or location in the least number of moves.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

Getting Ready for the Tower Challenge

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Let's get ready for the challenge. In this challenge, you will only have three levels, but you won’t be able to move all the blocks from a single level at one time.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Look at the image below. All three blue (bottom) boxes are VERY heavy. The orange (middle) boxes are medium weight. The green (top) box is light-weight and fragile. As you move boxes, you must always stack lighter boxes on top of heavier ones, and never stack a heavier box on top of any lighter ones.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Your color scheme may be different, but the rules still apply to top, middle and bottom blocks

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

In this challenge you will move the Tower to a new location without breaking any of the rules. This is a timed challenge.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Below is a video simulation of the Towers challenge being performed by a robot. You will notice that there are only three locations to move blocks to. And that the robot always recreated the entire layer in the location it was moved to.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

How fast can you figure out the logic and move the blocks? Click the link on the slide to watch the video.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

Begin the Challenge: Towers of Hanoi

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Now, it's time to actually try the Towers challenge. Click the button below and print the Towers of Hanoi template - position it in front of your robot arm just like the previous challenge. Read the instructions, check the rules, and test your skills! Good luck!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Download Towers of Hanoi Template

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Move the Tower to a new location without breaking any of the rules. This is a timed challenge.

 

Instructions

 

 

 

  1. Get the blocks ready. They don’t all need to be on the paper for this challenge. See the image below.
  2. Take some time to plan for moving the tower efficiently
  3. When you're ready, start a timer and use the middle staging area to move your tower to the finish area

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Check The Rules

 

 

 

 

 

 

  • You can only grab and move one block at a time.
  • Move all the blocks from each layer and recreate the entire layer each time you move it.
  • If more than one color of blocks are in one location, they must be stacked according to the rules.
  • If stacked, lighter boxes can only go on top of heavier boxes.
  • If stacked, heavier boxes can never go on top of lighter boxes.

 

Your Achievements

 

 

 

  • Start with the Tower on the left side. Finish with the Tower on the right side.
  • Start with the Tower on the right side. Finish with the Tower in the center.
  • Time yourself as you move and build the Tower. How fast did you do it?

 

 

 

20

Replace Gripper With Penholder

30 min

Overview

 

Directly controlling the robotic arm using a gamepad can be a lot of fun, but imagine doing that day after day, eight hours a day. Not only is it boring, but it is also impossible for a person to maintain the accuracy, precision, and repeatability needed to perform even simple tasks over and over.

 

What if there were an easy way to write instructions for the robot to follow? Then you could just call up those instructions whenever needed and the robot would do the right thing every time, because that's how robots work. You could also run the instructions in an endless loop if you need to do the same thing many times.

 


Automation With Arduino

 

As you might have guessed, there is such a solution— in fact, there are many ways in industry to program a robot for precise, accurate, and repeatable motion on demand. You are going to mimic some of these advanced programs in your simulated desktop factory using a great feature of the Arduino IDE called the Serial Monitor.

 

In this section, you will:

  • Control the motions of the robot more precisely and accurately
  • Combine many individual motions into a larger, more complex pattern that can do more useful things
  • Repeat this complex pattern again and again, or whenever you need it, without having to supervise or control the robot yourself

 


End-of-Arm Tooling (EOAT)

First, we will need to remove the gripper end-of-arm tooling (EOAT) from the robotic arm and replace it with the penholder end effector.

End of Arm Tooling (EOAT)

  • Refers to the equipment that interacts with parts and components, typically at the end of a robotic arm. For example, the welding torch on a robotic welding system; or a cutting tool on a CNS machine.

 

End effector

  • Another term for EOAT.

 


Why Change the EAOT?

In addition to grabbing things with the gripper, your robot can use a penholder to draw with a pencil or marker. When placed upside-down, a pencil can also be used as a tool to tap a keyboard. Or you can insert a stylus to interact with a touch screen on a tablet or a phone.

The penholder is conceptually the kind of tooling you would use if you needed to spray paint, weld the body of a car, draw lines, or press a keyboard.

It’s also how Computer Numerical Control (CNC) machine tools work. Imagine that the pencil is a router bit, and you can now cut complex shapes into wood, aluminum, or steel. Watch two demonstrations of how this works below. You can click and drag to interact with them as well.

Simulated Spray-Painting Demo

 

Machining Demonstration

 


Switch out the Gripper for the Penholder

The penholder EOAT is versatile, because you can slot different tools into it. You will discover how to mount different attachments into the penholder, allowing you to do many different things with one end effector.

An ordinary pencil can be used as a writing or drawing tool. When you turn it over, the eraser can be a good tapping tool because it won’t damage or discolor the surface. You can also try using the stylus from a tablet or smart phone in the penholder tool.

A technique was developed to make it easy to add any slim cylindrical tool to the penholder. You will find the elastics for this in your hardware packet.

Carefully read and follow the instructions. The image illustrates what the robotic arm with a penholder end effector looks like.

Remove the gripper

  1. Detach the servo cable
  2. Unthread the servo cable from the upper arm.
  3. Loosen and remove the screws and nuts at joints 15, 16 and 24. Put the hardware into your work plate. You will use it again in a moment.
  4. Set the gripper aside.
  5. Attach the penholder at joints 15, 16 and 24. Use the M3x10 screws and nyloc nuts you removed from the gripper. These are revolving joints, so remember to snug them down and then back off by a quarter-turn to get the right tension on these joints.
  6. CHECK YOUR WORK: Use the two-finger screwdriver torque test to make sure the revolving joints move freely and smoothly

 


Attaching the Different End Affectors

The penholder can be used to hold either a pencil or a washable marker.

 

The washable marker should fit snugly with no adjustments but check out the video below if you want to use a pencil in a compliant but sturdy way.

 

You can also use the eraser end of a pencil or the closed marker as a tapper to play different instruments like the piano you see below.

21

Using the Serial Monitor

30 min

Overview


 

At the lowest level, all robots have highly controllable motors connected to some type of mechanical linkage. To make precise and accurate motions, you need to tell those motors exactly how far to turn, what direction to turn, and when to stop. There are different ways to do that, but it comes down to sending a specific signal to each motor at the right time. In this section we will explore using the Arduino serial monitor to send your robot direct commands - and why it might be useful for you to do this in the first place.

 

 


Direct Control vs Commands

 

In Step 9: Direct Control via Wireless Device, you sent signals to your robot via a PS4 controller in “real time”, which means the robot responds exactly – but only – when it receives inputs from the gamepad.

 

In the first exercise in of this section however, you flashed the robot with a program that directed it to move a stack of blocks back and forth. We used this program to help us calibrate the robot arm for use with the PS4 controller, but the initial program is one example of using code to control the robot.

 

But that approach has limitations. Before clicking the dropdown, what do you think they might be?

 

Limitations of Using Code to Control a Robot

 

 

 

  • Once you load that program, that’s all the robot can do.
  • To do something new, you must go into the Arduino IDE, make changes to the original program, and reflash the robot.
  • If your changes weren’t quite right, you must repeat the entire process and try again.

 

 

The instructions you uploaded and the signals you sent via a bluetooth controller in the previous steps tell each of the motors what to do. But wouldn't you rather tell the end effector where you want it to go and do, and let the computer figure out how to move the motors to get the robot there?

 

Is there a way to do that? The answer of course is YES - and you will learn more about how this is done through the remaining steps of this project

 

 


Introducing the Arduino Serial Monitor

 

There are two parts to communicating back-and-forth with the microcontroller in real time.

 

1. The Arduino Serial Monitor Itself

 

The Serial Monitor is built into the Arduino IDE. The Serial Monitor does two things:

 

 

  • It accepts and displays the data that the microcontroller sends to your computer. That helps you understand what is happening with the microcontroller, and therefore, with whatever it is controlling. In this case, your robot.
  • It allows you to send commands from your computer to the microcontroller. If the microcontroller has been flashed with a program that lets it interpret these commands, it can respond to them in real time, which is very helpful.

 

IMPORTANT: For the Serial Monitor to work, your computer must be connected to the ESP32 via the USB cable. This allows data to flow in both directions

 

2. Creating a Robot Language

 

When the microcontroller is flashed with the “language program” it will be able to translate human-input instructions into output-actions that the robot understands and will act on.

 

 

For this step we will be using the Program5--Serial_Monitor file available in your Robot Arm Program project folder.

 

Make sure you can locate this before moving on. If you cannot, click the button below to download a new copy.

 

Download Serial Monitor Program

 

Important: When you flash this program, be sure to select the ESP32 Dev Module without bluepad. This is a necessary step.

 

 

By now you should already be familiar with how to flash programs to your robot arm. If you need help, refer again to Part 3 Flashing the ESP32 of your Installing the IDE document. If you need to download it again, click the button below that matches your computer.

 

 

 

Now, let’s start talking to your robot with the Serial Monitor! First remember that we have to be plugged into the ESP32 directly, and not the lower USB-C port.

 

YES - Plug the USB-C cable into the ESP32, the top layer.

NO - DO NOT plug the USB-C cable into the breakout board, the bottom layer.

 

Steps to flash your microcontroller.

 

 

 

 

  1. Connect the USB cable between your computer and the TOP connector on the microcontroller stack. See the image below.
  2. Open the appropriate sketch file in the Arduino IDE
  3. Select the right Board (ESP32 Dev Module) and Port (whichever one is offered) in the Arduino IDE.
  4. Click the Upload button at the upper-left corner of the Arduino IDE.

 

 

Program5—Serial_Monitor.ino uses the Serial Monitor to control the built-in LED light on the top of the ESP32 that controls your robot. This LED is a convenient way to test whether you’ve connected successfully because you don’t have to wire anything — it’s always ready to go.

 

This program lets you send five different commands to the microcontroller; each command does something different with the LED. Watch the video to see how this is done.

 

 

Now let’s open the Serial Monitor and try these out for yourself. In the Arduino IDE, there are two ways to open the Serial Monitor.

 

Option One

 

  • Use the menu at the top of the IDE. Choose Tools > Serial Monitor.

 

Option 2

 

  • Use the hotkey, which is to press Ctrl+Shift+M (“M” for “Monitor,”) at the same time

 

Both methods will have the same result: a new window will open in the lower half of the IDE screen. This new window is the Serial Monitor.

 

Note that your microcontroller must remain connected to your computer with the USB cable, and the IDE must acknowledge the microcontroller before you can proceed.

 

Next, set the baud rate in the Serial Monitor. Baud rate is a measure of how many bits of information per second are sent between two electronic elements.

 

The baud rate in your sketch MUST match the baud rate setting in the Serial Monitor, or your communications will not work.

 

Look at Line Number 23 in the sketch, and you’ll see the instruction Serial.begin(9600). This sets the baud rate to 9,600 bits of information per second.

 

 

 

Next, you need to set your Serial Monitor to match this number.

 

 

  1. Look at the upper-right corner of the Serial Monitor window; at the far right you will see a pulldown list with different baud rates.
  2. Choose 9600 baud from this list and you are ready to begin communicating!

 

 

 


Testing Commands

 

With the sketch loaded successfully to your microcontroller, let’s use the Serial Monitor to test some commands.

 

First, pay attention to the state of the blue LED before you type anything into the Serial Monitor. Is it ON or OFF?

 

With each of these command tests, make note of what you actually observe and click the HINT to double check what you should be observing.

 

HINT

 

  • The LED is OFF by default when the program first starts to run

 

 

As you move on and begin to enter actual commands, keep in mind that all your commands must be typed into the Message bar (see the image below) at the top of the Serial Monitor. Hit the <ENTER> key when you are ready to send.

 

 

 


Test Command #1

 

 

 

  1. Type a “Y” or a “y”. The program is not case-sensitive.
  2. What does the blue LED do?
  3. What does the serial monitor readout say?

 

HINT

 

The LED Light

 

  • It turns ON and stays ON. It may take one second before doing so, but that is programmed into the instructions.

 

The LED Serial Monitor readout

 

  • It will say that the LED has been turned on

 

 

Test Command #2

 

 

 

  1. Type another “Y”
  2. What does the blue LED do now?
  3. What does the serial monitor readout say?

 

HINT

 

The LED Light

 

  • The light doesn't change (you told it to turn ON when it was already in the ON state)

 

The LED Serial Monitor readout

 

  • The microcontroller was smart enough to know this, and has informed you that the state didn't change. The new message is toward the bottom and it tells you the LED was already on

 

 

Test Command #3

 

The microcontroller is keeping track of the state of the LED, as well as feeding that information back to you.

 

This tells us that the information is bi-directional — that is, it flows to the microcontroller (when you send a command) and from the microcontroller back to the serial monitor with status updates displayed in the main window of the Serial Monitor. Knowing this, try another command:

 

 

 

 

  1. Now type an “N” or “n”
  2. What does the blue LED do now?
  3. What information does the microcontroller feed back to you?

 

HINT

 

The LED Light

 

  • After a pause of one second, the LED turns OFF

 

The LED Serial Monitor readout

 

  • The microcontroller not only tells you whether the state changed, but it also informs you how long the previous state lasted. It is keeping track of time as well as the state of the LED

 

 

Test Command #4

 

You can also flash the LED, as if you were sending a coded message.

 

 

 

  1. With the LED either ON or OFF, type "1" and hit <ENTER>
  2. What does the LED light do?
  3. What happens if the LED is already ON when you enter the “1”?

 

HINT

 

 

  • The LED stays off for one second, then it flashes quickly for less than a second, and then stays off.
  • If the LED was on, it would turn off before starting the flash pattern.

 

 

You can try this with other numbers

 

 

 

  1. With the LED either ON or OFF, type “2” and hit <ENTER>, and after that, try a “3”
  2. What does the LED light do?
  3. What happens if the LED is already ON when you enter the “2” or "3"?

 

HINT

 

 

  • As before, the LED stays off for one second, and then it flashes quickly. But it flashes as many times as the number you entered in this case. Then it stays off when the flashing is complete.
  • If the LED was on, it will turn off before starting the flash pattern.

 

 

Test Command #5

 

All of the options you tried in the previous steps show that we can send an infinite number of commands to the microcontroller from the Serial Monitor.

 

Also, there may be unexpected (but beneficial) behaviors coded into this simple program. Let's try some of them.

 

 

 

 

  1. Type “123” (no spaces) and hit <ENTER>
  2. What does the LED light do?
  3. What does this imply that the microcontroller is doing with the commands it receives?

 

HINT

 

 

  • The LED flashes once; waits a second; flashes twice; waits another second; then flashes three times.
  • Instead of processing only the first command it recognized and ignoring everything else, it stores and queues the commands for processing in the order they were entered

 

 

We can test this same behavior by using "Y" and "N" in place of numbers

 

 

  1. Type “YNYN” (no spaces) and hit <ENTER>
  2. What does the LED light do?

 

HINT

 

  • The microcontroller is once again queuing these commands and executing them in order

 

 

Testing Commands #6

 

 

 

 

  1. Now turn the LED off (use the letter “N”); then enter a string of letters for which no commands have been programmed, but include only ONE “Y” somewhere in the middle of the string.
  2. For example
    • with the LED OFF, type “UIYPQ” and hit <ENTER>
  3. What happens?

 

HINT

 

  • The microcontroller will ignore (throw away) all the letters it does not recognize, but it will process the one it recognizes as a command. However, it will take one second to process each letter, recognized or not.

 

 


Tips and Tricks when Using the Serial Monitor

 

Let's now explore some simple ways to manage the Serial Monitor. Click each dropdown to check out how they're done.

 

Clear output from the Serial Monitor screen

 

As you work with the serial monitor, lines of data can be built up. Get rid of data you no longer want to see by clicking the Clear Output button at the far-right corner at the top of the Serial Monitor window

 

 

Change the size of the Serial Monitor

 

Next, to change the size of the Serial Monitor, you need to drag the Serial Monitor’s upper boundary up or down with the mouse

 

 

Close the Serial Monitor

 

There are several ways to accomplish closing the serial monitor

 

 

 

There are cases when you would need to close the Bottom Panel as well. The “Toggle Bottom Panel” button at the very lower-right corner of the Arduino IDE window closes the entire panel.

 

  •  

     

    • Use the hotkey combination you learned before (Ctrl+Shift+M).
    • Use the top menu (Tools > Serial Monitor), as described above. (leaves the “Bottom Panel” open)
    • Click the small “x” next to the Serial Monitor label at the top of its window. (leaves the “Bottom Panel” open, see the image below)
22

Robotic Coordinates

20 min

Overview

 

Have you ever wondered how robots know where they are, or where to go next, since they do not have eyes to navigate the world? The answer is that the robot uses some fancy math. While you don’t need to understand the actual mathematics, you do need to understand the coordinate system that the robot uses to plot its next moves.

 

In this step, you will learn how you can use coordinates to locate the work envelope of the robotic arm, and move the robot exactly where you want. This will serve as the baseline for several challenges that require you to work in X, Y and Z coordinates.

 

 


Understand How the Robot Uses Coordinates

 

Robots need a way to navigate their corner of the world. While there are multiple ways to do this, depending on the type of robot, many real-life robotic arms use a coordinate system very much like Minecraft.

 

If you’ve ever played Minecraft, you know that it uses X, Y and Z coordinates to navigate the world. X moves you left and right; Y moves you up and down; and Z moves you into or out of the video screen. This works because your video monitor is a vertical plane.

 

 

 

Your robot does the same thing, with some important differences: The Y and Z coordinates are swapped.

 

Z now moves the arm up and down; Y moves the arm forward and backward, relative to the body of the robot. X is still left and right.

 

Just imagine that you take your Minecraft coordinate system and tip it forward 90 degrees. X and Y are on the floor now, and a positive Z moves up from the floor.

 

 

 

A couple of other important things to know about the robot’s coordinate system.

 

The robot uses real-life units of measure, in millimeters.

 

While we are familiar with inches in the United States, metric units are easy to use and visualize. *Remember that 25.4 millimeters (or “mm”) equals 1 inch. To approximate measurements, just know that 25 mm is about one inch, so 100 mm is about 4 inches. 13 mm is about one-half inch, and so on.

XYZ coordinate systems need a starting point, called an origin.

 

The origin is where X, Y and Z are all equal to zero, and measurements are taken from here. *The origin for your robot is where the turret attaches to the waist servo. It’s actually the shaft of the waist servo. This origin is the point from which we measure the robot’s movements.

 

 

 

 

 

 

 

Each axis (X, Y and Z) has a positive and a negative direction.

 

 

 

  • X positive moves the arm to the right of the robot when you are behind the robot; X negative is to the left.
  • Y positive is forward (away from the robot). There really is no negative Y direction because this robot can’t move behind itself. Don’t enter any negative values for the Y direction.
  • Z positive is up from the floor; Z negative is down. The important thing to understand is that Z zero is not really the floor; it’s above the floor by about 50 mm or 2 inches. Why? Because that is the location of the origin (the shaft of the waist servo). You will need to experiment to find where your Z = zero level is on your robot.

 

 

 

 

 

 

 

 

 

 

 

The reference point for all measurements is the center of the gripper jaws when the jaws are closed.

 

If you input X = 0, Y = 200, Z = 0, the robot will try to move the center of the gripper jaws 200 mm straight out from the waist servo, in line with the top of the waist servo.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Watch the video for more information on how your robot uses coordinates

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

100

Robotic Work Envelopes

30 min

Overview

 

Now we know how the robot “sees” the world – it uses numbers. But that’s not really the whole story. A more complete explanation is that each of the servos keeps track of how far and in which direction it has turned. The servos constantly send this information to the microcontroller, the robot’s brain. The microcontroller itself tracks the angles on every servo – all the time.

 

A good way to think about this: the robot speaks one language (angles of each servo) and humans speak another, different language (“Minecraft,” or XYZ coordinates). We need a translator between these two languages, and that’s exactly what the microcontroller does. By flashing your microcontroller with a new program, you give it the power to translate the servo angles into the XYZ coordinate position of the gripper.

 

While it’s natural for the robot to think in terms of the angles on each servo, humans find it very difficult to convert a position in the real world into the correct angles for each servo. You would have to do some advanced trigonometry and do it VERY quickly. Fortunately, your ESP32 microcontroller LOVES trigonometry, never makes a mistake, and it is extremely fast!

 

In this step, you will will flash the ESP32 with a program that:

 

  • Allows you to enter an XYZ position you want the robot to move to

 

  • Converts that “Minecraft position” to the correct angle for each servo

 

  • Sends those angles to each servo and moves the robot where you want

 

 


Understand the Work Envelope of Robots

 

First, let’s think about what your robot can and cannot do. Like everything else, robots have limits, and if you don’t understand and respect those limits, you can’t get the job done. You might even break your robot.

 

The most important thing to understand is what your robot can reach. If you’re trying to do a job that is out of reach, you either need to move the job closer, or get a new robot! This is called the work envelope of a robot.

 

In engineering, a work envelope for robots refers to the three dimensional space within which a robot can move and perform tasks. It defines the range of motion and positions a robot can reach, including its maximum and minimum extents in terms of height, width, and depth.

 

Understanding the work envelope is crucial for designing and programming robots to effectively complete tasks within their designated operational space. For an excellent way to visualize the work envelope of different robots, watch this video.

 

 

 


Set the Baud Rate and Flash the Microcontroller

 

Let's start with navigating your robot’s work envelope.

 

First, set your Serial Monitor to 115200 baud for all upcoming robot exercises. (The 9600 baud was only used for the LED exercise.)

 

Look at the upper-right corner of the Serial Monitor window; at the far right you will see a pulldown list with different baud rates. Choose 115200 baud from this list and you are ready to begin communicating!

 

 

 

If you need a refresher for how to flash sketches into the microcontroller, please follow the instructions in Part 3 Flashing the ESP32 of your Installing the IDE pdf.

 

If you do not have it, you can access it here by clicking on either button below.

 

 

 

Again, ensure you can locate the Program6-Command_Line.ino sketch in your Robot Arm Program folder, which you will use at this step. If you need to download it again, click the button below.

 

Download Command Line Sketch

 

 

You will also need the excercise grids from earlier. If you need to print them again, click the button below.

 

Excercise Grids

 

 

Once you have opened the Program6-Command_Line.ino file, follow the instructions below to start using it.

 

 

 

 

  1. Connect the USB cable between your computer and the TOP connector on the microcontroller stack. See the image below.
  2. Open the appropriate sketch file in the Arduino IDE.
  3. IMPORTANT: Select the right Board (ESP32 Dev Module WITH Bluepad32) and Port (whichever one is offered) in the Arduino IDE.
  4. Click the Upload button at the upper-left corner of the Arduino IDE.

 

 


Set up the Robot and Your Work Envelope

 

Let’s set up the robot and your work environment to help you navigate the work envelope.

 

Load a pencil into the penholder, point down. For this exercise ONLY, keep the pencil high in the penholder, so only the sharpened part sticks out beneath the penholder as it is shown in the image on the slide.

 

 

 

Grab the Work Envelope printout you made. Set up your robot on a table. Place the Work Envelope V2.0 paper next to the WorkBench.

 

Align the two dark marks on the print with the feet of the WorkBench. The paper touches the WorkBench but does not go under it.

 

 


New Commands

 

Almost ready to start moving the robot with Your new Serial Monitor commands! Start with the goto command, which is perfect to find out about the work envelope for this robot.

 

The goto command moves your robot at high speed from its current position to the XYZ position you specify.

 

Your first move will be to center the robot arm in its work envelope, straight out in front of the body of the robot, with the point of the pencil about an inch to an inch and a half above the paper.

 

Make sure your robot is ready!

 

 

 

 

  • Ensure there is clear space around the robot so it doesn’t hit anything.
  • Check that the Arduino IDE is up and running.
  • Have your microcontroller connected to your computer with the USB cable and make sure the Arduino IDE recognizes your microcontroller.
  • You can tell you are connected if the board identifier in the Arduino IDE is in bold font. (See the image below)

 

 

Syntax describes the use of exact words and symbols, their order, and their punctuation to issue commands to a computer. Like all computer programming languages, your robot’s syntax is very specific, and your inputs must exactly match what the robot expects to see - otherwise the command will not work.

 

The syntax for the goto command is:

 

  • goto <X> <Y> <Z>

 

What this means

 

 

 

 

 

  • The example above shows the format of the command the robot expects to make a fast move to a given position.
  • Begin by typing the word “goto” (without quotes) in lowercase.
  • Replace <X> with the X coordinate in millimeters, <Y> with the Y coordinate, and of course, <Z> with your desired Z coordinate.
  • For example, if you want to move to X = 0, Y = 150 and Z = 0…
  • You would enter: goto 0 150 0

 

NOTE:

 

 

 

    1. Do not capitalize “goto.” It must be all lowercase letters.
    1. Do not use any punctuation.
    1. However, DO put a single space between “goto” and each number.

 

 

 

 

 

Now test the command!

 

 

 

 

  1. In the Serial Monitor, type “goto 0 150 0” and hit <ENTER>
  2. What does the robot arm do?

 

HINT

 

 

 

 

  • The robot arm should quickly move straight out in front of its body, which is the X = 0 plane.
  • The point of the pencil should be an inch to an inch and a half above the table (25 to 35 mm).
  • The point of the pencil should be about 4.5” (115 mm) from the front edge of the WorkBench.

NOTE: If the point of the pencil is not between 1 and 1.5” above the table, adjust the Z value by 5 mm and run the command again until it is about right.

 

 

  • If it is too low, ADD 5 mm
  • If it is too high, SUBTRACT 5 mm.

 

Record the Z value you are happy with and use that for the rest of the exercises in this Step.

 

 

 

 

 


 

Find Your Robot’s Work Envelope on the Z-axis

 

 

 

Finally, let’s put everything together to find your robot’s complete work envelope! Watch the video to see how:

 

 

 

 

 

 

 

 


 

Congratulations!

 

 

 

You accomplished a lot of important things with this step. This is a great foundation for starting to program a robot like it’s done in real life!

 

 

 

With this project we have now:

 

 

 

 

  • Learned about different types of robots used by industry
  • Began learning our robot’s language
  • Practiced using the Serial Monitor for input
  • Plotted the limits of our robot’s work envelope
101

Writing a Robotic Language

30 min

What is a Drone?

 

When most people hear the phrase drone, they undoubtedly immediately picture something, but what is it exactly?

 

Unmanned aerial vehicles, or UAVs, are more commonly referred to as drones. This indicates that the thing in question is a flying machine that is not being driven by someone within the machine. The size and design of these vehicles can vary. Some of them might resemble an airplane, while others might resemble a helicopter or even multi-copters! Then, either a person on the ground or a computer that has been designed to navigate on its own, controls these vehicles remotely!

 

Now that we have a grasp on what a drone is we can begin learning more about how they work!

Materials

  • ELEGOO UNO — 5 per group
  • Phase Dock Workbench — 5 per group
  • PlayStation Controller — 5 per group
  • Robot Arm (Assembled) — 5 per group
  • Robot Arm (Parts) — 5 per group

Related Supply Kit

Robot Arm Workbench

All the hands-on materials you need for this lesson, delivered to your classroom.

More robotics lessons

Ready to bring this lesson to your classroom?

Sign up to save this lesson, order supplies, and track student progress.