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

CSP Unit 3 Lesson 5.10b

Piano
Linkbot Image Mindstorm 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

0
S
M
L
Initial Position:
( in, in)
Initial Angle:
deg
Current Position: (16 in, 6 in)
Current Angle: 90 deg
Wheel Radius:
Track Width:
in

Robot 2

0
S
M
L
Initial Position:
( in, in)
Initial Angle:
deg
Current Position: (6 in, 0 in)
Current Angle: 90 deg
Wheel Radius:
Track Width:
in

Robot 3

0
S
M
L
Initial Position:
( in, in)
Initial Angle:
deg
Current Position: (12 in, 0 in)
Current Angle: 90 deg
Wheel Radius:
Track Width:
in

Robot 4

0
S
M
L
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.10b
/* Code generated by RoboBlockly v2.5 */
/* Problem Statement: 
    Although we now have created the code to draw the diamond
    figure, there is one part of it that could be improved. The
    recipe we followed was: (1) call the drawSide function to
    draw the first side, (2) move forward and turn right, (3)
    call drawSide for the second side, (4) move forward and
    turn right, and so on. Each call to the drawSide function
    is followed by commands to move forward and turn right. So
    it would be better to put those in the drawSide function
    definition, and then simply have the code call drawSide
    four times. Make those changes in the pre-placed code. 
    */
#include <robot.h>
CLinkbotI robot;
double radius = 1.75;
double trackwidth = 3.69;

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

// 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();
drawSide();
drawSide();
drawSide();
robot.traceOff();
Load Blocks
Hardware
LArduino
Workspace Show Ch Save File
Problem Statement:

Although we now have created the code to draw the diamond figure, we would like to make it into a single "drawDiamond" function. Before we do that, however, there is one improvement to make. The recipe we followed was: (1) call the drawSide function to draw the first side, (2) move forward and turn right, (3) call drawSide for the second side, (4) move forward and turn right, and so on. Each call to the drawSide function is followed by commands to move forward and turn right. So it would be better to put those in the drawSide function definition, and then simply have the code call drawSide four times. Make the necessary changes to the pre-placed code to do that.


		
Rubbish bin
Time