Howto:Build your own Panel or Cockpit - Prototyping: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
Line 170: Line 170:
* Logging
* Logging
* Event Prioritization
* Event Prioritization
[[Category:Cockpit building]]

Revision as of 07:09, 20 August 2016

Return to Build your own Panel or Cockpit

In order to build anything of this complexity from scratch, you need to take things a step at a time. Before you can put the parts together, you'll need to be sure the parts you are going to build will work as expected.

Here's the areas I've identified for my project for prototypes in no particular order:

Integrated Circuit Types and Features

Type or Feature Description Manufacturer Part Nos
Buffers
Bus Hold
Inverters
Drivers
Flip Flops
latches
Level Shifters
Translators

Integrated Circuit Candidates

Description Manufacturer Part No Package/Case Supply Voltage Supply Current or Power Dissapation- Max
8 Digit 7 Segment LED Display Driver Maxim MAX7221CNG+ PDIP-Narrow-24 4V to 5.5 V 330Ma
IO Expander I2C SPI 16 Lines Microchip MCP23016-I/SP PDIP-Narrow-28 2 to 5.5V
Microchip SPI 16 Lines MCP23S17-E/SP PDIP-Narrow-28 1.8 to 5.5V
Microchip SPI 16 Lines MCP23S18-E/SP PDIP-Narrow-28 1.8 to 5.5V
Multiplexer 8 channel-1 Data Selector Texas Instruments CD4512BE PDIP-16 -0.5 to 20V 500mw
Demultiplexer CMOS 3 to 8 High Texas Instruments CD74HC237E PDIP-16 2 to 6V
Demultiplexer CMOS 3 to 8 Low Texas Instruments CD74HC137E PDIP-16 2 to 6V
Demultiplexer CMOS 4 to 16 Low Texas Instruments Texas Instruments CD74HC4515EN PDIP-24
Atmel ATMEGA8535-16PU PDIP-40 .6"
Atmel ATMEGA328-PU PDIP-24
Atmel ATMEGA8A-PU PDIP-24

I2C and SPI Interfaces

Feature Description Platform Library
I2C and SPI Master Bus Masters for I2c and SPI Rasberry Pi wiringPi
AtMega Check the Web. There's got to be one.
Bitbanged Bus Masters Raspberry Pi or AtMega Don't know if these will be needed?
AtMega Driver Driver to manage communication of Raw Data for AtMega Peripherals Raspberry Pi New Code
AtMega New Code
I2C and SPI Port Expander Drivers Exact Chip TBD Raspberry Pi Check the Web for code or write in C
7 Segment Display Driver Max7221 Driver for 24 digits displayed on radios Raspberry Pi Check the Web for code or write in C
SPI Select Since several SPI devices will be needed, there needs to be a way to select the one to be active. Several Methods may apply
  • Use GPIO pins directly
  • Use a Decoder Chip
  • Use an I2c or SPI Port Expander ||Raspberry Pi || Need to look at examples and search for code
Raspberry Pi
  • Need to look at examples
  • Probably need to code this
I2C Select Need to know more about how the addresing and selection of I2c Devices work Raspberry Pi
  • Need to look at examples
  • Probably need to code this

Flightgear Properties and Hardware Interfaces

  • Mapping of each Flightgear property to a hardware interface and one or more addresses on the interface and to a routine to translate and move data between them.
  • Pi to Flightgear requires Property Path, Name and Value. Protocol is documented on Flightgear Wiki.
  • Pi to Max7221 is defined by the chip
  • Pi to Port Expander is defined by the chip and a driver on the Pi to use the port expander instead of a gpio pin
  • Pi to AtMega and Atmega to Pi requires an id for the AtMega interface port associated with the property and the value.
  • To save time on the SPI or I2c intefaces, a table will be loaded down from the Pi to the ATMega at startup. On the AtMega, it will contain the AtMega Interface Port Id, identify the port's handler routine and the hardware addressing data for the port. On the Pi, it will contain the AtMega Interface Port Id, the path and name of the Flightgear property and the id of the Pi Routine responsible for translating between the Property Value and the AtMega Hardware Value.

for details see: Howto:Build your own Panel or Cockpit - Software

Switches

  • Map anything that behaves like a switch as a switch
    • Switch Multiplexing
    • Switch De-Bouncing
    • On-Off Switch
    • On-Off-On Switch
    • Multi Position Switch
    • Multiplexing Switch Data
    • Rotary Encoder

Encoder Processing

    • Prioritization of Rotary Encoder Switch Data Processing
    • Magnetic Encoder
    • Rotary Encoder vs Magnetic Encoder
    • Magnetic Encoder Calibration
    • Synchronizing Magnetic Encoder Data, Actual Rotation of Instrument Compass Dial and Corresponding Rotation in Flightgear Properties

Volume or Control Axis Data

    • Audio Volume or Linear Potentiometer
    • Potentiometer vs Magnetic Encoder

Air Coils

  • Air Coils are used for Various Guages and Instruments with Needles
    • Mounting of Air Coils for Gauges, VORs and center dial instruments
    • Separate Air Coils for Three Needles at Center of Altitude Indicator

Mechanical Linkages

    • Rotation of Attitude Indicator
    • Attitude Indicator Horizon
    • Ball Part of Turn Coordinator
    • Adjustment of Magnetic Compass with two adjusters

Radios and Auto Pilot

  • Display of alphabetic and numeric data in COM, NAV and DME Radios
  • Tuning via Rotary Encoder or Magnetic Encoder (needs detent)
  • Dual Rotary Encoders or Magnetic Encoders for Tuners
  • Pull Switches vs Push Switches
  • Combining Indicators and Numeric Displays
  • Modelling the KR87 Ident Radio 8 Position Switches

USB Serial Interface

    • Implement using AtMega8-16PU
    • Use for Flightgear data that cannot be set or sensed using Telnet

Telnet Interface

  • List as many properties needed for C172 as you can find
  • Build a UI to display and set a number of them from the Raspberry Pi
  • For the properties in the telnet or USB interfaces

Raspberry Pi Setup

Raspberry Pi Event Loop

  • USB communication
  • Telnet Communication
  • I2C Master Communication
  • SPI Master Communication

ATmega Setup

ATmega Event Loop

  • I2C Slave Communication
  • SPI Slave Communication
  • Rotary Encoder Sense
  • Other Switches Sense
  • A/D Sense (rheostats)
  • Air Coil Movement
  • Frequency Display
  • Indicator Display
  • Instrument Lighting
  • Logging
  • Event Prioritization