ARM-based Microcontroller Projects Using mbed

Book Description

ARM-based Microcontroller Projects Using mbed gives readers a good understanding of the basic architecture and programming of ARM-based microcontrollers using ARM’s mbed software. The book presents the technology through a project-based approach with clearly structured sections that enable readers to use or modify them for their application. Sections include: Project title, Description of the project, Aim of the project, Block diagram of the project, Circuit diagram of the project, Construction of the project, Program listing, and a Suggestions for expansion. This book will be a valuable resource for professional engineers, students and researchers in computer engineering, computer science, automatic control engineering and mechatronics.

  • Includes a wide variety of projects, such as digital/analog inputs and outputs (GPIO, ADC, DAC), serial communications (UART, 12C, SPI), WIFI, Bluetooth, DC and servo motors
  • Based on the popular Nucleo-L476RG development board, but can be easily modified to any ARM compatible processor
  • Shows how to develop robotic applications for a mobile robot
  • Contains complete mbed program listings for all the projects in the book

Table of Contents

  1. Cover image
  2. Title page
  3. Table of Contents
  4. Copyright
  5. About the Author
  6. Preface
  7. Acknowledgments
  8. Chapter 1: Introduction
    1. Abstract
    2. 1.1 Overview
    3. 1.2 Example Microcontroller-Based Control System
    4. 1.3 Summary
    5. 1.4 Exercises
  9. Chapter 2: Microcontroller-Based Project Development Cycle
    1. Abstract
    2. 2.1 Overview
    3. 2.2 Program Development Tools
    4. 2.3 Examples
    5. 2.4 Summary
    6. 2.5 Exercises
  10. Chapter 3: The ARM Microcontrollers
    1. Abstract
    2. 3.1 Overview
    3. 3.2 Brief History of ARM Processors
    4. 3.3 The ARM Processor Architecture
    5. 3.4 ARM Processor-Based Microcontroller Development Boards
    6. 3.5 Summary
    7. 3.6 Exercises
  11. Chapter 4: STM32 Nucleo Development Boards
    1. Abstract
    2. 4.1 Overview
    3. 4.2 STM32 Nucleo Development Boards
    4. 4.3 STM32 Nucleo Expansion Boards
    5. 4.4 Summary
    6. 4.5 Exercises
  12. Chapter 5: The Nucleo-F411RE Development Board
    1. Abstract
    2. 5.1 Overview
    3. 5.2 The Nucleo-F411RE Development Board
    4. 5.3 The Demo Software
    5. 5.4 Summary
    6. 5.5 Exercises
  13. Chapter 6: Architecture of the STM32F411RET6 Microcontroller
    1. Abstract
    2. 6.1 Overview
    3. 6.2 Key Features of the STM32F411RET6 Microcontroller
    4. 6.3 Summary
    5. 6.4 Exercises
  14. Chapter 7: Using the Mbed With Simple Projects
    1. Abstract
    2. 7.1 Overview
    3. 7.2 Registering to Use Mbed
    4. 7.3 Nucleo-F411RE Development Board Pin Names
    5. 7.4 Project 1—Flashing LED
    6. 7.5 Project 2—LED Flashing as Morse Code SOS
    7. 7.6 Project 3—Flashing an External LED
    8. 7.7 Project 4—Rotating LEDs
    9. 7.8 Project 5—Binary Counting LEDs
    10. 7.9 Project 6—Random Flashing LEDs
    11. 7.10 Project 7—LED Control With Push-button
    12. 7.11 Project 8—Changing LED Flashing Rate
    13. 7.12 Project 9—Binary Event Counting With LEDs
    14. 7.13 Project 10—Using an External Button
    15. 7.14 Project 11—RGB LED Control
    16. 7.15 Project 12—Random Colored LED Display
    17. 7.16 Project 13—7-Segment LED Display
    18. 7.17 Project 14—Powering Large Loads—DC Motor Control
    19. 7.18 Summary
    20. 7.19 Exercises
  15. Chapter 8: Intermediate Level Projects
    1. Abstract
    2. 8.1 Overview
    3. 8.2 Project 1—Two-Digit Multiplexed 7-Segment LED
    4. 8.3 Project 2—Four-Digit Multiplexed 7-Segment LED
    5. 8.4 Polling and Interrupts
    6. 8.5 Project 3—Four-Digit 7-Segment LED Counter
    7. 8.6 Project 4—Four-Digit 7-Segment LED Event Counter
    8. 8.7 Project 5—7-Segment LED Dice
    9. 8.8 PC Serial Interface
    10. 8.9 Project 6—Volume of a Cylinder
    11. 8.10 Project 7—Calculator
    12. 8.11 Project 8—Learn Your Times Tables
    13. 8.12 Project 9—Improving Your Multiplication Skills
    14. 8.13 Project 10—Loop Execution Times
    15. 8.14 Project 11—Reaction Timer
    16. 8.15 Project 12—Event Counter
    17. 8.16 Project 13—Hi-Lo Game
    18. 8.17 Project 14—Serial Interrupt
    19. 8.18 Project 15—Euro Millionaire Lottery Numbers
    20. 8.19 Using the Analog-to-Digital Converter
    21. 8.20 Project 16—Digital Voltmeter
    22. 8.21 Project 17—Analog Temperature Sensor (Digital Thermometer)
    23. 8.22 Project 18—Digital Thermostat
    24. 8.23 Project 19—ON/OFF Temperature Controller
    25. 8.24 Project 20—Light Level Meter
    26. 8.25 Project 21—Changing LED Flashing Rate With a Potentiometer
    27. 8.26 Project 22—Sound Level Meter
    28. 8.27 Using the Digital-to-Analog Converter
    29. 8.28 Project 23—Generating Fixed Voltage
    30. 8.29 Project 24—Sawtooth Waveform
    31. 8.30 Project 25—Triangular Waveform
    32. 8.31 Project 26—Sine Waveform
    33. 8.32 Project 27—Arbitrary Periodic Waveform
    34. 8.33 Project 28—Waveform Generator
    35. 8.34 Using the PWM
    36. 8.35 Project 29—Melody Maker
    37. 8.36 Project 30—Electronic Organ
    38. 8.37 Project 31—Varying the LED Brightness
    39. 8.38 Summary
    40. 8.39 Exercises
  16. Chapter 9: Motor Control Projects
    1. Abstract
    2. 9.1 Overview
    3. 9.2 Project 1—Simple Brushed DC Motor Control
    4. 9.3 Project 2—Changing the Motor Rotation Direction
    5. 9.4 Project 3—Simple Servo Motor Control
    6. 9.5 Project 4—Simple Stepper Motor Control
    7. 9.6 Summary
    8. 9.7 Exercises
  17. Chapter 10: Using Liquid Crystal Displays (LCDs)
    1. Abstract
    2. 10.1 Overview
    3. 10.2 Project 1—Displaying Text on the LCD
    4. 10.3 Project 2—External Interrupt-Driven Event Counter
    5. 10.4 Project 3—Ultrasonic Height Measurement
    6. 10.5 Project 4—Calculator Using a Keypad
    7. 10.6 Summary
    8. 10.7 Exercises
  18. Chapter 11: I2C Bus Projects
    1. Abstract
    2. 11.1 Overview
    3. 11.2 Nucleo-F411RE I2C GPIO Pins
    4. 11.3 Project 1—TMP102 Temperature Sensor
    5. 11.4 Summary
    6. 11.5 Exercises
  19. Chapter 12: SPI Bus Projects
    1. Abstract
    2. 12.1 Overview
    3. 12.2 Nucleo-F411RE SPI GPIO Pins
    4. 12.3 Project 1—Generating Square Wave
    5. 12.4 Summary
    6. 12.5 Exercises
  20. Chapter 13: UART Projects
    1. Abstract
    2. 13.1 Overview
    3. 13.2 Nucleo-F411RE UART GPIO Pins
    4. 13.3 Project 1—Two Nucleo Boards Communicating Through UART
    5. 13.4 Summary
    6. 13.5 Exercises
  21. Chapter 14: Advanced Projects
    1. Abstract
    2. 14.1 Overview
    3. 14.2 Wi-Fi
    4. 14.3 Project 1—Android—Nucleo Board Communication Using the Wi-Fi Expansion Board
    5. 14.4 Project 2—Android—Nucleo Board Communication Using the ESP-01
    6. 14.5 Project 3—Android—Nucleo Board Communication Using Bluetooth
    7. 14.6 Summary
    8. 14.7 Exercises
  22. Chapter 15: Mbed RTOS Projects
    1. Abstract
    2. 15.1 Overview
    3. 15.2 Task Scheduling
    4. 15.3 Mbed RTOS Implementation
    5. 15.4 Project 1—Different Flashing a Pair of LEDs—Using Mbed Thread
    6. 15.5 Project 2—Refreshing a 7-Segment Display
    7. 15.6 Mbed Task Synchronization—Mutex, Semaphore, and Signals
    8. 15.7 Project 3—Car Park Controller—Using Signals
    9. 15.8 Mbed Queue and MemoryPool
    10. 15.9 Mbed Mail
    11. 15.10 Mbed RTOS Timer
    12. 15.11 Summary
    13. 15.12 Exercises
  23. Chapter 16: Internet of Things (IoT)
    1. Abstract
    2. 16.1 Overview
    3. 16.2 Internet of Things (IoT)
    4. 16.3 Project 1—Home IoT Project
    5. 16.4 Summary
    6. 16.5 Exercises
  24. Chapter 17: STM32 Nucleo Expansion Boards
    1. Abstract
    2. 17.1 Overview
    3. 17.2 High-Power Stepper Motor Board (X-NUCLEO-IHM03A1)
    4. 17.3 Two-Axis Stepper Motor Board (X-NUCLEO-IHM02A1)
    5. 17.4 Low-Voltage Three-Phase Brushless DC Motor Board (X-NUCLEO-IHM11M1)
    6. 17.5 Motion MEMS and Environmental Sensor Expansion Board (X-NUCLEO-IKS01A2)
    7. 17.6 Project 1—Measuring and Displaying the Humidity, Temperature, Atmospheric Pressure, and Dew Point Using the X-NUCLEO-IKS01A2 Expansion Board
    8. 17.7 Multifunctional Expansion Board (X-NUCLEO-IKA01A1)
    9. 17.8 Bluetooth Low-Energy Expansion Board (X-NUCLEO-IDB04A1)
    10. 17.9 Three-Phase Brushless DC Motor Board (X-NUCLEO-IHM07M1)
    11. 17.10 Bipolar Stepper Motor Driver Board (X-NUCLEO-IHM05A1)
    12. 17.11 Low-Voltage Stepper Motor Driver Expansion Board (X-NUCLEO-IHM06A1)
    13. 17.12 Brushed DC Motor Driver Expansion Board (X-NUCLEO-IHM13A1)
    14. 17.13 Project 2—Brushed DC Motor Speed Control Using the X-NUCLEO-IHM13A1 Expansion Board
    15. 17.14 Project 3—Brushed DC Motor Speed Control Using a Potentiometer With the X-NUCLEO-IHM13A1 Expansion Board
    16. 17.15 Industrial Digital Output Expansion Board (X-NUCLEO-OUT01A1)
    17. 17.16 Project 4—Controlling LEDs With the X-NUCLEO-OUT01A1 Expansion Board
    18. 17.17 CR95HF NFC Card Reader Expansion Board (X-NUCLEO-NFC03A1)
    19. 17.18 M24LR Dynamic Tag Expansion Board (X-NUCLEO-NFC02A1)
    20. 17.19 Ranging and Gesture Detection Sensor Expansion Board (X-NUCLEO-53L0A1)
    21. 17.20 Project 5—Measuring Distance to an Object Using the X-NUCLEO-53L0A1 Expansion Board
    22. 17.21 Summary
    23. 17.22 Exercises
  25. Appendix: STM32 Nucleo-F411RE Pin Layout
  26. Bibliography
  27. Index

Product Information

  • Title: ARM-based Microcontroller Projects Using mbed
  • Author(s): Dogan Ibrahim
  • Release date: April 2019
  • Publisher(s): Newnes
  • ISBN: 9780081029701