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