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

CSP Unit 3 Lesson 5.10c

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.10c
/* Code generated by RoboBlockly v2.5 */
/* 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.
    */
#include <robot.h>
CLinkbotI robot;
double radius = 1.75;
double trackwidth = 3.69;

// Describe this function...
void drawDiamond() {
  robot.traceOn();
  drawSide();
  drawSide();
  drawSide();
  drawSide();
  robot.traceOff();
}

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

Our final step is to define one single "drawDiamond" function and call it to have the robot trace out the diamond. The function definition should start with a traceOn command and finish with a traceOff command. In between it should call the drawSide function four times. Modify the pre-placed code to define the drawDiamond function and call it.


		
Rubbish bin
Time