Raspberry Pi By Example - Ashwin Pajankar - E-Book

Raspberry Pi By Example E-Book

Ashwin Pajankar

0,0
34,79 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.
Mehr erfahren.
Beschreibung

Start building amazing projects with the Raspberry Pi right out of the box

About This Book

  • Explore the vast range of opportunities provided by Raspberry Pi and other hardware components such as a webcam, the Pi camera, and sensors
  • Get hands-on experience with coding, networking, and hardware with the Raspberry Pi platform
  • Learn through ample screenshots that offer a play-by-play account of how to implement Raspberry-Pi-based real-life projects

Who This Book Is For

What's the best way to learn how to use your Raspberry Pi? By example! If you want something exciting to do whilst getting to grips with what your Pi can offer, this is the book for you. With both simple and complex projects, you'll create a wide variety of cool toys and functions with your Raspberry Pi - all with minimal coding experience necessary.

What You Will Learn

  • Set up your Raspberry Pi and get it ready for some interesting real-life projects
  • Work with images, videos, webcams, and the Pi camera and create amazing time-lapse videos
  • Explore the amazing world of Minecraft Pi
  • Get to know how to use PiGlow for GPIO programming
  • Interface your Pi with Grove Sensors and implement IoT applications
  • Build your own cluster with Raspberry Pi
  • Understand the networking and network programming fundamentals

In Detail

Want to put your Raspberry Pi through its paces right out of the box? This tutorial guide is designed to get you learning all the tricks of the Raspberry Pi through building complete, hands-on hardware projects. Speed through the basics and then dive right in to development!

Discover that you can do almost anything with your Raspberry Pi with a taste of almost everything. Get started with Pi Gaming as you learn how to set up Minecraft, and then program your own game with the help of Pygame. Turn the Pi into your own home security system with complete guidance on setting up a webcam spy camera and OpenCV computer vision for image recognition capabilities. Get to grips with GPIO programming to make a Pi-based glowing LED system, build a complete functioning motion tracker, and more. Finally, get ready to tackle projects that push your Pi to its limits. Construct a complete Internet of Things home automation system with the Raspberry Pi to control your house via Twitter; turn your Pi into a super-computer through linking multiple boards into a cluster and then add in advanced network capabilities for super speedy processing!

Style and approach

This step-by-step guide to building Raspberry-Pi-based projects is explained in a conversational and easy-to-follow style. Each topic is explained sequentially in the process of creating real-life projects, and detailed explanations of the basic and advanced features of various Python libraries are also included.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 269

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Table of Contents

Raspberry Pi By Example
Credits
About the Authors
About the Reviewers
www.PacktPub.com
eBooks, discount offers, and more
Why subscribe?
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
1. Introduction to Raspberry Pi and Python
Single-board computers
Raspberry Pi
Raspberry Pi models
Operating systems
Raspbian
Setting up the Raspberry Pi
Preparing MicroSD card manually
Booting up our Pi for the first time
Shutting down and rebooting Pi safely
Updating the Pi
Getting started with Python
Turtle programming with Python
Summary
2. Minecraft Pi
Introduction to Minecraft Pi
Playing Minecraft Pi
Movement control in Minecraft Pi
Action control in Minecraft Pi
Other controls in Minecraft Pi
Python programming for Minecraft Pi
Summary
3. Building Games with PyGame
Introducing PyGame
Installing PyGame
Drawing a binary fractal tree
Building a snake game
Summary
4. Working with a Webcam and Pi Camera
Working with webcams
Crontab
Creating a timelapse sequence using fswebcam
Webcam video recording and playback
Working with the Pi Camera and NoIR Camera modules
Using raspistill and raspivid
Using picamera in Python with the Pi Camera module
The Pi camera versus the webcam
Summary
5. Introduction to GPIO Programming
Introducing GPIO pins
Building an LED Blinker
Connecting a button
Installing PiGlow
Using PiGlow
Building a binary clock
Summary
6. Creating Animated Movies with Raspberry Pi
Introducing stop-motion animation
Setting up the prerequisites
Setting up and testing the camera
Adding the hardware button
Rendering the video
Summary
7. Introduction to Computer Vision
Introducing Computer Vision
Introducing OpenCV
Setting up Pi for Computer Vision
Testing the OpenCV installation with Python
Introducing NumPy
Array creation
Basic operations on arrays
Linear algebra
Working with images
Using matplotlib
Working with Webcam using OpenCV
Saving a video using OpenCV
Pi Camera and OpenCV
Retrieving image properties
Arithmetic operations on images
Splitting and merging image color channels
Negating an image
Logical operations on images
Colorspaces and conversions
Tracking in real time based on color
Summary
8. Creating Your Own Motion Detection and Tracking System
Thresholding images
Otsu's method
Noise
Kernels for noise removal
2D convolution filtering
Low pass filtering
Morphological transformations on images
Motion detection and tracking
Summary
9. Grove Sensors and the Raspberry Pi
Introducing the GrovePi
Setting up the GrovePi
Displaying the weather
Intruder detection system
Summary
10. Internet of Things with the Raspberry Pi
Introducing the Internet of Things
Installing the Twitter API for Python
Using Tweepy
Setting up a SQLite database in Python
Building a tweeting weather station
Adding speech capabilities to our weather station
Summary
11. Build Your Own Supercomputer with Raspberry Pi
Introducing a Pi-based supercomputer
Installing and configuring MPICH2 and MPI4PY
Installing the MPICH library
Installing MPI4PY
Setting up the Raspberry Pi cluster
Setting up SSH access from the host to the client
Running code in parallel
Performance benchmarking of the cluster
Introducing N-Body simulations
Installing and running GalaxSee
Summary
12. Advanced Networking with Raspberry Pi
Introducing DHCP
A few networking concepts
Configuring a Raspberry Pi to act as a DHCP server
Introducing Domain Naming System (DNS)
Setting up a DNS server on the Pi
Configuring the setup for a web server
Automating node discovery in a network
Summary
13. Setting Up a Web Server on the Raspberry Pi
Introducing and installing Apache on Raspbian
Installing PHP and MySQL
Installing WordPress
Configuring the WordPress installation
Summary
14. Network Programming in Python with the Pi
The basics of sockets
The difference between TCP and UDP
The architecture and programming of UDP sockets
Sending and receiving data with UDP
UDP servers and NCAT
An echo server using Python UDP sockets
A UDP client
The architecture of TCP sockets
Creating a TCP socket
Connecting to a server with a TCP socket
Receiving data from the server
Programming socket servers
Binding a socket
Listening for incoming connections
Handling multiple connections
Looking back
A Telnet client in Python
A chat program
The chat server
The chat client
References
Exercise
Summary
A. Newer Raspberry Pi Models
The Raspberry Pi Zero
The Raspberry Pi 3
Index

Raspberry Pi By Example

Raspberry Pi By Example

Copyright © 2016 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 2016

Production reference: 1190416

Published by Packt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham B3 2PB, UK.

ISBN 978-1-78528-506-6

www.packtpub.com

Credits

Authors

Ashwin Pajankar

Arush Kakkar

Reviewers

Nathan Johnson

Elliot Kermit-Canfield

Anna Torlen

Commissioning Editor

Dipika Gaonkar

Acquisition Editor

Ashwin Nair

Content Development Editor

Merwyn D'souza

Technical Editors

Nirant Carvalho

Mohit Hassija

Copy Editors

Stuti Srivastava

Madhusudan Uchil

Project Coordinator

Nikhil Nair

Proofreader

Safis Editing

Indexer

Priya Sane

Graphics

Kirk D'Penha

Production Coordinator

Shantanu N. Zagade

Cover Work

Shantanu N. Zagade

About the Authors

Ashwin Pajankar is a software professional and IoT enthusiast with more than 5 years' experience in software design, development, testing, and automation.

He graduated from IIIT Hyderabad, earning an M.Tech in computer science and engineering. He holds multiple professional certifications from Oracle, IBM, Teradata, and ISTQB in development, databases, and testing. He has won several awards in college through outreach initiatives, at work for technical achievements, and community service through corporate social responsibility programs.

He was introduced to Raspberry Pi while organizing a hackathon at his workplace, and he's been hooked on Pi ever since. He writes plenty of code in C, Bash, Python, and Java on his cluster of Pis. He's already authored one book on Raspberry Pi and reviewed three other titles related to Python for Packt Publishing.

His LinkedIn Profile is at https://in.linkedin.com/in/ashwinpajankar.

I would like to thank my wife, Kavitha, for motivating me to write this book and share my knowledge with others. I would like to thank my coauthor, Arush Kakkar, for taking over the project after the first few chapters. I also thank Merwyn D'Souza from Packt Publishing for providing me with the opportunity, guidance, and required support in writing this book. Last but not least, I would like to thank all the reviewers who helped me make the book better by providing their precious feedback.

Arush Kakkar is a computer vision and deep learning researcher and an undergraduate at Delhi Technological University. His primary focus is on autonomous robotics, which includes drones and self-driving cars, and he has been involved in building such systems in different capacities, such as navigation, localization, path planning. He has also leveraged state-of-the art computer vision and deep learning technologies for them. He is the electrical systems head of the Solar Car team of his university, Solaris DTU.

He is currently working on his own driverless car company, CruiseX, which uses deep learning to drive more smoothly and with fewer errors.

You can connect with him through his website at http://www.arushkakkar.com and read up on some of his projects at http://blog.arushkakkar.com.

I would like to thank my parents for supporting me in writing this book. I would like to thank Ashwin for collaborating while writing this book, and I would also like to thank Merwyn from Packt Publishing for coordinating the collaboration. I am thankful to all the reviewers for helping me improve the book and expanding my knowledge.

About the Reviewers

Nathan Johnson is an NC State University graduate and the author and maintainer of the node-arm project. Apart from node-arm, he has also contributed to several other Raspberry Pi projects. He currently works for the Charlotte-based company Red Ventures as a software engineer writing applications in Node.js.

I would like to thank my mom, dad, and brother for reminding me to use all the talents I've been given.

Elliot Kermit-Canfield is a graduate student studying computer music at the Center for Computer Research in Music and Acoustics at Stanford University. In addition to a degree in music, science, and technology from Stanford, he holds degrees in integrative arts and music theory from Penn State. Elliot is an avid computer musician and has worked with Raspberry Pi and other embeddable systems with audio applications.

Anna Torlen is an artist, educator, and techie. She received a bachelor of arts degree in studio art at The College of Santa Fe and a master of fine arts degree in media, technology, and entertainment at Florida Atlantic University. She has worked on Raspberry Pi projects at her college and at Hacklab in Boynton Beach, FL. She has contributed to the Adafruit Community Corner blog. She is currently working at Palm Beach State College as a multimedia adjunct professor. She is interested in building outdoor solar-powered Internet of Things Raspberry Pi projects.

www.PacktPub.com

eBooks, discount offers, and more

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 <[email protected]> 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://www2.packtpub.com/books/subscription/packtlib

Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book library. Here, you can search, access, and read Packt's entire library of books.

Why subscribe?

Fully searchable across every book published by PacktCopy and paste, print, and bookmark contentOn demand and accessible via a web browser

Preface

Raspberry Pi is probably one of the most versatile computers ever built. It has been adapted for tasks ranging from home automation, cluster computing, computer vision, and even space missions! What's more is that it enjoys a level of support from the community that is hard to find for any other platform.

Due to this, it is a hacker-friendly device and is a must for anyone who wants to build projects with even a little amount of programming involved. The fact that the basic version of the board costs only $25 means there's a lot of room for experimentation, and users aren't afraid to experiment with and damage it.

In this book, you will find a wide variety of projects, using which anyone can get started with and also build interesting hacks by modifying some of the projects.

What this book covers

Chapter 1, Introduction to Raspberry Pi and Python, provides an introduction to the Raspberry Pi and booting it up.

Chapter 2, Minecraft Pi, introduces you to Minecraft Pi, which is a preinstalled version of the popular game Minecraft. The first few pages of the chapter deal with the game concept and interface, and further pages deal with programming in-game actions with Python. In the last part of this chapter, you are introduced to the PyGame library and small usage examples of it.

Chapter 3, Building Games with PyGame, is an introduction to the PyGame programming library and game programming. In this chapter, you code your way to your first full-fledged program on the Raspberry Pi, a game.

Chapter 4, Working with a Webcam and Pi Camera, introduces you to the Pi Camera and regular webcams and how to use them to create real-life applications with the Raspberry Pi. You also create a time-lapse box project in this chapter.

Chapter 5, Introduction to GPIO Programming, introduces you to the Raspberry Pi B+ and Pi 2 GPIO structure and its real-life usage with LED programming and a third-party add-on, PiGlow.

Chapter 6, Creating Animated Movie with Raspberry Pi, demonstrates the GPIO and camera together by creating a project that requires application of both the concepts in order.

Chapter 7, Introduction to Computer Vision, introduces you to computer vision and image processing with Raspberry Pi. You will create a simple project.

Chapter 8, Creating Your Own Motion Detection and Tracking System, introduces you to advanced concepts in OpenCV, which will be used to implement the next project, which has a higher difficulty level.

Chapter 9, Grove Sensors and the Raspberry Pi, introduces you to the Grove shield and Grove sensors and their interfacing with Raspberry Pi. Grove Sensors are third-party sensors for Raspberry Pi and Arduino that can be used for environment sensing.

Chapter 10, Internet of Things with the Raspberry Pi, looks at creating home automation and Internet of Things applications with the Raspberry Pi.

Chapter 11, Build Your Own Supercomputer with the Raspberry Pi, deals with making clusters of Raspberry Pi 2s, using MPICH2 and MPI for Python to write parallel programs for the clusters, and running N-body simulation.

Chapter 12, Advanced Networking with the Raspberry Pi, shows you how to improve your cluster of Pis by adding advanced networking capabilities such as DNS and DHCP. We use of existing cluster for this and make it better.

Chapter 13, Setting Up a Web Server on the Raspberry Pi, delves into installing PHP, MySQL, and WordPress on our Raspberry Pi to use it as a web server.

Chapter 14, Network Programming in Python with the Pi, teaches you how to use Python to learn the basics of network programming and also create network utilities such as Telnet and chat applications on the Raspberry Pi.

Appendix, Newer Raspberry Pi Models, briefly introduces you to some of the newest members of the Raspberry Pi family, namely the Raspberry Pi Zero and the Raspberry Pi 3.

What you need for this book

The following hardware is recommended for successfully completing the projects outlined in this book:

Raspberry Pi Model B, B+ or 2 (Multiple boards for last two chapters)USB hub, powered preferablyNetworking hubPC for preparing SD cardWebcam and/or Pi Camera

Who this book is for

What's the best way to learn how to use your Raspberry Pi? By example! If you want something exciting to do whilst getting to grips with what your Pi can offer, this is the book for you. With both simple and complex projects, you'll create a wide variety of cool toys and functions with your Raspberry Pi - all with minimal coding experience necessary. You can be a beginner before starting with this book, but by the time you finish it, you will be a Jedi with the Raspberry Pi.

Reader feedback

Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or disliked. Reader feedback is important for us as it helps us develop titles that you will really get the most out of.

To send us general feedback, simply e-mail <[email protected]>, and mention the book's title in the subject of your message.

If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide at www.packtpub.com/authors.

Customer support

Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.

Downloading the example code

You can download the example code files for this book from your account at http://www.packtpub.com. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.

You can download the code files by following these steps:

Log in or register to our website using your e-mail address and password.Hover the mouse pointer on the SUPPORT tab at the top.Click on Code Downloads & Errata.Enter the name of the book in the Search box.Select the book for which you're looking to download the code files.Choose from the drop-down menu where you purchased this book from.Click on Code Download.

You can also download the code files by clicking on the Code Files button on the book's webpage at the Packt Publishing website. This page can be accessed by entering the book's name in the Search box. Please note that you need to be logged in to your Packt account.

Once the file is downloaded, please make sure that you unzip or extract the folder using the latest version of:

WinRAR / 7-Zip for WindowsZipeg / iZip / UnRarX for Mac7-Zip / PeaZip for Linux

Downloading the color images of this book

We also provide you with a PDF file that has color images of the screenshots/diagrams used in this book. The color images will help you better understand the changes in the output. You can download this file from https://www.packtpub.com/sites/default/files/downloads/RaspberryPiByExample_ColorImages.pdf.

Errata

Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you could report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded to our website or added to any list of existing errata under the Errata section of that title.

To view the previously submitted errata, go to https://www.packtpub.com/books/content/support and enter the name of the book in the search field. The required information will appear under the Errata section.

Piracy

Piracy of copyrighted material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works in any form on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.

Please contact us at <[email protected]> with a link to the suspected pirated material.

We appreciate your help in protecting our authors and our ability to bring you valuable content.

Questions

If you have a problem with any aspect of this book, you can contact us at <[email protected]>, and we will do our best to address the problem.

Chapter 1. Introduction to Raspberry Pi and Python

One can learn about topics in computer science in an easy way with the Raspberry Pi and Python. The Raspberry Pi family of single-board computers uses Python as the preferred development language. Using Raspberry Pi and Python to learn programming and computer science-related concepts is one of the best ways to start your journey in this amazing world of computers that is full of creative possibilities. We will explore these possibilities in this book.

We will commence our journey in this chapter by getting ourselves familiar with the following topics:

Single-board computersRaspberry PiRaspbianSetting up Raspberry PiBasics of PythonTurtle programming with Python

Single-board computers

A single-board computer system is a complete computer on a single circuit board. The board includes a processor(s), RAM, input/output (I/O), and networking ports for interfacing devices. Unlike traditional computer systems, a single-board computer is not modular and its hardware cannot be upgraded as it is integrated on the board itself. Single-board computers are used as low-cost computers in academia, research, and embedded systems. The use of single-board computers in embedded systems is quite prevalent and many individuals and organizations have developed and released fully functional products based on single-board computers.

The Microcomputer Trainer MMD-1 designed by John Titus in 1976 is the first true single-board microcomputer that was based on the Intel C8080A. It was called dyna -micro in the prototyping phase, and the production units were called MMD-1 (short for Mini Micro Designer 1).

Popular single-board computers available in the market include but are not limited to Raspberry Pi, Banana Pro, BeagleBone Black, and Cubieboard. The following images are of the front view of BeagleBone Black, Banana Pro, and Cubieboard 4, respectively:

Raspberry Pi

The Raspberry Pi is a series of low-cost, palm-sized single-board computers developed by Raspberry Pi Foundation in the UK. The intention behind the creation of the Raspberry Pi is to promote the teaching of basic computer skills in schools, which it serves very well. Raspberry Pi has expanded its footprint well beyond its intended purpose by penetrating the embedded systems market and computer science research.

Note

This is the home page of Raspberry Pi Foundation: http://www.raspberrypi.org.

The Raspberry Pi is manufactured with licensed agreements with Newark element14, RS Components, Allied Electronics, and Egoman. These companies manufacture and sell the Raspberry Pi. The hardware is the same across all manufacturers.

The following table displays the URLs of the manufacturers' websites, where you can shop for Pi and related items online:

Manufacturer

Website

Newark element14

http://www.newark.com

RS Components

http://uk.rs-online.com

Egoman

http://www.egoman.com.cn

Allied Electronics

http://www.alliedelec.com

You can also shop for Pi and the other third-party add-ons at the following links:

http://shop.pimoroni.comhttp://www.adafruit.com

Raspberry Pi models

The following are, at the time of writing this, the major models of Raspberry Pi:

Model A (not in production; discontinued in favor of the production of later and upgraded models)Model A+ (currently in production and available for purchase)Model B (available for purchase but not in production)Model B+ (currently in production and available for purchase)Raspberry Pi 2 Model B (currently in production and available for purchase)

Note

Check out the Product page of Raspberry Pi at http://www.raspberrypi.org/products/.

Additionally, Raspberry Pi is also available in a more flexible form factor intended for industrial and embedded applications. It is known as Compute Module. A Compute Module prototyping kit is also made available by the foundation.

Note

Check out the following URLs for the Compute Module and Compute Module development kit, respectively:

http://www.raspberrypi.org/products/compute-module/

http://www.raspberrypi.org/products/compute-module-development-kit/

The following table compares the currently available models of Pi:

The following image shows the top view of the Raspberry Pi Model B front:

The following image shows the top view of the flip side of Raspberry Pi Model B:

The following image shows the top view of the Raspberry Pi Model B+ front:

The following image shows the top view of the flip side of Raspberry Pi Model B+:

The following image shows the top view of the Raspberry Pi 2 Model B front. The location of the connectors and important ICs (integrated circuits) on the board is not different from Pi B+:

We will be using Raspberry Pi 2 Model B throughout this book. However, all the applications and programs in this book will work on all the models of Pi.

Operating systems

The Raspberry Pi primarily uses Unix-like Linux-kernel-based operating systems, such as variants of Debian and Fedora.

Raspberry Pi Models A, A+, B, and B+ are based on the ARM11 family chip, which runs on the ARMv6 instruction set. The ARMv6 instruction set does not support Ubuntu and Windows.

However, the recently launched Raspberry Pi 2 is based on ARM Cortex A7, which is capable of running Windows 10 and Ubuntu (Snappy Core). The following operating systems are officially supported by all the models of Raspberry Pi and are available for download at the download page:

Raspbian: We will be using this with Raspberry Pi throughout the bookOpenELECPidora (Fedora Remix)RASPBMCRISC OS

Note

Windows 10 and Ubuntu are only supported by the recently launched Pi 2.

Raspbian

Raspbian is an unofficial variant of Debian armhf (ARM Hard Float) compiled for hard float code that will run on Raspberry Pi computers. It is a free operating system based on Debian optimized for the Raspberry Pi hardware.

Note

To know more about Raspbian, visit http://www.raspbian.org/.

Setting up the Raspberry Pi

We need the following hardware to set up a Pi.

Raspberry Pi 2 Model B (hereafter, this will be referred only as Pi).Power Supply: A micro USB power supply.

Considering that we are going for slightly power-intensive usage of our Pi (such as connecting Pi Camera, webcam, and third-party sensors for Pi), a 5V 2A power supply is recommended. The micro USB pin is shown in the following image:

Note

You can find a similar one online at http://www.adafruit.com/product/1995.

A standard USB keyboardA MicroSD card and a MicroSD to SD card converter

We need a minimum 4 GB Micro SD card.

A USB mouseA monitor

You can use either an HDMI monitor or a standard VGA monitor.

A monitor connection cable and converter

If you are using HDMI monitor, then an HDMI cable will be sufficient. If you are using a VGA monitor, then you need to use an HDMI to VGA converter with a VGA cable. Some special changes need to be made to the /boot/config.txt file if you're using a VGA monitor, which will be explained in the next section.

Note

You can find a similar one online at https://www.adafruit.com/products/1151.

A Windows, Linux, or Mac OS computer with a MicroSD card reader and an Internet connection

Preparing MicroSD card manually

This is the original way to install an OS into a MicroSD card, and many users, including me, still prefer it. It allows the SD card to be prepared manually before it is used and it allows easier access to configuration files such as /boot/config.txt, which we might have to modify in a few cases before booting up. The default Raspbian image consists of only two partitions, BOOT and SYSTEM, which will fit into a 2 GB card. However, I recommend that you use a minimum 4 GB card to be on safe side. Choosing an 8 GB card will be adequate for most of the applications we are going to develop in this book.

The following are the instructions for Windows users:

Download the Win32DiskImager installer, which is available at http://sourceforge.net/projects/win32diskimager/files/latest/download and then install it.Download the installable version of WinZip, which is available at http://www.winzip.com/prod_down.html, and install it.Go to http://www.raspberrypi.org/downloads and download the latest image of Raspbian. It will be a compressed file in the ZIP format and will need to be extracted.Extract the ZIP file using WinZip. The extracted file will be in the .img format.Insert the microSD card into the card reader and plug the card reader into the computer. Many computers nowadays have an inbuilt SD card reader. In this case, you will need to insert the microSD card into the microSD to SD card converter and insert it into the computer's inbuilt SD card reader. MicroSD to SD card converters usually come bundled with microSD cards in the same package. If that's not the case, then you will have to procure it separately.Run Win32DiskImager.exe and write the image onto the SD card:

You might receive the following message if the card reader's write protection is on:

Toggle the write protection notch and try again. You will see the following message:Click on Yes and it will start writing the image file to the microSD card:Once the image is successfully written, it will display the following message:

Note

If you are using Linux, then you can find the instructions at https://www.raspberrypi.org/documentation/installation/installing-images/linux.md.

If you are using Mac OS, then you can find the instructions at https://www.raspberrypi.org/documentation/installation/installing-images/mac.md.

If you have an HDMI monitor, then skip this step. This additional step is required only if you are planning to use a VGA monitor in place of an HDMI monitor.

Browse the microSD card on the computer. Locate and open config.txt. We have to edit the file in order to enable proper display on the VGA monitor.

By default, the commented options (which have # at the beginning) are disabled. We are enabling this option by uncommenting this line, that is, by removing # from the beginning of the commented line. This is what you need to do:

Change #disable_overscan=1 to disable_overscan=1.Change #hdmi_force_hotplug=1 to hdmi_force_hotplug=1.Change #hdmi_group=1 to hdmi_group=2.Change #hdmi_mode=1 to hdmi_mode=16.Change #hdmi_drive=2 to hdmi_drive=2.Change #config_hdmi_boost=4 to config_hdmi_boost=4.Save the file.

Booting up our Pi for the first time

Let's boot up our Pi for the first time with the microSD card:

Insert the microSD card into the microSD card slot of the Pi.Connect the Pi to the HDMI monitor. If you are connecting the VGA monitor, connect it using the HDMI to VGA converter.Connect the USB mouse and the USB keyboard.Connect the Pi to a power supply using the micro USB power cable. Make sure the power is switched off at this point.Check all the connections once and then switch on the power supply of the Pi.

At this stage, our Pi will start booting up. You will see a green light on the Pi board blinking. This means that it's working! Now, there are few more things we need to do before we can really start using our Pi. Once it boots up, it will show the desktop as follows:

Once the desktop is visible, go to Menu | Accessories | lxterminal. Then, type sudo raspi-config. A text-based menu, such as the following, will appear:

Perform the following steps. We need to use arrow keys and the Enter key to select options in the text-based menu. Press Enter to select a menu item. Also, we can use the Tab key to directly go to the Select and Finish buttons:

Select Expand Filesystem.In Boot Options, select B4 Desktop Autologin, as shown in the following screenshot:

Note

The default username is pi and the password is raspberry. We need it when we don't choose any of the preceding autologin options. We can change this password from the second option in the raspi-config menu.

We can also choose to boot to the console by selecting any of the first two options in the preceding menu. The default shell of Raspbian is Bash. We can confirm it by typing the following command:

echo $SHELL

We can always go to the graphical desktop from the Command Prompt by typing the startx command in the console.

Go to Internationalisation Options | Change Timezone.Go to Internationalisation Options | Change Keyboard Layout | Change it to US (the default is UK).Select Enable Camera.Select Advanced Options.Under this option, select Memory Split and enter 64MB for GPU.