kolaf
07-12-2012, 01:22 PM
Let me start this post by saying that I am of the engineering persuasion, meaning that I value functionality over form. This is very evident when you look at the pictures from the front and back of my prototype flight simulator panel presented in this post.
I have completed the first prototype version of my flight simulator panel (FSX/P3D) driven by Arduino. Currently the panel consists of two units, the radio stack and an autopilot stack. When my final set of switches arrive I will expand it with a set of switches to control the lights and electrical systems to be placed underneath the radio stack on the left. Support for the switches are already present in my software, so once they arrive and need only install them in the panel and wire them up.
https://lh6.googleusercontent.com/-eH5IpzYb2yQ/T_6oG21KyGI/AAAAAAAAB9U/Dz35NU6JAng/s1481/IMAG0404.jpg
The system is driven by an Arduino Mega 2650, with the Rotary pulse encoders outsourced to an Arduino Uno. The reason for this is that the encoded library I use (AdaEencoder) requires that certain pins are used for the connections, and this works out not so well with the Mega.
https://lh3.googleusercontent.com/-GkmFGaJMAko/T_6nqrKeiRI/AAAAAAAAB9U/W_HeAW9gAb8/s1481/IMAG0402.jpg
The radio stack consists of two master and slave banks for the navigation and communication radios. Both the banks can display any of the four radios, and this is individually selected for the two banks using the knobs on the left. These knobs are potmeters, and the different ranges of the analogue input are mapped to selecting which radio to display. The button between the radio displays (one is missing) service to swap master and slave frequencies. The same goes for the bottom red display. This one displays adf frequencies, transponder code, as well as DME readouts.
In the right section, the autopilot bank, the two green displays are heading and course, respectively. They are both set using the respective Rotary encoders (with the whitecaps). The blue display is autopilot_altitude and vertical_speed. The red and green pushbuttons are all the common autopilot command such as autopilot on/off, auto throttle, heading, nav, approach mode, roll mode, speed_hold, altitude_hold, and vertical speed_hold. To the right are to switches to control the parking brake and the gear position.
To the right of the autopilot unit there are three more potmeters. The upper one controls the spoilers, and the two bottom ones control rudder and aileron trim. To the extreme right is a flap lever built from Lego. This is done to get a comfortable ratio between the movement of the lever and the rotation of the potmeter.
https://lh4.googleusercontent.com/-MmBw-99c0WQ/T_6ndmYHTxI/AAAAAAAAB9U/fYXCCkRSEM4/s1481/IMAG0401.jpg
The software for this project is written using the standard arduino development system. The controlling tracks with the flight simulator through a serial interface which is implemented in Lua through FSUIPC. The lua script is responsible for mapping and inputs from the controller to the correct simulator events. This script also stores the state of the switches that are latching so that any attempt to change the setting by some other means, e.g. turn of the parking brake without using a switch on the panel, will be trapped in the correct state given by the switch on the panel will be enforced.
The long-term plan is to get some help from a guy with a CNC machine to make a better looking panel in plexiglass with all the appropriate labels etched into the glass, and with some LEDs to backlight these labels. Unfortunately I need to find some decent drawing program to be able to draw an accurate representation of the panel design with sizes and measurements to scale. For the moment this is left as further work.
https://lh4.googleusercontent.com/-SD3vS9hchVs/T_6nWBNnvVI/AAAAAAAAB9U/jg9N7jFPO7I/s1481/IMAG0400.jpg
I have completed the first prototype version of my flight simulator panel (FSX/P3D) driven by Arduino. Currently the panel consists of two units, the radio stack and an autopilot stack. When my final set of switches arrive I will expand it with a set of switches to control the lights and electrical systems to be placed underneath the radio stack on the left. Support for the switches are already present in my software, so once they arrive and need only install them in the panel and wire them up.
https://lh6.googleusercontent.com/-eH5IpzYb2yQ/T_6oG21KyGI/AAAAAAAAB9U/Dz35NU6JAng/s1481/IMAG0404.jpg
The system is driven by an Arduino Mega 2650, with the Rotary pulse encoders outsourced to an Arduino Uno. The reason for this is that the encoded library I use (AdaEencoder) requires that certain pins are used for the connections, and this works out not so well with the Mega.
https://lh3.googleusercontent.com/-GkmFGaJMAko/T_6nqrKeiRI/AAAAAAAAB9U/W_HeAW9gAb8/s1481/IMAG0402.jpg
The radio stack consists of two master and slave banks for the navigation and communication radios. Both the banks can display any of the four radios, and this is individually selected for the two banks using the knobs on the left. These knobs are potmeters, and the different ranges of the analogue input are mapped to selecting which radio to display. The button between the radio displays (one is missing) service to swap master and slave frequencies. The same goes for the bottom red display. This one displays adf frequencies, transponder code, as well as DME readouts.
In the right section, the autopilot bank, the two green displays are heading and course, respectively. They are both set using the respective Rotary encoders (with the whitecaps). The blue display is autopilot_altitude and vertical_speed. The red and green pushbuttons are all the common autopilot command such as autopilot on/off, auto throttle, heading, nav, approach mode, roll mode, speed_hold, altitude_hold, and vertical speed_hold. To the right are to switches to control the parking brake and the gear position.
To the right of the autopilot unit there are three more potmeters. The upper one controls the spoilers, and the two bottom ones control rudder and aileron trim. To the extreme right is a flap lever built from Lego. This is done to get a comfortable ratio between the movement of the lever and the rotation of the potmeter.
https://lh4.googleusercontent.com/-MmBw-99c0WQ/T_6ndmYHTxI/AAAAAAAAB9U/fYXCCkRSEM4/s1481/IMAG0401.jpg
The software for this project is written using the standard arduino development system. The controlling tracks with the flight simulator through a serial interface which is implemented in Lua through FSUIPC. The lua script is responsible for mapping and inputs from the controller to the correct simulator events. This script also stores the state of the switches that are latching so that any attempt to change the setting by some other means, e.g. turn of the parking brake without using a switch on the panel, will be trapped in the correct state given by the switch on the panel will be enforced.
The long-term plan is to get some help from a guy with a CNC machine to make a better looking panel in plexiglass with all the appropriate labels etched into the glass, and with some LEDs to backlight these labels. Unfortunately I need to find some decent drawing program to be able to draw an accurate representation of the panel design with sizes and measurements to scale. For the moment this is left as further work.
https://lh4.googleusercontent.com/-SD3vS9hchVs/T_6nWBNnvVI/AAAAAAAAB9U/jg9N7jFPO7I/s1481/IMAG0400.jpg