Books & Videos

Table of Contents

  1. Chapter 1 Setup and Management

    1. 1.0. Introduction

    2. 1.1. Selecting a Model of Raspberry Pi

    3. 1.2. Enclosing a Raspberry Pi

    4. 1.3. Selecting a Power Supply

    5. 1.4. Selecting an Operating System Distribution

    6. 1.5. Writing a MicroSD Card with NOOBS

    7. 1.6. Connecting the System

    8. 1.7. Connecting a DVI or VGA Monitor

    9. 1.8. Using a Composite Video Monitor/TV

    10. 1.9. Adjusting the Picture Size on Your Monitor

    11. 1.10. Maximizing Performance

    12. 1.11. Changing Your Password

    13. 1.12. Setting the Pi to Boot Straight into a Windowing System

    14. 1.13. Shutting Down Your Raspberry Pi

    15. 1.14. Installing the Raspberry Pi Camera Module

    16. 1.15. Using Bluetooth

  2. Chapter 2 Networking

    1. 2.0. Introduction

    2. 2.1. Connecting to a Wired Network

    3. 2.2. Finding Your IP Address

    4. 2.3. Setting a Static IP Address

    5. 2.4. Setting the Network Name of a Raspberry Pi

    6. 2.5. Setting Up a Wireless Connection

    7. 2.6. Connecting with a Console Lead

    8. 2.7. Controlling the Pi Remotely with SSH

    9. 2.8. Controlling the Pi Remotely with VNC

    10. 2.9. Controlling the Pi Remotely with RDP

    11. 2.10. File Sharing on a Mac Network

    12. 2.11. Sharing the Pi Screen on a Mac

    13. 2.12. Using a Raspberry Pi for Network Attached Storage

    14. 2.13. Network Printing

  3. Chapter 3 Operating System

    1. 3.0. Introduction

    2. 3.1. Moving Files Around Graphically

    3. 3.2. Starting a Terminal Session

    4. 3.3. Navigating the Filesystem Using a Terminal

    5. 3.4. Copying a File or Folder

    6. 3.5. Renaming a File or Folder

    7. 3.6. Editing a File

    8. 3.7. Viewing the Contents of a File

    9. 3.8. Creating a File Without Using an Editor

    10. 3.9. Creating a Directory

    11. 3.10. Deleting a File or Directory

    12. 3.11. Performing Tasks with Superuser Privileges

    13. 3.12. Understanding File Permissions

    14. 3.13. Changing File Permissions

    15. 3.14. Changing File Ownership

    16. 3.15. Making a Screen Capture

    17. 3.16. Installing Software with apt-get

    18. 3.17. Removing Software Installed with apt-get

    19. 3.18. Installing Python Packages with Pip

    20. 3.19. Fetching Files from the Command Line

    21. 3.20. Fetching Source Code with Git

    22. 3.21. Running a Program or Script Automatically on Startup

    23. 3.22. Running a Program or Script Automatically as a Service

    24. 3.23. Running a Program or Script Automatically at Regular Intervals

    25. 3.24. Finding Things

    26. 3.25. Using the Command-Line History

    27. 3.26. Monitoring Processor Activity

    28. 3.27. Working with File Archives

    29. 3.28. Listing Connected USB Devices

    30. 3.29. Redirecting Output from the Command Line to a File

    31. 3.30. Concatenating Files

    32. 3.31. Using Pipes

    33. 3.32. Hiding Output to the Terminal

    34. 3.33. Running Programs in the Background

    35. 3.34. Creating Command Aliases

    36. 3.35. Setting the Date and Time

    37. 3.36. Finding Out How Much Room You Have on the SD Card

  4. Chapter 4 Software

    1. 4.0. Introduction

    2. 4.1. Making a Media Center

    3. 4.2. Installing Office Software

    4. 4.3. Installing other Browsers

    5. 4.4. Using the Pi Store

    6. 4.5. Making a Webcam Server

    7. 4.6. Running a Vintage Game Console Emulator

    8. 4.7. Running Minecraft Pi Edition

    9. 4.8. Running a Minecraft Server

    10. 4.9. Running Open Arena

    11. 4.10. Raspberry Pi Radio Transmitter

    12. 4.11. Running GIMP

    13. 4.12. Internet Radio

  5. Chapter 5 Python Basics

    1. 5.0. Introduction

    2. 5.1. Deciding Between Python 2 and Python 3

    3. 5.2. Editing Python Programs with IDLE

    4. 5.3. Using the Python Console

    5. 5.4. Running Python Programs from the Terminal

    6. 5.5. Variables

    7. 5.6. Displaying Output

    8. 5.7. Reading User Input

    9. 5.8. Arithmetic

    10. 5.9. Creating Strings

    11. 5.10. Concatenating (Joining) Strings

    12. 5.11. Converting Numbers to Strings

    13. 5.12. Converting Strings to Numbers

    14. 5.13. Finding the Length of a String

    15. 5.14. Finding the Position of One String Inside Another

    16. 5.15. Extracting Part of a String

    17. 5.16. Replacing One String of Characters with Another Inside a String

    18. 5.17. Converting a String to Upper- or Lowercase

    19. 5.18. Running Commands Conditionally

    20. 5.19. Comparing Values

    21. 5.20. Logical Operators

    22. 5.21. Repeating Instructions an Exact Number of Times

    23. 5.22. Repeating Instructions Until Some Condition Changes

    24. 5.23. Breaking Out of a Loop

    25. 5.24. Defining a Function in Python

  6. Chapter 6 Python Lists and Dictionaries

    1. 6.0. Introduction

    2. 6.1. Creating a List

    3. 6.2. Accessing Elements of a List

    4. 6.3. Finding the Length of a List

    5. 6.4. Adding Elements to a List

    6. 6.5. Removing Elements from a List

    7. 6.6. Creating a List by Parsing a String

    8. 6.7. Iterating Over a List

    9. 6.8. Enumerating a List

    10. 6.9. Sorting a List

    11. 6.10. Cutting Up a List

    12. 6.11. Applying a Function to a List

    13. 6.12. Creating a Dictionary

    14. 6.13. Accessing a Dictionary

    15. 6.14. Removing Things from a Dictionary

    16. 6.15. Iterating Over Dictionaries

  7. Chapter 7 Advanced Python

    1. 7.0. Introduction

    2. 7.1. Formatting Numbers

    3. 7.2. Formatting Dates and Times

    4. 7.3. Returning More Than One Value

    5. 7.4. Defining a Class

    6. 7.5. Defining a Method

    7. 7.6. Inheritance

    8. 7.7. Writing to a File

    9. 7.8. Reading from a File

    10. 7.9. Pickling

    11. 7.10. Handling Exceptions

    12. 7.11. Using Modules

    13. 7.12. Random Numbers

    14. 7.13. Making Web Requests from Python

    15. 7.14. Command-Line Arguments in Python

    16. 7.15. Running Linux Commands from Python

    17. 7.16. Sending Email from Python

    18. 7.17. Writing a Simple Web Server in Python

    19. 7.18. Doing More Than One Thing at a Time

    20. 7.19. Doing Nothing in Python

    21. 7.20. Using Python with Minecraft Pi Edition

  8. Chapter 8 Computer Vision

    1. 8.0. Introduction

    2. 8.1. Installing SimpleCV

    3. 8.2. Setting Up a USB Camera for Computer Vision

    4. 8.3. Using a Raspberry Pi Camera Module for Computer Vision

    5. 8.4. Counting Coins

    6. 8.5. Face Detection

    7. 8.6. Motion Detection

    8. 8.7. Optical Character Recognition

  9. Chapter 9 Hardware Basics

    1. 9.0. Introduction

    2. 9.1. Finding Your Way Around the GPIO Connector

    3. 9.2. Keeping Your Raspberry Pi Safe When Using the GPIO Connector

    4. 9.3. Setting Up I2C

    5. 9.4. Using I2C Tools

    6. 9.5. Setting Up SPI

    7. 9.6. Installing PySerial for Access to the Serial Port from Python

    8. 9.7. Installing Minicom to Test the Serial Port

    9. 9.8. Using a Breadboard with Jumper Leads

    10. 9.9. Using a Breadboard with a Pi Cobbler

    11. 9.10. Using a Raspberry Squid

    12. 9.11. Using a Raspberry Squid Button

    13. 9.12. Converting 5V Signals to 3.3V with Two Resistors

    14. 9.13. Converting 5V Signals to 3.3V with a Level Converter Module

    15. 9.14. Powering a Raspberry Pi with Batteries

    16. 9.15. Powering a Raspberry Pi with a LiPo Battery

    17. 9.16. Getting Started with the Sense HAT

    18. 9.17. Getting Started with the Explorer HAT Pro

    19. 9.18. Getting Started with a RaspiRobot Board

    20. 9.19. Using a Pi Plate Prototyping Board

    21. 9.20. Making a Hardware At Top (HAT)

    22. 9.21. The Pi Compute Module

    23. 9.22. The Pi Zero

  10. Chapter 10 Controlling Hardware

    1. 10.0. Introduction

    2. 10.1. Connecting an LED

    3. 10.2. Leaving the GPIO Pins in a Safe State

    4. 10.3. Controlling the Brightness of an LED

    5. 10.4. Make a Buzzing Sound

    6. 10.5. Switching a High-Power DC Device Using a Transistor

    7. 10.6. Switching a High-Power Device Using a Relay

    8. 10.7. Controlling High-Voltage AC Devices

    9. 10.8. Making a User Interface to Turn Things On and Off

    10. 10.9. Making a User Interface to Control PWM Power for LEDs and Motors

    11. 10.10. Changing the Color of an RGB LED

    12. 10.11. Using Lots of LEDs (Charlieplexing)

    13. 10.12. Using an Analog Meter as a Display

    14. 10.13. Programming with Interrupts

  11. Chapter 11 Motors

    1. 11.0. Introduction

    2. 11.1. Controlling Servo Motors

    3. 11.2. Controlling Servo Motors Precisely

    4. 11.3. Controlling Many Servo Motors

    5. 11.4. Controlling the Speed of a DC Motor

    6. 11.5. Controlling the Direction of a DC Motor

    7. 11.6. Using a Unipolar Stepper Motor

    8. 11.7. Using a Bipolar Stepper Motor

    9. 11.8. Using a Stepper Motor HAT to Drive a Bipolar Stepper Motor

    10. 11.9. Using a RaspiRobot Board to Drive a Bipolar Stepper Motor

    11. 11.10. Building a Simple Robot Rover

  12. Chapter 12 Digital Inputs

    1. 12.0. Introduction

    2. 12.1. Connecting a Push Switch

    3. 12.2. Toggling with a Push Switch

    4. 12.3. Using a Two-Position Toggle or Slide Switch

    5. 12.4. Using a Center-Off Toggle or Slide Switch

    6. 12.5. Debouncing a Button Press

    7. 12.6. Using an External Pull-up Resistor

    8. 12.7. Using a Rotary (Quadrature) Encoder

    9. 12.8. Using a Keypad

    10. 12.9. Detecting Movement

    11. 12.10. Adding GPS to the Raspberry Pi

    12. 12.11. Intercepting Keypresses

    13. 12.12. Intercepting Mouse Movements

    14. 12.13. Using a Real-Time Clock Module

  13. Chapter 13 Sensors

    1. 13.0. Introduction

    2. 13.1. Using Resistive Sensors

    3. 13.2. Measuring Light

    4. 13.3. Measuring Temperature with a Thermistor

    5. 13.4. Detecting Methane

    6. 13.5. Measuring a Voltage

    7. 13.6. Reducing Voltages for Measurement

    8. 13.7. Using Resistive Sensors with an ADC

    9. 13.8. Measuring Temperature with an ADC

    10. 13.9. Measuring the Raspberry Pi CPU Temperature

    11. 13.10. Measuring Temperature, Humidity, and Pressure with a Sense HAT

    12. 13.11. Measuring Temperature Using a Digital Sensor

    13. 13.12. Measuring Acceleration with an MCP3008 Module

    14. 13.13. Using the Inertial Management Unit (IMU) of the Sense HAT

    15. 13.14. Finding Magnetic North with the Sense HAT

    16. 13.15. Sensing a Magnet with a Reed Switch

    17. 13.16. Sensing a Magnet with the Sense HAT

    18. 13.17. Measuring Distance

    19. 13.18. Capacitative Touch Sensing

    20. 13.19. Displaying Sensor Values

    21. 13.20. Logging to a USB Flash Drive

  14. Chapter 14 Displays

    1. 14.0. Introduction

    2. 14.1. Using a Four-Digit LED Display

    3. 14.2. Displaying Messages on an I2C LED Matrix

    4. 14.3. Using the Sense HAT LED Matrix Display

    5. 14.4. Displaying Messages on an Alphanumeric LCD HAT

    6. 14.5. Displaying Messages on an Alphanumeric LCD Module

    7. 14.6. Using an OLED Graphical Display

    8. 14.7. Using Addressable RGB LED Strips

  15. Chapter 15 The Internet of Things

    1. 15.0. Introduction

    2. 15.1. Controlling GPIO Outputs Using a Web Interface

    3. 15.2. Displaying Sensor Readings on a Web Page

    4. 15.3. Sending Email and Other Notifications with IFTTT

    5. 15.4. Sending Tweets Using ThingSpeak

    6. 15.5. CheerLights

    7. 15.6. Sending Sensor Data to ThingSpeak

    8. 15.7. Responding to Tweets Using Dweet and IFTTT

  16. Chapter 16 Arduino and Raspberry Pi

    1. 16.0. Introduction

    2. 16.1. Programming an Arduino from Raspberry Pi

    3. 16.2. Communicating with the Arduino by Using the Serial Monitor

    4. 16.3. Setting Up PyFirmata to Control an Arduino from a Raspberry Pi

    5. 16.4. Writing Digital Outputs on an Arduino from a Raspberry Pi

    6. 16.5. Using PyFirmata with TTL Serial

    7. 16.6. Reading Arduino Digital Inputs Using PyFirmata

    8. 16.7. Reading Arduino Analog Inputs Using PyFirmata

    9. 16.8. Analog Outputs (PWM) with PyFirmata

    10. 16.9. Controlling a Servo Using PyFirmata

    11. 16.10. Custom Communication with an Arduino over TTL Serial

    12. 16.11. Custom Communication with an Arduino over I2C

    13. 16.12. Using Small Arduinos with a Raspberry Pi

    14. 16.13. Getting Started with an aLaMode Board and a Raspberry Pi

    15. 16.14. Using an Arduino Shield with an aLaMode Board and a Raspberry Pi

  17. Appendix Parts and Suppliers

    1. Parts

    2. Prototyping Equipment

    3. Resistors and Capacitors

    4. Transistors and Diodes

    5. Integrated Circuits

    6. Opto-Electronics

    7. Modules

    8. Miscellaneous

  18. Appendix Raspberry Pi Pinouts

    1. Raspberry Pi 3/2 model B, B+, A+, Zero

    2. Raspberry Pi model B rev. 2, A

    3. Raspberry Pi model B rev. 1