Howto:Build your own Panel or Cockpit - Cockpit Systems and Hardware
Work in progress This article or section will be worked on in the upcoming hours or days. See history for the latest developments. |
Overview
There are five levels of hardware and software activity needed for a cockpit. Levels 1-4 may include software. The levels provide a model for thinking about how to structure the hardware and software of the cockpit. This model does not necessarily mean that the work done at a given level must run on a physically separate platforms.
Level | What's there | Why |
---|---|---|
Simulator Software |
|
Provides a model of the airplane, it's controls, its visual aspects, its motion and its environment. Simulator Software communicates with external hardware through one or more interfaces. |
Cockpit System | Provides services to support data flowing between the cockpit's Low Level Hardware and the Simulator's Software. Within the cockpit, this level can directly drive lower level hardware or can work through controllers and/or drivers. It is better though to leave the details of specific hardware to Controllers and Drivers
|
Through the Simulator Software's external interface, the cockpit system provides user inputs from cockpit controls, radios and instruments. At the same time, the system obtains model data to drive physical display canges in the cockpit. |
Controllers |
|
Controllers provide a means to off-load needed work from the cockpit system. There are several reasons to use a controller and there may be several of them.
Controllers can be implemented as a separate hardware layer, or can be software running on the same hardware as the cockpit system. Reasons:
|
Hardware Driver Circuits | Specialized chips or circuits for one specific type of hardware
|
Hardware driver circuits provide specialized interfaces between controllers and physical hardware components.
In some cases the interface is integrated with the hardware the controller is running on. |
Low Level Hardware | Switches, Displays, Rheostats, Encoders, Meters, Dials Low level hardware can work through each of the above levels or can attach directly to any of them |
PC
The personal computer running the Simulator Software provides interfaces we can use in a cockpit.
The basic idea is that the Simulator Software will communicate with hardware outside the PC itself. Various protocols and transport mechanisms are possible. Protocols can include Human Interface Device (HID) as used by commercial Joysticks, Yokes and Pedals. They may include internet protocols such as Transmission Control Protocol(TCP) or User Defined Packets (UDP). The data may be transported over USB, Ethernet or older connection types such as Serial or Parallel ports.
There is nothing limiting cockpit data to a single protocol or a single connection. You may want to use the usual joystick model over USB for the Yoke and Pedals, and a UDP or TCP connection over Ethernet for everything else. Some simulator software may support more than one connection via Ethernet.
Cockpit Systems
Raspberry Pi
Beaglebone
Controllers
Arduino, ATMega, PIC and STM microprocessors can be used to process multiple events from a lower level circuits or piece of hardware in order to present the cockpit system with a single piece of data. Offloading processing from the Cockpit system to controllers reduces complexity and allows the cockpit system to manage data in a timely manner. In some cases there may be a need to use a lower level controller to manage some aspect of the hardware.
Controllers can communicate with Low Level Driver Circuits or directly with the low level hardware.
Raspberry Pi - Arduino Communication
https://oscarliang.com/raspberry-pi-arduino-connected-i2c/
https://oscarliang.com/connect-raspberry-pi-and-arduino-usb-cable/
https://oscarliang.com/raspberry-pi-and-arduino-connected-serial-gpio/
https://oscarliang.com/arduino-timer-and-interrupt-tutorial/
Low Level Driver Circuits
Arduino, PIC or STM
Low level drivers might need to handle functions that a controller cannot perform itself, perhaps due to time or pin constraints. An additional processor can handle these functions, passing summarized data back to the main controller.
Microchip MCP23xxx Multiplexers
Multiplexers provide a way to provide more gpio inputs and outputs. There are three main ways to connect them: SPI, I2c or a small set of IO pins.
MAXIM LED segment drivers
Maxim's line of LED driver chips provide an easy way to drive 7, 14 or 16 segment displays. They are available as a set of modules that can be chained together to provide a significant number of digits or characters through an SPI or I2C interface.
Stepper Motor Drivers
There are several chips available that can drive small stepper motors. These can also be driven directly from gpio pins. One chip, the [| ADAFRUIT TB6612 1.2A DC/STEPPER MOTOR DRIVER BREAKOUT BOARD]
H Bridge Circuits
H Bridge circuits can control Stepper Motors or Air Cores. They can provide more power than can be obtained from a driver chip.
Analog to Digital Converters (ADC)
Small boards providing 4 ADC Channels of either 8 or 16 bit resolutions are available with I2C interfaces
Digital to Analog Converters (DAC)
Pulse Width Modulation Drivers
Small boards providing 16 PWM channels are available with I2C Interfaces.