Howto:Build your own Panel or Cockpit - Prototyping: Difference between revisions
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
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
|
Raspberry Pi |
|
I2C Select | Need to know more about how the addresing and selection of I2c Devices work | Raspberry Pi |
|
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