http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-2.xsd
crafting electronic systems with BeagleBone and BeagleBone Black
Synthesis digital library of engineering and computer science
1 online resource (xxv, 397 pages) : illustrations
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-scalar ARM Cortex A8 processor operating from 720 MHz to 1 GHz. Yet, BeagleBone is small enough to fit in a small mint tin box. The "Bone" may be used in a wide variety of projects from middle school science fair projects to senior design projects to first prototypes of very complex systems. Novice users may access the power of the Bone through the user-friendly Bonescript environment, a browser-based experience, in MS Windows, the Mac OS X, or the Linux operating systems. Seasoned users may take full advantage of the Bone's power using the underlying Linux-based operating system, a host of feature extension boards (Capes) and a wide variety of Linux community open source libraries. This book provides an introduction to this powerful computer and has been designed for a wide variety of users including the first time novice through the seasoned embedded system design professional. The book contains background theory on system operation coupled with many well-documented, illustrative examples. Examples for novice users are centered on motivational, fun robot projects while advanced projects follow the theme of assistive technology and image processing applications.
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.
Part of: Synthesis digital library of engineering and computer science.
Includes bibliographical references and index.
Synthesis lectures on digital circuits and systems ; #41