Howto:Build your own procedure trainer: Difference between revisions

Jump to navigation Jump to search
m
Robot: Cosmetic changes
m (Robot: Cosmetic changes)
Line 1: Line 1:
[[Image:Pmpt-0.1.jpg|thumb|250px|A first version of the PMPT - functional!]]
[[File:Pmpt-0.1.jpg|thumb|250px|A first version of the PMPT - functional!]]
This page is about '''building your own procedure trainer device''' using basically [[FlightGear]], other OpenSource software and home brew hardware. It is probably far from being a FNPT [http://de.wikipedia.org/wiki/Flight_and_Navigation_Procedures_Trainer Flight Navigation Procedure Trainer ], so I'd like to call it a '''PMPT''' for ''Poor Man's Procedure Trainer''.
This page is about '''building your own procedure trainer device''' using basically [[FlightGear]], other OpenSource software and home brew hardware. It is probably far from being a FNPT [http://de.wikipedia.org/wiki/Flight_and_Navigation_Procedures_Trainer Flight Navigation Procedure Trainer ], so I'd like to call it a '''PMPT''' for ''Poor Man's Procedure Trainer''.
The goal is to have most of the components, "real" FNPT have:
The goal is to have most of the components, "real" FNPT have:
Line 11: Line 11:


== The Components ==
== The Components ==
[[Image:Pmpt-Schematic.png|thumb|250px|General Schematic of the PMPT]]
[[File:Pmpt-Schematic.png|thumb|250px|General Schematic of the PMPT]]
Bearing the first 'P' of the acronym in mind, most of the hardware is non-state-of-the-art, either from the attic (to bad to be used but to good to be thrown away) or bought second/third hand.
Bearing the first 'P' of the acronym in mind, most of the hardware is non-state-of-the-art, either from the attic (to bad to be used but to good to be thrown away) or bought second/third hand.
The main components are:
The main components are:
Line 31: Line 31:


=== Outside View ===
=== Outside View ===
[[Image:Pmpt-Chassis.jpg|thumb|250px|The instrument panel, front panel removed]]
[[File:Pmpt-Chassis.jpg|thumb|250px|The instrument panel, front panel removed]]
[[Image:Pmpt-InstrumentPanelInterior.jpg|thumb|250px|The instrument panel interior]]
[[File:Pmpt-InstrumentPanelInterior.jpg|thumb|250px|The instrument panel interior]]
[[Image:Pmpt-ScreenMaskBack.jpg|thumb|250px|The instrument panel's screen mask (back side)]]
[[File:Pmpt-ScreenMaskBack.jpg|thumb|250px|The instrument panel's screen mask (back side)]]
[[Image:Pmpt-FrontDetail.jpg|thumb|250px|A rotary encoder]]
[[File:Pmpt-FrontDetail.jpg|thumb|250px|A rotary encoder]]
[[Image:Pmpt-ButtonAssy.jpg|thumb|250px|Another view of a rotary encoder]]
[[File:Pmpt-ButtonAssy.jpg|thumb|250px|Another view of a rotary encoder]]
=== Yoke and Switch Panel ===
=== Yoke and Switch Panel ===
=== Rudder Pedals ===
=== Rudder Pedals ===
Line 43: Line 43:
== The Basic Hardware Interface ==
== The Basic Hardware Interface ==
=== The Almighty USB HID Controller ===
=== The Almighty USB HID Controller ===
[[Image:Pmpt-Controller.jpg|thumb|250px|The USB HID controller]]
[[File:Pmpt-Controller.jpg|thumb|250px|The USB HID controller]]
To make interfacing to FlightGear easy without the need for hardware drivers, a special controller hardware is used. This is based on a commonly available microcontroller, the [http://www.atmel.com/ ATMEL] [http://www.atmel.com/dyn/products/product_card.asp?part_id=4585 ATMega8-16]. It has basically everything needed for I/O handling and most important: it can easily be programmed without the need for a special programmer hardware and a GPL'ed implementation of the USB1.1 protocol stack is available from [http://www.obdev.at/products/vusb obdev.at].  
To make interfacing to FlightGear easy without the need for hardware drivers, a special controller hardware is used. This is based on a commonly available microcontroller, the [http://www.atmel.com/ ATMEL] [http://www.atmel.com/dyn/products/product_card.asp?part_id=4585 ATMega8-16]. It has basically everything needed for I/O handling and most important: it can easily be programmed without the need for a special programmer hardware and a GPL'ed implementation of the USB1.1 protocol stack is available from [http://www.obdev.at/products/vusb obdev.at].  


<br clear="all"/>
<br clear="all"/>
=== Circuit Board ===
=== Circuit Board ===
[[Image:Pmpt-ControllerCircuit.jpg|thumb|250px|The USB HID controller's circuit diagram]]
[[File:Pmpt-ControllerCircuit.jpg|thumb|250px|The USB HID controller's circuit diagram]]
[[Image:Pmpt-ControllerBack.jpg|thumb|250px|The USB HID controller's back side]]
[[File:Pmpt-ControllerBack.jpg|thumb|250px|The USB HID controller's back side]]
This is the basic circuit diagram for the USB HID controller based on [http://www.atmel.com/ ATMEL's] ATMega8. It runs on an 12MHz clock, so be sure to get the 16MHz version. The 27pF capacitors are of ceramic disc type. The 100nF capacitor should be close to the controller with short wires to the supply voltage. The two Z-diodes limit the USB bus voltage and the 1k5Ohm Resistor tells the USB host that this is a low speed device. Check [http://www.obdev.at/products/vusb/ obdev.at's site] for details. Their reference projects contains tons of information and further readings.
This is the basic circuit diagram for the USB HID controller based on [http://www.atmel.com/ ATMEL's] ATMega8. It runs on an 12MHz clock, so be sure to get the 16MHz version. The 27pF capacitors are of ceramic disc type. The 100nF capacitor should be close to the controller with short wires to the supply voltage. The two Z-diodes limit the USB bus voltage and the 1k5Ohm Resistor tells the USB host that this is a low speed device. Check [http://www.obdev.at/products/vusb/ obdev.at's site] for details. Their reference projects contains tons of information and further readings.
The circuit is so simple, it can easily be built on a prototype board. It leaves us 18 I/O ports, 6 of them may be analog/digital converters. Not bad for a less-than 20$ Hardware.
The circuit is so simple, it can easily be built on a prototype board. It leaves us 18 I/O ports, 6 of them may be analog/digital converters. Not bad for a less-than 20$ Hardware.
Line 57: Line 57:
Your best friend for programming the ATMega is a dude called [http://www.nongnu.org/avrdude/ avrdude].
Your best friend for programming the ATMega is a dude called [http://www.nongnu.org/avrdude/ avrdude].
==== Panel Controller ====
==== Panel Controller ====
[[Image:Pmpt-RotaryWiring.jpg|thumb|250px|Basic wiring of the encoders]]
[[File:Pmpt-RotaryWiring.jpg|thumb|250px|Basic wiring of the encoders]]
==== Yoke Controller ====
==== Yoke Controller ====
[[Category:Howto|Build your own procedure trainer]]
[[Category:Howto|Build your own procedure trainer]]

Navigation menu