An overview of BeagleBone
The BeagleBone boards are a series of small, powerful, and affordable Linux computers that are perfect for embedded applications such as home automation, robotics, industrial control, and much more. They are designed by BeagleBoard.org (http://beagleboard.org/) and are fully open source. They are based on the Texas Instruments AM335x 1GHz ARM Cortex-A8 series of microprocessors, and can run a number of different operating systems, including various GNU/Linux distributions, Android, and even Windows Embedded CE. The current BeagleBone model being produced is the BeagleBone Black rev C, which ships with a Debian GNU/Linux distribution. Therefore, this book will focus on using Debian on the BeagleBone Black, though much of the information given will apply to other BeagleBone models and Linux distributions as well.
The following screenshot shows the BeagleBone board:
The BeagleBone Black's AM335x microprocessor contains a number of built-in peripheral interface subsystems, enabling it to accept and generate many different forms of inputs and outputs. The BeagleBone Black includes two 2 x 23 pin rows of female header pins, giving a total of 92 connection points for hardware expansion using the processor's peripheral interface subsystems.
General purpose input/output
The general purpose input/output (GPIO) module handles all the digital input and output. In this context, digital refers to the fact that the signals are binary; they are either 1 or 0, represented by fully on and fully off respectively. In the case of the AM335x, the fully-on level is 3.3V, and the fully-off level is 0V. The GPIO module is used for inputs such as switches and buttons, which are either on or off. Its outputs can be used to control devices, such as LEDs, buzzers, and relays.
Analog-to-digital converter
The analog-to-digital converter (ADC) module is used to measure analog voltages. The AM335x ADC can only measure voltages between 0V and 1.8V (and voltages outside this range may damage your BeagleBone), but, in later chapters, you will learn how to divide larger voltages to be within this range. The ADC can be used to receive inputs from devices such as potentiometers, which can be used to create varying voltages, measure the voltage output of analog sensors for temperature, light, sound, and different types of gases, and with some additional external components it can be used to measure electrical current.