Exploring BeagleBone : tools and techniques for building with embedded Linux /
This book will help you in bringing gadgets, gizmos and robots to life using the BeagleBone embedded Linux platform. You'll also learn the underlying engineering techniques that will allow you to create your own projects. Topics include: a primer on essential skills; communication, control, and...
Clasificación: | Libro Electrónico |
---|---|
Autor principal: | |
Formato: | Electrónico eBook |
Idioma: | Inglés |
Publicado: |
Indianapolis, IN :
Wiley,
[2015]
|
Temas: | |
Acceso en línea: | Texto completo (Requiere registro previo con correo institucional) |
Tabla de Contenidos:
- pt. I BeagleBone Basics
- ch. 1 The BeagleBone Hardware
- Introduction to the Platform
- Who Should Use the BeagleBone
- When to Use the BeagleBone
- When You Should Not Use the BeagleBone
- BeagleBone Documentation
- The BeagleBone Hardware
- BeagleBone Versions
- The BeagleBone Black Hardware
- BeagleBone Accessories
- Highly Recommended Accessories
- Micro-SD Card (for Flashing the BBB)
- External 5V Power Supply (for Flashing and Peripherals)
- Ethernet Cable (for Network Connection)
- HDMI Cable (for Connection to Monitors/Televisions)
- USB to Serial UART TTL 3.3V (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 BeagleBone!
- Ch. 3 Exploring Embedded Linux Systems
- Embedded Linux Basics
- What Embedded Linux Offers
- Is Linux Open Source and Free?
- Booting the BeagleBone
- The BeagleBone Bootloaders
- Kernel Space and User Space
- System V init (SysVinit)
- Managing Linux Systems
- The Super User
- System Administration
- The Linux File System
- Linking to Files and Directories
- Users and Groups
- File System Permissions
- Exploring the File System
- Commands for File Systems
- find and whereis
- more or less
- Linux Commands
- Standard Input and Output Redirection (>,>>, and <)
- Pipes).
- Adding to the Staging Area (git add)
- Committing to the Local Repository (git commit)
- Pushing to the Remote Repository (git push)
- Advanced Git
- Creating a Branch (git branch)
- Merging the Branch (git merge)
- Deleting a Branch (git branch -d)
- Conclusions on Git
- Desktop Virtualization
- Code for This Book
- Summary
- Further Reading
- ch. 4 Interfacing Electronics
- Recommended Equipment
- Digital Multimeter
- Oscilloscopes
- Basic Circuit Principles
- Voltage, Current, Resistance, and Ohm's Law
- Voltage Division
- Current Division
- Implementing 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
- Transistors as Switches
- Field Effect Transistors (FETs) as Switches
- Optocouplers/Opto-isolators
- 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
- ch. 5 Practical BeagleBone Programming
- Introduction
- Performance of Different Languages
- Setting the BBB CPU Frequency
- Scripting Languages
- Scripting Language Options
- Bash
- Perl
- Python
- JavaScript and Java
- JavaScript and Node.js on the BBB
- Java on the BBB
- C and C++ on the BeagleBone
- C and C++ Language Overview
- Compiling and Linking
- Writing the Shortest C/C++ Program
- 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 Your Own Multi-Call Binary
- C++ with Classes
- Overview of Object-Oriented Programming
- Classes and Objects
- Encapsulation
- Inheritance
- Object-Oriented LED Flashing Code
- Proc
- Process Information File System
- GLIBC and Syscall
- Summary
- Further Reading
- pt. II Interfacing, Controlling, and Communicating
- ch. 6 Interfacing to the BeagleBone 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
- C++ Control of GPIOs
- The Linux Device Tree
- The Flattened Device Tree (FDT)
- Device Tree Overlays (DTOs)
- Writing an Overlay
- Compiling and Deploying an Overlay
- The BBB Cape Manager
- Loading a Device Tree Overlay
- Removing an Overlay.
- Loading an Overlay on Boot
- Analog Inputs and Outputs
- Analog Inputs
- Enabling the Analog Inputs
- Input Application
- A Simple Light Meter
- Analog Outputs (PWM)
- Output Application
- Controlling a Servo Motor
- Advanced GPIO Topics
- More C++ Programming
- Callback Functions
- POSIX Threads
- Linux poll (sys/poll.h)
- Enhanced GPIO Class
- GPIO-KEYS
- Using GPIOs without Using sudo
- Summary
- Further Reading
- ch. 7 Cross-Compilation and the Eclipse IDE
- Setting Up a Cross-Compilation Toolchain
- A Toolchain for Debian
- Testing the Toolchain
- Cross-Compilation with Third-Party Libraries (Multiarch)
- Installing a Change Root
- Installing an armhf Change Root
- Emulating the armhf Architecture
- 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 Support in Eclipse
- Building Debian for the BBB
- Summary
- Further Reading
- ch. 8 Interfacing to the BeagleBone Buses
- Introduction to Bus Communication
- I2C
- I2C Hardware
- The ADXL345 Accelerometer
- Using Linux I2C-Tools
- i2cdetect
- i2cdump
- i2cget
- i2cset
- I2C Communication in C
- Wrapping I2C Devices with C++ Classes
- SPI
- SPI Hardware
- SPI on the BBB
- Enabling the First SPI Bus (SPI0)
- Testing the SPI Bus
- A First SPI Application (74HC595)
- Wiring the 74HC595 Circuit
- SPI Communication Using C
- Bidirectional SPI Communication in C++
- The Second SPI Bus (SPI1)
- The ADXL345 SPI Interface
- Connecting the ADXL345 to the BBB
- Wrapping SPI Devices with C++ Classes
- Three-Wire SPI Communication
- Multiple SPI Slave Devices on the BBB
- UART
- UARTs on the BBB
- The Arduino UART Example
- BeagleBone to Arduino Serial Communication.
- Echoing the Minicom Program
- UART Echo Example in C
- UART Command Control of an Arduino
- Logic-Level Translation
- Summary
- Further Reading
- ch. 9 Interacting with the Physical Environment
- Interfacing to Actuators
- DC Motors
- A BBB DC Motor Driver Circuit
- Controlling a DC Motor Using sysfs
- Controlling a DC Motor Using C++
- Stepper Motors
- The EasyDriver Stepper Motor Driver
- A BBB Stepper Motor Driver Circuit
- Controlling a Stepper Motor Using C++
- Relays
- Interfacing to Analog Sensors
- Protecting the BBB 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
- Interfacing to Display Modules
- Seven-Segment Displays
- Character LCD Modules
- Remote Control BeagleBone
- Managing Services with Systemd.
- BBB Serial Connection to Desktop
- Starting a Custom Service on Boot
- Bluetooth
- Installing an Adapter
- Loadable Kernel Modules
- Configuring a Bluetooth Adapter
- Making the BBB Discoverable
- Android Application Development with Bluetooth
- Building Dynamic Linked Libraries
- Summary
- Further Reading
- pt. III Advanced BeagleBone Systems
- ch. 10 The Internet of Things
- The Internet of Things (IoT)
- More Sensors (Things!)
- A Room Temperature Sensor
- Texas Instruments SensorTag
- Connecting to Bluetooth Smart Devices
- Building a Linux Package
- Controlling a Bluetooth Smart Device
- The BeagleBone as a Web Server
- Installing a Web Server
- Configuring an Apache Web Server
- Creating Web Pages and Web Scripts
- PHP on the BeagleBone
- Replacing Bone101 with the Custom Web Server
- A C/C++ Web Client
- Network Communications Primer
- A C/C++ Web Client
- Secure Communication Using OpenSSL.
- The BeagleBone as a Web Sensor
- ThingSpeak
- The Linux Cron Scheduler
- System crontab
- User crontab
- Xively
- Getting Started with Xively's PaaS
- The Xively C Library
- Sending E-mail from the BBB
- If This Then That (IFTTT)
- The C++ Client/Server
- Managing Remote IoT Devices
- BeagleBone Remote Monitoring
- Linux Watchdog Timer
- IoT Physical Networking
- The BeagleBone and Wi-Fi
- Wireless Network Adapters
- Static IP Addresses
- Power over Ethernet (PoE)
- PoE Power Extraction Modules (PEMs) (Advanced Topic)
- Summary
- Further Reading
- Note
- ch. 11 BeagleBone with a Rich User Interface
- Rich UI BBB Architectures
- The BBB as a General-Purpose Computer
- Connecting a Bluetooth Input Peripheral
- BBB with a LCD Touch Screen Cape
- Virtual Network Computing (VNC)
- VNC Using VNC Viewer
- VNC with Xming and PuTTY
- VNC with a Linux Desktop Computer
- Fat-Client Applications
- Rich UI Application Development.
- Introduction to GTK+ on the BBB
- The "Hello World" GTK+ Application
- The Event-Driven Programming Model
- The GTK+ Temperature Application
- Introduction to Qt on the BBB
- Installing Qt Development Tools on the BBB
- The "Hello World" Qt Application
- Qt Primer
- Qt Concepts
- The QObject Class
- Signals and Slots
- Qt Development Tools
- A Qt Temperature Sensor GUI Application
- Simple Qt Cross-Platform Development
- Remote UI Application Development
- Fat-Client Qt GUI Application
- Multi-Threaded Server Applications
- A Multi-Threaded Temperature Service
- The Fat-Client as a Server
- Parsing Stream Data
- The BBB Client Application
- Cross-Compiling Qt Applications
- Building the Qt Libraries from Source
- Remote Deploying a Test Application
- Summary
- Further Reading
- ch. 12 Images, Video, and Audio
- Capturing Images and Video
- USB Webcams
- Video4Linux2 (V4L2)
- Image Capture Utility
- Video4Linux2 Utilities.
- Writing Video4Linux2 Programs
- Streaming Video
- Image Processing and Computer Vision
- Image Processing with OpenCV
- Computer Vision with OpenCV
- Boost
- BeagleBone Audio
- Core Audio Software Tools
- Audio Devices for the BBB
- HDMI and USB Audio Playback Devices
- Internet Radio Playback
- Recording Audio
- Audio Network Streaming
- Bluetooth A2DP Audio
- Text-to-Speech
- Online Text-to-Speech
- Offline Text-to-Speech
- A Bluetooth Speaking Clock and Temperature Sensor
- Summary
- Further Reading
- ch. 13 Real-Time BeagleBone Interfacing
- Real-Time BeagleBone
- Real-Time Kernels
- Real-Time Hardware Solutions
- The PRU-ICSS Architecture
- Important Documents
- Getting Started with the PRU-ICSS
- PRU-ICSS Enhanced GPIOs
- PRU-ICSS Device Tree Overlay
- The PRU-ICSS Package
- A First PRU Program
- The PRU-ICSS in Detail
- Registers
- Local and Global Memory
- PRU Assembly Instruction Set.
- Applications of the PRU-ICSS
- PRU-ICSS Performance Tests
- Utilizing Regular Linux GPIOs
- A PRU PWM Generator
- A PRU Sine Wave Generator
- An Ultrasonic Sensor Application
- Additional PRU-ICSS Tools
- The PRU Debugger
- The TI PRU C Compiler
- Summary
- Further Reading.