Chapter 1 - Introducing the Raspberry Pi
1.1 The Raspberry Pi Models
1.2 The Anatomy of the Raspberry Pi
1.3 Setting Up Your Raspberry Pi
1.3.1 Power Supply
1.3.2 Monitor
1.3.3 TV
1.3.4 USB Keyboard and Mouse
1.3.5 Powered USB Hub
1.3.6 SD Card
1.3.7 Speakers
1.3.8 Case
1.3.9 USB Flash Memory Drive
1.3.10 USB Flash HardDisk
1.3.11 USB Wi-FiAdapter
1.4 Connecting Everything Together
1.5 Downloading and Installing the Operating System
1.5.1 Downloading the Operating System
1.5.2 Installing the Operating System onto the SD Card
1.6 Logging in to the Raspberry Pi
1.7 Summary
Chapter 2 - Connecting the Raspberry Pi to Wired Network.
2.1 Connecting to a Wired Network
2.1.1 Unable to Connect to a Wired Network
2.2 Connecting to your Raspberry Pi Remotely
2.2.1 The SSH Client
2.3 Summary
Chapter 3 - Using the Desktop
3.1 Installing the VNC Software
3.2 The Desktop Environment
3.3 The Task Bar
3.4 The Start Menu
3.5 Using External USB Flash Memory Drive
3.6 Using Wi-Fi With Raspberry Pi
3.7 Summary
Chapter 4 - Using the Linux Command Line
4.1 The Command Prompt
4.2 Useful Linux Commands
4.2.1 The Directory Structure
4.2.2 Command Examples
4.3 Screen Capture
4.4 Foreground and Background Processing
4.5 Task Scheduling
4.5.1 Task Scheduling Management
4.6 Linux Script Files
4.6.1 User input to script files
4.6.2 Reading text from the keyboard
4.6.3 Conditions in script files
4.6.4 Loops in script files
4.6.5 Multiple decisions - Using the case statement
4.6.6 Script functions
4.7 Running a Program or Script Automatically on System Startup..
4.7.1 Usingetcrc.local
4.7.2 Using crontab
4.7.3 Usingetcinit.d
4.8 Resource Monitoring on Raspberry Pi
4.9 Adding Users
4.10 Removing Users
4.11 Network Printing
4.12 Command Aliases
4.13 SD Card Backup
4.14 Shutting Down
4.15 Summary
Chapter 5 - Python Programming
5.1 Starting Python
5.2 Variable Names
5.3 Reserved Words
5.4 Comments
5.5 Indentation
5.6 Line Continuation
5.7 Blank Lines
5.8 More Than One Statement on a Line
5.9 Python Data Types
5.9.1 Numeric Variables
5.9.2 String Variables
5.9.3 List Variables
5.9.4 Tuple Variables
5.9.5 Dictionary Variables
5.10 Python Operators
5.10.1 Arithmetic Operators
5.10.2 Comparison Operators
5.10.3 Logical Operators
5.10.4 Assignment Operators
5.10.5 Bitwise Operators
5.11 Control of Flow
5.11.1 if, if.else, and elif
5.11.2 for Statement
5.11.3 while Statement
5.11.4 continue Statement
5.11.5 break Statement
5.12 Number Type Conversion
5.13 Trigonometric Functions
5.14 Mathematical Functions
5.15 Integer Random Number Generation
5.16 Using Non-printable ASCII Characters
5.17 Print Statement
5.18 String Manipulation
5.19 String Functions
5.20 List Functions
5.21 Dictionary Functions
5.22 Date Time Functions
5.23 User Defined Functions
5.24 Keyboard Input
5.25 Files
5.26 Exceptions
5.27 Object Oriented Programming
5.28 Example Programs
5.28.1 Using the Editor to Create Programs
5.29 Argument List
5.30 Summary
Chapter 6 - Python Graphics User Interface GUI Programming
6.1 Using the Label Widget
6.2 Adding a Button Widget
6.3 The Entry Widget
6.4 The Text Widget
6.5 Prompted Input
6.6 Placing Widgets
6.6.1 Default packing
6.6.2 Packing to a side
6.7 Using the grid method
6.8 The Messagebox Widget
6.9 The Spinbox Widget
6.10 The Scale Widget
6.11 The Listbox Widget
6.12 The Message Widget
6.13 The Radiobutton Widget
6.14 The Checkbutton Widget
6.15 The Menubutton Widget
6.16 The Canvas Widget
6.17 Examples
6.18 Summary
Chapter 7 - Python Network Programming
7.1 Sending E-mail
7.2 Web Server Program
7.3 Socket Programming
7.4 Summary
Chapter 8 - Python Systems Programming
8.1 The sys Module
8.2 The os Module
8.2.1 Running shell commands
8.3 Multitasking
8.3.1 Process Forks
8.3.2 Process Threads
8.3.3 Process spawn calls
8.3.4 Multiprocessing process calls
8.3.5 Interprocess synchronisation
8.3.6 Inter-process communication
8.4 Summary
Chapter 9 - Raspberry Pi Hardware Interfacing
9.1 GPIO Pin Definitions
9.2 Raspberry Pi Hardware Development Boards and Hardware Tools
9.2.1 Pi Cobbler
9.2.2 PiPlate
9.2.3 T-Cobbler
9.2.4 PiFace
9.2.5 RasPiComm - Piggyback Extension Board
9.2.6 PiBorg - TriBorg - GPIO Triple Header Extender
9.2.7 Gertboard
9.2.8 BerryClip - LED and Buzzer
9.2.9 MyPi - Push Your Pi -8 LED 8 Button Breakout Board
9.2.10 Raspberry Pi Electronic Starter Kit
9.2.11 Starter Kit-A for Raspberry Pi
9.2.12 Camera Board
9.2.13 Raspi Robot Board
9.2.14 LCD with Keypad
9.2.15 Raspberry Pi Expansion Board
9.2.16 Raspberry Pi Kano Starter Kit
9.2.17 RTC Pi
9.2.18 ADC Pi
9.3 Summary
Chapter 10 - Raspberry Pi GPIO Software
10.1 Installing the RPiGPIO Library
10.2 RPiGPIO Library Functions
10.2.1 Pin Numbering
10.2.2 ChannelIO pin Configuration
10.3 Wiringpi Library
10.4 Program Development
10.4.1 Using the Program Description Language and Flow Charts
10.4.2 Calling Subprograms
10.4.3 Subprogram Structure
10.5 Examples
10.6 Representing for Loops in Flow Charts
10.7 Summary
Chapter 11 - Raspberry Pi Hardware Projects
11.1 PROJECT 1 - Flashing an LED
11.2 PROJECT 2 - Independently Flashing 3 LEDs
11.3 PROJECT 3 - Independently Flashing 3 LEDs With Event Flags
11.4 PROJECT 4 - Flashing LED With Push-Button Switch - Multitasking .
11.5 PROJECT 5 - LED with Graphical User Input
11.6 PROJECT 6 - Web Server LED Control
11.7 PROJECT 7 - Web Server Usingflask
11.8 PROJECT 8 - GUI Based Light Dimmer
11.9 PROJECT 9 - Using 4x4 Keypad
11.10 PROJECT 10 - Calculator Using 4x4 Keypad
11.11 PROJECT 11 - Displaying the Temperature
11.12 PROJECT 12 - Sending the Temperature to a PC Over the Network
11.13 PROJECT 13 - Temperature and Humidity Display
11.14 PROJECT 14 - Using DAC to Change LED Brightness
11.15 PROJECT 15 - The PiFace IO Board
11.16 PROJECT 16 - PiFace DC Motor Controller
11.17 PROJECT 17 - PiFace Stepper Motor Controller
Appendix A PDL and Program Listings
A.1 Program listing - Solution 5.3
A.2 PDL listing - PROJECT 2
A.3 Program Listing- PROJECT 2
A.4 Program Listing - PROJECT 2 - Modified Listing
A.5 PDL Listing - Project 3
A.6 Program Listing- Project 3
A.7 Program Listing - Project 4
A.8 Program Listing - Project 4 - Modified
A.9 PDL Listing - Project 5
A.10 Program List- Project 5
A.11 Progam Listing - Project 9
A.12 PDL Listing - Project 10
A.13 Program Listing- Project 10
A.14 Program Listing - Project 11
A.15 Program Listing - Project 11 - Modified
A.16 PDL Listing - Project 12
A.17 UDP Server Program - Project 12
A.18 PDL Listing - Project 13
A.19 Program Listing - Project 13
A.20 Program Listing - Project 14
A.21 Program Listing - Project 15 - PIFACE-I.py
A.22 Program Listing - Project 15 - PIFACE-2.py
A.23 Program Listing - Project 15 - PIFACE-3.py
A.24 Program Listing - Project 16
Index