You are previewing Exploring Raspberry Pi.
O'Reilly logo
Exploring Raspberry Pi

Book Description

Expand Raspberry Pi capabilities with fundamental engineering principles

Exploring Raspberry Pi is the innovators guide to bringing Raspberry Pi to life. This book favors engineering principles over a 'recipe' approach to give you the skills you need to design and build your own projects. You'll understand the fundamental principles in a way that transfers to any type of electronics, electronic modules, or external peripherals, using a "learning by doing" approach that caters to both beginners and experts. The book begins with basic Linux and programming skills, and helps you stock your inventory with common parts and supplies. Next, you'll learn how to make parts work together to achieve the goals of your project, no matter what type of components you use. The companion website provides a full repository that structures all of the code and scripts, along with links to video tutorials and supplementary content that takes you deeper into your project.

The Raspberry Pi's most famous feature is its adaptability. It can be used for thousands of electronic applications, and using the Linux OS expands the functionality even more. This book helps you get the most from your Raspberry Pi, but it also gives you the fundamental engineering skills you need to incorporate any electronics into any project.

  • Develop the Linux and programming skills you need to build basic applications
  • Build your inventory of parts so you can always "make it work"
  • Understand interfacing, controlling, and communicating with almost any component
  • Explore advanced applications with video, audio, real-world interactions, and more

Be free to adapt and create with Exploring Raspberry Pi.

Table of Contents

  1. Title Page
  2. Introduction
    1. How This Book Is Structured
    2. Conventions Used in This Book
    3. What You'll Need
    4. Errata
    5. Digital Content and Source Code
  3. Part I: Raspberry Pi Basics
    1. Chapter 1: Raspberry Pi Hardware
      1. Introduction to the Platform
      2. RPi Documentation
      3. The RPi Hardware
      4. Raspberry Pi Accessories
      5. HATs
      6. How to Destroy Your RPi!
      7. Summary
      8. Support
    2. Chapter 2: Raspberry Pi Software
      1. Linux on the Raspberry Pi
      2. Connecting to a Network
      3. Communicating with the RPi
      4. Controlling the Raspberry Pi
      5. Configuring the Raspberry Pi
      6. Interacting with the Onboard LEDs
      7. Shutdown and Reboot
      8. Summary
    3. Chapter 3: Exploring Embedded Linux Systems
      1. Introducing Embedded Linux
      2. Managing Linux Systems
      3. Using Git for Version Control
      4. Using Desktop Virtualization
      5. Code for This Book
      6. Summary
      7. Further Reading
      8. Bibliography
    4. Chapter 4: Interfacing Electronics
      1. Analyzing Your Circuits
      2. Basic Circuit Principles
      3. Discrete Components
      4. Logic Gates
      5. Analog-to-Digital Conversion
      6. Concluding Advice
      7. Summary
      8. Further Reading
    5. Chapter 5: Programming on the Raspberry Pi
      1. Introduction
      2. Scripting Languages
      3. Dynamically Compiled Languages
      4. C and C++ on the RPi
      5. Overview of Object-Oriented Programming
      6. Interfacing to the Linux OS
      7. Improving the Performance of Python
      8. Summary
      9. Further Reading
      10. Bibliography
  4. Part II: Interfacing, Controlling, and Communicating
    1. Chapter 6: Interfacing to the Raspberry Pi Input/Outputs
      1. Introduction
      2. General-Purpose Input/Outputs
      3. C++ Control of GPIOs Using sysfs
      4. Memory-Based GPIO Control
      5. WiringPi
      6. GPIOs and Permissions
      7. Summary
    2. Chapter 7: Cross-Compilation and the Eclipse IDE
      1. Setting Up a Cross-Compilation Toolchain
      2. Cross-Compilation Using Eclipse
      3. Building Linux
      4. Summary
      5. Further Reading
    3. Chapter 8: Interfacing to the Raspberry Pi Buses
      1. Introduction to Bus Communication
      2. I<sup xmlns="" xmlns:epub="" xmlns:m="" xmlns:svg="" xmlns:ibooks="">2</sup>CC
      3. SPI
      4. UART
      5. Logic-Level Translation
      6. Summary
      7. Further Reading
    4. Chapter 9: Enhancing the Input/Output Interfaces on the RPi
      1. Introduction
      2. Analog-to-Digital Conversion
      3. Digital-to-Analog Conversion
      4. Adding PWM Outputs to the RPi
      5. Extending the RPi GPIOs
      6. Adding UARTs to the RPi
      7. Summary
    5. Chapter 10: Interacting with the Physical Environment
      1. Interfacing to Actuators
      2. Interfacing to Analog Sensors
      3. Interfacing to Local Displays
      4. Building C/C++ Libraries
      5. Summary
    6. Chapter 11: Real-Time Interfacing Using the Arduino
      1. The Arduino
      2. An Arduino Serial Slave
      3. An Arduino I<sup xmlns="" xmlns:epub="" xmlns:m="" xmlns:svg="" xmlns:ibooks="">2</sup>C SlaveC Slave
      4. An Arduino SPI Slave
      5. Programming the Arduino from the RPi Command Line
      6. Summary
  5. Part III: Advanced Interfacing and Interaction
    1. Chapter 12: The Internet of Things
      1. The Internet of Things (IoT)
      2. The RPi as an IoT Sensor
      3. The RPi as a Sensor Web Server
      4. A C/C++ Web Client
      5. The RPi as a “Thing”
      6. Large-Scale IoT Frameworks
      7. The C++ Client/Server
      8. IoT Device Management
      9. Summary
    2. Chapter 13: Wireless Communication and Control
      1. Introduction to Wireless Communications
      2. Bluetooth Communications
      3. Wi-Fi Communications
      4. ZigBee Communications
      5. Near Field Communication
      6. Summary
    3. Chapter 14: Raspberry Pi with a Rich User Interface
      1. Rich UI RPi Architectures
      2. Rich UI Application Development
      3. Qt Primer
      4. Remote UI Application Development
      5. Summary
      6. Further Reading
    4. Chapter 15: Images, Video, and Audio
      1. Capturing Images and Video
      2. Streaming Video
      3. Image Processing and Computer Vision
      4. Raspberry Pi Audio
      5. Summary
      6. Further Reading
    5. Chapter 16: Kernel Programming
      1. Introduction
      2. A First LKM Example
      3. An Embedded LKM Example
      4. Enhanced Button GPIO Driver LKM
      5. Enhanced LED GPIO Driver LKM
      6. Conclusions
      7. Summary
  6. End User License Agreement