Python Programming with Raspberry Pi
By Sai Yamanoor and Srihari Yamanoor
()
About this ebook
- This is the first book on the market that teaches Python programming with Raspberry Pi Zero
- Develop exciting applications such as a mobile robot and home automation controller using Python
- This step-by-step guide helps you make the most out of Raspberry Pi Zero using Python programming
This book is aimed at hobbyists and programmers who want to learn Python programming and develop applications using the Pi Zero. They should have basic familiarity with electronics.
Related to Python Programming with Raspberry Pi
Related ebooks
Raspberry Pi By Example Rating: 0 out of 5 stars0 ratingsRaspberry Pi Super Cluster Rating: 0 out of 5 stars0 ratingsGetting Started with Raspberry Pi Zero Rating: 5 out of 5 stars5/5Raspberry Pi Home Automation with Arduino - Second Edition Rating: 0 out of 5 stars0 ratingsPractical Robotics in C++: Build and Program Real Autonomous Robots Using Raspberry Pi (English Edition) Rating: 0 out of 5 stars0 ratingsRaspberry Pi Robotic Projects - Third Edition Rating: 0 out of 5 stars0 ratingsMastering Python Regular Expressions Rating: 5 out of 5 stars5/5Basic Core Python Programming: A Complete Reference Book to Master Python with Practical Applications (English Edition) Rating: 0 out of 5 stars0 ratingsRaspberry Pi Robotics Essentials Rating: 0 out of 5 stars0 ratingsArduino Home Automation Projects Rating: 3 out of 5 stars3/5Learning C for Arduino Rating: 0 out of 5 stars0 ratingsRaspberry Pi Projects for Kids - Second Edition Rating: 4 out of 5 stars4/5Raspberry Pi LED Blueprints Rating: 0 out of 5 stars0 ratingsAdvance Core Python Programming: Begin your Journey to Master the World of Python (English Edition) Rating: 4 out of 5 stars4/5Learning Raspbian Rating: 5 out of 5 stars5/5Mastering Python Design Patterns Rating: 0 out of 5 stars0 ratingsWeb Scraping with Python Rating: 4 out of 5 stars4/5PySide GUI Application Development - Second Edition Rating: 0 out of 5 stars0 ratingsProgramming Arduino with LabVIEW Rating: 3 out of 5 stars3/5Python In - Depth: Use Python Programming Features, Techniques, and Modules to Solve Everyday Problems Rating: 0 out of 5 stars0 ratingsPython Web Scraping - Second Edition Rating: 5 out of 5 stars5/5Arduino By Example: Design and build fantastic projects and devices using the Arduino platform Rating: 4 out of 5 stars4/5Python Data Structures and Algorithms Rating: 5 out of 5 stars5/5Python 3 Image Processing: Learn Image Processing with Python 3, NumPy, Matplotlib, and Scikit-image Rating: 0 out of 5 stars0 ratingsProgramming the Raspberry Pi, Third Edition: Getting Started with Python Rating: 5 out of 5 stars5/5Programming the Raspberry Pi, Second Edition: Getting Started with Python Rating: 0 out of 5 stars0 ratings
Hardware For You
Build Your Own PC Do-It-Yourself For Dummies Rating: 4 out of 5 stars4/5Laptops For Dummies Rating: 5 out of 5 stars5/5CompTIA A+ Complete Review Guide: Core 1 Exam 220-1101 and Core 2 Exam 220-1102 Rating: 5 out of 5 stars5/5Chip War: The Fight for the World's Most Critical Technology Rating: 4 out of 5 stars4/5CompTIA A+ Complete Review Guide: Exam Core 1 220-1001 and Exam Core 2 220-1002 Rating: 5 out of 5 stars5/5iMac For Dummies Rating: 0 out of 5 stars0 ratings3D Printing For Dummies Rating: 4 out of 5 stars4/5Electrical Engineering | Step by Step Rating: 0 out of 5 stars0 ratingsMacBook For Dummies Rating: 4 out of 5 stars4/5Linux All-In-One For Dummies Rating: 2 out of 5 stars2/5Amazon Web Services (AWS) Interview Questions and Answers Rating: 5 out of 5 stars5/5Hacking Electronics: Learning Electronics with Arduino and Raspberry Pi, Second Edition Rating: 0 out of 5 stars0 ratingsExploring Arduino: Tools and Techniques for Engineering Wizardry Rating: 4 out of 5 stars4/5macOS Sonoma For Dummies Rating: 0 out of 5 stars0 ratingsHow To Repair Your iPad - Quickly and Professionally!: Fix It Yourself, #5 Rating: 0 out of 5 stars0 ratingsCreative Selection: Inside Apple's Design Process During the Golden Age of Steve Jobs Rating: 5 out of 5 stars5/5Exploring Apple iPad: iPadOS 15 Edition: The Illustrated, Practical Guide to Using your iPad Rating: 0 out of 5 stars0 ratingsRaspberry Pi Mechatronics Projects HOTSHOT Rating: 5 out of 5 stars5/5Linux All-in-One For Dummies Rating: 3 out of 5 stars3/5Learning Android Forensics Rating: 4 out of 5 stars4/5MacOS Mastery: The Ultimate Guide to 250 Powerful Shortcuts Rating: 0 out of 5 stars0 ratingsiPhone For Dummies Rating: 0 out of 5 stars0 ratingsRaspberry Pi Electronics Projects for the Evil Genius Rating: 3 out of 5 stars3/5Windows 11 For Seniors For Dummies Rating: 0 out of 5 stars0 ratingsUnlock Any Roku Device: Watch Shows, TV, & Download Apps Rating: 0 out of 5 stars0 ratingsDancing with Qubits: How quantum computing works and how it can change the world Rating: 5 out of 5 stars5/5Chromebook For Dummies Rating: 5 out of 5 stars5/5
Reviews for Python Programming with Raspberry Pi
0 ratings0 reviews
Book preview
Python Programming with Raspberry Pi - Sai Yamanoor
Python Programming with Raspberry Pi
Build small yet powerful robots and automation systems with Raspberry Pi Zero
Sai Yamanoor
Srihari Yamanoor
BIRMINGHAM - MUMBAI
Python Programming with Raspberry Pi
Copyright © 2017 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: April 2017
Production reference: 1260417
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham
B3 2PB, UK.
ISBN 978-1-78646-757-7
www.packtpub.com
Credits
About the Authors
Sai Yamanoor is an embedded systems engineer working for a private startup school in the San Francisco Bay Area, where he builds devices that helps students achieve their full potential. He completed his graduate studies in Mechanical Engineering at Carnegie Mellon University, Pittsburgh PA, and his undergraduate work in Mechatronics Engineering from Sri Krishna College of Engineering and Technology, Coimbatore, India. His interests, deeply rooted in DIY and ppen software and hardware cultures, include developing gadgets and apps that improve Quality of Life, Internet of Things, crowdfunding, education, and new technologies. In his spare time, he plays with various devices and architectures such as the Raspberry Pi, Arduino, Galileo, Android devices and others. Sai blogs about his adventures with Mechatronics at the aptly named Mechatronics Craze blog at http://mechatronicscraze.wordpress.com/. You can find his project portfolios at http://saiyamanoor.com.
This book is Sai's second title and he has earlier published a book titled Raspberry Pi Mechatronics Projects.
I would like to thank my parents for encouraging me in all my endeavors and for making me what I am today. I am thankful to my brother who has helped me shape my career all these years. I would like to sincerely apologize to Balaji Raghavendra for the mixup with the first book and sincerely thank him for his reviews and advice on the first book. I am also thankful to the team at Packt, especially Abhishek who was patient and understanding under trying circumstances.
Srihari Yamanoor is a mechanical engineer, working on medical devices, sustainability, and robotics in the San Francisco Bay Area. He completed his graduate studies in Mechanical Engineering at Stanford University, and his undergraduate studies in Mechanical Engineering from PSG College of Technology, Coimbatore, India. He is severally certified in SolidWorks, Simulation, Sustainable Design, PDM as well as, in quality and reliability engineering and auditing. His interests have a wide range, from DIY, crowdfunding, AI, travelling, and photography to gardening and ecology. In his spare time, he is either traveling across California, dabbling in nature photography, or at home, tinkering with his garden and playing with his cats.
I have many people to thank for any and all success in my life, one of the culminations being this second book. I start with my parents for always making sure that I put my career and education first. My brother Sai Yamanoor, is the main reason I have my name on not one, but two books! I have to thank several professors and teachers, not the least of whom are Kenneth Waldron, Dr. Radhakrishnan, Dr. R. Rudramoorthy, Dr. K.A. Jagadeesh, Cyril Master
, and the Late Master
Williams. Of course, I'd be remiss, if I didn’t acknowledge my mentors, Russ Sampson, James Stubbs, Mukund Patel, and Anna Tamura. Then, I have my dearest friends, Patrick Nguyen, Anna Jao, Andrew Eib, Vishnu Prasad Ramachandran, and David Ma, who have put up with my quirks over the last several years, patiently offering advice and helping me weather several storms. I too would like to apologize to Balaji Raghavendra, who was left out of the acknowledgements from our last book, purely by accident, and nevertheless, inexcusably so. Without your help, we would not have been able to complete that book and start on this one. I second Sai in recognizing Abhishek Jadhav’s immeasurable patience and guidance throughout the course of the publication of this book. Last but not the least, there are my beloved felines, the glaring that keeps me going – Bob, Gi-Ve, Fish Bone and Saxi.
We would like to acknowledge that 100% of the proceeds in revenue and profits of the authors, is being turned over to worthy non-profits.
About the Reviewer
Ian McAlpine had his first introduction to computers was his school's Research Machines RML-380Z and his physics teacher's Compukit UK101. That was followed by a Sinclair ZX81 and then a BBC Micro Model A, which he still has to this day. That interest resulted in a MEng degree in Electronic Systems Engineering from Aston University and an MSc degree in Information Technology from the University of Liverpool. Ian is currently a Senior Product Expert in the BI & Analytics Competence Centre at SAP Labs in Vancouver, Canada.
The introduction of the Raspberry Pi rekindled his desire to tinker
, but also provided an opportunity to give back to the community. Consequently Ian was a very active volunteer for 3 years on The MagPi, a monthly magazine for the Raspberry Pi, which you can read online or download for free at http://www.raspberrypi.org/magpi/. He also holds an amateur radio license (callsign VE7FTO) and is a communications volunteer for his local community Emergency Management Office. He was a technical reviewer for Packt books, such as Raspberry Pi Cookbook for Python Programmers, Raspberry Pi Projects for Kids, and Raspberry Pi 2 Server Essentials.
I would like to thank my darling wife, Louise, and my awesome kids Emily and Molly for allowing me to disappear into my office
…and for training our dog to fetch me!
www.PacktPub.com
For support files and downloads related to your book, please visit www.PacktPub.com.
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at service@packtpub.com for more details.
At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.
https://www.packtpub.com/mapt
Get the most in-demand software skills with Mapt. Mapt gives you full access to all Packt books and video courses, as well as industry-leading tools to help you plan your personal development and advance your career.
Why subscribe?
Fully searchable across every book published by Packt
Copy and paste, print, and bookmark content
On demand and accessible via a web browser
Customer Feedback
Thanks for purchasing this Packt book. At Packt, quality is at the heart of our editorial process. To help us improve, please leave us an honest review on this book's Amazon page at https://www.amazon.com/dp/1786467577.
If you'd like to join our team of regular reviewers, you can e-mail us at customerreviews@packtpub.com. We award our regular reviewers with free eBooks and videos in exchange for their valuable feedback. Help us be relentless in improving our products!
Table of Contents
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Downloading the color images of this book
Errata
Piracy
Questions
Getting Started with Python and the Raspberry Pi Zero
Let's get started!
Things needed for this book
Buying the Raspberry Pi Zero
Introduction to the Raspberry Pi Zero
The features of the Raspberry Pi Zero
The setup of the Raspberry Pi Zero
Soldering the GPIO headers
Enclosure for the Raspberry Pi Zero
OS setup for the Raspberry Pi
micro SD card preparation
Let's learn Python!
The Hello World example
Setting up your Raspberry Pi Zero for Python programming
IDLE's interactive tool
The text editor approach
Launching the Python interpreter via the Linux Terminal
Executing Python scripts using the Linux Terminal
The print() function
The help() function
Summary
Arithmetic Operations, Loops, and Blinky Lights
Hardware required for this chapter
Arithmetic operations
Bitwise operators in Python
Logical operators
Data types and variables in Python
Reading inputs from the user
The formatted string output
The str.format() method
An exercise for the reader
Another exercise for the reader
Concatenating strings
Loops in Python
A for loop
Indentation
Nested loops
A while loop
Raspberry Pi's GPIO
Blinky lights
Code
The applications of GPIO control
Summary
Conditional Statements, Functions, and Lists
Conditional statements
An if-else statement
if-elif-else statement
Breaking out of loops
The applications of conditional statements: executing tasks using GPIO
Breaking out a loop by counting button presses
Functions in Python
Passing arguments to a function:
Returning values from a function
The scope of variables in a function
GPIO callback functions
DC motor control in Python
Some mini-project challenges for the reader
Summary
Communication Interfaces
UART - serial port
Raspberry Pi Zero's UART port
Setting up the Raspberry Pi Zero serial port
Example 1 - interfacing a carbon dioxide sensor to the Raspberry Pi
Python code for serial port communication
I2C communication
Example 2 - PiGlow
Installing libraries
Example
Example 3 - Sensorian add-on hardware for the Raspberry Pi
I2C drivers for the lux sensor
Challenge
The SPI interface
Example 4 - writing to external memory chip
Challenge to the reader
Summary
Data Types and Object-Oriented Programming in Python
Lists
Operations that could be performed on a list
Append element to list:
Remove element from list:
Retrieving the index of an element
Popping an element from the list
Counting the instances of an element:
Inserting element at a specific position:
Challenge to the reader
Extending a list
Clearing the elements of a list
Sorting the elements of a list
Reverse the order of elements in list
Create copies of a list
Accessing list elements
Accessing a set of elements within a list
List membership
Let's build a simple game!
Dictionaries
Tuples
Sets
OOP in Python
Revisiting the student ID card example
Class
Adding methods to a class
Doc strings in Python
self
Speaker controller
Light control daemon
Summary
File I/O and Python Utilities
File I/O
Reading from a file
Reading lines
Writing to a file
Appending to a file
seek
Read n bytes
r+
Challenge to the reader
The with keyword
configparser
Challenge to the reader
Reading/writing to CSV files
Writing to CSV files
Reading from CSV files
Python utilities
The os module
Checking a file's existence
Checking for a folder's existence
Deleting files
Killing a process
Monitoring a process
The glob module
Challenge to the reader
The shutil module
The subprocess module
The sys module
Summary
Requests and Web Frameworks
The try/except keywords
try...except...else
try...except...else...finally
Connecting to the Internet - web requests
The application of requests - retrieving weather information
The application of requests - publishing events to the Internet
Flask web framework
Installing Flask
Building our first example
Controlling appliances using the Flask framework
Summary
Awesome Things You Could Develop Using Python
Image processing using a Raspberry Pi Zero
OpenCV
The verification of the installation
A challenge to the reader
Installing the camera to the Raspberry Zero
Speech recognition
Automating routing tasks
Improving daily commute
A challenge to the reader
Project challenge
Improving your vocabulary
A challenge to the reader
Project challenge
Logging
Threading in Python
PEP8 style guide for Python
Verifying PEP8 guidelines
Summary
Lets Build a Robot!
Components of the robot
Setting up remote login
Changing the password
Enabling SSH access
Chassis setup
Motor driver and motor selection
Preparing the motor driver circuit
Raspberry Pi Zero and motor driver assembly
Raspberry Pi Zero and motor driver assembly
Robot Power supply setup
Setting up the motor power supply
Using the Raspberry Pi Zero's 5V power supply
Using an external power supply
Testing the motors
Motor driver detection
Detecting motor driver
Motor test
Dependencies
Camera setup
Verification of camera function
The web interface
Camera setup for the web interface
Buttons for robot control
Troubleshooting tips
Project enhancements
Summary
Home Automation Using the Raspberry Pi Zero
Voice activated personal assistant
Installing requisite packages
How does it work?
Setting up the audio tools
Connecting the speaker
Connecting the microphone
Houndify
Building voice commands
Adding a button
Web framework based appliance control/dashboard
Building the web dashboard
Personal Health Improvement—Sitting is the new smoking
Installing requisite software packages
Getting access keys for Fitbit client
Fitbit API Test
Building the visual aid
Smart lawn sprinkler
Summary
Tips and Tricks
Change your Raspberry Pi's password
Updating your OS
Setting up your development environment
SSH access via Windows
SSH access via Linux/macOS
Transferring files to/from your Pi
WinSCP
Mac/Linux environment
Git
Command-line text editors
Graphical text editors
SSH aliases (on Mac/Linux Terminals)
Saving SSH sessions on PuTTY
VNC access to Raspberry Pi
The RUN switch of the Raspberry Pi Zero board
GPIO pin mapping
Stackable breadboard
Summary
Preface
The Raspberry Pi represents the best in innovation in computer science, education, entertainment, hobby hacking, and several other categories that you can classify the device family into. Even as this book is entering publication, the Raspberry Pi family of products have become the third best selling computers of all time. It is anyone’s guess that with the continuing innovation coming out of the Raspberry Pi Foundation and the thousands of people across the planet constantly demonstrating newer and better examples innovative solutions with the various flavors of Raspberry Pi, what new heights this product line might reach!
One of the main goals of the Raspberry Pi is affordability. And the purpose of this book is to allow the beginner to learn Programming in Python, as well as manipulating hardware. The reader may have worked a little bit on hardware, and a little bit on programming, and want to strengthen skills in either area. The reader may also just be interested in doing more projects with the Pi Zero in Python, and of course, some of the projects in this book, briefly highlighted below might be of interest.
The book starts off with some warm up examples, helping develop a familiarity with the Raspberry Pi environment, and the projects increase in variety and complexity as the book progresses. While, readers who have advanced a bit before approaching the book can skip a few chapters, we recommend beginners progress through all chapters, since the concepts build on top of each other.
What this book covers
Chapter 1, Getting Started with Python and the Raspberry Pi Zero, introduces the Raspberry Pi Zero and the Python programming language, its history, and its features. We will set up the Raspberry Pi for Python development and write the