Book Image

Banana Pro Blueprints

By : Tony Zhang
Book Image

Banana Pro Blueprints

By: Tony Zhang

Overview of this book

This book follows a tactical plan that will guide you through the implementation of Banana Pro and its configurations. You will then learn the various programming languages used with Banana Pi with the help of examples. In no time at all, you’ll be working on a wireless project that implements AirPlay servers, hotspots, and so on. Following this, you’ll develop a retro-style arcade kiosk game. Then we’ll move on to explore the multimedia features of Banana Pro by designing and building an enclosure for it. After this, you’ll learn to build a remote-controlled smart car and we’ll examine how to control a robotic arm. The book will conclude with the creation of a home sensor system that has the ability to expand or shrink to suit any home.
Table of Contents (15 chapters)
Banana Pro Blueprints
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
Index

Index

A

  • AD/DA converter
    • about / The AD/DA converter
    • technical specifications / Technical specifications
    • example / Example – the AD/DA convertor
  • add-ons, Banana Pro
    • about / Add-ons
    • LCD module / The LCD module
    • camera module / The camera module
    • GPIO add-ons / GPIO add-ons
  • Advanced Linux Sound Architecture (ALSA) / Defining a sound device
  • AirPlay protocol
    • about / The AirPlay protocol
    • external USB SPDIF soundcard, using / Using an external USB SPDIF soundcard
  • AirPrint
    • about / AirPrint
    • CUPS, configuring / Configuring CUPS
    • printing, from Android and iOS / Printing from Android and iOS
  • Android
    • about / Android
  • arcade cabinet, for Banana Pro
    • building / Making an arcade cabinet for Banana Pro
    • materials, preparing / Preparing the materials
    • frame, designing / Designing a frame
    • assembling / Assembling
    • playing / Playing the Banana Pro arcade cabinet, Playing the game on the arcade cabinet
    • output, configuring to LCD / Configuring output to an LCD
    • joystick controller, configuring / Configuring a joystick controller
  • Arduino
    • download link / Installing Arduino
    • installing / Installing Arduino
  • assembling, for Banana Pro arcade cabinet
    • base frame, assembling / Assembling a base frame
    • Banana Pro and joystick, assembling / Assembling Banana Pro and a joystick
    • LCD, mounting / Mounting an LCD
    • top frame, assembling / Assembling a top frame

B

  • Banana Pro
    • about / Banana Pro
    • specifications / Specifications of Banana Pro
    • connectors / Specifications of Banana Pro
    • LEDs / Banana Pro onboard LEDs
    • operating systems / Available operating systems for Banana Pro
    • add-ons / Add-ons
    • cases / Cases
    • onboard microphone / An onboard microphone
  • basic principles, programming languages
    • about / Basic principles
  • basic requirements, programming languages
    • about / Basic requirements for programming Banana Pro
    • nano editor / Editors
  • BCM_GPIO (Broadcom SOC channel) / WiringBP
  • BroadCom declaration Mode (BCM) / Using Python for GPIO

C

  • C/C++
    • about / C/C++
    • WiringBP C code example / The WiringBP C code example
    • C access, to onboard LEDs / C access to onboard LEDs
    • debugger / Debugger
  • camera module
    • about / The camera module
    • step-by-step guide / A step-by-step guide to the camera module
  • camera setup
    • about / Setting up a camera
    • specifications / Camera specifications
    • camera module, connecting / Connecting the camera module
    • camera module, testing / Testing the camera module on Banana Pro
  • CAN (Controller Area Network) / Specifications of Banana Pro
  • category files, webiopi project
    • Python script / Testing webiopi on Banana Pro
    • HTML file / Testing webiopi on Banana Pro
    • config file / Testing webiopi on Banana Pro
  • Chromium / A simple web server
  • components, laser engraving machine
    • laser Central Processing Unit (CPU) / Preparing materials
    • USBtinyISP / Preparing materials
    • DC 12V power adapter / Preparing materials
    • laser emitter / Preparing materials
    • laser radiator / Preparing materials
    • power switch / Preparing materials
    • X/Y motor / Preparing materials
    • micro USB cable / Preparing materials
    • protective glasses / Preparing materials
    • 5 inch LCD / Preparing materials
    • acrylic frame / Preparing materials
  • Concurrent Version System (CVS) / Watching DVDs
  • connectors, Banana Pro
    • debug TTL UART / Specifications of Banana Pro
    • display interface / Specifications of Banana Pro
    • HDMI / Specifications of Banana Pro
    • SATA 2.0 interface / Specifications of Banana Pro
    • SATA/DC 5V / Specifications of Banana Pro
    • micro USB power / Specifications of Banana Pro
    • USB OTG / Specifications of Banana Pro
    • reset button / Specifications of Banana Pro
    • camera interface / Specifications of Banana Pro
    • power button / Specifications of Banana Pro
    • 40-pin GPIO header / Specifications of Banana Pro
    • microphone / Specifications of Banana Pro
    • AV output / Specifications of Banana Pro
    • IR Receiver / Specifications of Banana Pro
    • USB / Specifications of Banana Pro
    • Ethernet interfaces / Specifications of Banana Pro
    • microSD card slot / Specifications of Banana Pro
    • FEL button / Specifications of Banana Pro
  • contao
    • installing / Installing contao
  • Contao
    • about / Serving web pages
  • Contiguous Memory Allocator (CMA) mode / Setting display settings
  • Coordinated Universal Time (UTC) / Setting locales
  • C programming
    • about / C programming
  • CSI (Camera Serial Interface) / Specifications of Banana Pro
  • Customized Style Sheets (CSS) file
    • about / The Python web server

D

  • dependencies
    • installing / Installing dependencies
  • dependencies, hardware accelerations
    • modules, installing / Installing modules
    • packages, installing / Installing packages
    • directory, installing / Installing a directory
  • Digital Satellite Equipment Control (DISEQC) settings / Compiling VDR
  • Domain Name Service (DNS) / Setting up an access point mode

E

  • Electronic Program Guide (EPG) / Setting locales, A network address, Changing VDR's skin

F

  • ffmpeg
    • about / Installing ffmpeg
    • installing / Installing ffmpeg
    • URL / Installing ffmpeg
  • flexible printed circuit (FPC) cable / The 7-inch LCD step-by-step guide
  • FTDI/SPI control of devices
    • about / The FTDI/SPI control of devices
    • clock line / The FTDI/SPI control of devices
    • enable line / The FTDI/SPI control of devices
    • write line / The FTDI/SPI control of devices
    • read line / The FTDI/SPI control of devices
  • full binary-coded decimal (BCD) clock / Technical specifications

G

  • games
    • playing / Playing games
    • playing, directly with command line / Playing a game directly with a command line
    • iMAM4ALL games, playing / iMAM4ALL games
    • SNES games, playing / For SNES
    • playing, from RetroArch menu interface / Playing a game from the RetroArch menu interface
  • gdb debugger commands / Debugger
  • General Purpose Input Output (GPIO)
    • about / General Purpose Input Output (GPIO)
    • instructions / Instructions
    • usages / Instructions
    • GPIO board example / Example: The GPIO board
  • General Purpose Input Output (GPIO) header / Specifications of Banana Pro
  • GNU Compiler Collection (GCC)
    • about / C/C++
  • GPIO add-ons
    • about / GPIO add-ons
  • Graphics Processing Unit (GPU)
    • about / Kernel preparation
  • GrblController software
    • installing / Installing the GrblController software
  • gutenprint package
    • URL / AirPrint

H

  • hardware accelerations
    • installing / Implementing hardware accelerations
    • dependencies, installing / Installing dependencies
    • libdri2, installing / Installing libdri2
    • libump, installing / Installing libump
    • sunxi-mali driver, installing / Installing the sunxi-mali driver
    • xf86-video-fbturbo, installing / Installing xf86-video-fbturbo
    • device permission / Getting device permission
    • testing / Testing hardware acceleration
  • hardware setup, of small car
    • about / Setting up the hardware of a smart monitor car
    • materials, preparing / Preparing the materials
    • car suite / A car suite
    • L289N motor drive board / The L289N motor drive board
    • battery / Battery
    • 5 inch LCD / A 5 inch LCD
    • assembly / Assembly
    • 5 inch LCD display output, configuring / Configuring the display output for the 5 inch LCD
  • hostapd
    • URL / Setting up an access point mode
  • humidity and temperature sensor
    • about / The humidity and temperature sensor
    • technical specifications / Technical specifications
    • example / Example – the DHT sensor

I

  • Inkscape
    • download link / Installing Inkscape
    • installing / Installing Inkscape
  • Integrated Development Environment (IDE)
    • about / Scratch
  • Inter-Integrated Circuit (I²C)
    • about / Inter-Integrated Circuit
    • instructions / Instructions
    • USB Hub example / Example – a LN-HUB-32IO USB hub
  • IP camera implementation
    • about / Implementing the IP camera
    • ffmpeg, installing / Installing ffmpeg
    • nginx, installing / Installing nginx
    • nginx server, configuring / Configuring the nginx server
    • camera, setting up / Setting up a camera
    • video, streaming via Internet / Streaming a video via the Internet

K

  • kernel preparation
    • about / Kernel preparation
    • I2S audio device, adding / Adding the I2S audio device
    • graphics memory, setting to maximum / Setting the graphics memory to maximum
    • display driver kernel logging, deactivating / Deactivating display driver kernel logging
    • IR driver key repetition, activating / Activating IR driver key repetition
    • sunxi lirc driver, activating / Activating the sunxi lirc driver
    • display driver brightness, correcting / Correcting display driver brightness
    • DVB-SKY S960 USB box, adding / Adding the DVB-SKY S960 USB box
    • accelerated mali driver, installing / Installing the accelerated mali driver
  • Kodi
    • about / Android

L

  • laser CPU
    • program, loading / Loading a program into the laser CPU
    • bootloader, loading / Loading bootloader
    • driving code, loading / Loading the driving code
  • laser engraving machine
    • frame, setting up / Setting up the frame for laser engraving
    • materials, prepraring / Preparing materials
    • hardware, setting up / Setting up the laser engraving machine hardware
    • using / How to use a laser engraver
    • G code, generating / Generate the G code
    • engraving process / Beginning the engraving process
  • LCD1602 display
    • about / The LCD1602 display
    • technical specifications / Technical specifications
    • example / Example – the LCD1602 display
  • LCD module
    • about / The LCD module
    • 7-inch LCD step-by-step guide / The 7-inch LCD step-by-step guide
  • LEDs
    • about / Banana Pro onboard LEDs
    • programming / Getting started
    • first boot / The first boot
  • LeMaker Banana Pro camera module
    • specifications / The camera module
  • LeScratch
    • running / Running LeScratch
  • LeScratch configuration
    • performing / Configuring LeScratch
    • prerequisites, installing / Installing the prerequisites
    • system, setting up / Setting up the system
    • Scratch Mesh, setting up / Setting up Scratch Mesh
  • LeScratch peripherals
    • controlling / Controlling the LeScratch peripherals
    • GPIO / General Purpose Input Output (GPIO)
    • Inter-Integrated Circuit (I²C) / Inter-Integrated Circuit
    • Serial Peripheral Interface (SPI) / Serial Peripheral Interface (SPI)
    • step motor / The step motor
    • real-time clock (RTC) / Real-time clock
    • ultrasonic sensor / The ultrasonic sensor
    • humidity and temperature sensor / The humidity and temperature sensor
    • sound detection sensor / The sound detect sensor
    • AD/DA converter / The AD/DA converter
    • photoresistor / Photoresistor
    • touch sensor / The touch sensor
    • tilt sensor / The tilt sensor
    • LCD1602 display / The LCD1602 display
  • LeScratch smart house
    • building / Building the LeScratch smart house
  • libdri2
    • installing / Installing libdri2
  • libretro
    • about / Implementing libretro emulators
  • libretro cores
    • about / Installing libretro cores
    • installing / Installing libretro cores
    • iMAM4ALL libretro core, installing / Installing iMAM4ALL libretro core
    • SNES libretro core, installing / Installing the SNES libretro core
  • libretro emulators
    • implementing / Implementing libretro emulators
    • dependent packages, installing / Installing dependent packages
    • libretro frontend, installing / Installing libretro frontend - RetroArch
    • libretro cores, installing / Installing libretro cores
    • configuration / Configuration
    • games, playing / Playing games
    • games, testing / Testing games
  • libump
    • installing / Installing libump
  • Linux
    • about / Linux
    • FEX file / The FEX file
    • OS, transferring to hard disk / Transferring an OS to a hard disk
  • Liquid Crystal Display (LCD) screen / The LCD1602 display
  • Local Area Network (LAN) / Configuring CUPS
  • LVDS (Low Voltage Differential Signaling / Specifications of Banana Pro

M

  • materials, for Banana Pro arcade cabinet
    • preparing / Preparing the materials
    • suitcase / A suitcase
    • joystick / A joystick
    • micro USB extended line / A micro USB extended line
    • USB hub / A USB hub
    • LCD display / An LCD display
    • audio extended line / An audio extended line
    • mini keyboard / A mini keyboard
  • measurement server
    • about / A measurement server
    • FTDI/SPI control of devices / The FTDI/SPI control of devices
    • web server / A web server
    • explanations / Explanations

N

  • Network Attached Storage (NAS) / OpenVPN, AirPrint
  • new kernels
    • about / New kernels
    • compiling, on Banana Pro / Compiling on Banana Pro
    • cross-compilation / Cross-compilation
  • nginx
    • about / Installing nginx
    • installing / Installing nginx
  • nginx server
    • configuring / Configuring the nginx server
    • starting / Starting the nginx server
    • accessing / Accessing the nginx server
    • autostarting, at system boot / Autostarting the nginx server at system boot

O

  • Omnivision 5640 CMOS image sensor
    • about / The camera module
  • OpenVPN
    • about / OpenVPN
    • URL / OpenVPN
    • connecting, from Android / Connecting from Android
  • operating systems, Banana Pro
    • Android / Android
    • Linux / Linux

P

  • PCSX
    • about / Building PCSX
    • building / Building PCSX
    • dependent packages, installing / Installing dependent packages
    • installing / Installing PCSX, Compiling and installing
    • ReARMed, downloading / Installing PCSX
    • patching / Patching
    • compiling / Compiling and installing
    • configuration / Configuration
  • PCSX games
    • playing / Playing PCSX games
    • testing / Testing PCSX games
  • photoresistor
    • about / Photoresistor
    • technical specifications / Technical specifications
    • example / Example – a photoresistor
  • Power Management Unit (PMU) / Banana Pro
  • PPD (Postscript Printer Description) files / AirPrint
  • programming languages
    • basic principles / Basic principles
    • remote connections / Remote connections
    • basic requirements / Basic requirements for programming Banana Pro
    • shell programming / Shell programming
    • Python / Python
    • C/C++ / C/C++
    • Scratch / Scratch
  • Pulse Width Modulation (PWM) / Using Python for GPIO
  • Putty
    • about / Secure Shell
    • URL / Secure Shell
  • Python
    • about / Python
    • basics / The basics
    • simple web server / A simple web server
    • using, for GPIO / Using Python for GPIO
    • LEDs, setting / Setting LEDs in Python
    • window example / A Python window example
  • Python/C interface
    • about / The Python/C interface
  • Python web server
    • about / The Python web server

R

  • real-time clock (RTC) / Specifications of Banana Pro
    • about / Real-time clock
    • technical specifications / Technical specifications
    • example / Example – RTC
  • Real Time Clock (RTC)
    • about / C/C++
  • Real Time Message Protocol (RTMP) / Installing ffmpeg
  • remote connections, programming languages
    • about / Remote connections
    • Secure Shell (SSH) / Secure Shell
    • xrdp / Using xrdp for remote desktop connection
  • Remote Desktop Protocol (RDP) / Using xrdp for remote desktop connection
  • RetroArch
    • about / Installing libretro frontend - RetroArch
    • building / Installing libretro frontend - RetroArch
    • X11 version / The X11 version of RetroArch
    • framebuffer version / The framebuffer version of RetroArch

S

  • Scratch
    • about / Scratch
    • LN Digital, using with / Using LN Digital with Scratch
  • Scratch program
    • about / Hello world – example for Scratch
  • screen0_output_type mode / The FEX file
  • screen0_out_color_range mode / The FEX file
  • Serial Peripheral Interface (SPI)
    • about / Serial Peripheral Interface (SPI)
    • LN Digital or SPI general example / Example – LN digital or SPI general
    • LN Digital extension / Example: LN Digital (the LNDI commands)
  • shell programming
    • about / Shell programming
    • Banana Pro temperature, reading / Checking the Banana Pro temperature
    • Banana Pro LEDs, controlling from SSH / Controlling Banana Pro's LEDs from SSH
    • GPIOs, programming from shell / Programming GPIOs from SSH
    • shell example / Another shell example
    • WiringBP / WiringBP
  • small car remote control
    • about / Controlling a smart monitor car using a remote
    • webiopi, for Banana Pro / Webiopi for Banana Pro
    • webiopi, using / Using webiopi to control the car
    • car controls, adding to IP camera web page / Adding the car controls to the IP camera web page

  • software
    • configuring, on Banana Pro / Configuring software on Banana Pro
    • installing, on PC / Installing software on a PC
  • software development kit (SDK)
    • about / Android
  • Sony/Philips Digital Interface Format (SPDIF) / The AirPlay protocol
  • sound detection sensor
    • about / The sound detect sensor
    • technical specifications / Technical specifications
    • example / Example – the sound detect sensor
  • SPI (Serial Peripheral Interface) / Specifications of Banana Pro
  • step motor
    • about / The step motor
    • technical specifications / Technical specifications
    • ways to drive / Technical specifications
    • wave drive / Technical specifications
    • full step drive / Technical specifications
    • half stepping / Technical specifications
    • micro stepping / Technical specifications
    • example / Example – the step motor
  • streamdev plugin / Streaming TV to mobile devices
  • sunxi-mali driver
    • installing / Installing the sunxi-mali driver
    • X11 version sunxi-mali / Installing the sunxi-mali driver
    • framebuffer version sunxi-mali / Installing the sunxi-mali driver

T

  • tilt sensor
    • about / The tilt sensor
    • technical specifications / Technical specifications
    • example / Example – the tilt sensor
  • touch sensor
    • about / The touch sensor
    • technical specifications / Technical specifications
    • example / Example – the touch sensor
  • troubleshooting, Video Disk Recorder (VDR)
    • device permissions / Device permissions
    • libvdpau / Changing libvdpau version

U

  • U.FL connector / Cases
  • ultrasonic sensor
    • about / The ultrasonic sensor
    • technical specifications / Technical specifications
    • example / Example – the ultrasonic sensor

V

  • Video Decode and Presentation API for Unix (VDPAU) library / Installing and patching VDPAU
  • Video Disk Recorder (VDR) / New kernels
    • URL / Video Disk Recorder (VDR)
    • about / Video Disk Recorder (VDR)
    • display settings / Setting display settings
    • locales, setting / Setting locales
    • Debian multimedia packages, adding / Adding (non-free) Debian multimedia packages
    • required modules, loading / Loading required modules
    • network address / A network address
    • FEX file, editing / Editing the FEX file
    • VDPAU, installing / Installing and patching VDPAU
    • VDPAU, patching / Installing and patching VDPAU
    • compiling / Compiling VDR
    • sound device, defining / Defining a sound device
    • default sound device, adding / Adding a default sound device
    • electrical SPDIF, using with Banana Pro / Using an electrical SPDIF with Banana Pro
    • remote control, configuring / Configuring a remote control
    • irexec program / irexec
    • USB DVB stick, adding / Adding a USB DVB stick
    • DVB kernel driver / The DVB kernel driver
    • DVB userspace driver / The DVB userspace driver
    • scripts / VDR scripts
    • plugins, adding / Adding plugins to VDR
    • DVDs, watching / Watching DVDs
    • audio CDs, listening / Listening to audio CDs
    • teletext, watching / Watching teletext
    • skin, changing / Changing VDR's skin
    • TV, streaming to mobile devices / Streaming TV to mobile devices
    • external players, switching to / Switching to external players
    • Outlook / Additional plugins
    • vdradmin-am / Remote controlling the VDR
    • troubleshooting / Troubleshooting
  • Virtual Private Network (VPN) server
    • about / OpenVPN

W

  • webiopi, for Banana Pro
    • about / Webiopi for Banana Pro
    • installing / Webiopi for Banana Pro
    • testing / Testing webiopi on Banana Pro
  • webiopi, for car remote control
    • control logic / The control logic
    • webiopi controlling code, writing / Writing the webiopi controlling code
  • web pages, serving
    • about / Serving web pages
    • php, installing / Installing PHP and MySQL
    • mysql, installing / Installing PHP and MySQL
    • contao, installing / Installing contao
  • WIN32 Disk Imager
    • reference / Getting started
  • wireless projects
    • OpenVPN / OpenVPN
    • WLAN / WLAN
    • AirPlay protocol / The AirPlay protocol
    • AirPrint / AirPrint
    • web pages, serving / Serving web pages
    • measurement server / A measurement server
  • WLAN
    • about / WLAN
    • setting up / Setting up WLAN
    • access point mode, setting up / Setting up an access point mode

X

  • XBMC
    • about / Android
  • Xbox Media Centre
    • about / Android
  • Xbox Multimedia Center (XBMC) installation
    • about / The Xbox Multimedia Center (XBMC) installation
  • xf86-video-fbturbo
    • installing / Installing xf86-video-fbturbo