40,20 €*
Versandkostenfrei per Post / DHL
Lieferzeit 1-2 Wochen
Exploring BeagleBone is a hands-on guide to bringing gadgets, gizmos, and robots to life using the popular BeagleBone embedded Linux platform. Comprehensive content and deep detail provide more than just a BeagleBone instruction manual-you'll also learn the underlying engineering techniques that will allow you to create your own projects. The book begins with a foundational primer on essential skills, and then gradually moves into communication, control, and advanced applications using C/C++, allowing you to learn at your own pace. In addition, the book's companion website features instructional videos, source code, discussion forums, and more, to ensure that you have everything you need.
The BeagleBone's small size, high performance, low cost, and extreme adaptability have made it a favorite development platform, and the Linux software base allows for complex yet flexible functionality. The BeagleBone has applications in smart buildings, robot control, environmental sensing, to name a few; and, expansion boards and peripherals dramatically increase the possibilities. Exploring BeagleBone provides a reader-friendly guide to the device, including a crash course in computer engineering. While following step by step, you can:
* Get up to speed on embedded Linux, electronics, and programming
* Master interfacing electronic circuits, buses and modules, with practical examples
* Explore the Internet-connected BeagleBone and the BeagleBone with a display
* Apply the BeagleBone to sensing applications, including video and sound
* Explore the BeagleBone's Programmable Real-Time Controllers
* Updated to cover the latest Beagle boards, Linux kernel versions, and Linux software releases.
* Includes new content on Linux kernel development, the Linux Remote Processor Framework, CAN bus, IoT frameworks, and much more!
Hands-on learning helps ensure that your new skills stay with you, allowing you to design with electronics, modules, or peripherals even beyond the BeagleBone. Insightful guidance and online peer support help you transition from beginner to expert as you master the techniques presented in Exploring BeagleBone, the practical handbook for the popular computing platform.
Exploring BeagleBone is a hands-on guide to bringing gadgets, gizmos, and robots to life using the popular BeagleBone embedded Linux platform. Comprehensive content and deep detail provide more than just a BeagleBone instruction manual-you'll also learn the underlying engineering techniques that will allow you to create your own projects. The book begins with a foundational primer on essential skills, and then gradually moves into communication, control, and advanced applications using C/C++, allowing you to learn at your own pace. In addition, the book's companion website features instructional videos, source code, discussion forums, and more, to ensure that you have everything you need.
The BeagleBone's small size, high performance, low cost, and extreme adaptability have made it a favorite development platform, and the Linux software base allows for complex yet flexible functionality. The BeagleBone has applications in smart buildings, robot control, environmental sensing, to name a few; and, expansion boards and peripherals dramatically increase the possibilities. Exploring BeagleBone provides a reader-friendly guide to the device, including a crash course in computer engineering. While following step by step, you can:
* Get up to speed on embedded Linux, electronics, and programming
* Master interfacing electronic circuits, buses and modules, with practical examples
* Explore the Internet-connected BeagleBone and the BeagleBone with a display
* Apply the BeagleBone to sensing applications, including video and sound
* Explore the BeagleBone's Programmable Real-Time Controllers
* Updated to cover the latest Beagle boards, Linux kernel versions, and Linux software releases.
* Includes new content on Linux kernel development, the Linux Remote Processor Framework, CAN bus, IoT frameworks, and much more!
Hands-on learning helps ensure that your new skills stay with you, allowing you to design with electronics, modules, or peripherals even beyond the BeagleBone. Insightful guidance and online peer support help you transition from beginner to expert as you master the techniques presented in Exploring BeagleBone, the practical handbook for the popular computing platform.
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.
Introduction xxix
Part I Beagle Board Basics 1
Chapter 1 The Beagle Hardware Platform 3
Introduction to the Boards 3
Who Should Use the Beagle Platform 6
When to Use Beagle Boards 7
When Should You Not Use the Beagle Boards 7
BeagleBone Documentation 8
The Beagle Hardware 10
BeagleBone Versions 10
The Beagle Hardware 12
Beagle Accessories 19
Highly Recommended Accessories 19
Headers for the PocketBeagle 20
Micro-SD Card (for Booting or Flashing eMMCs) 20
External 5V Power Supply (for Peripherals) 22
Ethernet Cable (for Wired BBB Network Connection) 22
HDMI Cable (for Connection to Monitors/Televisions) 22
USB to Serial UART TTL 3.3 (for Finding Problems) 23
Optional Accessories 24
USB Hub (to Connect Several USB Devices to a USB Host) 25
Micro-HDMI to VGA Adapters (for VGA Video and Sound) 25
Wi-Fi Adapters (for Wireless Networking) 25
USB Webcam (for Capturing Images and Streaming Video) 25
USB Keyboard and Mouse (for General-Purpose Computing) 26
Capes 26
How to Destroy Your Board! 27
Summary 29
Support 29
Chapter 2 Beagle Software 31
Linux on the Beagle Boards 32
Linux Distributions for Beagle Boards 32
Create a Linux Micro-SD Card Image 33
Communicating with the Boards 34
Installing Drivers 34
Wired Network Connections 35
Internet-over-USB (All Boards) 36
Regular Ethernet (BBB and BeagleBoard Only) 39
Ethernet Crossover Cable (BBB and BeagleBoard Only) 40
Communicating with Your Board 42
Serial Connection over USB 42
Serial Connection with the USB-to-TTL 3.3 V Cable 43
Connecting Through Secure Shell 44
Secure Shell Connections Using Putty 45
Chrome Apps: Secure Shell Client 45
Transferring Files Using Putty/psftp over SSH 46
Controlling the Beagle Board 48
Basic Linux Commands 48
First Steps 49
Basic File System Commands 50
Environment Variables 52
Basic File Editing 53
What Time Is It? 54
Package Management 56
Beagle-Specific Commands 58
Expand the File System on an SD Card 59
Update the Kernel 60
Interacting with the On-Board LEDs 61
Shutdown 63
[...], Cloud9, and BoneScript 64
Introduction to [...] 64
Introduction to the Cloud9 IDE 66
Introduction to BoneScript 67
Summary 69
Further Reading 69
Chapter 3 Exploring Embedded Linux Systems 71
Introducing Embedded Linux 72
Advantages and Disadvantages of Embedded Linux 73
Is Linux Open Source and Free? 74
Booting the Beagle Boards 74
Bootloaders 74
Kernel Space and User Space 83
The systemd System and Service Manager 85
Managing Linux Systems 90
The Superuser 90
System Administration 92
The Linux File System 92
Links to Files and Directories 94
Users and Groups 95
File System Permissions 98
The Linux Root Directory 102
Commands for File Systems 103
The Reliability of SD Card/eMMC File Systems 111
Linux Commands 113
>, >>, and <) 113
Pipes (| and tee) 114
Filter Commands (from sort to xargs) 115
echo and cat 117
diff 118
tar 119
md5sum 120
Linux Processes 121
How to Control Linux Processes 121
Foreground and Background Processes 122
Other Linux Topics 124
Using Git for Version Control 124
A Practice-Based Introduction 126
Cloning a Repository (git clone) 126
Getting the Status (git status) 128
Adding to the Staging Area (git add) 128
Committing to the Local Repository (git commit) 129
Pushing to the Remote Repository (git push) 129
Git Branching 130
Creating a Branch (git branch) 130
Merging a Branch (git merge) 132
Deleting a Branch (git branch -d) 132
Common Git Commands 133
Desktop Virtualization 134
Code for This Book 135
Summary 136
Further Reading 136
Bibliography 137
Chapter 4 Interfacing Electronics 139
Analyzing Your Circuits 140
Digital Multimeter 140
Oscilloscopes 141
Basic Circuit Principles 143
Voltage, Current, Resistance, and Ohm's Law 143
Voltage Division 145
Current Division 146
Implementing Circuits on a Breadboard 147
Digital Multimeters and Breadboards 149
Example Circuit: Voltage Regulation 150
Discrete Components 152
Diodes 152
Light-Emitting Diodes 153
Smoothing and Decoupling Capacitors 156
Transistors 158
Transistors as Switches 159
Field Effect Transistors as Switches 162
Optocouplers/Optoisolators 164
Switches and Buttons 166
Hysteresis 168
Logic Gates 169
Floating Inputs 173
Pull-Up and Pull-Down Resistors 173
Open-Collector and Open-Drain Outputs 174
Interconnecting Gates 175
Analog-to-Digital Conversion 177
Sampling Rate 177
Quantization 178
Operational Amplifi ers 178
Ideal Operational Amplifiers 178
Negative Feedback and Voltage Follower 181
Positive Feedback 181
Concluding Advice 182
Summary 182
Further Reading 183
Chapter 5 Practical Beagle Board Programming 185
Introduction 186
Performance of Different Languages 186
Setting the CPU Frequency 190
Scripting Languages 192
Scripting Language Options 192
Bash 193
Lua 196
Perl 197
Python 198
Dynamically Compiled Languages 201
JavaScript and [...] on the Beagle boards 201
Java on the Beagle Boards 203
C and C++ on the Beagle Boards 207
C and C++ Language Overview 210
Compiling and Linking 211
Writing the Shortest C/C++ Program 213
Static and Dynamic Compilation 215
Variables and Operators in C/C++ 215
Pointers in C/C++ 219
C-Style Strings 221
LED Flashing Application in C 223
The C of C++ 224
First Example and Strings in C++ 225
Passing by Value, Pointer, and Reference 226
Flashing the LEDs Using C++ (non-OO) 227
Writing a Multicall Binary 228
Overview of Object-Oriented Programming 229
Classes and Objects 229
Encapsulation 230
Inheritance 231
Object-Oriented LED Flashing Code 233
Interfacing to the Linux OS 236
Glibc and Syscall 237
Improving the Performance of Python 239
Cython 239
Boost.Python 242
Summary 244
Further Reading 244
Bibliography 244
Part II Interfacing, Controlling, and Communicating 245
Chapter 6 Interfacing to the Beagle Board Input/Outputs 247
General-Purpose Input/Outputs 248
Introduction to GPIO Interfacing 248
GPIO Digital Output 250
GPIO Digital Input 255
GPIO Confi guration 257
Internal Pull-Up and Pull-Down Resistors 258
GPIO Pin Configuration Settings 258
Interfacing to Powered DC Circuits 265
C++ Control of GPIOs 267
The Linux Device Tree 271
Flattened Device Tree on the Beagle Boards 272
Modifying a Board Device Tree 276
Boot Confi guration Files 278
Analog Inputs and Outputs 280
Analog Inputs 280
Enabling the Analog Inputs 280
Analog Input Application-A Simple Light Meter 282
Analog Outputs (PWM) 285
Output Application-Controlling a Servo Motor 289
BoneScript 290
Digital Read and Write 290
Analog Read 292
Analog Write (PWM) 293
GPIO Performance 294
Advanced GPIO Topics 295
More C++ Programming 295
Callback Functions 295
POSIX Threads 297
Linux poll (sys/poll.h) 298
Enhanced GPIO Class 299
Using GPIOs without Using sudo 302
Root Permissions with setuid 304
Summary 306
Further Reading 306
Chapter 7 Cross-Compilation, Eclipse, and Building Linux 307
Setting Up a Cross-Compilation Toolchain 308
Cross-Compiling Under Debian 309
Testing the Toolchain 311
Emulating the armhf Architecture 312
Cross-Compilation with Third-Party Libraries (Multiarch) 314
Cross-Compilation Using Eclipse 315
Installing Eclipse on Desktop Linux 315
Confi guring Eclipse for Cross-Compilation 316
Remote System Explorer 318
Integrating GitHub into Eclipse 322
Remote Debugging 322
Automatic Documentation (Doxygen) 328
Adding Doxygen Editor Support in Eclipse 330
Cross-Building Linux 330
Downloading the Kernel Source 331
Building the Linux Kernel 332
Building a Poky Linux Distribution (Advanced) 335
Summary 340
Chapter 8 Interfacing to the Beagle Board Buses 341
Introduction to Bus Communication 342
I2C 343
I2C Hardware 343
I2C on the Beagle Boards 344
I2C Devices on the Beagle Boards 345
An I2C Test Circuit 346
A Real-Time Clock 346
The ADXL345 Accelerometer 347
Wiring the Test Circuit 348
Using Linux I2C-Tools 348
i2cdetect 348
i2cdump 349
i2cget 353
i2cset 354
I2C Communication in C 356
Wrapping I2C Devices with C++ Classes 358
SPI 360
SPI Hardware 361
SPI on the Beagle Boards 363
Testing an SPI Bus 363
A First SPI Application (74HC595) 365
Wiring the 74HC595 Circuit 366
SPI Communication Using C 367
Bidirectional SPI Communication in C/C++ 370
The...
Erscheinungsjahr: | 2019 |
---|---|
Fachbereich: | Betriebssysteme & Benutzeroberflächen |
Genre: | Informatik |
Rubrik: | Naturwissenschaften & Technik |
Medium: | Taschenbuch |
Inhalt: | 800 S. |
ISBN-13: | 9781119533160 |
ISBN-10: | 1119533163 |
Sprache: | Englisch |
Herstellernummer: | 1W119533160 |
Einband: | Kartoniert / Broschiert |
Autor: | Molloy, Derek |
Auflage: | 2nd edition |
Hersteller: | Wiley |
Maße: | 233 x 187 x 43 mm |
Von/Mit: | Derek Molloy |
Erscheinungsdatum: | 07.01.2019 |
Gewicht: | 1,041 kg |
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.
Introduction xxix
Part I Beagle Board Basics 1
Chapter 1 The Beagle Hardware Platform 3
Introduction to the Boards 3
Who Should Use the Beagle Platform 6
When to Use Beagle Boards 7
When Should You Not Use the Beagle Boards 7
BeagleBone Documentation 8
The Beagle Hardware 10
BeagleBone Versions 10
The Beagle Hardware 12
Beagle Accessories 19
Highly Recommended Accessories 19
Headers for the PocketBeagle 20
Micro-SD Card (for Booting or Flashing eMMCs) 20
External 5V Power Supply (for Peripherals) 22
Ethernet Cable (for Wired BBB Network Connection) 22
HDMI Cable (for Connection to Monitors/Televisions) 22
USB to Serial UART TTL 3.3 (for Finding Problems) 23
Optional Accessories 24
USB Hub (to Connect Several USB Devices to a USB Host) 25
Micro-HDMI to VGA Adapters (for VGA Video and Sound) 25
Wi-Fi Adapters (for Wireless Networking) 25
USB Webcam (for Capturing Images and Streaming Video) 25
USB Keyboard and Mouse (for General-Purpose Computing) 26
Capes 26
How to Destroy Your Board! 27
Summary 29
Support 29
Chapter 2 Beagle Software 31
Linux on the Beagle Boards 32
Linux Distributions for Beagle Boards 32
Create a Linux Micro-SD Card Image 33
Communicating with the Boards 34
Installing Drivers 34
Wired Network Connections 35
Internet-over-USB (All Boards) 36
Regular Ethernet (BBB and BeagleBoard Only) 39
Ethernet Crossover Cable (BBB and BeagleBoard Only) 40
Communicating with Your Board 42
Serial Connection over USB 42
Serial Connection with the USB-to-TTL 3.3 V Cable 43
Connecting Through Secure Shell 44
Secure Shell Connections Using Putty 45
Chrome Apps: Secure Shell Client 45
Transferring Files Using Putty/psftp over SSH 46
Controlling the Beagle Board 48
Basic Linux Commands 48
First Steps 49
Basic File System Commands 50
Environment Variables 52
Basic File Editing 53
What Time Is It? 54
Package Management 56
Beagle-Specific Commands 58
Expand the File System on an SD Card 59
Update the Kernel 60
Interacting with the On-Board LEDs 61
Shutdown 63
[...], Cloud9, and BoneScript 64
Introduction to [...] 64
Introduction to the Cloud9 IDE 66
Introduction to BoneScript 67
Summary 69
Further Reading 69
Chapter 3 Exploring Embedded Linux Systems 71
Introducing Embedded Linux 72
Advantages and Disadvantages of Embedded Linux 73
Is Linux Open Source and Free? 74
Booting the Beagle Boards 74
Bootloaders 74
Kernel Space and User Space 83
The systemd System and Service Manager 85
Managing Linux Systems 90
The Superuser 90
System Administration 92
The Linux File System 92
Links to Files and Directories 94
Users and Groups 95
File System Permissions 98
The Linux Root Directory 102
Commands for File Systems 103
The Reliability of SD Card/eMMC File Systems 111
Linux Commands 113
>, >>, and <) 113
Pipes (| and tee) 114
Filter Commands (from sort to xargs) 115
echo and cat 117
diff 118
tar 119
md5sum 120
Linux Processes 121
How to Control Linux Processes 121
Foreground and Background Processes 122
Other Linux Topics 124
Using Git for Version Control 124
A Practice-Based Introduction 126
Cloning a Repository (git clone) 126
Getting the Status (git status) 128
Adding to the Staging Area (git add) 128
Committing to the Local Repository (git commit) 129
Pushing to the Remote Repository (git push) 129
Git Branching 130
Creating a Branch (git branch) 130
Merging a Branch (git merge) 132
Deleting a Branch (git branch -d) 132
Common Git Commands 133
Desktop Virtualization 134
Code for This Book 135
Summary 136
Further Reading 136
Bibliography 137
Chapter 4 Interfacing Electronics 139
Analyzing Your Circuits 140
Digital Multimeter 140
Oscilloscopes 141
Basic Circuit Principles 143
Voltage, Current, Resistance, and Ohm's Law 143
Voltage Division 145
Current Division 146
Implementing Circuits on a Breadboard 147
Digital Multimeters and Breadboards 149
Example Circuit: Voltage Regulation 150
Discrete Components 152
Diodes 152
Light-Emitting Diodes 153
Smoothing and Decoupling Capacitors 156
Transistors 158
Transistors as Switches 159
Field Effect Transistors as Switches 162
Optocouplers/Optoisolators 164
Switches and Buttons 166
Hysteresis 168
Logic Gates 169
Floating Inputs 173
Pull-Up and Pull-Down Resistors 173
Open-Collector and Open-Drain Outputs 174
Interconnecting Gates 175
Analog-to-Digital Conversion 177
Sampling Rate 177
Quantization 178
Operational Amplifi ers 178
Ideal Operational Amplifiers 178
Negative Feedback and Voltage Follower 181
Positive Feedback 181
Concluding Advice 182
Summary 182
Further Reading 183
Chapter 5 Practical Beagle Board Programming 185
Introduction 186
Performance of Different Languages 186
Setting the CPU Frequency 190
Scripting Languages 192
Scripting Language Options 192
Bash 193
Lua 196
Perl 197
Python 198
Dynamically Compiled Languages 201
JavaScript and [...] on the Beagle boards 201
Java on the Beagle Boards 203
C and C++ on the Beagle Boards 207
C and C++ Language Overview 210
Compiling and Linking 211
Writing the Shortest C/C++ Program 213
Static and Dynamic Compilation 215
Variables and Operators in C/C++ 215
Pointers in C/C++ 219
C-Style Strings 221
LED Flashing Application in C 223
The C of C++ 224
First Example and Strings in C++ 225
Passing by Value, Pointer, and Reference 226
Flashing the LEDs Using C++ (non-OO) 227
Writing a Multicall Binary 228
Overview of Object-Oriented Programming 229
Classes and Objects 229
Encapsulation 230
Inheritance 231
Object-Oriented LED Flashing Code 233
Interfacing to the Linux OS 236
Glibc and Syscall 237
Improving the Performance of Python 239
Cython 239
Boost.Python 242
Summary 244
Further Reading 244
Bibliography 244
Part II Interfacing, Controlling, and Communicating 245
Chapter 6 Interfacing to the Beagle Board Input/Outputs 247
General-Purpose Input/Outputs 248
Introduction to GPIO Interfacing 248
GPIO Digital Output 250
GPIO Digital Input 255
GPIO Confi guration 257
Internal Pull-Up and Pull-Down Resistors 258
GPIO Pin Configuration Settings 258
Interfacing to Powered DC Circuits 265
C++ Control of GPIOs 267
The Linux Device Tree 271
Flattened Device Tree on the Beagle Boards 272
Modifying a Board Device Tree 276
Boot Confi guration Files 278
Analog Inputs and Outputs 280
Analog Inputs 280
Enabling the Analog Inputs 280
Analog Input Application-A Simple Light Meter 282
Analog Outputs (PWM) 285
Output Application-Controlling a Servo Motor 289
BoneScript 290
Digital Read and Write 290
Analog Read 292
Analog Write (PWM) 293
GPIO Performance 294
Advanced GPIO Topics 295
More C++ Programming 295
Callback Functions 295
POSIX Threads 297
Linux poll (sys/poll.h) 298
Enhanced GPIO Class 299
Using GPIOs without Using sudo 302
Root Permissions with setuid 304
Summary 306
Further Reading 306
Chapter 7 Cross-Compilation, Eclipse, and Building Linux 307
Setting Up a Cross-Compilation Toolchain 308
Cross-Compiling Under Debian 309
Testing the Toolchain 311
Emulating the armhf Architecture 312
Cross-Compilation with Third-Party Libraries (Multiarch) 314
Cross-Compilation Using Eclipse 315
Installing Eclipse on Desktop Linux 315
Confi guring Eclipse for Cross-Compilation 316
Remote System Explorer 318
Integrating GitHub into Eclipse 322
Remote Debugging 322
Automatic Documentation (Doxygen) 328
Adding Doxygen Editor Support in Eclipse 330
Cross-Building Linux 330
Downloading the Kernel Source 331
Building the Linux Kernel 332
Building a Poky Linux Distribution (Advanced) 335
Summary 340
Chapter 8 Interfacing to the Beagle Board Buses 341
Introduction to Bus Communication 342
I2C 343
I2C Hardware 343
I2C on the Beagle Boards 344
I2C Devices on the Beagle Boards 345
An I2C Test Circuit 346
A Real-Time Clock 346
The ADXL345 Accelerometer 347
Wiring the Test Circuit 348
Using Linux I2C-Tools 348
i2cdetect 348
i2cdump 349
i2cget 353
i2cset 354
I2C Communication in C 356
Wrapping I2C Devices with C++ Classes 358
SPI 360
SPI Hardware 361
SPI on the Beagle Boards 363
Testing an SPI Bus 363
A First SPI Application (74HC595) 365
Wiring the 74HC595 Circuit 366
SPI Communication Using C 367
Bidirectional SPI Communication in C/C++ 370
The...
Erscheinungsjahr: | 2019 |
---|---|
Fachbereich: | Betriebssysteme & Benutzeroberflächen |
Genre: | Informatik |
Rubrik: | Naturwissenschaften & Technik |
Medium: | Taschenbuch |
Inhalt: | 800 S. |
ISBN-13: | 9781119533160 |
ISBN-10: | 1119533163 |
Sprache: | Englisch |
Herstellernummer: | 1W119533160 |
Einband: | Kartoniert / Broschiert |
Autor: | Molloy, Derek |
Auflage: | 2nd edition |
Hersteller: | Wiley |
Maße: | 233 x 187 x 43 mm |
Von/Mit: | Derek Molloy |
Erscheinungsdatum: | 07.01.2019 |
Gewicht: | 1,041 kg |