ORPP logo
Image from Google Jackets

Exploring Raspberry Pi : Interfacing to the Real World with Embedded Linux.

By: Material type: TextTextPublisher: Newark : John Wiley & Sons, Incorporated, 2016Copyright date: ©2016Edition: 1st edDescription: 1 online resource (722 pages)Content type:
  • text
Media type:
  • computer
Carrier type:
  • online resource
ISBN:
  • 9781119188704
Subject(s): Genre/Form: Additional physical formats: Print version:: Exploring Raspberry PiDDC classification:
  • 005.133
LOC classification:
  • QA76.73.P98 -- .M655 2016eb
Online resources:
Contents:
Cover -- Title Page -- Copyright -- Contents -- Introduction -- Part I Raspberry Pi Basics -- Chapter 1 Raspberry Pi Hardware -- Introduction to the Platform -- Who Should Use the RPi -- When to Use the RPi -- When to Not Use the RPi -- RPi Documentation -- The RPi Hardware -- Raspberry Pi Versions -- The Raspberry Pi Hardware -- Raspberry Pi Accessories -- Important Accessories -- Recommended Accessories -- Optional Accessories -- HATs -- How to Destroy Your RPi! -- Summary -- Support -- Chapter 2 Raspberry Pi Software -- Linux on the Raspberry Pi -- Linux Distributions for the RPi -- Create a Linux SD Card Image for the RPi -- Connecting to a Network -- Regular Ethernet -- Ethernet Crossover Cable -- Communicating with the RPi -- Serial Connection with the USB-to-TTL 3.3V Cable -- Connecting through Secure Shell (SSH) -- Transferring Files Using PuTTY/psftp over SSH -- Controlling the Raspberry Pi -- Basic Linux Commands -- Basic File Editing -- What Time Is It? -- Package Management -- Configuring the Raspberry Pi -- The Raspberry Pi Configuration Tool -- Updating the RPi Software -- Video Output -- Interacting with the Onboard LEDs -- Shutdown and Reboot -- Summary -- Chapter 3 Exploring Embedded Linux Systems -- Introducing Embedded Linux -- Advantages and Disadvantages of Embedded Linux -- Is Linux Open Source and Free? -- Booting the Raspberry Pi -- Managing Linux Systems -- The Super User -- System Administration -- Linux Commands -- Linux Processes -- Other Linux Topics -- Using Git for Version Control -- A Practice-Based Introduction -- Git Branching -- Common Git Commands -- Using Desktop Virtualization -- Code for This Book -- Summary -- Further Reading -- Bibliography -- Chapter 4 Interfacing Electronics -- Analyzing Your Circuits -- Digital Multimeter -- Oscilloscopes -- Basic Circuit Principles.
Voltage, Current, Resistance, and Ohm's Law -- Voltage Division -- Current Division -- Implementing RPi Circuits on a Breadboard -- Digital Multimeters (DMMs) and Breadboards -- Example Circuit: Voltage Regulation -- Discrete Components -- Diodes -- Light-Emitting Diodes (LEDs) -- Smoothing and Decoupling Capacitors -- Transistors -- Optocouplers/Opto-isolators -- Switches and Buttons -- Logic Gates -- Analog-to-Digital Conversion -- Sampling Rate -- Quantization -- Operational Amplifiers -- Concluding Advice -- Summary -- Further Reading -- Chapter 5 Programming on the Raspberry Pi -- Introduction -- Performance of Languages on the RPi -- Setting the RPi CPU Frequency -- A First Circuit for Physical Computing -- Scripting Languages -- Scripting Language Options -- Bash -- Lua -- Perl -- Python -- Dynamically Compiled Languages -- JavaScript and Node.js on the RPi -- Java on the RPi -- C and C++ on the RPi -- C and C++ Language Overview -- LED Control in C -- The C of C++ -- Overview of Object-Oriented Programming -- Object-Oriented LED Control in C++ -- Interfacing to the Linux OS -- Glibc and Syscall -- Improving the Performance of Python -- Cython -- Extending Python with C/C++ -- Summary -- Further Reading -- Bibliography -- Part II Interfacing, Controlling, and Communicating -- Chapter 6 Interfacing to the Raspberry Pi Input/Outputs -- Introduction -- General-Purpose Input/Outputs -- GPIO Digital Output -- GPIO Digital Input -- Internal Pull-Up and Pull-Down Resistors -- Interfacing to Powered DC Circuits -- C++ Control of GPIOs Using sysfs -- More C++ Programming -- An Enhanced GPIO Class -- Memory-Based GPIO Control -- GPIO Control Using devmem2 -- GPIO Control Using C and /dev/mem -- Changing the Internal Resistor Configuration -- WiringPi -- Installing wiringPi -- The gpio Command -- Programming with wiringPi.
Toggling an LED Using wiringPi -- Button Press-LED Response -- Communicating to One-Wire Sensors -- PWM and General-Purpose Clocks -- GPIOs and Permissions -- Writing udev Rules -- Permissions and wiringPi -- Summary -- Chapter 7 Cross-Compilation and the Eclipse IDE -- Setting Up a Cross-Compilation Toolchain -- The Linaro Toolchain for Raspbian -- Debian Cross-Toolchains -- Cross-Compilation Using Eclipse -- Installing Eclipse on Desktop Linux -- Configuring Eclipse for Cross-Compilation -- Remote System Explorer -- Integrating GitHub into Eclipse -- Remote Debugging -- Automatic Documentation (Doxygen) -- Building Linux -- Downloading the Kernel Source -- Building the Linux Kernel -- Deploying the Linux Kernel -- Building a Linux Distribution (Advanced) -- Summary -- Further Reading -- Chapter 8 Interfacing to the Raspberry Pi Buses -- Introduction to Bus Communication -- I2C -- I2C Hardware -- An I2C Test Circuit -- Using Linux I2C-Tools -- I2C Communication in C -- Wrapping I2C Devices with C++ Classes -- SPI -- SPI Hardware -- SPI on the RPi -- A First SPI Application (74HC595) -- Bidirectional SPI Communication in C/C++ -- Multiple SPI Slave Devices on the RPi -- UART -- The RPi UART -- UART Examples in C -- UART Applications - GPS -- Logic-Level Translation -- Summary -- Further Reading -- Chapter 9 Enhancing the Input/Output Interfaces on the RPi -- Introduction -- Analog-to-Digital Conversion -- SPI Analog-to-Digital Converters (ADCs) -- ADC Application: An Analog Light Meter -- Testing the SPI ADC Performance -- The C Library for BCM2835 (Advanced) -- Digital-to-Analog Conversion -- An I2C Digital-to-Analog Converter -- An SPI Digital-to-Analog Converter -- Adding PWM Outputs to the RPi -- Extending the RPi GPIOs -- The MCP23017 and the I2C Bus -- The MCP23S17 and the SPI Bus -- A C++ Class for the MCP23x17 Devices.
Adding UARTs to the RPi -- Summary -- Chapter 10 Interacting with the Physical Environment -- Interfacing to Actuators -- DC Motors -- Stepper Motors -- Relays -- Interfacing to Analog Sensors -- Linear Analog Sensors -- Nonlinear Analog Sensors -- Analog Sensor Signal Conditioning -- Interfacing to an Analog Accelerometer -- Interfacing to Local Displays -- MAX7219 Display Modules -- Character LCD Modules -- OLED Dot-Matrix Display -- Building C/C++ Libraries -- Makefiles -- CMake -- Summary -- Chapter 11 Real-Time Interfacing Using the Arduino -- The Arduino -- An Arduino Serial Slave -- A UART Echo Test Example -- UART Command Control of an Arduino -- An Arduino I2C Slave -- An I2C Test Circuit -- I2C Register Echo Example -- I2C Temperature Sensor Example -- I2C Temperature Sensor with a Warning LED -- Arduino Slave Communication Using C/C++ -- An I2C Ultrasonic Sensor Application -- An Arduino SPI Slave -- Programming the Arduino from the RPi Command Line -- Summary -- Part III Advanced Interfacing and Interaction -- Chapter 12 The Internet of Things -- The Internet of Things (IoT) -- The RPi as an IoT Sensor -- The RPi as a Sensor Web Server -- Nginx -- GNU Cgicc Applications (Advanced) -- A C/C++ Web Client -- Network Communications Primer -- A C/C++ Web Client -- Secure Communication Using OpenSSL -- The RPi as a "Thing" -- ThingSpeak -- The Linux Cron Scheduler -- Sending E-mail from the RPi -- If This Then That (IFTTT) -- Large-Scale IoT Frameworks -- MQ Telemetry Transport (MQTT) -- IBM Bluemix Internet of Things -- An IBM IoT MQTT Node.js Publish Example -- An IBM IoT MQTT C++ Publish Example -- Visualize Data Using IBM Quickstart -- The C++ Client/Server -- IoT Device Management -- Remote Monitoring of the RPi -- RPi Watchdog Timers -- Static IP Addresses -- Power over Ethernet (PoE) -- Summary.
Chapter 13 Wireless Communication and Control -- Introduction to Wireless Communications -- Bluetooth Communications -- Installing a Bluetooth Adapter -- Android App Development with Bluetooth -- Wi-Fi Communications -- Installing a Wi-Fi Adapter -- The NodeMCU Wi-Fi Slave Processor -- ZigBee Communications -- Introduction to XBee Devices -- XBee Configuration -- An XBee AT Mode Example -- An XBee API Mode Example -- Near Field Communication -- Summary -- Chapter 14 Raspberry Pi with a Rich User Interface -- Rich UI RPi Architectures -- The RPi as a General-Purpose Computer -- RPi with an LCD Touchscreen -- Virtual Network Computing (VNC) -- Fat-Client Applications -- Rich UI Application Development -- Introduction to GTK+ on the RPi -- Introduction to Qt on the RPi -- Qt Primer -- Qt Concepts -- Qt Development Tools -- A First Qt Creator Example -- A Qt Weather GUI Application -- Remote UI Application Development -- Fat-Client Qt GUI Application -- Multithreaded Server Applications -- The Multithreaded Weather Server -- Summary -- Further Reading -- Chapter 15 Images, Video, and Audio -- Capturing Images and Video -- The RPi Camera -- USB Webcams -- Video4Linux2 (V4L2) -- Streaming Video -- Image Processing and Computer Vision -- Image Processing with OpenCV -- Computer Vision with OpenCV -- Boost -- Raspberry Pi Audio -- Core Audio Software Tools -- Audio Devices for the RPi -- Text-to-Speech -- Summary -- Further Reading -- Chapter 16 Kernel Programming -- Introduction -- Why Write Kernel Modules? -- Loadable Kernel Module (LKM) Basics -- A First LKM Example -- The LKM Makefile -- Building the LKM on a Linux Desktop Machine -- Building the LKM on the RPi -- Testing the First LKM Example -- An Embedded LKM Example -- Interrupt Service Routines (ISRs) -- Performance -- Enhanced Button GPIO Driver LKM -- The kobject Interface.
Enhanced LED GPIO Driver LKM.
Tags from this library: No tags from this library for this title. Log in to add tags.
Star ratings
    Average rating: 0.0 (0 votes)
No physical items for this record

Cover -- Title Page -- Copyright -- Contents -- Introduction -- Part I Raspberry Pi Basics -- Chapter 1 Raspberry Pi Hardware -- Introduction to the Platform -- Who Should Use the RPi -- When to Use the RPi -- When to Not Use the RPi -- RPi Documentation -- The RPi Hardware -- Raspberry Pi Versions -- The Raspberry Pi Hardware -- Raspberry Pi Accessories -- Important Accessories -- Recommended Accessories -- Optional Accessories -- HATs -- How to Destroy Your RPi! -- Summary -- Support -- Chapter 2 Raspberry Pi Software -- Linux on the Raspberry Pi -- Linux Distributions for the RPi -- Create a Linux SD Card Image for the RPi -- Connecting to a Network -- Regular Ethernet -- Ethernet Crossover Cable -- Communicating with the RPi -- Serial Connection with the USB-to-TTL 3.3V Cable -- Connecting through Secure Shell (SSH) -- Transferring Files Using PuTTY/psftp over SSH -- Controlling the Raspberry Pi -- Basic Linux Commands -- Basic File Editing -- What Time Is It? -- Package Management -- Configuring the Raspberry Pi -- The Raspberry Pi Configuration Tool -- Updating the RPi Software -- Video Output -- Interacting with the Onboard LEDs -- Shutdown and Reboot -- Summary -- Chapter 3 Exploring Embedded Linux Systems -- Introducing Embedded Linux -- Advantages and Disadvantages of Embedded Linux -- Is Linux Open Source and Free? -- Booting the Raspberry Pi -- Managing Linux Systems -- The Super User -- System Administration -- Linux Commands -- Linux Processes -- Other Linux Topics -- Using Git for Version Control -- A Practice-Based Introduction -- Git Branching -- Common Git Commands -- Using Desktop Virtualization -- Code for This Book -- Summary -- Further Reading -- Bibliography -- Chapter 4 Interfacing Electronics -- Analyzing Your Circuits -- Digital Multimeter -- Oscilloscopes -- Basic Circuit Principles.

Voltage, Current, Resistance, and Ohm's Law -- Voltage Division -- Current Division -- Implementing RPi Circuits on a Breadboard -- Digital Multimeters (DMMs) and Breadboards -- Example Circuit: Voltage Regulation -- Discrete Components -- Diodes -- Light-Emitting Diodes (LEDs) -- Smoothing and Decoupling Capacitors -- Transistors -- Optocouplers/Opto-isolators -- Switches and Buttons -- Logic Gates -- Analog-to-Digital Conversion -- Sampling Rate -- Quantization -- Operational Amplifiers -- Concluding Advice -- Summary -- Further Reading -- Chapter 5 Programming on the Raspberry Pi -- Introduction -- Performance of Languages on the RPi -- Setting the RPi CPU Frequency -- A First Circuit for Physical Computing -- Scripting Languages -- Scripting Language Options -- Bash -- Lua -- Perl -- Python -- Dynamically Compiled Languages -- JavaScript and Node.js on the RPi -- Java on the RPi -- C and C++ on the RPi -- C and C++ Language Overview -- LED Control in C -- The C of C++ -- Overview of Object-Oriented Programming -- Object-Oriented LED Control in C++ -- Interfacing to the Linux OS -- Glibc and Syscall -- Improving the Performance of Python -- Cython -- Extending Python with C/C++ -- Summary -- Further Reading -- Bibliography -- Part II Interfacing, Controlling, and Communicating -- Chapter 6 Interfacing to the Raspberry Pi Input/Outputs -- Introduction -- General-Purpose Input/Outputs -- GPIO Digital Output -- GPIO Digital Input -- Internal Pull-Up and Pull-Down Resistors -- Interfacing to Powered DC Circuits -- C++ Control of GPIOs Using sysfs -- More C++ Programming -- An Enhanced GPIO Class -- Memory-Based GPIO Control -- GPIO Control Using devmem2 -- GPIO Control Using C and /dev/mem -- Changing the Internal Resistor Configuration -- WiringPi -- Installing wiringPi -- The gpio Command -- Programming with wiringPi.

Toggling an LED Using wiringPi -- Button Press-LED Response -- Communicating to One-Wire Sensors -- PWM and General-Purpose Clocks -- GPIOs and Permissions -- Writing udev Rules -- Permissions and wiringPi -- Summary -- Chapter 7 Cross-Compilation and the Eclipse IDE -- Setting Up a Cross-Compilation Toolchain -- The Linaro Toolchain for Raspbian -- Debian Cross-Toolchains -- Cross-Compilation Using Eclipse -- Installing Eclipse on Desktop Linux -- Configuring Eclipse for Cross-Compilation -- Remote System Explorer -- Integrating GitHub into Eclipse -- Remote Debugging -- Automatic Documentation (Doxygen) -- Building Linux -- Downloading the Kernel Source -- Building the Linux Kernel -- Deploying the Linux Kernel -- Building a Linux Distribution (Advanced) -- Summary -- Further Reading -- Chapter 8 Interfacing to the Raspberry Pi Buses -- Introduction to Bus Communication -- I2C -- I2C Hardware -- An I2C Test Circuit -- Using Linux I2C-Tools -- I2C Communication in C -- Wrapping I2C Devices with C++ Classes -- SPI -- SPI Hardware -- SPI on the RPi -- A First SPI Application (74HC595) -- Bidirectional SPI Communication in C/C++ -- Multiple SPI Slave Devices on the RPi -- UART -- The RPi UART -- UART Examples in C -- UART Applications - GPS -- Logic-Level Translation -- Summary -- Further Reading -- Chapter 9 Enhancing the Input/Output Interfaces on the RPi -- Introduction -- Analog-to-Digital Conversion -- SPI Analog-to-Digital Converters (ADCs) -- ADC Application: An Analog Light Meter -- Testing the SPI ADC Performance -- The C Library for BCM2835 (Advanced) -- Digital-to-Analog Conversion -- An I2C Digital-to-Analog Converter -- An SPI Digital-to-Analog Converter -- Adding PWM Outputs to the RPi -- Extending the RPi GPIOs -- The MCP23017 and the I2C Bus -- The MCP23S17 and the SPI Bus -- A C++ Class for the MCP23x17 Devices.

Adding UARTs to the RPi -- Summary -- Chapter 10 Interacting with the Physical Environment -- Interfacing to Actuators -- DC Motors -- Stepper Motors -- Relays -- Interfacing to Analog Sensors -- Linear Analog Sensors -- Nonlinear Analog Sensors -- Analog Sensor Signal Conditioning -- Interfacing to an Analog Accelerometer -- Interfacing to Local Displays -- MAX7219 Display Modules -- Character LCD Modules -- OLED Dot-Matrix Display -- Building C/C++ Libraries -- Makefiles -- CMake -- Summary -- Chapter 11 Real-Time Interfacing Using the Arduino -- The Arduino -- An Arduino Serial Slave -- A UART Echo Test Example -- UART Command Control of an Arduino -- An Arduino I2C Slave -- An I2C Test Circuit -- I2C Register Echo Example -- I2C Temperature Sensor Example -- I2C Temperature Sensor with a Warning LED -- Arduino Slave Communication Using C/C++ -- An I2C Ultrasonic Sensor Application -- An Arduino SPI Slave -- Programming the Arduino from the RPi Command Line -- Summary -- Part III Advanced Interfacing and Interaction -- Chapter 12 The Internet of Things -- The Internet of Things (IoT) -- The RPi as an IoT Sensor -- The RPi as a Sensor Web Server -- Nginx -- GNU Cgicc Applications (Advanced) -- A C/C++ Web Client -- Network Communications Primer -- A C/C++ Web Client -- Secure Communication Using OpenSSL -- The RPi as a "Thing" -- ThingSpeak -- The Linux Cron Scheduler -- Sending E-mail from the RPi -- If This Then That (IFTTT) -- Large-Scale IoT Frameworks -- MQ Telemetry Transport (MQTT) -- IBM Bluemix Internet of Things -- An IBM IoT MQTT Node.js Publish Example -- An IBM IoT MQTT C++ Publish Example -- Visualize Data Using IBM Quickstart -- The C++ Client/Server -- IoT Device Management -- Remote Monitoring of the RPi -- RPi Watchdog Timers -- Static IP Addresses -- Power over Ethernet (PoE) -- Summary.

Chapter 13 Wireless Communication and Control -- Introduction to Wireless Communications -- Bluetooth Communications -- Installing a Bluetooth Adapter -- Android App Development with Bluetooth -- Wi-Fi Communications -- Installing a Wi-Fi Adapter -- The NodeMCU Wi-Fi Slave Processor -- ZigBee Communications -- Introduction to XBee Devices -- XBee Configuration -- An XBee AT Mode Example -- An XBee API Mode Example -- Near Field Communication -- Summary -- Chapter 14 Raspberry Pi with a Rich User Interface -- Rich UI RPi Architectures -- The RPi as a General-Purpose Computer -- RPi with an LCD Touchscreen -- Virtual Network Computing (VNC) -- Fat-Client Applications -- Rich UI Application Development -- Introduction to GTK+ on the RPi -- Introduction to Qt on the RPi -- Qt Primer -- Qt Concepts -- Qt Development Tools -- A First Qt Creator Example -- A Qt Weather GUI Application -- Remote UI Application Development -- Fat-Client Qt GUI Application -- Multithreaded Server Applications -- The Multithreaded Weather Server -- Summary -- Further Reading -- Chapter 15 Images, Video, and Audio -- Capturing Images and Video -- The RPi Camera -- USB Webcams -- Video4Linux2 (V4L2) -- Streaming Video -- Image Processing and Computer Vision -- Image Processing with OpenCV -- Computer Vision with OpenCV -- Boost -- Raspberry Pi Audio -- Core Audio Software Tools -- Audio Devices for the RPi -- Text-to-Speech -- Summary -- Further Reading -- Chapter 16 Kernel Programming -- Introduction -- Why Write Kernel Modules? -- Loadable Kernel Module (LKM) Basics -- A First LKM Example -- The LKM Makefile -- Building the LKM on a Linux Desktop Machine -- Building the LKM on the RPi -- Testing the First LKM Example -- An Embedded LKM Example -- Interrupt Service Routines (ISRs) -- Performance -- Enhanced Button GPIO Driver LKM -- The kobject Interface.

Enhanced LED GPIO Driver LKM.

Description based on publisher supplied metadata and other sources.

Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2024. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.

There are no comments on this title.

to post a comment.

© 2024 Resource Centre. All rights reserved.