Hardware needed

For this project, any SBC that's capable of running Linux should work. It also needs to have the following features for a full implementation:

  • An internet connection (wireless or wired) to access online content.
  • Bluetooth functionality (built-in or as an add-on module) to allow the system to act as a Bluetooth speaker.
  • Free GPIO input to allow for buttons to be hooked up.
  • A functioning microphone input and audio output for the voice input and audio playback, respectively.
  • SATA connectivity or similar for connecting storage devices like hard-drives.
  • I2C bus peripheral for an I2C display.

For the example code in this chapter we only require the microphone input and audio output, along with some storage for local media files.

To the GPIO pins, we can connect a number of buttons that can be used to control the infotainment system without having to use the voice-activated system. This is convenient for situations where using the voice-activated system would be awkward, such as when pausing or muting music when taking a phone call.

Connecting the buttons will not be demonstrated in this example, but an example can be found in an earlier project in Chapter 3, Developing for Embedded Linux and Similar Systems. There, we used the WiringPi library to connect switches to GPIO pins and configured interrupt routines to handle changes on these switches.

One could also connect a small display to the system, if one wanted to show current information, such as the name of the current song or other relevant status information. Cheap displays of 16x2 characters, which can be controlled over an I2C interface, are widely available; these, along with a range of OLED and other small displays, would be suitable for this purpose thanks to their minimal hardware requirements.

In Chapter 3, Developing for Embedded Linux and Similar Systems, we had a brief look at what kind of hardware one might want to use for an infotainment system such as this, along with a number of possible user interfaces and storage options. What the right hardware configuration is, of course, depends on one's requirements. If one wants to store a lot of music locally for playback, having a large SATA hard drive connected to the system would be highly convenient.

For the example in this chapter, however, we will make no such assumptions, acting more as an easily extensible starting point. The hardware requirements are therefore very minimal, beyond the obvious need for a microphone and an audio output.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.119.131.72