Bad to the Bone : crafting electronic systems with BeagleBone Black / Steven Barrett, Jason Kridner.

BeagleBone Black is a low-cost, open hardware computer uniquely suited to interact with sensors and actuators directly and over the Web. Introduced in April 2013 by BeagleBoard.org, a community of developers first established in early 2008, BeagleBone Black is used frequently to build vision-enabled...

Full description

Saved in:
Bibliographic Details
Online Access: Full Text (via Morgan & Claypool)
Main Authors: Barrett, Steven F. (Steven Frank), 1957- (Author), Kridner, Jason (Author)
Format: eBook
Language:English
Published: San Rafael, California (1537 Fourth Street, San Rafael, CA 94901 USA) : Morgan & Claypool, 2016.
Edition:Second edition.
Series:Synthesis lectures on digital circuits and systems (Online) ; # 47.
Subjects:
Table of Contents:
  • 1. Getting started
  • 1.1 Welcome!
  • 1.2 Overview
  • 1.3 A brief Beagle history
  • 1.4 BeagleBoard.org community
  • 1.5 BeagleBone hardware
  • 1.5.1 Open-source hardware
  • 1.6 Developing with Bonescript
  • 1.7 BeagleBone capes
  • 1.8 Power requirements and capabilities
  • 1.9 Getting started, success out of the box
  • 1.9.1 Exercise 1: Accessing Bonescript through your browser
  • 1.9.2 Exercise 2: Blinking an LED with Bonescript
  • 1.9.3 Executing the blinkled.js program
  • 1.9.4 Exercise 3: Developing your own Boneyard, AROO!
  • 1.10 Summary
  • 1.11 References
  • 1.12 Chapter exercises
  • 2. Bonescript
  • 2.1 Overview
  • 2.2 Application 1: Bonescript tour
  • 2.3 Application 2: Robot IR sensor
  • 2.4 Application 3: Art piece illumination system
  • 2.5 Summary
  • 2.6 References
  • 2.7 Chapter exercises
  • 3. Programming
  • 3.1 An overview of the design process
  • 3.2 Overview
  • 3.3 Anatomy of a program
  • 3.3.1 Comments
  • 3.3.2 Include files
  • 3.3.3 Functions
  • 3.3.4 Interrupt handler definitions
  • 3.3.5 Program constants
  • 3.3.6 Variables
  • 3.3.7 Main function
  • 3.4 Fundamental programming concepts
  • 3.4.1 Operators
  • 3.4.2 Programming constructs
  • 3.4.3 Decision processing
  • 3.5 Programming in JavaScript using nodE.js
  • 3.5.1 JavaScript
  • 3.5.2 Event-driven programming
  • 3.5.3 Node.js
  • 3.6 Application: Dagu magician autonomous maze navigating robot
  • 3.6.1 Dagu magician robot
  • 3.6.2 Requirements
  • 3.6.3 Circuit diagram
  • 3.6.4 Structure chart
  • 3.6.5 UML activity diagrams
  • 3.6.6 Bonescript code
  • 3.7 Summary
  • 3.8 References
  • 3.9 Chapter exercises
  • 4. BeagleBone operating parameters and interfacing
  • 4.1 Overview
  • 4.2 Operating parameters
  • 4.2.1 BeagleBone 3.3 VDC operation
  • 4.2.2 Compatible 3.3 VDC logic families
  • 4.2.3 Input/output operation at 5.0 VDC
  • 4.2.4 Interfacing 3.3 VDC logic families to 5.0 VDC logic families
  • 4.3 Input devices
  • 4.3.1 Switches
  • 4.3.2 Switch debouncing
  • 4.3.3 Keypads
  • 4.3.4 Sensors
  • 4.3.5 Transducer interface design (TID) circuit
  • 4.3.6 Operational amplifiers
  • 4.4 Output devices
  • 4.4.1 Light-emitting diodes (LEDs)
  • 4.4.2 Seven-segment LED displays
  • 4.4.3 Tri-state LED indicator
  • 4.4.4 Dot matrix display
  • 4.4.5 Liquid crystal display (LCD)
  • 4.5 High-power interfaces
  • 4.5.1 High-power DC devices
  • 4.5.2 DC motor speed and direction control
  • 4.5.3 DC motor operating parameters
  • 4.5.4 H-bridge direction control
  • 4.5.5 DC solenoid control
  • 4.5.6 Stepper motor control
  • 4.5.7 Optical isolation
  • 4.6 Interfacing to miscellaneous devices
  • 4.6.1 Sonalerts, beepers, buzzers
  • 4.6.2 Vibrating motor
  • 4.6.3 DC fan
  • 4.6.4 Bilge pump
  • 4.7 AC devices
  • 4.8 Application 1: Equipping the Dagu magician robot with a LCD
  • 4.9 Application 2: The Dagu magician interface on a custom cape
  • 4.10 Application 3: Special effects LED cube
  • 4.10.1 Construction hints
  • 4.10.2 LED cube Bonescript code
  • 4.11 Summary
  • 4.12 References
  • 4.13 Chapter exercises
  • 5. BeagleBone systems design
  • 5.1 Overview
  • 5.2 What is an embedded system?
  • 5.3 Embedded system design process
  • 5.3.1 Project description
  • 5.3.2 Background research
  • 5.3.3 Pre-design
  • 5.3.4 Design
  • 5.3.5 Implement prototype
  • 5.3.6 Preliminary testing
  • 5.3.7 Complete and accurate documentation
  • 5.4 Submersible robot
  • 5.4.1 Approach
  • 5.4.2 Requirements
  • 5.4.3 ROV structure
  • 5.4.4 Structure chart
  • 5.4.5 Circuit diagram
  • 5.4.6 UML activity diagram
  • 5.4.7 BeagleBone code
  • 5.4.8 Control housing layout
  • 5.4.9 Final assembly testing
  • 5.4.10 Final assembly
  • 5.4.11 Project extensions
  • 5.5 Mountain maze navigating robot
  • 5.5.1 Description
  • 5.5.2 Requirements
  • 5.5.3 Circuit diagram
  • 5.5.4 Structure chart
  • 5.5.5 UML activity diagrams
  • 5.5.6 Bonescript code
  • 5.5.7 Mountain maze
  • 5.5.8 Project extensions
  • 5.6 Summary
  • 5.7 References
  • 5.8 Chapter exercises
  • 6. BeagleBone features and subsystems
  • 6.1 Overview
  • 6.2 Beagling in Linux
  • 6.2.1 Communication with BeagleBone Black
  • 6.3 Updating your eMMC
  • 6.3.1 Updating your eMMC in MS Windows
  • 6.4 A brief introduction to Linux
  • 6.5 Programming in C using the Linux toolchain
  • 6.6 BeagleBone features and subsystems
  • 6.6.1 Exposed function access
  • 6.6.2 Expansion interface
  • 6.7 BeagleBone Black device tree and overlays
  • 6.7.1 Overview
  • 6.7.2 Binary tree
  • 6.7.3 Device tree format
  • 6.7.4 Device tree related files
  • 6.7.5 BeagleBone Black device tree
  • 6.7.6 Universal device tree overlay
  • 6.8 Programming in C with BeagleBone Black
  • 6.8.1 Linux GPIO files
  • 6.8.2 Configuring the GPIO files
  • 6.8.3 Accessing the GPIO files in C
  • 6.9 Analog-to-digital converters (ADC)
  • 6.9.1 ADC process: sampling, quantization, and encoding
  • 6.9.2 Resolution and data rate
  • 6.9.3 ADC conversion technologies
  • 6.9.4 BeagleBone Black ADC system
  • 6.9.5 ADC conversion
  • 6.9.6 ADC support functions in Bonescript
  • 6.9.7 Accessing the ADC system in Linux
  • 6.9.8 ADC support functions in C
  • 6.10 Serial communications
  • 6.10.1 Serial communication terminology
  • 6.10.2 Serial UART
  • 6.10.3 Serial peripheral interface (SPI)
  • 6.11 Precision timing
  • 6.11.1 Timing-related terminology
  • 6.11.2 BeagleBone timing capability
  • 6.12 Pulse width modulation (PWM)
  • 6.12.1 BeagleBone PWM subsystem (PWMSS) description
  • 6.12.2 Bonescript PWM support
  • 6.12.3 PWM device tree overlay and C support functions
  • 6.13 Internet of things - networking
  • 6.13.1 Inter-integrated circuit (I2C) bus
  • 6.13.2 Controller area network (CAN) bus
  • 6.13.3 Ethernet
  • 6.13.4 Internet
  • 6.14 Liquid crystal display (LCD) interface
  • 6.14.1 C support functions
  • 6.15 Interrupts
  • 6.15.1 Bonescript interrupt support
  • 6.16 Programmable real-time units
  • 6.16.1 Architecture overview
  • 6.16.2 PRU memory map
  • 6.16.3 PRU interrupt system
  • 6.16.4 PRU pin mapping to BeagleBone Black
  • 6.16.5 PRU assembly program (PASM)
  • 6.16.6 Development process
  • 6.17 Summary
  • 6.18 References
  • 6.19 Chapter exercises
  • 7. BeagleBone "off the leash"
  • 7.1 Overview
  • 7.2 Boneyard II: a portable Linux platform-BeagleBone unleashed
  • 7.3 Boneyard III: a low-cost desktop Linux platform
  • 7.3.1 Accessing Bonescript
  • 7.3.2 Accessing the internet
  • 7.4 Application 1: Inexpensive laser light show
  • 7.5 Application 2: Arbitrary waveform generator
  • 7.6 Application 3: Robot arm
  • 7.7 Application 4: Weather station in Bonescript
  • 7.7.1 Requirements
  • 7.7.2 Structure chart
  • 7.7.3 Circuit diagram
  • 7.7.4 UML activity diagrams
  • 7.7.5 Bonescript code
  • 7.8 Application 5: Speak & spell in C
  • 7.8.1 BeagleBone C code
  • 7.9 Application 6: Dagu rover 5 treaded robot
  • 7.9.1 Description
  • 7.9.2 Requirements
  • 7.9.3 Circuit diagram
  • 7.9.4 Structure chart
  • 7.9.5 UML activity diagrams
  • 7.9.6 BeagleBone C code
  • 7.10 Application 7: Portable image processing engine
  • 7.10.1 Brief introduction to image processing
  • 7.10.2 Image processing tasks
  • 7.10.3 OpenCV computer vision library
  • 7.10.4 Stache cam
  • 7.11 Summary
  • 7.12 References
  • 7.13 Chapter exercises
  • 8. Where to from here?
  • 8.1 Overview
  • 8.2 Software libraries
  • 8.2.1 OpenCV
  • 8.2.2 Qt
  • 8.2.3 Kinect
  • 8.3 Additional resources
  • 8.3.1 OpenROV
  • 8.3.2 Ninja blocks
  • 8.3.3 Related books
  • 8.3.4 BeagleBoard.org resources
  • 8.3.5 Contributing to Bonescript
  • 8.4 Summary
  • 8.5 References
  • 8.6 Chapter exercises
  • A. Bonescript functions
  • B. LCD interface for BeagleBone in C
  • BeagleBone LCD interface
  • BeagleBone Black LCD C code
  • C. Parts list for projects
  • Authors' biographies.