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...
Saved in:
Online Access: |
Full Text (via Morgan & Claypool) |
---|---|
Main Authors: | , |
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.