Zum Hauptinhalt springen
Dekorationsartikel gehören nicht zum Leistungsumfang.
Exploring Beaglebone
Tools and Techniques for Building with Embedded Linux
Taschenbuch von Derek Molloy
Sprache: Englisch

40,20 €*

inkl. MwSt.

Versandkostenfrei per Post / DHL

Lieferzeit 1-2 Wochen

Kategorien:
Beschreibung
In-depth instruction and practical techniques for building with the BeagleBone embedded Linux 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.
In-depth instruction and practical techniques for building with the BeagleBone embedded Linux 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.
Über den Autor

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.

Inhaltsverzeichnis

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...

Details
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
Artikel-ID: 114030359
Über den Autor

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.

Inhaltsverzeichnis

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...

Details
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
Artikel-ID: 114030359
Warnhinweis

Ähnliche Produkte

Ähnliche Produkte