#694 Raspberry Pi Cookbook
Book notes: Raspberry Pi Cookbook, by Simon Monk. First published January 1, 2013.
Notes
See also:
- amazon
- goodreads
- https://www.oreilly.com/library/view/raspberry-pi-cookbook/9781449365288/
- https://github.com/simonmonk/raspberrypi_cookbook
Contents
1. Setup and Management
- 1.0. Introduction
- 1.1. Selecting a Model of Raspberry Pi
- 1.2. Enclosing a Raspberry Pi
- 1.3. Selecting a Power Supply
- 1.4. Selecting an Operating System Distribution
- 1.5. Writing an SD Card with NOOBS
- 1.6. Writing an SD Card Manually (Mac)
- 1.7. Writing an SD Card Manually (Windows)
- 1.8. Writing an SD Card Manually (Linux)
- 1.9. Connecting the System
- 1.10. Connecting a DVI or VGA Monitor
- 1.11. Using a Composite Video Monitor/TV
- 1.12. Using All the Storage on the SD Card
- 1.13. Adjusting the Picture Size on your Monitor
- 1.14. Maximizing Performance
- 1.15. Changing Your Password
- 1.16. Setting the Pi to Boot Straight into a Windowing System
- 1.17. Shutting Down Your Raspberry Pi
- 1.18. Installing the Raspberry Pi Camera Module
2. Networking
- 2.0. Introduction
- 2.1. Connecting to a Wired Network
- 2.2. Finding Out Your IP Address
- 2.3. Setting a Static IP Address
- 2.4. Setting the Network Name of a Raspberry Pi
- 2.5. Setting Up a Wireless Connection
- 2.6. Connecting with a Console Lead
- 2.7. Controlling the Pi Remotely with SSH
- 2.8. Controlling the Pi Remotely with VNC
- 2.9. File Sharing on a Mac Network
- 2.10. Sharing the Pi Screen on a Mac
- 2.11. Using a Raspberry Pi for Network Attached Storage
- 2.12. Network Printing
3. Operating System
- 3.0. Introduction
- 3.1. Moving Files Around Graphically
- 3.2. Starting a Terminal Session
- 3.3. Navigating the Filesystem Using a Terminal
- 3.4. Copying a File or Folder
- 3.5. Renaming a File or Folder
- 3.6. Editing a File
- 3.7. Viewing the Contents of a File
- 3.8. Creating a File Without Using an Editor
- 3.9. Creating a Directory
- 3.10. Deleting a File or Directory
- 3.11. Performing Tasks with Superuser Privileges
- 3.12. Understanding File Permissions
- 3.13. Changing File Permissions
- 3.14. Changing File Ownership
- 3.15. Making a Screen Capture
- 3.16. Installing Software with apt-get
- 3.17. Removing Software Installed with apt-get
- 3.18. Fetching Files from the Command Line
- 3.19. Fetching Source Code with git
- 3.20. Running a Program or Script Automatically on Startup
- 3.21. Running a Program or Script Automatically at Regular Intervals
- 3.22. Finding Things
- 3.23. Using the Command-Line History
- 3.24. Monitoring Processor Activity
- 3.25. Working with File Archives
- 3.26. Listing Connected USB Devices
- 3.27. Redirecting Output from the Command Line to a File
- 3.28. Concatenating Files
- 3.29. Using Pipes
- 3.30. Hiding Output to the Terminal
- 3.31. Running Programs in the Background
- 3.32. Creating Command Aliases
- 3.33. Setting the Date and Time
- 3.34. Finding Out How Much Room You Have on the SD Card
4. Software
- 4.0. Introduction
- 4.1. Making a Media Center
- 4.2. Installing Office Software
- 4.3. Installing other Browsers
- 4.4. Using the Pi Store
- 4.5. Making a Webcam Server
- 4.6. Running a Vintage Game Console Emulator
- 4.7. Running Minecraft
- 4.8. Running Open Arena
- 4.9. Raspberry Pi Radio Transmitter
- 4.10. Running GIMP
- 4.11. Internet Radio
5. Python Basics
- 5.0. Introduction
- 5.1. Deciding Between Python 2 and Python 3
- 5.2. Editing Python Programs with IDLE
- 5.3. Using the Python Console
- 5.4. Running Python Programs from the Terminal
- 5.5. Variables
- 5.6. Displaying Output
- 5.7. Reading User Input
- 5.8. Arithmetic
- 5.9. Creating Strings
- 5.10. Concatenating (Joining) Strings
- 5.11. Converting Numbers to Strings
- 5.12. Converting Strings to Numbers
- 5.13. Find the Length of a String
- 5.14. Find the Position of One String Inside Another
- 5.15. Extracting Part of a String
- 5.16. Replacing One String of Characters with Another Inside a String
- 5.17. Converting a String to Upper- or Lowercase
- 5.18. Running Commands Conditionally
- 5.19. Comparing Values
- 5.20. Logical Operators
- 5.21. Repeating Instructions an Exact Number of Times
- 5.22. Repeating Instructions Until Some Condition Changes
- 5.23. Breaking Out of a Loop
- 5.24. Defining a Function in Python
6. Python Lists and Dictionaries
- 6.0. Introduction
- 6.1. Creating a List
- 6.2. Accessing Elements of a List
- 6.3. Find the Length of a List
- 6.4. Adding Elements to a List
- 6.5. Removing Elements from a List
- 6.6. Creating a List by Parsing a String
- 6.7. Iterating over a List
- 6.8. Enumerating a List
- 6.9. Sorting a List
- 6.10. Cutting Up a List
- 6.11. Applying a Function to a List
- 6.12. Creating a Dictionary
- 6.13. Accessing a Dictionary
- 6.14. Removing Things from a Dictionary
- 6.15. Iterating over Dictionaries
7. Advanced Python
- 7.0. Introduction
- 7.1. Formatting Numbers
- 7.2. Formatting Dates
- 7.3. Returning More Than One Value
- 7.4. Defining a Class
- 7.5. Defining a Method
- 7.6. Inheritance
- 7.7. Writing to a File
- 7.8. Reading from a File
- 7.9. Pickling
- 7.10. Handling Exceptions
- 7.11. Using Modules
- 7.12. Random Numbers
- 7.13. Making Web Requests from Python
- 7.14. Command-Line Arguments in Python
- 7.15. Sending Email from Python
- 7.16. Writing a Simple Web Server in Python
8. GPIO Basics
- 8.0. Introduction
- 8.1. Finding Your Way Around the GPIO Connector
- 8.2. Keeping Your Raspberry Pi Safe when Using the GPIO Connector
- 8.3. Installing RPi.GPIO
- 8.4. Setting Up I2C
- 8.5. Using I2C Tools
- 8.6. Setting Up SPI
- 8.7. Freeing the Serial Port
- 8.8. Installing PySerial for Access to the Serial Port from Python
- 8.9. Installing Minicom to Test the Serial Port
- 8.10. Using a Breadboard with Jumper Leads
- 8.11. Using a Breadboard with a Pi Cobbler
- 8.12. Converting 5V Signals to 3.3V with Two Resistors
- 8.13. Converting 5V Signals to 3.3V with a Level Converter Module
- 8.14. Powering a Raspberry Pi with Batteries
- 8.15. Powering a Raspberry Pi with a LiPo Battery
- 8.16. Getting Started with a PiFace Digital Interface Board
- 8.17. Getting Started with a Gertboard
- 8.18. Getting Started with a RaspiRobot Board
- 8.19. Using a Humble Pi Prototyping Board
- 8.20. Using a Pi Plate Prototyping Board
- 8.21. Using a Paddle Terminal Breakout Board
9. Controlling Hardware
- 9.0. Introduction
- 9.1. Connecting an LED
- 9.2. Controlling the Brightness of an LED
- 9.3. Make a Buzzing Sound
- 9.4. Switching a High-Power DC Device Using a Transistor
- 9.5. Switching a High-Power Device Using a Relay
- 9.6. Controlling High-Voltage AC Devices
- 9.7. Making a User Interface to Turn Things On and Off
- 9.8. Making a User Interface to Control PWM Power for LEDs and Motors
- 9.9. Changing the Color of an RGB LED
- 9.10. Using Lots of LEDs (Charlieplexing)
- 9.11. Using an Analog Meter as a Display
- 9.12. Programming with Interrupts
- 9.13. Controlling GPIO Outputs Using a Web Interface
10. Motors
- 10.0. Introduction
- 10.1. Controlling Servo Motors
- 10.2. Controlling a Large Number of Servo Motors
- 10.3. Controlling the Speed of a DC Motor
- 10.4. Controlling the Direction of a DC Motor
- 10.5. Using a Unipolar Stepper Motor
- 10.6. Using a Bipolar Stepper Motor
- 10.7. Using a RaspiRobot Board to Drive a Bipolar Stepper Motor
- 10.8. Building a Simple Robot Rover
11. Digital Inputs
- 11.0. Introduction
- 11.1. Connecting a Push Switch
- 11.2. Toggling with a Push Switch
- 11.3. Using a Two-Position Toggle or Slide Switch
- 11.4. Using a Center-Off Toggle or Slide Switch
- 11.5. Debouncing a Button Press
- 11.6. Using an External Pull-up Resistor
- 11.7. Using a Rotary (Quadrature) Encoder
- 11.8. Using a Keypad
- 11.9. Detecting Movement
- 11.10. Adding GPS to the Raspberry Pi
- 11.11. Intercepting Keypresses
- 11.12. Intercepting Mouse Movements
- 11.13. Using a Real-Time Clock Module
12. Sensors
- 12.0. Introduction
- 12.1. Using Resistive Sensors
- 12.2. Measuring Light
- 12.3. Detecting Methane
- 12.4. Measuring a Voltage
- 12.5. Reducing Voltages for Measurement
- 12.6. Using Resistive Sensors with an ADC
- 12.7. Measuring Temperature with an ADC
- 12.8. Measuring Acceleration
- 12.9. Measuring Temperature Using a Digital Sensor
- 12.10. Measuring Distance
- 12.11. Displaying Sensor Values
- 12.12. Logging to a USB Flash Drive
13. Displays
- 13.0. Introduction
- 13.1. Using a Four-Digit LED Display
- 13.2. Displaying Messages on an I2C LED matrix
- 13.3. Using Pi-Lite
- 13.4. Displaying Messages on an Alphanumeric LCD
14. Arduino and Raspberry Pi
- 14.0. Introduction
- 14.1. Programming an Arduino from Raspberry Pi
- 14.2. Communicating with the Arduino by Using the Serial Monitor
- 14.3. Setting Up PyFirmata to Control an Arduino from a Raspberry Pi
- 14.4. Writing Digital Outputs on an Arduino from a Raspberry Pi
- 14.5. Using PyFirmata with TTL Serial
- 14.6. Reading Arduino Digital Inputs Using PyFirmata
- 14.7. Reading Arduino Analog Inputs Using PyFirmata
- 14.8. Analog Outputs (PWM) with PyFirmata
- 14.9. Controlling a Servo Using PyFirmata
- 14.10. Custom Communication with an Arduino over TTL Serial
- 14.11. Custom Communication with an Arduino over I2C
- 14.12. Using Small Arduinos with a Raspberry Pi
- 14.13. Getting Started with an aLaMode Board and a Raspberry Pi
- 14.14. Using an Arduino Shield with an aLaMode Board and a Raspberry Pi
- 14.15. Using Gertboard as an Arduino Interface
A. Parts and Suppliers
- Parts
- Prototyping Equipment
- Resistors and Capacitors
- Transistors and Diodes
- Integrated Circuits
- Opto-Electronics
- Modules
- Miscellaneous