You are previewing The LEGO MINDSTORMS EV3 Discovery Book (Full Color).
O'Reilly logo
The LEGO MINDSTORMS EV3 Discovery Book (Full Color)

Book Description

The LEGO MINDSTORMS EV3 Discovery Book is a complete beginner's guide to the EV3 kit from bestselling author and robotics expert Laurens Valk.

Table of Contents

  1. The LEGO® MINDSTORMS® EV3 Discovery Book: a beginner’s guide to building and programming robots
  2. about the author
  3. about the technical reviewer
  4. acknowledgments
  5. introduction
    1. why this book?
    2. is this book for you?
    3. how does this book work?
      1. the discoveries
        1. estimating difficulty and time
        2. finding solutions
      2. what to expect in each chapter
        1. part I: getting started
        2. part II: programming robots with sensors
        3. part III: robot building techniques
        4. part IV: vehicle and animal robots
        5. part V: creating advanced programs
        6. part VI: machine and humanoid robots
      3. the companion website
    4. conclusion
  6. I. getting started
    1. 1. preparing your EV3 set
      1. what’s in the box?
        1. the EV3 brick
        2. sorting Technic elements
        3. the mission pad
      2. controlling your robot
      3. downloading and installing the EV3 programming software
      4. conclusion
    2. 2. building your first robot
      1. using the building instructions
      2. building the EXPLOR3R
      3. output ports, input ports, and cables
      4. navigating the EV3 brick
        1. turning the EV3 on and off
        2. selecting and running programs
      5. making your robot move with the remote control
      6. conclusion
    3. 3. creating and modifying programs
      1. a quick first program
      2. creating a basic program
        1. 1. programming palette
        2. 2. start block
        3. 3. programming canvas
        4. 4. hardware page
          1. downloading and running a program
          2. manually running a program
          3. downloading a program without running it
          4. running selected blocks
      3. projects and programs
        1. 5. file organization
          1. saving projects and programs
          2. renaming projects and programs
          3. finding projects and programs on the EV3 brick
          4. modifying project properties
        2. 6. toolbar
          1. using select, pan, and zoom tools
          2. using the comment tool
          3. duplicating one or more blocks
          4. help documentation
        3. 7. content editor
      4. building the official EV3 robots and bonus models
      5. conclusion
    4. 4. working with programming blocks: action blocks
      1. how do programming blocks work?
      2. the move steering block
        1. the move steering block in action
        2. understanding modes and settings
          1. ports
          2. steering
          3. power
          4. rotations, seconds, or degrees
          5. brake at end
        3. making accurate turns
      3. the sound block
        1. understanding the sound block settings
          1. file name
          2. volume
          3. play type
          4. note or tone
          5. duration
        2. seeing the sound block in action
          1. understanding the SoundCheck program
      4. the display block
        1. understanding the display block settings
          1. sub modes
          2. file name
          3. clear screen
          4. radius and fill
          5. color
          6. text and font size
          7. x, y, column, and row
        2. the display block in action
          1. understanding the DisplayTest program
      5. the brick status light block
      6. the on and off modes in move blocks
      7. move tank, large motor, and medium motor blocks
      8. further exploration
    5. 5. waiting, repeating, my blocks, and multitasking
      1. the wait block
        1. using the wait block settings
        2. seeing the wait block in action
        3. understanding the WaitDisplay program
      2. the loop block
        1. using the loop block
        2. seeing the loop block in action
        3. using loop blocks within loop blocks
      3. making your own blocks: the my block
        1. creating my blocks
        2. using my blocks in programs
        3. editing my blocks
        4. managing my blocks in projects
      4. multitasking
        1. using multiple start blocks
        2. splitting the sequence wire
        3. avoiding resource conflicts
      5. further exploration
  7. II. programming robots with sensors
    1. 6. understanding sensors
      1. what are sensors?
        1. understanding the sensors in the EV3 set
        2. understanding the touch sensor
        3. creating the bumper with the touch sensor
        4. viewing sensor values
      2. programming with sensors
        1. sensors and the wait block
          1. sensors and the wait block in action
          2. avoiding obstacles with the touch sensor
          3. using change mode
        2. sensors and the loop block
        3. sensors and the switch block
          1. configuring a switch block
          2. sensors and the switch block in action
          3. adding blocks to a switch block
          4. using flat view and tabbed view
          5. repeating switches
        4. understanding compare, change, and measure mode
          1. compare mode
          2. change mode
          3. measure mode
          4. configuring the modes
      3. further exploration
    2. 7. using the color sensor
      1. attaching the color sensor
      2. color mode
        1. staying inside a colored line
          1. creating the test track
          2. creating the program
        2. following a line
        3. the switch block in measure mode
      3. reflected light intensity mode
        1. setting the threshold value
        2. comparing sensor values with a threshold
        3. following a line more smoothly
      4. ambient light intensity mode
        1. measuring ambient light intensity
        2. a morse code program
      5. further exploration
    3. 8. using the infrared sensor
      1. proximity mode
        1. avoiding obstacles
        2. combining sensors
      2. remote mode
      3. beacon proximity mode
      4. beacon heading mode
      5. combining sensor operation modes
      6. further exploration
    4. 9. using the brick buttons and rotation sensors
      1. using the brick buttons
      2. using the rotation sensor
        1. motor position
        2. resetting the motor position
        3. rotational speed
          1. calculating the rotational speed
          2. measuring rotational speed in a program
      3. understanding speed regulation
        1. seeing speed regulation in action
        2. stopping a stalled motor
      4. further exploration
  8. III. robot-building techniques
    1. 10. building with beams, axles, connector blocks, and motors
      1. using beams and frames
        1. extending beams
        2. using frames
        3. using beams to reinforce structures
        4. using angled beams
      2. using the LEGO unit grid
      3. using axles and cross holes
      4. using connector blocks
        1. extending axles
        2. connecting parallel beams
        3. connecting beams at right angles
        4. securing parallel beams
        5. using half LEGO units
        6. using thin elements
      5. creating flexible structures
      6. building with motors and sensors
        1. building with the large motor
          1. connecting wheels and treads
          2. connecting beams to the motor shaft
        2. building with the medium motor
        3. building with sensors
      7. miscellaneous elements
      8. further exploration
    2. 11. building with gears
      1. gearing essentials
        1. taking a closer look at gears
        2. calculating the gear ratio for two gears
          1. calculating output speed
          2. calculating the required gear ratio
        3. decreasing and increasing rotational speed
        4. what is torque?
          1. when do you increase torque?
          2. decreasing torque
        5. creating longer gear trains
          1. calculating the compound gear ratio
          2. further increasing torque and decreasing speed
          3. balancing speed and torque
        6. friction and backlash
      2. using the gears in the EV3 set
        1. working with the unit grid
          1. gears and half units
          2. gear trains around a corner
          3. using improper combinations
        2. using bevel and double-bevel gears
          1. perpendicular connections on the unit grid
          2. connecting perpendicular axles
        3. using knob wheels
        4. using worm gears
      3. constructing sturdy gear trains
        1. bracing gears with beams
        2. preventing axles from twisting
        3. reversing direction of rotation
      4. building with gears and EV3 motors
      5. further exploration
  9. IV. vehicle and animal robots
    1. 12. Formula EV3: a racing robot
      1. building the Formula EV3 Race Car
      2. driving and steering
        1. creating my blocks for steering
          1. my block #1: reset
          2. my block #2: left
          3. my block #3: right
          4. my block #4: center
        2. testing the my blocks
      3. creating a remote control program
      4. racing autonomously
      5. further exploration
    2. 13. ANTY: the robotic ant
      1. understanding the walking mechanism
      2. building ANTY
      3. making ANTY walk
        1. creating the opposite my block
        2. avoiding obstacles
      4. programming behavior
        1. finding food
        2. sensing the environment
          1. no color: sitting still
          2. green: safety
          3. yellow: food
          4. blue: predators
          5. red: aggression
      5. further exploration
  10. V. creating advanced programs
    1. 14. using data wires
      1. building SK3TCHBOT
      2. getting started with data wires
      3. working with data wires
        1. seeing the value in a data wire
        2. deleting a data wire
        3. data wires across a program
        4. using multiple data wires
        5. repeating blocks with data wires
      4. data wire types
        1. numeric data wire
        2. logic data wire
        3. text data wire
        4. numeric array and logic array
        5. type conversion
          1. converting logic values to numeric values
          2. displaying numbers on the EV3 screen
      5. using sensor blocks
        1. measure mode
        2. compare mode
          1. compare mode and beacon values
          2. compare mode and the touch sensor
        3. data wire value range
      6. advanced features of flow blocks
        1. data wires and the wait block
        2. data wires and the loop block
          1. using the loop index
          2. ending a loop in logic mode
        3. data wires and the switch block
          1. logic mode
          2. numeric mode
          3. connecting data wires to blocks inside switch blocks
        4. the loop interrupt block
          1. breaking a loop from the inside
          2. breaking a loop from the outside
      7. further exploration
    2. 15. using data operations blocks and my blocks with data wires
      1. using data operations blocks
        1. the math block
          1. the math block in action
          2. using advanced mode
          3. practicing with the math block
        2. the random block
        3. the compare block
        4. the logic operations block
          1. logic operations
          2. not mode
        5. the range block
        6. the round block
        7. the text block
      2. creating my blocks with data wires
        1. a my block with input
        2. editing my blocks
        3. a my block with output
        4. a my block with input and output
        5. strategies for making my blocks
        6. starting points for my blocks
        7. sharing my blocks between projects
      3. further exploration
    3. 16. using constants and variables
      1. using constants
      2. using variables
        1. defining a variable
        2. using the variable block
          1. defining variables with the variable block
          2. creating a program with a variable
        3. changing and incrementing variable values
        4. initializing variables
        5. calculating an average
      3. further exploration
    4. 17. playing games on the EV3
      1. step 1: creating basic drawings
        1. my block #1: clear
        2. my block #2: coordinates
        3. completing the basic program
      2. step 2: adding pencil controls
        1. moving the pencil without drawing
        2. turning the pencil into an eraser
        3. clearing the screen
        4. setting the pencil size
      3. further exploration
  11. VI. machine and humanoid robots
    1. 18. the SNATCH3R: the autonomous robotic arm
      1. understanding the grabber
        1. the grabber mechanism
        2. the lifting mechanism
      2. building the SNATCH3R
      3. controlling the grabber
        1. my block #1: grab
        2. my block #2: reset
        3. my block #3: release
        4. creating the remote control program
        5. troubleshooting the grabber
      4. searching for the IR beacon
        1. building the IR bug
        2. my block #4: search
          1. understanding the sensor measurements
          2. understanding the search algorithm
          3. creating and testing the search my block
        3. creating the final program
          1. finding the beacon
          2. driving toward the beacon
          3. lifting and moving the IR bug
      5. further exploration
    2. 19. LAVA R3X: the humanoid that walks and talks
      1. building the legs
      2. making the robot walk
        1. my block #1: reset
        2. my block #2: return
        3. my block #3: onsync
        4. my block #4: left
        5. taking the first steps
      3. building the head and arms
      4. controlling the head and arms
        1. my block #5: head
        2. avoiding obstacles and responding to handshakes
          1. resetting the legs and making the head move
          2. walking until one of two sensors is triggered
          3. responding to the triggered sensor
      5. further exploration
  12. A. troubleshooting programs, the EV3 brick, and wireless connections
    1. troubleshooting compilation errors
      1. missing my blocks
      2. errors in programming blocks
      3. missing variable definitions
    2. troubleshooting a running program
    3. troubleshooting the EV3
      1. using the hardware page
        1. managing connections
        2. managing the EV3’s memory
      2. solving problems with the USB connection
      3. restarting the EV3 brick
      4. updating the EV3 firmware
      5. avoiding data loss using a microSD card
    4. programming the EV3 wirelessly
      1. using Bluetooth to download programs to the EV3
        1. finding a Bluetooth dongle
        2. connecting to the EV3 with Bluetooth
      2. using Wi-Fi to download programs to the EV3
      3. choosing between Bluetooth and Wi-Fi
    5. summary
  13. B. creating on brick programs
    1. creating, saving, and running an on brick program
      1. adding blocks to the loop
        1. replacing a block
        2. deleting a block
      2. configuring a block’s setting
      3. running a program
      4. saving and opening a program
    2. using the on brick programming blocks
    3. importing on brick programs
    4. summary
  14. Index
  15. About the Author
  16. Copyright