Exploring BeagleBone : Tools and Techniques for Building with Embedded Linux.

By: Molloy, DerekMaterial type: TextTextSeries: eBooks on DemandPublisher: Newark : John Wiley & Sons, Incorporated, 2019Copyright date: ©2019Edition: 2nd edDescription: 1 online resource (803 pages)Content type: text Media type: computer Carrier type: online resourceISBN: 9781119533177Subject(s): Linux | BeagleBone (Computer) | Operating systems (Computers)Genre/Form: Electronic books.Additional physical formats: Print version:: Exploring BeagleBone : Tools and Techniques for Building with Embedded LinuxDDC classification: 004.165 LOC classification: QA76.76.O63 .M655 2019Online resources: Click here to view this ebook.
Contents:
Cover -- Title Page -- Copyright Page -- About the Author -- About the Technical Editor -- Credits -- Acknowledgments -- Contents at a Glance -- Contents -- Introduction -- Why the BeagleBone and PocketBeagle? -- How This Book Is Structured -- Conventions Used in This Book -- What You'll Need -- Errata -- Digital Content and Source Code -- Part I Beagle Board Basics -- Chapter 1 The Beagle Hardware Platform -- Introduction to the Boards -- Who Should Use the Beagle Platform -- When to Use Beagle Boards -- When Should You Not Use the Beagle Boards -- BeagleBone Documentation -- The Beagle Hardware -- BeagleBone Versions -- The Beagle Hardware -- Beagle Accessories -- Highly Recommended Accessories -- Headers for the PocketBeagle -- Micro-SD Card (for Booting or Flashing eMMCs) -- External 5V Power Supply (for Peripherals) -- Ethernet Cable (for Wired BBB Network Connection) -- HDMI Cable (for Connection to Monitors/Televisions) -- USB to Serial UART TTL 3.3 (for Finding Problems) -- Optional Accessories -- USB Hub (to Connect Several USB Devices to a USB Host) -- Micro-HDMI to VGA Adapters (for VGA Video and Sound) -- Wi-Fi Adapters (for Wireless Networking) -- USB Webcam (for Capturing Images and Streaming Video) -- USB Keyboard and Mouse (for General-Purpose Computing) -- Capes -- How to Destroy Your Board! -- Summary -- Support -- Chapter 2 Beagle Software -- Linux on the Beagle Boards -- Linux Distributions for Beagle Boards -- Create a Linux Micro-SD Card Image -- Communicating with the Boards -- Installing Drivers -- Wired Network Connections -- Internet-over-USB (All Boards) -- Regular Ethernet (BBB and BeagleBoard Only) -- Ethernet Crossover Cable (BBB and BeagleBoard Only) -- Communicating with Your Board -- Serial Connection over USB -- Serial Connection with the USB-to-TTL 3.3 V Cable -- Connecting Through Secure Shell.
Secure Shell Connections Using PuTTY -- Chrome Apps: Secure Shell Client -- Transferring Files Using PuTTY/psftp over SSH -- Controlling the Beagle Board -- Basic Linux Commands -- First Steps -- Basic File System Commands -- Environment Variables -- Basic File Editing -- What Time Is It? -- Package Management -- Beagle-Specific Commands -- Expand the File System on an SD Card -- Update the Kernel -- Interacting with the On-Board LEDs -- Shutdown -- Node.js, Cloud9, and BoneScript -- Introduction to Node.js -- Introduction to the Cloud9 IDE -- Introduction to BoneScript -- Summary -- Further Reading -- Chapter 3 Exploring Embedded Linux Systems -- Introducing Embedded Linux -- Advantages and Disadvantages of Embedded Linux -- Is Linux Open Source and Free? -- Booting the Beagle Boards -- Bootloaders -- Kernel Space and User Space -- The systemd System and Service Manager -- Managing Linux Systems -- The Superuser -- System Administration -- The Linux File System -- Links to Files and Directories -- Users and Groups -- File System Permissions -- The Linux Root Directory -- Commands for File Systems -- The Reliability of SD Card/eMMC File Systems -- Linux Commands -- Output and Input Redirection (>, >>, and <) -- Pipes (| and tee) -- Filter Commands (from sort to xargs) -- echo and cat -- diff -- tar -- md5sum -- Linux Processes -- How to Control Linux Processes -- Foreground and Background Processes -- Other Linux Topics -- Using Git for Version Control -- A Practice-Based Introduction -- Cloning a Repository (git clone) -- Getting the Status (git status) -- Adding to the Staging Area (git add) -- Committing to the Local Repository (git commit) -- Pushing to the Remote Repository (git push) -- Git Branching -- Creating a Branch (git branch) -- Merging a Branch (git merge) -- Deleting a Branch (git branch -d) -- Common Git Commands.
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 Circuits on a Breadboard -- Digital Multimeters and Breadboards -- Example Circuit: Voltage Regulation -- Discrete Components -- Diodes -- Light-Emitting Diodes -- Smoothing and Decoupling Capacitors -- Transistors -- Transistors as Switches -- Field Effect Transistors as Switches -- Optocouplers/Optoisolators -- Switches and Buttons -- Hysteresis -- Logic Gates -- Floating Inputs -- Pull-Up and Pull-Down Resistors -- Open-Collector and Open-Drain Outputs -- Interconnecting Gates -- Analog-to-Digital Conversion -- Sampling Rate -- Quantization -- Operational Amplifiers -- Ideal Operational Amplifiers -- Negative Feedback and Voltage Follower -- Positive Feedback -- Concluding Advice -- Summary -- Further Reading -- Chapter 5 Practical Beagle Board Programming -- Introduction -- Performance of Different Languages -- Setting the CPU Frequency -- Scripting Languages -- Scripting Language Options -- Bash -- Lua -- Perl -- Python -- Dynamically Compiled Languages -- JavaScript and Node.js on the Beagle boards -- Java on the Beagle Boards -- C and C++ on the Beagle Boards -- C and C++ Language Overview -- Compiling and Linking -- Writing the Shortest C/C++ Program -- Static and Dynamic Compilation -- Variables and Operators in C/C++ -- Pointers in C/C++ -- C-Style Strings -- LED Flashing Application in C -- The C of C++ -- First Example and Strings in C++ -- Passing by Value, Pointer, and Reference -- Flashing the LEDs Using C++ (non-OO) -- Writing a Multicall Binary -- Overview of Object-Oriented Programming -- Classes and Objects.
Encapsulation -- Inheritance -- Object-Oriented LED Flashing Code -- Interfacing to the Linux OS -- Glibc and Syscall -- Improving the Performance of Python -- Cython -- Boost.Python -- Summary -- Further Reading -- Bibliography -- Part II Interfacing, Controlling, and Communicating -- Chapter 6 Interfacing to the Beagle Board Input/Outputs -- General-Purpose Input/Outputs -- Introduction to GPIO Interfacing -- GPIO Digital Output -- GPIO Digital Input -- GPIO Configuration -- Internal Pull-Up and Pull-Down Resistors -- GPIO Pin Configuration Settings -- Interfacing to Powered DC Circuits -- C++ Control of GPIOs -- The Linux Device Tree -- Flattened Device Tree on the Beagle Boards -- Modifying a Board Device Tree -- Boot Configuration Files -- Analog Inputs and Outputs -- Analog Inputs -- Enabling the Analog Inputs -- Analog Input Application-A Simple Light Meter -- Analog Outputs (PWM) -- Output Application-Controlling a Servo Motor -- BoneScript -- Digital Read and Write -- Analog Read -- Analog Write (PWM) -- GPIO Performance -- Advanced GPIO Topics -- More C++ Programming -- Callback Functions -- POSIX Threads -- Linux poll (sys/poll.h) -- Enhanced GPIO Class -- Using GPIOs without Using sudo -- Root Permissions with setuid -- Summary -- Further Reading -- Chapter 7 Cross-Compilation, Eclipse, and Building Linux -- Setting Up a Cross-Compilation Toolchain -- Cross-Compiling Under Debian -- Testing the Toolchain -- Emulating the armhf Architecture -- Cross-Compilation with Third-Party Libraries (Multiarch) -- 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) -- Adding Doxygen Editor Support in Eclipse -- Cross-Building Linux -- Downloading the Kernel Source.
Building the Linux Kernel -- Building a Poky Linux Distribution (Advanced) -- Summary -- Chapter 8 Interfacing to the Beagle Board Buses -- Introduction to Bus Communication -- I2C -- I2C Hardware -- I2C on the Beagle Boards -- I2C Devices on the Beagle Boards -- An I2C Test Circuit -- A Real-Time Clock -- The ADXL345 Accelerometer -- Wiring the Test Circuit -- Using Linux I2C-Tools -- i2cdetect -- i2cdump -- i2cget -- i2cset -- I2C Communication in C -- Wrapping I2C Devices with C++ Classes -- SPI -- SPI Hardware -- SPI on the Beagle Boards -- Testing an SPI Bus -- A First SPI Application (74HC595) -- Wiring the 74HC595 Circuit -- SPI Communication Using C -- Bidirectional SPI Communication in C/C++ -- The ADXL345 SPI Interface -- Connecting the ADXL345 to the Beagle Boards -- Wrapping SPI Devices with C++ Classes -- Three-Wire SPI Communication -- Multiple SPI Slave Devices -- UART -- The Beagle Board UART -- UART Examples in C -- Beagle Board Serial Client -- LED Serial Server -- UART Applications: GPS -- CAN Bus -- Beagle Board CAN Bus -- SocketCAN -- A CAN Bus Test Circuit -- Linux CAN-utils -- A SocketCAN C Example -- Logic-Level Translation -- Summary -- Further Reading -- Chapter 9 Interacting with the Physical Environment -- Interfacing to Actuators -- DC Motors -- Driving Small DC Motors (up to 1.5 A) -- Controlling a DC Motor Using sysfs -- Driving Larger DC Motors (Greater than 1.5 A) -- Controlling a DC Motor Using C++ -- Stepper Motors -- The EasyDriver Stepper Motor Driver -- A Beagle Board Stepper Motor Driver Circuit -- Controlling a Stepper Motor Using C++ -- Relays -- Interfacing to Analog Sensors -- Protecting the ADC Inputs -- Diode Clamping -- Op-Amp Clamping -- Analog Sensor Signal Conditioning -- Scaling Using Voltage Division -- Signal Offsetting and Scaling -- Analog Interfacing Examples -- Infrared Distance Sensing.
ADXL335 Conditioning Example.
Tags from this library: No tags from this library for this title. Log in to add tags.
Item type Current location Call number URL Status Date due Barcode
Electronic Book UT Tyler Online
Online
QA76.76.O63 .M655 2019 (Browse shelf) https://ebookcentral.proquest.com/lib/uttyler/detail.action?docID=5625435 Available EBC5625435

Cover -- Title Page -- Copyright Page -- About the Author -- About the Technical Editor -- Credits -- Acknowledgments -- Contents at a Glance -- Contents -- Introduction -- Why the BeagleBone and PocketBeagle? -- How This Book Is Structured -- Conventions Used in This Book -- What You'll Need -- Errata -- Digital Content and Source Code -- Part I Beagle Board Basics -- Chapter 1 The Beagle Hardware Platform -- Introduction to the Boards -- Who Should Use the Beagle Platform -- When to Use Beagle Boards -- When Should You Not Use the Beagle Boards -- BeagleBone Documentation -- The Beagle Hardware -- BeagleBone Versions -- The Beagle Hardware -- Beagle Accessories -- Highly Recommended Accessories -- Headers for the PocketBeagle -- Micro-SD Card (for Booting or Flashing eMMCs) -- External 5V Power Supply (for Peripherals) -- Ethernet Cable (for Wired BBB Network Connection) -- HDMI Cable (for Connection to Monitors/Televisions) -- USB to Serial UART TTL 3.3 (for Finding Problems) -- Optional Accessories -- USB Hub (to Connect Several USB Devices to a USB Host) -- Micro-HDMI to VGA Adapters (for VGA Video and Sound) -- Wi-Fi Adapters (for Wireless Networking) -- USB Webcam (for Capturing Images and Streaming Video) -- USB Keyboard and Mouse (for General-Purpose Computing) -- Capes -- How to Destroy Your Board! -- Summary -- Support -- Chapter 2 Beagle Software -- Linux on the Beagle Boards -- Linux Distributions for Beagle Boards -- Create a Linux Micro-SD Card Image -- Communicating with the Boards -- Installing Drivers -- Wired Network Connections -- Internet-over-USB (All Boards) -- Regular Ethernet (BBB and BeagleBoard Only) -- Ethernet Crossover Cable (BBB and BeagleBoard Only) -- Communicating with Your Board -- Serial Connection over USB -- Serial Connection with the USB-to-TTL 3.3 V Cable -- Connecting Through Secure Shell.

Secure Shell Connections Using PuTTY -- Chrome Apps: Secure Shell Client -- Transferring Files Using PuTTY/psftp over SSH -- Controlling the Beagle Board -- Basic Linux Commands -- First Steps -- Basic File System Commands -- Environment Variables -- Basic File Editing -- What Time Is It? -- Package Management -- Beagle-Specific Commands -- Expand the File System on an SD Card -- Update the Kernel -- Interacting with the On-Board LEDs -- Shutdown -- Node.js, Cloud9, and BoneScript -- Introduction to Node.js -- Introduction to the Cloud9 IDE -- Introduction to BoneScript -- Summary -- Further Reading -- Chapter 3 Exploring Embedded Linux Systems -- Introducing Embedded Linux -- Advantages and Disadvantages of Embedded Linux -- Is Linux Open Source and Free? -- Booting the Beagle Boards -- Bootloaders -- Kernel Space and User Space -- The systemd System and Service Manager -- Managing Linux Systems -- The Superuser -- System Administration -- The Linux File System -- Links to Files and Directories -- Users and Groups -- File System Permissions -- The Linux Root Directory -- Commands for File Systems -- The Reliability of SD Card/eMMC File Systems -- Linux Commands -- Output and Input Redirection (>, >>, and <) -- Pipes (| and tee) -- Filter Commands (from sort to xargs) -- echo and cat -- diff -- tar -- md5sum -- Linux Processes -- How to Control Linux Processes -- Foreground and Background Processes -- Other Linux Topics -- Using Git for Version Control -- A Practice-Based Introduction -- Cloning a Repository (git clone) -- Getting the Status (git status) -- Adding to the Staging Area (git add) -- Committing to the Local Repository (git commit) -- Pushing to the Remote Repository (git push) -- Git Branching -- Creating a Branch (git branch) -- Merging a Branch (git merge) -- Deleting a Branch (git branch -d) -- Common Git Commands.

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 Circuits on a Breadboard -- Digital Multimeters and Breadboards -- Example Circuit: Voltage Regulation -- Discrete Components -- Diodes -- Light-Emitting Diodes -- Smoothing and Decoupling Capacitors -- Transistors -- Transistors as Switches -- Field Effect Transistors as Switches -- Optocouplers/Optoisolators -- Switches and Buttons -- Hysteresis -- Logic Gates -- Floating Inputs -- Pull-Up and Pull-Down Resistors -- Open-Collector and Open-Drain Outputs -- Interconnecting Gates -- Analog-to-Digital Conversion -- Sampling Rate -- Quantization -- Operational Amplifiers -- Ideal Operational Amplifiers -- Negative Feedback and Voltage Follower -- Positive Feedback -- Concluding Advice -- Summary -- Further Reading -- Chapter 5 Practical Beagle Board Programming -- Introduction -- Performance of Different Languages -- Setting the CPU Frequency -- Scripting Languages -- Scripting Language Options -- Bash -- Lua -- Perl -- Python -- Dynamically Compiled Languages -- JavaScript and Node.js on the Beagle boards -- Java on the Beagle Boards -- C and C++ on the Beagle Boards -- C and C++ Language Overview -- Compiling and Linking -- Writing the Shortest C/C++ Program -- Static and Dynamic Compilation -- Variables and Operators in C/C++ -- Pointers in C/C++ -- C-Style Strings -- LED Flashing Application in C -- The C of C++ -- First Example and Strings in C++ -- Passing by Value, Pointer, and Reference -- Flashing the LEDs Using C++ (non-OO) -- Writing a Multicall Binary -- Overview of Object-Oriented Programming -- Classes and Objects.

Encapsulation -- Inheritance -- Object-Oriented LED Flashing Code -- Interfacing to the Linux OS -- Glibc and Syscall -- Improving the Performance of Python -- Cython -- Boost.Python -- Summary -- Further Reading -- Bibliography -- Part II Interfacing, Controlling, and Communicating -- Chapter 6 Interfacing to the Beagle Board Input/Outputs -- General-Purpose Input/Outputs -- Introduction to GPIO Interfacing -- GPIO Digital Output -- GPIO Digital Input -- GPIO Configuration -- Internal Pull-Up and Pull-Down Resistors -- GPIO Pin Configuration Settings -- Interfacing to Powered DC Circuits -- C++ Control of GPIOs -- The Linux Device Tree -- Flattened Device Tree on the Beagle Boards -- Modifying a Board Device Tree -- Boot Configuration Files -- Analog Inputs and Outputs -- Analog Inputs -- Enabling the Analog Inputs -- Analog Input Application-A Simple Light Meter -- Analog Outputs (PWM) -- Output Application-Controlling a Servo Motor -- BoneScript -- Digital Read and Write -- Analog Read -- Analog Write (PWM) -- GPIO Performance -- Advanced GPIO Topics -- More C++ Programming -- Callback Functions -- POSIX Threads -- Linux poll (sys/poll.h) -- Enhanced GPIO Class -- Using GPIOs without Using sudo -- Root Permissions with setuid -- Summary -- Further Reading -- Chapter 7 Cross-Compilation, Eclipse, and Building Linux -- Setting Up a Cross-Compilation Toolchain -- Cross-Compiling Under Debian -- Testing the Toolchain -- Emulating the armhf Architecture -- Cross-Compilation with Third-Party Libraries (Multiarch) -- 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) -- Adding Doxygen Editor Support in Eclipse -- Cross-Building Linux -- Downloading the Kernel Source.

Building the Linux Kernel -- Building a Poky Linux Distribution (Advanced) -- Summary -- Chapter 8 Interfacing to the Beagle Board Buses -- Introduction to Bus Communication -- I2C -- I2C Hardware -- I2C on the Beagle Boards -- I2C Devices on the Beagle Boards -- An I2C Test Circuit -- A Real-Time Clock -- The ADXL345 Accelerometer -- Wiring the Test Circuit -- Using Linux I2C-Tools -- i2cdetect -- i2cdump -- i2cget -- i2cset -- I2C Communication in C -- Wrapping I2C Devices with C++ Classes -- SPI -- SPI Hardware -- SPI on the Beagle Boards -- Testing an SPI Bus -- A First SPI Application (74HC595) -- Wiring the 74HC595 Circuit -- SPI Communication Using C -- Bidirectional SPI Communication in C/C++ -- The ADXL345 SPI Interface -- Connecting the ADXL345 to the Beagle Boards -- Wrapping SPI Devices with C++ Classes -- Three-Wire SPI Communication -- Multiple SPI Slave Devices -- UART -- The Beagle Board UART -- UART Examples in C -- Beagle Board Serial Client -- LED Serial Server -- UART Applications: GPS -- CAN Bus -- Beagle Board CAN Bus -- SocketCAN -- A CAN Bus Test Circuit -- Linux CAN-utils -- A SocketCAN C Example -- Logic-Level Translation -- Summary -- Further Reading -- Chapter 9 Interacting with the Physical Environment -- Interfacing to Actuators -- DC Motors -- Driving Small DC Motors (up to 1.5 A) -- Controlling a DC Motor Using sysfs -- Driving Larger DC Motors (Greater than 1.5 A) -- Controlling a DC Motor Using C++ -- Stepper Motors -- The EasyDriver Stepper Motor Driver -- A Beagle Board Stepper Motor Driver Circuit -- Controlling a Stepper Motor Using C++ -- Relays -- Interfacing to Analog Sensors -- Protecting the ADC Inputs -- Diode Clamping -- Op-Amp Clamping -- Analog Sensor Signal Conditioning -- Scaling Using Voltage Division -- Signal Offsetting and Scaling -- Analog Interfacing Examples -- Infrared Distance Sensing.

ADXL335 Conditioning Example.

Description based on publisher supplied metadata and other sources.

Author notes provided by Syndetics

Dr. Derek Molloy is an Associate Professor in the School of Electronic Engineering at Dublin City University, Ireland. Derek produces a popular YouTube series on the BeagleBone platform and a wide variety of embedded Linux topics. His videos and personal blog have introduced millions of people to the BeagleBone, embedded Linux, and digital electronics.

There are no comments on this title.

to post a comment.