![](https://csdnimg.cn/release/download_crawler_static/10393533/bg11.jpg)
xxii Introduction
ast.indd 11:3:39:AM 05/12/2016 Page xxii
The second part of the book, Chapters 6–11, provides detailed information on
interfacing to the Raspberry Pi GPIOs, buses (I
2
C, SPI), UART devices, and USB
peripherals. You learn how to con gure a cross-compilation environment so that
you can build large-scale software applications for the Raspberry Pi. Part II also
describes how to combine hardware and software to provide the Raspberry Pi
with the capability to interact effectively with its physical environment. In addi-
tion, Chapter 11, “Real-Time Interfacing Using the Arduino,” shows you how to
use the Arduino as a slave processor with the Raspberry Pi, which helps you to
overcome some of the real-time constraints of working with embedded Linux.
The third and nal part of the book, Chapters 12–16, describes how to use the
Raspberry Pi for advanced interfacing and interaction applications such as IoT;
wireless communication and control, rich user interfaces; images, video, and
audio; and Linux kernel programming. Along the way, you encounter many
technologies, including TCP/IP, ThingSpeak, IBM Bluemix, MQTT, Cgicc, Power
over Ethernet (PoE), Wi-Fi, NodeMCUs, Bluetooth, NFC/RFID, ZigBee, XBee, cron,
Nginx, PHP, e-mail, IFTTT, GPS, VNC, GTK+, Qt, XML, JSON, multithreading,
client/server programming, V4L2, video streaming, OpenCV, Boost, USB audio,
Bluetooth A2DP, text-to-speech, LKMs, kobjects, and kthreads!
Conventions Used in This Book
This book is lled with source code examples and snippets that you can use to
build your own applications. Code and commands are shown as follows:
This is what source code looks like.
When presenting work performed in a Linux terminal, it is often necessary
to display both input and output in a single example. A bold type is used to
distinguish the user input from the output. For example:
pi@erpi ~ $ ping www.raspberrypi.org
PING lb.raspberrypi.org (93.93.128.211) 56(84) bytes of data.
64 bytes from 93.93.128.211: icmp_seq=1 ttl=53 time=23.1 ms
64 bytes from 93.93.128.211: icmp_seq=2 ttl=53 time=22.6 ms
...
The
$
prompt indicates that a regular Linux user is executing a command,
and a # prompt indicates that a Linux superuser is executing a command. The
ellipsis symbol (...) is used whenever code or output not vital to understanding
a topic has been cut. Editing the output like this enables you to focus on only the
most useful information. In addition, an arrow symbol on a line entry indicates
that the command spans multiple lines in the book but should be entered on a
single line. For example:
pi@erpi /tmp $ echo "this is a long command that spans two lines in the →
book but must be entered on a single line" >> test.txt