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

BeagleBone is a low cost, open hardware, expandable computer first introduced in November 2011 by BeagleBoard.org, a community of developers sponsored by Texas Instruments. Various BeagleBone variants, including the original BeagleBone and the new BeagleBone Black, host a powerful 32-bit, super-scal...

Full description

Saved in:
Bibliographic Details
Online Access: Full Text (via Morgan & Claypool)
Full Text (via Morgan & Claypool)
Main Author: Barrett, Steven F. (Steven Frank), 1957-
Other Authors: Kridner, Jason
Format: Electronic eBook
Language:English
Published: San Rafael, Calif. (1537 Fourth Street, San Rafael, CA 94901 USA) : Morgan & Claypool, ©2013.
Series:Synthesis lectures on digital circuits and systems (Online) ; # 41.
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: programming with Bonescript through your browser
  • 1.9.2 Exercise 2: blinking an LED with Bonescript
  • 1.9.3 Executing the binkled.js program
  • 1.9.4 Exercise 3: developing your own boneyard, aroo!
  • 1.10 Summary
  • 1.11 References
  • 1.12 Chapter exercises
  • 2. System design: programming
  • 2.1 An overview of the design process
  • 2.2 Overview
  • 2.3 Anatomy of a program
  • 2.3.1 Comments
  • 2.3.2 Include files
  • 2.3.3 Functions
  • 2.3.4 Interrupt handler definitions
  • 2.3.5 Program constants
  • 2.3.6 Variables
  • 2.3.7 Main function
  • 2.4 Fundamental programming concepts
  • 2.4.1 Operators
  • 2.4.2 Programming constructs
  • 2.4.3 Decision processing
  • 2.5 Programming in JavaScript using Node.js
  • 2.5.1 JavaScript
  • 2.5.2 Event-driven programming
  • 2.5.3 Node.js
  • 2.6 Bonescript development environment
  • 2.7 Application 1: Robot IR sensor
  • 2.8 Application 2: Art piece illumination system
  • 2.9 Application 3: Blinky 602A autonomous maze navigating robot
  • 2.9.1 Blinky 602A robot
  • 2.9.2 Requirements
  • 2.9.3 Circuit diagram
  • 2.9.4 Structure chart
  • 2.9.5 UML activity diagrams
  • 2.9.6 Bonescript code
  • 2.10 Summary
  • 2.11 References
  • 2.12 Chapter Exercises
  • 3. BeagleBone operating parameters and interfacing
  • 3.1 Overview
  • 3.2 Operating parameters
  • 3.2.1 BeagleBone 3.3 VDC operation
  • 3.2.2 Compatible 3.3 VDC logic families
  • 3.2.3 Input/output operation at 5.0 VDC
  • 3.2.4 Interfacing 3.3 VDC logic families to 5.0 VDC logic families
  • 3.3 Input devices
  • 3.3.1 Switches
  • 3.3.2 Switch debouncing
  • 3.3.3 Keypads
  • 3.3.4 Sensors
  • 3.3.5 Transducer Interface Design (TID) circuit
  • 3.3.6 Operational amplifiers
  • 3.4 Output devices
  • 3.4.1 Light Emitting Diodes (LEDs)
  • 3.4.2 Seven segment LED displays
  • 3.4.3 Tri-state LED indicator
  • 3.4.4 Dot matrix display
  • 3.4.5 Liquid Crystal Display (LCD)
  • 3.5 High power interfaces
  • 3.5.1 High power DC devices
  • 3.5.2 DC motor speed and direction control
  • 3.5.3 DC motor operating parameters
  • 3.5.4 H-bridge direction control
  • 3.5.5 DC solenoid control
  • 3.5.6 Stepper motor control
  • 3.6 Interfacing to miscellaneous devices
  • 3.6.1 Sonalerts, beepers, buzzers
  • 3.6.2 Vibrating motor
  • 3.6.3 DC fan
  • 3.7 AC devices
  • 3.8 Application: Equipping the Blinky 602A robot with a LCD
  • 3.9 Application: the Blinky 602A interface on a custom cape
  • 3.10 Summary
  • 3.11 References
  • 3.12 Chapter Exercises
  • 4. BeagleBone systems design
  • 4.1 Overview
  • 4.2 What is an embedded system?
  • 4.3 Embedded system design process
  • 4.3.1 Project description
  • 4.3.2 Background research
  • 4.3.3 Pre-design
  • 4.3.4 Design
  • 4.3.5 Implement prototype
  • 4.3.6 Preliminary testing
  • 4.3.7 Complete and accurate documentation
  • 4.4 Submersible robot
  • 4.4.1 Requirements
  • 4.4.2 Structure chart
  • 4.4.3 Circuit diagram
  • 4.4.4 UML activity diagram
  • 4.4.5 BeagleBone code
  • 4.4.6 Project extensions
  • 4.5 Mountain maze navigating robot
  • 4.5.1 Description
  • 4.5.2 Requirements
  • 4.5.3 Circuit diagram
  • 4.5.4 Structure chart
  • 4.5.5 UML activity diagrams
  • 4.5.6 Bonescript code
  • 4.5.7 Mountain maze
  • 4.5.8 Project extensions
  • 4.6 Summary
  • 4.7 References
  • 4.8 Chapter exercises
  • 5. BeagleBone features and subsystems
  • 5.1 Overview
  • 5.2 Programming BeagleBone in Linux, C and C++
  • 5.2.1 Beagling in Linux
  • 5.2.2 BeagleBone Linux releases
  • 5.2.3 Bonescript processing in Linux
  • 5.3 Updating your SD card or eMMC in Linux
  • 5.3.1 Programming in C using the Ångstrom toolchain
  • 5.4 BeagleBone features and subsystems
  • 5.5 Exposed functions
  • 5.5.1 Expansion interface, original BeagleBone
  • 5.5.2 Accessing pins via Linux 3.2
  • 5.6 Expansion interface BeagleBone Black
  • 5.6.1 Accessing pins with device tree overlays, Linux 3.8
  • 5.6.2 Overview
  • 5.6.3 Binary tree
  • 5.6.4 Device tree format
  • 5.6.5 BeagleBone device tree, Linux 3.8
  • 5.7 Fundamental examples programming in C with BeagleBone Black, Linux 3.8
  • 5.8 Analog-to-digital converters (ADC)
  • 5.8.1 ADC process: sampling, quantization and encoding
  • 5.8.2 Resolution and data rate
  • 5.8.3 ADC conversion technologies
  • 5.8.4 BeagleBone ADC subsystem description, Linux 3.2
  • 5.8.5 ADC conversion via Linux 3.2
  • 5.8.6 ADC support functions in C Linux 3.2
  • 5.8.7 ADC support functions in C Linux 3.8
  • 5.9 Serial communications
  • 5.9.1 Serial communication terminology
  • 5.9.2 Serial UART
  • 5.9.3 Serial peripheral interface (SPI)
  • 5.10 Precision timing
  • 5.10.1 Timing related terminology
  • 5.10.2 BeagleBone timing capability system, Linux 3.2
  • 5.11 Pulse width modulation (PWM)
  • 5.11.1 BeagleBone PWM subsystem (PWMSS) description
  • 5.11.2 PWM configuration, Linux 3.2
  • 5.11.3 PWM C support functions, Linux 3.2
  • 5.11.4 PWM C support functions, Linux 3.8
  • 5.12 Networking
  • 5.12.1 Inter-integrated circuit (I2C) bus
  • 5.12.2 Controller area network (CAN) bus
  • 5.12.3 Ethernet
  • 5.13 Liquid crystal display (LCD) interface
  • 5.13.1 C support functions
  • 5.14 Interrupts
  • 5.14.1 Bonescript interrupt support
  • 5.15 Summary
  • 5.16 References
  • 5.17 Chapter exercises
  • 6. BeagleBone "off the leash"
  • 6.1 Overview
  • 6.2 Boneyard II: a portable Linux platform, BeagleBone unleashed
  • 6.3 Application 1: Weather station in Bonescript
  • 6.3.1 Requirements
  • 6.3.2 Structure chart
  • 6.3.3 Circuit diagram
  • 6.3.4 UML activity diagrams
  • 6.3.5 Bonescript code
  • 6.4 Application 2: Speak-and-Spell in C
  • 6.4.1 BeagleBone C code
  • 6.5 Application 3: Dagu Rover 5 treaded robot
  • 6.5.1 Description
  • 6.5.2 Requirements
  • 6.5.3 Circuit diagram
  • 6.5.4 Structure chart
  • 6.5.5 UML activity diagrams
  • 6.5.6 BeagleBone C code
  • 6.6 Application 4: Portable image processing engine
  • 6.6.1 Brief introduction to image processing
  • 6.6.2 OpenCV computer vision library
  • 6.6.3 Stache cam
  • 6.7 Summary
  • 6.8 References
  • 6.9 Chapter exercises
  • 7. Where to from here?
  • 7.1 Overview
  • 7.2 Software libraries
  • 7.2.1 OpenCV
  • 7.2.2 Qt
  • 7.2.3 Kinect
  • 7.3 Additional resources
  • 7.3.1 OpenROV
  • 7.3.2 Ninja blocks
  • 7.3.3 BeagleBoard.org resources
  • 7.3.4 Contributing to Bonescript
  • 7.4 Summary
  • 7.5 References
  • 7.6 Chapter Exercises
  • A. Bonescript functions
  • B. LCD interface for BeagleBone in C
  • B.1. BeagleBone original, Linux 3.2
  • B.2. BeagleBone Black, Linux 3.8
  • C. Parts list for projects
  • D. BeagleBone device tree
  • D.1 am33xx.dtsi
  • D.2 am335x-bone-commoN.dtsi
  • D.3 am335x-bonE.dts
  • D.4 am335x-boneblack.dts
  • D.5 am33xx_pwm-00A0.dts
  • D.6 bone_pwm_P8_13-00A0.dts
  • D.7 cape-bone-iio-00A0.dts
  • Authors' biographies
  • Index.