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

CSP Unit 3 Lesson 5.10a

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.10a
/* Code generated by RoboBlockly v2.5 */
/* 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.
    */
#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();
robot.driveDistance(4, radius);
right();
drawSide();
robot.driveDistance(4, radius);
right();
drawSide();
robot.driveDistance(4, radius);
right();
Load Blocks
Hardware
LArduino
Workspace Show Ch Save File
Problem Statement:

In the previous activity we got two sides of the diamond shape drawn. To finish the other two sides, we simply repeat the process. So the whole thing is: (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, (4) call drawSide for the third side, (5) move forward and turn right, (6) call drawSide for the fourth side, (7) move forward and turn right to return to the starting position. Add the code to do this. (The function definitions are pre-placed at the bottom.)


		
Rubbish bin
Time