Barobo
PortalSign In
HomeShopTutorialsFree CurriculumHour of Code
RoboBlockly for Learning Math and Coding

CSP Unit 3 Lesson 5.9b

Piano
Linkbot Image Mindstorm Image Cursor Image
0x36302418126y36302418126
Grid:
Tics Lines:
Width px
Hash Lines:
Width px
Labels:
Font px
Trace Lines:
Robot 1:
Width px
Robot 2:
Width px
Robot 3:
Width px
Robot 4:
Width px
Labels: x-axis y-axis Show Grid
Grid: 12x12 inches 24x24 inches 36x36 inches
72x72 inches 96x96 inches 192x192 inches
Quad: 4 Quadrants 1 Quadrant 1&4 Quadrants
Units: US Customary Metric
Background: Background Image

Robot 1

Linkbot
Mindstorm
Initial Position:
( in, in)
Initial Angle:
deg
Current Position: (16 in, 6 in)
Current Angle: 90 deg
Wheel Radius:
Track Width:
in

Robot 2

Linkbot
Mindstorm
Initial Position:
( in, in)
Initial Angle:
deg
Current Position: (6 in, 0 in)
Current Angle: 90 deg
Wheel Radius:
Track Width:
in

Robot 3

Linkbot
Mindstorm
Initial Position:
( in, in)
Initial Angle:
deg
Current Position: (12 in, 0 in)
Current Angle: 90 deg
Wheel Radius:
Track Width:
in

Robot 4

Linkbot
Mindstorm
Initial Position:
( in, in)
Initial Angle:
deg
Current Position: (18 in, 0 in)
Current Angle: 90 deg
Wheel Radius:
Track Width:
in
CSP Unit 3 Lesson 5.9b
/* Code generated by RoboBlockly v2.5 */
/* Problem Statement: 
    Now that we have the drawStep function, we note that the
    bottom left side of the diamond figure consists of three
    steps. So use the pre-placed "do something" code block to
    create a function named drawSide that contains code that
    calls the drawStep function three times, and then add the
    code block that calls the drawSide function to the main
    code at the top . When you run the code, the robot should
    trace out the bottom left side of the diamond figure.
    */
#include <robot.h>
CLinkbotI robot;
double radius = 1.75;
double trackwidth = 3.69;

// Describe this function...
void drawSide() {
  drawStep();
  drawStep();
  drawStep();
}

// Describe this function...
void drawStep() {
  robot.driveDistance(4, radius);
  robot.turnLeft(90, radius, trackwidth);
  robot.driveDistance(4, radius);
  right();
}

// Describe this function...
void right() {
  robot.turnLeft(90, radius, trackwidth);
  robot.turnLeft(90, radius, trackwidth);
  robot.turnLeft(90, radius, trackwidth);
}

robot.setSpeed(6, radius);
robot.traceColor("red", 4);
robot.traceOn();
drawSide();
robot.driveDistance(4, radius);
right();
drawSide();
Load Blocks
Hardware
LArduino
Workspace Show Ch Save File
Problem Statement:

With one side traced using the drawSide function (as shown in red on the figure), it looks like we might need to create another function to draw the next side. But note that if, after drawing the side, we move the robot forward 4 units and turn it to the right, it will be perfectly positioned to use the drawSide function for the upper left side of the diamond figure. Try it out! Add the code blocks to the pre-placed code at the beginning that (1) call the drawSide function, (2) move the robot forward 4 units and turn it right, and (3) call the drawSide function again.


		
Rubbish bin
Time