You are previewing Motors for Makers: A Guide to Steppers, Servos, and Other Electrical Machines.
O'Reilly logo
Motors for Makers: A Guide to Steppers, Servos, and Other Electrical Machines

Book Description

The First Maker-Friendly Guide to Electric Motors!

Makers can do amazing things with motors. Yes, they’re more complicated than some other circuit elements, but with this book, you can completely master them. Once you do, incredible new projects become possible.

Unlike other books, Motors for Makers is 100% focused on what you can do. Not theory. Making.

First, Matthew Scarpino explains how electric motors work and what you need to know about each major type: stepper, servo, induction, and linear motors. Next, he presents detailed instructions and working code for interfacing with and controlling servomotors with Arduino Mega, Raspberry Pi, and BeagleBone Black. All source code and design files are available for you to download from motorsformakers.com.

From start to finish, you’ll learn through practical examples, crystal-clear explanations, and photos. If you’ve ever dreamed of what you could do with electric motors, stop dreaming...and start making!

  • Understand why electric motors are so versatile and how they work

  • Choose the right motor for any project

  • Build the circuits needed to control each type of motor

  • Program motor control with Arduino Mega, Raspberry Pi, or BeagleBone Black

  • Use gearmotors to get the right amount of torque

  • Use linear motors to improve speed and precision

  • Design a fully functional electronic speed control (ESC) circuit

  • Design your own quadcopter

  • Discover how electric motors work in modern electric vehicles--with a fascinating inside look at Tesla’s patents for motor design and control!

  • Table of Contents

    1. About This E-Book
    2. Title Page
    3. Copyright Page
    4. Contents at a Glance
    5. Contents
    6. About the Author
    7. We Want to Hear From You!
    8. Reader Services
    9. Introduction
      1. Who This Book Is For
      2. How This Book Is Organized
      3. Let Me Know What You Think
    10. I: Introduction
      1. 1. Introduction to Electric Motors
        1. 1.1 Brief History
          1. 1.1.1 Oersted’s Compass Needle
          2. 1.1.2 Jedlik’s Self-Rotor
        2. 1.2 Anatomy of a Motor
          1. 1.2.1 External Structure
          2. 1.2.2 Internal Structure
        3. 1.3 Overview of Electric Motors
          1. 1.3.1 DC Motors
          2. 1.3.2 AC Motors
        4. 1.4 Goals and Structure
        5. 1.5 Summary
      2. 2. Preliminary Concepts
        1. 2.1 Torque and Angular Speed
          1. 2.1.1 Force
          2. 2.1.2 Torque
          3. 2.1.3 Angular Speed
          4. 2.1.4 The Torque-Speed Curve
        2. 2.2 Magnets
        3. 2.3 Equivalent Circuit Element
          1. 2.3.1 Electrical Losses
          2. 2.3.2 Back-EMF
        4. 2.4 Power and Efficiency
          1. 2.4.1 Work
          2. 2.4.2 Rotational Power
          3. 2.4.3 Electrical Power
          4. 2.4.4 Efficiency
        5. 2.5 Summary
    11. II: Exploring Electric Motors
      1. 3. DC Motors
        1. 3.1 DC Motor Fundamentals
          1. 3.1.1 Torque, Current, and KT
          2. 3.1.2 Rotational Speed, Voltage, and KV
          3. 3.1.3 The KT-KV Tradeoff
          4. 3.1.4 Switching Circuitry
          5. 3.1.5 Pulse Width Modulation (PWM)
        2. 3.2 Brushed Motors
          1. 3.2.1 Mechanical Commutation
          2. 3.2.2 Types of Brushed Motors
          3. 3.2.3 Advantages and Disadvantages
          4. 3.2.4 Control Circuitry
        3. 3.3 Brushless Motors
          1. 3.3.1 BLDC Structure
          2. 3.3.2 Inrunner and Outrunner Motors
          3. 3.3.3 Controlling BLDCs
        4. 3.4 Electronic Speed Control (ESC) Systems
          1. 3.4.1 Battery Eliminator Circuit (BEC)
          2. 3.4.2 Programmability
        5. 3.5 Batteries
        6. 3.6 Summary
      2. 4. Stepper Motors
        1. 4.1 Permanent Magnet (PM) Steppers
          1. 4.1.1 Structure
          2. 4.1.2 Operation
        2. 4.2 Variable Reluctance (VR) Steppers
          1. 4.2.1 Structure
          2. 4.2.2 Operation
        3. 4.3 Hybrid (HY) Steppers
          1. 4.3.1 Structure
          2. 4.3.2 Operation
        4. 4.4 Stepper Control
          1. 4.4.1 Bipolar Stepper Control
          2. 4.4.2 Unipolar Stepper Control
          3. 4.4.3 Drive Modes
        5. 4.5 Summary
      3. 5. Servomotors
        1. 5.1 Hobbyist Servos
          1. 5.1.1 Pulse Width Modulation (PWM) Control
          2. 5.1.2 Analog and Digital Servos
          3. 5.1.3 Rotary Encoders
        2. 5.2 Overview of Servo Control
          1. 5.2.1 Open-Loop and Closed-Loop Systems
          2. 5.2.2 Modeling a Servomotor
          3. 5.2.3 The Laplace Transform
          4. 5.2.4 Block Diagrams and Transfer Functions
          5. 5.2.5 Transfer Function of a Servomotor
        3. 5.3 PID Control
        4. 5.4 Summary
      4. 6. AC Motors
        1. 6.1 Alternating Current (AC)
          1. 6.1.1 Single-Phase Power
          2. 6.1.2 Three-Phase Power
        2. 6.2 Overview of Polyphase Motors
          1. 6.2.1 Stators
          2. 6.2.2 Rotating Magnetic Field
          3. 6.2.3 Synchronous Speed
          4. 6.2.4 Power Factor
        3. 6.3 Asynchronous Polyphase Motors
          1. 6.3.1 Electromagnetic Induction
          2. 6.3.2 Current and Torque
          3. 6.3.3 Squirrel-Cage Rotor
          4. 6.3.4 Wound Rotor
        4. 6.4 Synchronous Polyphase Motors
          1. 6.4.1 Doubly Excited Synchronous Motors
          2. 6.4.2 Permanent Magnet Synchronous Motors
          3. 6.4.3 Synchronous Reluctance Motors
        5. 6.5 Single-Phase Motors
          1. 6.5.1 Split-Phase Motors
          2. 6.5.2 Capacitor-Start Motors
          3. 6.5.3 Shaded-Pole Motors
        6. 6.6 AC Motor Control
          1. 6.6.1 Eddy-Current Drives
          2. 6.6.2 Variable-Frequency Drives
          3. 6.6.3 VFD Harmonic Distortion
        7. 6.7 Universal Motors
        8. 6.8 Summary
      5. 7. Gears and Gearmotors
        1. 7.1 Overview of Gears
          1. 7.1.1 Power Transmission
          2. 7.1.2 Pitch
          3. 7.1.3 Backlash
        2. 7.2 Types of Gears
          1. 7.2.1 Spur Gears
          2. 7.2.2 Helical Gears
          3. 7.2.3 Bevel Gears
          4. 7.2.4 Rack and Pinion
          5. 7.2.5 Worm Gear
          6. 7.2.6 Planetary Gear
        3. 7.3 Gearmotors
        4. 7.4 Summary
      6. 8. Linear Motors
        1. 8.1 Linear Actuators
          1. 8.1.1 Operation and Structure
          2. 8.1.2 Sample Linear Actuator
          3. 8.1.3 Coilguns
        2. 8.2 Linear Synchronous Motors
          1. 8.2.1 Structure
          2. 8.2.2 Case Study: Yaskawa SGLG
          3. 8.2.3 Case Study: Transrapid Maglev System
        3. 8.3 Linear Induction Motors
          1. 8.3.1 Structure and Operation
          2. 8.3.2 The LINIMO Train Line
        4. 8.4 Homopolar Motors
          1. 8.4.1 Structure and Operation
          2. 8.4.2 Railguns
        5. 8.5 Summary
    12. III: Electrical Motors in Practice
      1. 9. Motor Control with the Arduino Mega
        1. 9.1 The Arduino Mega
          1. 9.1.1 The Arduino Mega Circuit Board
          2. 9.1.2 Microcontrollers and the ATmega2560
        2. 9.2 Programming the Arduino Mega
          1. 9.2.1 Preparing the Arduino Environment
          2. 9.2.2 Using the Environment
          3. 9.2.3 Arduino Programming
        3. 9.3 The Arduino Motor Shield
          1. 9.3.1 Power
          2. 9.3.2 The L298P Dual H Bridge Connections
          3. 9.3.3 Controlling a Brushed Motor
        4. 9.4 Stepper Motor Control
          1. 9.4.1 The Stepper Library
          2. 9.4.2 Controlling a Stepper Motor
        5. 9.5 Servomotor Control
          1. 9.5.1 The Servo Library
          2. 9.5.2 Controlling the Servomotor
        6. 9.6 Summary
      2. 10. Motor Control with the Raspberry Pi
        1. 10.1 The Raspberry Pi
          1. 10.1.1 The Raspberry Pi Circuit Board
          2. 10.1.2 The BCM2835 System on a Chip (SoC)
        2. 10.2 Programming the Raspberry Pi
          1. 10.2.1 The Raspbian Operating System
          2. 10.2.2 Python and IDLE
          3. 10.2.3 Interfacing GPIO
        3. 10.3 Controlling a Servomotor
          1. 10.3.1 Configuring PWM
          2. 10.3.2 Controlling a Servo
        4. 10.4 The RaspiRobot Board
          1. 10.4.1 The L293DD Quadruple Half-H Driver
          2. 10.4.2 RaspiRobot Python Code
          3. 10.4.3 Controlling Brushed DC Motors
          4. 10.4.4 Controlling a Stepper Motor
        5. 10.5 Summary
      3. 11. Controlling Motors with the BeagleBone Black
        1. 11.1 The BeagleBone Black (BBB)
          1. 11.1.1 The BBB Circuit Board
          2. 11.1.2 The AM3359 System on a Chip (SoC)
        2. 11.2 Programming the BBB
          1. 11.2.1 The Debian Operating System
          2. 11.2.2 The Adafruit-BBIO Module
          3. 11.2.3 Accessing GPIO Pins
        3. 11.3 PWM Generation
        4. 11.4 The Dual Motor Controller Cape (DMCC)
          1. 11.4.1 BBB-DMCC Communication
          2. 11.4.2 PWM Signal Generation
          3. 11.4.3 Switching Circuitry
          4. 11.4.4 Motor Control
        5. 11.5 Summary
      4. 12. Designing an Arduino-Based Electronic Speed Control (ESC)
        1. 12.1 Overview of the ESC Design
        2. 12.2 Switching Circuitry
          1. 12.2.1 MOSFET Switches
          2. 12.2.2 MOSFET Drivers
          3. 12.2.3 Bootstrap Capacitor
        3. 12.3 Zero-Crossing Detection
          1. 12.3.1 Step 1: Relate VP to the Voltages of the Three Windings
          2. 12.3.2 Step 2: Relate VO to the Voltages of Two Energized Windings
          3. 12.3.3 Step 3: Relate VO to the Voltage of the Floating Winding and the Floating Back-EMF
          4. 12.3.4 Step 4: Combine the Results to Solve for the Floating Back-EMF
        4. 12.4 Designing the Schematic
          1. 12.4.1 Header Connections
          2. 12.4.2 MOSFETs and MOSFET Drivers
          3. 12.4.3 Zero-Crossing Detection
        5. 12.5 Board Layout
        6. 12.6 Controlling the BLDC
          1. 12.6.1 General BLDC Control
          2. 12.6.2 Interfacing the BLDC Through Arduino
        7. 12.7 Summary
      5. 13. Designing a Quadcopter
        1. 13.1 Frame
        2. 13.2 Propellers
          1. 13.2.1 Propeller Dynamics
          2. 13.2.2 Selecting the Propeller
        3. 13.3 Motors
        4. 13.4 Electronics
          1. 13.4.1 Transmitter/Receiver
          2. 13.4.2 Flight Controller
          3. 13.4.3 Electronic Speed Control (ESC)
          4. 13.4.4 Battery
        5. 13.5 Construction
        6. 13.6 Summary
      6. 14. Electric Vehicles
        1. 14.1 Electric Vehicle Conversion
          1. 14.1.1 Motors
          2. 14.1.2 Controllers
          3. 14.1.3 Batteries
          4. 14.1.4 Transmission
        2. 14.2 Modern Electric Vehicles
          1. 14.2.1 Tesla Motors Model S
          2. 14.2.2 Nissan Leaf
          3. 14.2.3 BMW i3
        3. 14.3 Patents from Tesla Motors
          1. 14.3.1 Flux Controlled Motor Management
          2. 14.3.2 Induction Motor Lamination Design
          3. 14.3.3 Dual-Motor Drive and Control System
          4. 14.3.4 Method for Making Efficient Rotors
        4. 14.4 Summary
    13. IV: Appendixes
      1. A. Electric Generators
        1. A.1 Overview
        2. A.2 DC Generators
        3. A.3 AC Generators
          1. A.3.1 Operation of an AC Generator
          2. A.3.2 Magnetos and Self-Excited Generators
        4. A.4 Summary
      2. B. Glossary
    14. Index
    15. Code Snippets