ORPP logo

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

Molloy, Derek.

Exploring BeagleBone : Tools and Techniques for Building with Embedded Linux. - 2nd ed. - 1 online resource (803 pages)

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.

9781119533177


Operating systems (Computers).


Electronic books.

QA76.76.O63 .M655 2019

004.165

© 2024 Resource Centre. All rights reserved.