Fórum témák

» Több friss téma
Fórum » Otthoni repülőszimulátor építés
Lapozás: OK   5 / 7
(#) pe.ti hozzászólása Jún 24, 2014 /
 
Sziasztok! Megcsináltam az MJoy-t atmega8-cal és az lenne a kérdésem hogy miért van az, hogy csak akkor ismeri fel a gép ha a programozó kábel is rá van dugva printer portra?
Előre is köszönöm a segitséget!
(#) carlosfly válasza pe.ti hozzászólására (») Jún 24, 2014 /
 
Nem kap valami tápot onnan amit máshonnan kellene?
(#) pe.ti válasza carlosfly hozzászólására (») Jún 24, 2014 /
 
Szerintem nem, de most megy. Próbapanelen van összerakva az is lehet hogy kontakt hiba volt.
(#) pe.ti válasza pe.ti hozzászólására (») Jún 24, 2014 /
 
Illetve olyan problémám van még hogy Xp-n tökéletes viszont Win7-en nagyon lassan és szaggatottan reagál. Azon lehet valamit állitani?
(#) Perec81 hozzászólása Júl 11, 2014 /
 
Én 4 éve építgetek egy típusfüggetlen, 3 független tengelyen Roll-pitch-yaw mozgó cockpitet.
Mára már csak a monitorok hiányoznak róla,a teljes elektronika kész.
Működik is rendesen,USB-Soros kapcsolat van a géppel megoldva.
Az alap kezelőszerveket a Saitek Pro Flight szarv-dupla gázkarok-pedál kombó adják.
Bár vannak még hiányosságok,mindig van mit farigcsálni,de ennyiből és a legegyszerűbben sztem kevés hasonló szim van.
Sajna én is forráshiánnyal küszködöm,meg alap még a minimum 4 éves kölyök és egy megértő asszony,de már látom az alagút végét.
Kb.2 éve nem repültem,az IVAO-n online pilótaként aki megízleli ezt a szép hobbit,az nehezen szabadul.
Ja.. Egy kép a projektről:

DSC02394.jpg
    
(#) Szabeszvagyok hozzászólása Júl 25, 2014 /
 
Perec! Ez valami isteni! Részletek? (Prvátban megkereslek)
(#) Szabeszvagyok hozzászólása Júl 25, 2014 /
 
Sajnos azon az email-en nem tudlak elérni. Van lehetőség erre máshogyan?
(#) zolika60 válasza Szabeszvagyok hozzászólására (») Júl 25, 2014 /
 
Ha nem használod a Válasz gombot csak sejteni lehet kinek is szól amit írtál.
(#) Szabeszvagyok válasza Perec81 hozzászólására (») Júl 25, 2014 /
 
Sajnos azon az email-en nem tudlak elérni. Van lehetőség erre máshogyan? Esetleg itt, ha részletekbe bocsátkoznál az alábbiakban:
Szeretnélek megkérni, hogy ha lehet és lesz is időd, küldj nekem képeket és egy nagyon rövid leírást az építményedről amit a hobbielektronikán láttam. Véletlenül nem ablaktörlő motorokat használsz? Vagy egyéb léptető motorokat? Mennyiből lehet ezt így kihozni? FSUIPC a kapcsolat a Microsoft Sim és a Motion Platform között? Esetleg használsz arduino-t?
Válaszod köszönöm!
A hozzászólás módosítva: Júl 25, 2014
(#) Szabeszvagyok válasza zolika60 hozzászólására (») Júl 25, 2014 /
 
köszike!
(#) zolika60 válasza Szabeszvagyok hozzászólására (») Júl 25, 2014 /
 
Még az jutott eszembe, ha írsz neki privát üzenetet (a nevére kattintasz a fejlécen) azonnal észreveszi, ha ide jön az oldalra. Egyébként nem biztos, hogy olvassa ezt a témát így talán észre sem veszi a hozzászólásod.
(#) solti_imre hozzászólása Júl 25, 2014 /
 
Szeretnék egy ehhez hasonlót - némileg Igazítva a mai kor követelményihez - építeni.

http://www.x-plane.hu/cms/kozma-andras-737-es-szimulatoraban-jartunk

Rendelkezésemre áll 8 db 107"-os HDMI csatlakozású monitor, 256 db PC (16GB RAM, Intel 1150 processzor - tudom, hogy a megjelenítésre 4-8 szecska monitor + gagyi vezérlő http://www.ebolt.hu/product664979_category2551-ZOTAC_GeForce_GTX_Ti...o.html, de szeretném a valódi AI kiszámítását valami húzós core-ra bízni! Ötletek?
A hozzászólás módosítva: Júl 25, 2014
(#) Szabeszvagyok válasza solti_imre hozzászólására (») Júl 27, 2014 /
 
Húha! Sok sikert, úgy látom itt komoly befektetésről van szó!
(#) solti_imre válasza Szabeszvagyok hozzászólására (») Júl 27, 2014 /
 
Köszönöm - bár ezt nem nevezném befektetésnek; mire megveszem, a felét sem fogja érni ! ...
(#) arduinoforever hozzászólása Aug 23, 2014 /
 
Sziasztok!
Szeretném bemutatni Nektek az Általam épített Arduino alapú, Autopilóta és rádió vezérlőt.
A Szimulátor és a Multi Control között a Link2fs nevű program biztosítja a kommunikációt.
Az Arduino alap egy SMD Atmega328 mikrovezérlőre épül. A betöltött Szoftver Arduino.
A Soros kommunikációért egy PL2303 USB/Soros átalakító felel.
10 db nyomógomb és egy forgatható enkóder felelős a vezérlésért.
A kijelzés egy Nokia5110 LCD modulon keresztül történik.
(#) Szabeszvagyok válasza arduinoforever hozzászólására (») Aug 26, 2014 /
 
Ügyes vagy! Ez az Arduino Mega ugye? én egy ilyesmit csináltam Uno-val, és a MultiRadio Sketch-et töltöttem fel + 16 szegmenses kijelzőt
(#) arduinoforever válasza Szabeszvagyok hozzászólására (») Aug 26, 2014 /
 
Nem Mega! Inkább az Arduino Mini-hez hasonlítanám.
(#) htibora hozzászólása Aug 27, 2014 /
 
Szép munka! B737 PMDG-vel is működik? Vagy "csak" az alap gépekkel?
(#) arduinoforever válasza htibora hozzászólására (») Aug 27, 2014 /
 
Csak alap gépekkel teszteltem!
PMDG-s gépeim nincsenek, mivel laptopom van nem is bírná!
A Link2FS nevű program ha jól tudom FSUIPC-t használ, ha a PMDG-s gépek is használják, akkor elvileg működni kellene.
(#) arduinoforever válasza arduinoforever hozzászólására (») Aug 28, 2014 /
 
Egy videó a működéséről:

http://youtu.be/ZD38ImBskfo
(#) Szabeszvagyok válasza arduinoforever hozzászólására (») Aug 30, 2014 /
 
A scetch-et elköldenéd? Vagy ez igazából nem is arduino akkor?Bár úgy írtad ,hogy a szoftver arduino, így gondolom scetch-nek hívják a programnyelvet.... Ez Jimzpage-től csóringelt ugye?
(#) Szabeszvagyok válasza htibora hozzászólására (») Aug 30, 2014 /
 
igen... működik... ahol gondok vannak az olyan paraméterbeállíások ahol a szimulátorban nem digitálkijelzők vannak, lásd a PT Tu 154-et. Ami a kedvencem....
(#) arduinoforever válasza Szabeszvagyok hozzászólására (») Aug 30, 2014 /
 
A Sketch-et megosztom, de lehet kicsit zavaros lesz!
Pin kiosztást nem tudom fejből, ki kell olvasni a Sketch-ből.
Igen a Jimzpage-től "csóringelt" , de a Sketch 80%-ban a saját munkám! kb. 2 hónapot kínlódtam vele eddig szabadidőmben!
Újabb projektem egy Autópilóta vezérlő, több forgatható enkóderrel, és 7 szegmenses kijelzőkkel!
Itt lesz a Sketch a Multi Controlhoz:

  1. #include <LCD5110_Basic.h>
  2.  
  3.  
  4. LCD5110 myGLCD(A5,A4,A3,A1,A2);
  5. extern uint8_t SmallFont[];
  6. extern uint8_t MediumNumbers[];
  7. extern uint8_t BigNumbers[];
  8.  
  9.  
  10.  
  11. int CodeIn;// used on all serial reads
  12. int KpinNo;
  13. int Koutpin;
  14. String KoldpinStateSTR, KpinStateSTR, Kstringnewstate,Kstringoldstate;
  15.  
  16. int R;// a variable
  17. int Rold;// the old reading
  18. int Rdif;// the difference since last loop
  19. int R2;// a second test variable
  20. int R3;// a second test variable
  21. int Rold2;// a second loop old reading
  22. int Rdif2; // the second test difference
  23. int Rold3;// a second loop old reading
  24. int Rdif3; // the second test difference
  25.  
  26. int posset = 1;
  27. int screen = 1;
  28. int posset2 = 1;
  29.  
  30.  
  31. String spd;
  32. String alt;
  33. String vspd;
  34. String hdg;
  35. String crs;  
  36. String ap;
  37. String ath;
  38. String spda;
  39. String hdga;
  40. String alta;
  41. String nav;
  42. String app;
  43. String gps;
  44. String bck;
  45.  
  46. #include "math.h"
  47. #include "Quadrature.h"
  48. Quadrature quad1(12, 13);
  49. #define buttonrot A0
  50. #define button41 11
  51. #define button42 10
  52. #define button43 9
  53. #define button44 8
  54. #define button51 2
  55. #define button52 3
  56. #define button53 4
  57. #define button54 5
  58. #define button55 6
  59. #define buttonscr 7
  60.  
  61.  
  62.  
  63. void setup()
  64. {
  65. pinMode(buttonrot, INPUT);
  66. digitalWrite(buttonrot, HIGH);
  67. pinMode(button41, INPUT);
  68. digitalWrite(button41, HIGH);
  69. pinMode(button42, INPUT);
  70. digitalWrite(button42, HIGH);
  71. pinMode(button43, INPUT);
  72. digitalWrite(button43, HIGH);
  73. pinMode(button44, INPUT);
  74. digitalWrite(button44, HIGH);
  75. pinMode(button51, INPUT);
  76. digitalWrite(button51, HIGH);
  77. pinMode(button52, INPUT);
  78. digitalWrite(button52, HIGH);
  79. pinMode(button53, INPUT);
  80. digitalWrite(button53, HIGH);
  81. pinMode(button54, INPUT);
  82. digitalWrite(button54, HIGH);
  83. pinMode(button55, INPUT);
  84. digitalWrite(button55, HIGH);
  85. pinMode(buttonscr, INPUT);
  86. digitalWrite(buttonscr, HIGH);
  87.  Serial.begin(115200);
  88.  myGLCD.InitLCD();
  89.  myGLCD.clrScr();
  90.   myGLCD.setFont(SmallFont);
  91.       myGLCD.print("Flight", CENTER, 0);
  92.       myGLCD.print("Simulator", CENTER, 8);
  93.       myGLCD.print("Multi", CENTER, 16);
  94.       myGLCD.print("Control", CENTER, 24);
  95.       myGLCD.print("Version:1.6", CENTER, 32);
  96.  
  97.    
  98.  
  99.  delay(3000);
  100.  
  101.  
  102. }
  103.  
  104. void loop() {
  105.  
  106. {ENCODER();} //Check the Rotary Encoders
  107. {BUTTONS();} //Check the Buttons
  108.  
  109.   if (Serial.available()) {
  110.     CodeIn = getChar();
  111.     if (CodeIn == '=') {EQUALS();} // The first identifier is "="
  112.      
  113. }
  114.  
  115. }
  116.  
  117. char getChar()// Get a character from the serial buffer
  118. {
  119.   while(Serial.available() == 0);// wait for data
  120.   return((char)Serial.read());// Thanks Doug
  121. }
  122.  
  123. void EQUALS(){      // The first identifier was "="
  124.  CodeIn = getChar(); // Get another character
  125.   switch(CodeIn) {// Now lets find what to do with it
  126.  
  127.     case 'e':{//Autopilot Course
  128.       crs = "";
  129.       crs += getChar();
  130.       crs += getChar();
  131.       crs += getChar();
  132.       int crsi = crs.toInt(); // convert it to an integer (Thanks Phill)
  133.       if (screen==1){
  134.       myGLCD.setFont(SmallFont);
  135.       myGLCD.print("         ", 7, 0);
  136.       myGLCD.print("CRS:", 7, 0);
  137.       myGLCD.printNumI(crsi, 30, 0);}
  138.  
  139.     break;}
  140.      
  141.     case 'f':{//Autopilot Speed
  142.       spd = "";
  143.       spd += getChar();
  144.       spd += getChar();
  145.       spd += getChar();
  146.       int spdi = spd.toInt(); // convert it to an integer (Thanks Phill)
  147.       if (screen==1){
  148.       myGLCD.setFont(SmallFont);
  149.       myGLCD.print("           ", 7, 8);
  150.       myGLCD.print("SPD:", 7, 8);
  151.       myGLCD.printNumI(spdi, 30, 8);}
  152.  
  153.     break;}
  154.      
  155.     case 'd':{//Autopilot Heading
  156.       hdg = "";
  157.       hdg += getChar();
  158.       hdg += getChar();
  159.       hdg += getChar();
  160.       int hdgi = hdg.toInt();
  161.      if (screen==1){
  162.       myGLCD.setFont(SmallFont);
  163.       myGLCD.print("           ", 7, 16);
  164.       myGLCD.print("HDG:", 7, 16);
  165.       myGLCD.printNumI(hdgi, 30, 16);}
  166.  
  167.     break;}
  168.  
  169.     case 'b':{//Autopilot Altitude
  170.       alt = "";
  171.       alt += getChar();
  172.       alt += getChar();
  173.       alt += getChar();
  174.       alt += getChar();
  175.       alt += getChar();
  176.       if (screen==1){
  177.      
  178.       myGLCD.setFont(SmallFont);
  179.       myGLCD.print("          ", 7, 24);
  180.       myGLCD.print("ALT:", 7, 24);
  181.       myGLCD.print(alt, 30, 24);}
  182.  
  183.     break;}
  184.  
  185.     case 'c':{//Autopilot Vertical Speed
  186.       vspd = "";
  187.       vspd += getChar();
  188.       vspd += getChar();
  189.       vspd += getChar();
  190.       vspd += getChar();
  191.       vspd += getChar();
  192.       int vspdi = vspd.toInt(); // convert it to an integer (Thanks Phill)
  193.       if (screen==1){
  194.       myGLCD.setFont(SmallFont);
  195.       myGLCD.print("            ", 7, 32);
  196.       myGLCD.print("VSP:", 7, 32);
  197.       myGLCD.printNumI(vspdi, 30, 32);}
  198.  
  199.     break;}
  200.    
  201.         case 'a':{//Autopilot Active
  202.       ap = "";
  203.       ap += getChar();
  204.       int api = ap.toInt();
  205.       if (screen==1){
  206.       if (api == 0){
  207.       myGLCD.setFont(SmallFont);
  208.       myGLCD.print("  ", LEFT, 40);
  209.       }
  210.       if (api == 1){
  211.       myGLCD.setFont(SmallFont);
  212.       myGLCD.print("  ", LEFT, 40);
  213.       myGLCD.invertText(true);
  214.       myGLCD.print("AP", LEFT, 40);}
  215.     myGLCD.invertText(false);}
  216.        
  217.      break;}
  218.    
  219.  
  220.  
  221.         case 'u':{//Autothrotle Active
  222.       ath = "";
  223.       ath += getChar();
  224.       int athi = ath.toInt();
  225.       if (screen==1){
  226.       if (athi == 0){
  227.       myGLCD.setFont(SmallFont);
  228.       myGLCD.print("   ", RIGHT, 40);
  229.       }
  230.       if (athi == 1){
  231.       myGLCD.setFont(SmallFont);
  232.       myGLCD.print("   ", RIGHT, 40);
  233.       myGLCD.invertText(true);
  234.       myGLCD.print("ATH", RIGHT, 40);}
  235.     myGLCD.invertText(false);}
  236.        
  237.      break;}
  238.  
  239.         case 's':{//Airspeed Active
  240.       spda = "";
  241.       spda += getChar();
  242.       int spdai = spda.toInt();
  243.       if (screen==1){
  244.       if (spdai == 0){
  245.       myGLCD.setFont(SmallFont);
  246.       myGLCD.print("  ", RIGHT, 8);
  247.       }
  248.       if (spdai == 1){
  249.       myGLCD.setFont(SmallFont);
  250.       myGLCD.print("  ", RIGHT, 8);
  251.       myGLCD.print("\\", RIGHT, 8);}}
  252.    
  253.      break;}
  254.    
  255.       case 'j':{//Autopilot Heading Lock Active
  256.       hdga = "";
  257.       hdga += getChar();
  258.       int hdgai = hdga.toInt();
  259.       if (screen==1){
  260.       if (hdgai == 0){
  261.       myGLCD.setFont(SmallFont);
  262.       myGLCD.print("  ", RIGHT, 16);
  263.       }
  264.       if (hdgai == 1){
  265.       myGLCD.setFont(SmallFont);
  266.       myGLCD.print("  ", RIGHT, 16);
  267.       myGLCD.print("\\", RIGHT, 16);}}
  268.       break;}
  269.    
  270.       case 'k':{//Autopilot Altitude lock Active
  271.       alta = "";
  272.       alta += getChar();
  273.       int altai = alta.toInt();
  274.       if (screen==1){
  275.       if (altai == 0){
  276.       myGLCD.setFont(SmallFont);
  277.       myGLCD.print("  ", RIGHT, 24);
  278.       }
  279.       if (altai == 1){
  280.       myGLCD.setFont(SmallFont);
  281.       myGLCD.print("  ", RIGHT, 24);
  282.       myGLCD.print("\\", RIGHT, 24);}}
  283.       break;}
  284.    
  285.    
  286.    
  287.       case 'l':{//GPS or NAV Display
  288.       gps = "";
  289.       gps += getChar();
  290.       int gpsi = gps.toInt();
  291.       if (screen==1){
  292.       if (gpsi == 1){
  293.       myGLCD.setFont(SmallFont);
  294.       myGLCD.print("   ", RIGHT, 0);
  295.       myGLCD.print("GPS", RIGHT, 0);
  296.       }
  297.       if (gpsi == 0){
  298.       myGLCD.setFont(SmallFont);
  299.       myGLCD.print("   ", RIGHT, 0);
  300.       myGLCD.print("NAV", RIGHT, 0);}}
  301.       break;}
  302.    
  303.    
  304.       case 'o':{//NAV1 Lock Active
  305.       nav = "";
  306.       nav += getChar();
  307.       int navi = nav.toInt();
  308.       if (screen==1){
  309.       if (navi == 0){
  310.       myGLCD.setFont(SmallFont);
  311.       myGLCD.print("   ", 19, 40);
  312.       }
  313.       if (navi == 1){
  314.       myGLCD.setFont(SmallFont);
  315.       myGLCD.print("   ", 19, 40);
  316.       myGLCD.invertText(true);
  317.       myGLCD.print("VOR", 19, 40);}
  318.     myGLCD.invertText(false);}
  319.       break;}
  320.    
  321.           case 'm':{//Approach Hold Active
  322.       app = "";
  323.       app += getChar();
  324.       int appi = app.toInt();
  325.       if (screen==1){
  326.       if (appi == 0){
  327.       myGLCD.setFont(SmallFont);
  328.       myGLCD.print("   ", 45, 40);
  329.       }
  330.       if (appi == 1){
  331.       myGLCD.setFont(SmallFont);
  332.       myGLCD.print("   ", 45, 40);
  333.       myGLCD.invertText(true);
  334.       myGLCD.print("APP", 45, 40);}
  335.     myGLCD.invertText(false);}
  336.       break;}
  337.      
  338.       case 'n':{//BackCrouse Hold Active
  339.       bck = "";
  340.       bck += getChar();
  341.       int bcki = bck.toInt();
  342.       if (screen==1){
  343.       if (bcki == 0){
  344.       myGLCD.setFont(SmallFont);
  345.       myGLCD.print("  ", RIGHT, 32);
  346.       }
  347.       if (bcki == 1){
  348.       myGLCD.setFont(SmallFont);
  349.       myGLCD.print("  ", RIGHT, 32);
  350.       myGLCD.invertText(true);
  351.       myGLCD.print("BC", RIGHT, 32);}
  352.     myGLCD.invertText(false);}
  353.       break;}
  354.    
  355.    
  356.    
  357.    
  358.     //Screen 2 RADIO1
  359.    
  360.       case 'A':{//Com1 ACtive
  361.       String com1;
  362.       com1 = "";
  363.       com1 += getChar();
  364.       com1 += getChar();
  365.       com1 += getChar();
  366.       com1 += getChar();
  367.       com1 += getChar();
  368.       com1 += getChar();
  369.       getChar();
  370.       if (screen==2){
  371.       myGLCD.setFont(SmallFont);
  372.       myGLCD.print("               ", 0, 0);
  373.       myGLCD.print("COM1:", 0, 0);
  374.       myGLCD.print("s/b", 55, 0);
  375.       myGLCD.print("      ", 0, 8);
  376.       myGLCD.invertText(true);
  377.       myGLCD.print(com1, 0, 8);}
  378.       myGLCD.invertText(false);
  379.     break;}
  380.    
  381.    
  382.    
  383.       case 'B':{//Com1 Stand by
  384.       String com1sb;
  385.       com1sb = "";
  386.       com1sb += getChar();
  387.       com1sb += getChar();
  388.       com1sb += getChar();
  389.       com1sb += getChar();
  390.       com1sb += getChar();
  391.       com1sb += getChar();
  392.       getChar();
  393.       if (screen==2){
  394.       myGLCD.setFont(SmallFont);
  395.       myGLCD.print("      ", 46, 8);
  396.       myGLCD.invertText(false);
  397.       myGLCD.print(com1sb, 46, 8);}
  398.       myGLCD.invertText(false);
  399.     break;}
  400.    
  401.       case 'E':{//Nav1 ACtive
  402.       String nav1;
  403.       nav1 = "";
  404.       nav1 += getChar();
  405.       nav1 += getChar();
  406.       nav1 += getChar();
  407.       nav1 += getChar();
  408.       nav1 += getChar();
  409.       nav1 += getChar();
  410.       if (screen==2){
  411.       myGLCD.setFont(SmallFont);
  412.        myGLCD.print("               ", 0, 16);
  413.         myGLCD.print("NAV1:", 0, 16);
  414.          myGLCD.print("s/b", 55, 16);
  415.         myGLCD.print("      ", 0, 24);
  416.       myGLCD.print("      ", 0, 24);
  417.       myGLCD.invertText(true);
  418.       myGLCD.print(nav1, 0, 24);
  419.       myGLCD.invertText(false);}
  420.     break;}
  421.    
  422.       case 'F':{//Nav1 Stand by
  423.       String nav1sb;
  424.       nav1sb = "";
  425.       nav1sb += getChar();
  426.       nav1sb += getChar();
  427.       nav1sb += getChar();
  428.       nav1sb += getChar();
  429.       nav1sb += getChar();
  430.       nav1sb += getChar();
  431.       if (screen==2){
  432.       myGLCD.setFont(SmallFont);
  433.       myGLCD.print("      ", 46, 24);
  434.       myGLCD.invertText(false);
  435.       myGLCD.print(nav1sb, 46, 24);
  436.       myGLCD.invertText(false);}
  437.     break;}
  438.    
  439.    
  440.  
  441.    
  442.        /*case 'K':{//DME1 Nm
  443.       String dme1;
  444.       dme1 = "";
  445.       getChar();
  446.       dme1 += getChar();
  447.       dme1 += getChar();
  448.       dme1 += getChar();
  449.       dme1 += getChar();
  450.       if (screen==2){
  451.       myGLCD.setFont(SmallFont);
  452.        myGLCD.print("               ", 0, 40);
  453.        myGLCD.print("DME1:" , LEFT, 40);
  454.       myGLCD.print(dme1, 31, 40);
  455.       myGLCD.print("Nm",55, 40);
  456.       }
  457.      
  458.     break;}   */
  459.    
  460.  
  461.    
  462.     //SCREEN 3 RADIO2
  463.    
  464.           case 'C':{//Com2 ACtive
  465.       String com2;
  466.       com2 = "";
  467.       com2 += getChar();
  468.       com2 += getChar();
  469.       com2 += getChar();
  470.       com2 += getChar();
  471.       com2 += getChar();
  472.       com2 += getChar();
  473.       getChar();
  474.       if (screen==3){
  475.       myGLCD.setFont(SmallFont);
  476.       myGLCD.print("               ", 0, 0);
  477.       myGLCD.print("COM2:", 0, 0);
  478.       myGLCD.print("s/b", 55, 0);
  479.       myGLCD.print("      ", 0, 8);
  480.       myGLCD.invertText(true);
  481.       myGLCD.print(com2, 0, 8);}
  482.       myGLCD.invertText(false);
  483.     break;}
  484.    
  485.       case 'D':{//Com2 Stand by
  486.       String com2sb;
  487.       com2sb = "";
  488.       com2sb += getChar();
  489.       com2sb += getChar();
  490.       com2sb += getChar();
  491.       com2sb += getChar();
  492.       com2sb += getChar();
  493.       com2sb += getChar();
  494.       getChar();
  495.       if (screen==3){
  496.       myGLCD.setFont(SmallFont);
  497.       myGLCD.print("      ", 46, 8);
  498.       myGLCD.invertText(false);
  499.       myGLCD.print(com2sb, 46, 8);}
  500.       myGLCD.invertText(false);
  501.     break;}
  502.    
  503.       case 'G':{//Nav2 ACtive
  504.       String nav2;
  505.       nav2 = "";
  506.       nav2 += getChar();
  507.       nav2 += getChar();
  508.       nav2 += getChar();
  509.       nav2 += getChar();
  510.       nav2 += getChar();
  511.       nav2 += getChar();
  512.       if (screen==3){
  513.       myGLCD.setFont(SmallFont);
  514.        myGLCD.print("               ", 0, 16);
  515.         myGLCD.print("NAV2:", 0, 16);
  516.          myGLCD.print("s/b", 55, 16);
  517.         myGLCD.print("      ", 0, 24);
  518.       myGLCD.print("      ", 0, 24);
  519.       myGLCD.invertText(true);
  520.       myGLCD.print(nav2, 0, 24);
  521.       myGLCD.invertText(false);}
  522.     break;}
  523.    
  524.       case 'H':{//Nav2 Stand by
  525.       String nav2sb;
  526.       nav2sb = "";
  527.       nav2sb += getChar();
  528.       nav2sb += getChar();
  529.       nav2sb += getChar();
  530.       nav2sb += getChar();
  531.       nav2sb += getChar();
  532.       nav2sb += getChar();
  533.       if (screen==3){
  534.       myGLCD.setFont(SmallFont);
  535.       myGLCD.print("      ", 46, 24);
  536.       myGLCD.invertText(false);
  537.       myGLCD.print(nav2sb, 46, 24);
  538.       myGLCD.invertText(false);}
  539.     break;}
  540.    
  541.    
  542.        /*case 'L':{//DME2 Nm
  543.       String dme2;
  544.       dme2 = "";
  545.       dme2 += getChar();
  546.       dme2 += getChar();
  547.       dme2 += getChar();
  548.       dme2 += getChar();
  549.       dme2 += getChar();
  550.       dme2 += "N";
  551.       dme2 += "m";
  552.       if (screen==3){
  553.       myGLCD.setFont(SmallFont);
  554.        myGLCD.print("               ", 0, 32);
  555.         myGLCD.print("DME2:", LEFT, 32);
  556.       myGLCD.print("       ", RIGHT, 32);
  557.       myGLCD.invertText(false);
  558.       myGLCD.print(dme2, RIGHT, 32);
  559.       myGLCD.invertText(false);}
  560.      
  561.     break;}  */
  562.    
  563.  
  564.    
  565.    
  566.    
  567.    
  568.    
  569.    
  570.    
  571.    
  572.    
  573.    
  574.    
  575. }
  576. }
  577.  
  578. /*void QUESTION(){    // The first identifier was "?"
  579. CodeIn = getChar(); // Get another character
  580.   switch(CodeIn) {// Now lets find what to do with it
  581.    
  582.       case 'k':{//kohlsman
  583.       String khm;
  584.       khm = "";
  585.       khm += "B";
  586.       khm += "a";
  587.       khm += "r";
  588.       khm += "o";
  589.       khm += ":";
  590.       khm += getChar();
  591.       khm += getChar();
  592.       khm += getChar();
  593.       khm += getChar();
  594.       khm += getChar();
  595.       khm += "Hg";
  596.      
  597.       if (screen==2){
  598.       myGLCD.setFont(SmallFont);
  599.        myGLCD.print("                  ", 7, 40);
  600.       myGLCD.print(khm, 7, 40);
  601.     break;
  602.      
  603.    
  604.      }
  605. }
  606.   }
  607. }
  608. */
  609.  
  610.  
  611. void ENCODER(){
  612.  
  613.  
  614.  
  615.   R3 =(quad1.position())/2; //full cycle encoder
  616.   if (R3 != Rold3) {
  617.    
  618. int buttonStaterot = digitalRead(buttonrot);
  619. if (buttonStaterot ==HIGH){
  620.    if (screen == 1){
  621. if (posset == 1){//CRS
  622.     (Rdif3 = (R3-Rold3));
  623.     if (Rdif3 == 1) Serial.println ("A55"); // CRS down
  624.     if (Rdif3 == -1) Serial.println ("A56"); //CRS up
  625.     Rold3 = R3;
  626.       }
  627.     if (posset == 2){//SPD
  628.     (Rdif3 = (R3-Rold3));
  629.     if (Rdif3 == 1) Serial.println ("B16"); // SPD down
  630.     if (Rdif3 == -1) Serial.println ("B15"); //SPD up
  631.     Rold3 = R3;
  632.       }
  633.       if (posset == 3){//HDG
  634.     (Rdif3 = (R3-Rold3));
  635.     if (Rdif3 == 1) Serial.println ("A58"); // HDG down
  636.     if (Rdif3 == -1) Serial.println ("A57"); //HDG up
  637.     Rold3 = R3;
  638.       }
  639.       if (posset == 4){//ALT
  640.     (Rdif3 = (R3-Rold3));
  641.     if (Rdif3 == 1) Serial.println ("B12"); // ALT down
  642.     if (Rdif3 == -1) Serial.println ("B11"); //ALT up
  643.     Rold3 = R3;
  644.       }
  645.       if (posset == 5){//VS
  646.     (Rdif3 = (R3-Rold3));
  647.     if (Rdif3 == 1) Serial.println ("B14"); // VS down
  648.     if (Rdif3 == -1) Serial.println ("B13"); //VS up
  649.     Rold3 = R3;
  650.       }
  651.  
  652.       }
  653.  
  654.  
  655.    if (screen == 2){
  656. if (posset2 == 1){//COM1
  657.     (Rdif3 = (R3-Rold3));
  658.     if (Rdif3 == 1) Serial.println ("A01"); // CRS down
  659.     if (Rdif3 == -1) Serial.println ("A02"); //CRS up
  660.     Rold3 = R3;
  661.       }
  662.     if (posset2 == 2){//NAV1
  663.     (Rdif3 = (R3-Rold3));
  664.     if (Rdif3 == 1) Serial.println ("A13"); // SPD down
  665.     if (Rdif3 == -1) Serial.println ("A14"); //SPD up
  666.     Rold3 = R3;
  667.       }
  668.      if (posset2 == 3){//NAV1
  669.     (Rdif3 = (R3-Rold3));
  670.     if (Rdif3 == 1) Serial.println ("C26"); // SPD down
  671.     if (Rdif3 == -1) Serial.println ("C25"); //SPD up
  672.     Rold3 = R3;
  673.       }
  674.  
  675.       }
  676.    
  677.  if (screen == 3){
  678. if (posset2 == 1){//COM2
  679.     (Rdif3 = (R3-Rold3));
  680.     if (Rdif3 == 1) Serial.println ("A07"); // CRS down
  681.     if (Rdif3 == -1) Serial.println ("A08"); //CRS up
  682.     Rold3 = R3;
  683.       }
  684.     if (posset2 == 2){//NAV2
  685.     (Rdif3 = (R3-Rold3));
  686.     if (Rdif3 == 1) Serial.println ("A19"); // SPD down
  687.     if (Rdif3 == -1) Serial.println ("A20"); //SPD up
  688.     Rold3 = R3;
  689.       }
  690.      
  691.  
  692.       }
  693.  
  694. }
  695.  
  696.  
  697.  
  698.  
  699.  
  700. else{
  701.  
  702.   if(screen==1){
  703.     (Rdif3 = (R3-Rold3));
  704.     if (posset>1){
  705.     if (Rdif3 == 1) posset-=1;
  706.     }
  707.     if(posset<5){
  708.     if (Rdif3 == -1) posset+=1;
  709.     Rold3 = R3;
  710.     }
  711.       if (posset==1){
  712.       myGLCD.print(" ", LEFT, 0);
  713.       myGLCD.print(" ", LEFT, 8);
  714.       myGLCD.print(" ", LEFT, 16);
  715.       myGLCD.print(" ", LEFT, 24);
  716.       myGLCD.print(" ", LEFT, 32);
  717.       myGLCD.print(">", LEFT, 0);
  718.       }
  719.       if (posset==2){
  720.       myGLCD.print(" ", LEFT, 0);
  721.       myGLCD.print(" ", LEFT, 8);
  722.       myGLCD.print(" ", LEFT, 16);
  723.       myGLCD.print(" ", LEFT, 24);
  724.       myGLCD.print(" ", LEFT, 32);
  725.       myGLCD.print(">", LEFT, 8);
  726.       }
  727.       if (posset==3){
  728.       myGLCD.print(" ", LEFT, 0);
  729.       myGLCD.print(" ", LEFT, 8);
  730.       myGLCD.print(" ", LEFT, 16);
  731.       myGLCD.print(" ", LEFT, 24);
  732.       myGLCD.print(" ", LEFT, 32);
  733.       myGLCD.print(">", LEFT, 16);
  734.       }
  735.       if (posset==4){
  736.       myGLCD.print(" ", LEFT, 0);
  737.       myGLCD.print(" ", LEFT, 8);
  738.       myGLCD.print(" ", LEFT, 16);
  739.       myGLCD.print(" ", LEFT, 24);
  740.       myGLCD.print(" ", LEFT, 32);
  741.       myGLCD.print(">", LEFT, 24);
  742.       }
  743.       if (posset==5){
  744.       myGLCD.print(" ", LEFT, 0);
  745.       myGLCD.print(" ", LEFT, 8);
  746.       myGLCD.print(" ", LEFT, 16);
  747.       myGLCD.print(" ", LEFT, 24);
  748.       myGLCD.print(" ", LEFT, 32);
  749.       myGLCD.print(">", LEFT, 32);
  750.       }
  751.   }
  752. if(screen==2){
  753.  
  754.   (Rdif3 = (R3-Rold3));
  755.   if (posset2==1){
  756.     if (Rdif3 == 1) Serial.println ("A03");
  757.     if (Rdif3 == -1) Serial.println ("A04");
  758.  
  759.   Rold3 = R3;}
  760.     if (posset2==2){
  761.     if (Rdif3 == 1) Serial.println ("A15");
  762.     if (Rdif3 == -1) Serial.println ("A16");
  763.  
  764.   Rold3 = R3;}
  765.  
  766.  
  767.  
  768. }
  769.  
  770. if(screen==3){
  771.  
  772.   (Rdif3 = (R3-Rold3));
  773.   if (posset2==1){
  774.     if (Rdif3 == 1) Serial.println ("A09");
  775.     if (Rdif3 == -1) Serial.println ("A10");
  776.  
  777.   Rold3 = R3;}
  778.     if (posset2==2){
  779.     if (Rdif3 == 1) Serial.println ("A21");
  780.     if (Rdif3 == -1) Serial.println ("A22");
  781.    
  782.   Rold3 = R3;
  783.     }
  784. }
  785.  
  786.       }    
  787.  
  788.      
  789.      
  790.      
  791. }
  792. }
  793.  
  794.  
  795.  
  796.  
  797.      
  798.      
  799.  
  800. void BUTTONS(){
  801.  
  802.   int buttonState41 = digitalRead(button41);
  803.   int buttonState42 = digitalRead(button42);
  804.   int buttonState43 = digitalRead(button43);
  805.   int buttonState44 = digitalRead(button44);
  806.   int buttonState51 = digitalRead(button51);
  807.   int buttonState52 = digitalRead(button52);
  808.   int buttonState53 = digitalRead(button53);
  809.   int buttonState54 = digitalRead(button54);
  810.   int buttonState55 = digitalRead(button55);
  811.   int buttonStatescr = digitalRead(buttonscr);
  812.  
  813.  if (screen==1){
  814.   if (buttonState41 ==LOW){Serial.println ("B01"); delay(250);}
  815.   if (buttonState43 ==LOW){Serial.println ("B10"); delay(250);}
  816.   if (buttonState44 ==LOW){Serial.println ("B08"); delay(250);}
  817.   if (buttonState42 ==LOW){Serial.println ("B34"); delay(250);}
  818.   if (buttonState51 ==LOW){Serial.println ("A54"); delay(250);}
  819.   if (buttonState52 ==LOW){Serial.println ("B26"); delay(25); Serial.print ("B22");  Serial.println (spd); delay(250);}
  820.   if (buttonState53 ==LOW){Serial.println ("B04"); delay(25); Serial.print ("A59");  Serial.println (hdg); delay(250);}
  821.   if (buttonState54 ==LOW){Serial.println ("B05"); delay(25); Serial.print ("B32");  Serial.println (alt); delay(250);}
  822.   if (buttonState55 ==LOW){Serial.println ("B09"); delay(250);}
  823. }
  824.  
  825.  if (screen==2){
  826.   if (buttonState41 ==LOW){Serial.println ("A45"); delay(250);}
  827.   if (buttonState42 ==LOW){Serial.println ("A46"); delay(250);}
  828.   if (buttonState43 ==LOW){Serial.println ("A48"); delay(250);}
  829.   if (buttonState44 ==LOW){Serial.println ("A49"); delay(250);}
  830.   if (buttonState52 ==LOW){Serial.println ("A06"); delay(250);}
  831.   if (buttonState51 ==LOW){posset2=1;
  832.        myGLCD.print(" ", 39, 8);
  833.       myGLCD.print(" ", 39, 24);
  834.      
  835.       myGLCD.print(">",39, 8);
  836.     delay(250);}
  837.   if (buttonState54 ==LOW){Serial.println ("A18"); delay(250);}
  838.   if (buttonState53 ==LOW){posset2=2;
  839.        myGLCD.print(" ", 39, 8);
  840.       myGLCD.print(" ", 39, 24);
  841.      
  842.       myGLCD.print(">",39, 24);
  843.     delay(250);}
  844.   if (buttonState55 ==LOW){}
  845.   }
  846.  
  847.  if (screen==3){
  848.   if (buttonState41 ==LOW){Serial.println ("A45"); delay(250);}
  849.   if (buttonState42 ==LOW){Serial.println ("A46"); delay(250);}
  850.   if (buttonState43 ==LOW){Serial.println ("A48"); delay(250);}
  851.   if (buttonState44 ==LOW){Serial.println ("A49"); delay(250);}
  852.   if (buttonState52 ==LOW){Serial.println ("A12"); delay(250);}
  853.   if (buttonState51 ==LOW){
  854.   posset2=1;
  855.        myGLCD.print(" ", 39, 8);
  856.       myGLCD.print(" ", 39, 24);
  857.       myGLCD.print(">",39, 8);  
  858. delay(250);}
  859.   if (buttonState54 ==LOW){Serial.println ("A24"); delay(250);}
  860.   if (buttonState53
  861.   ==LOW){posset2=2;
  862.        myGLCD.print(" ", 39, 8);
  863.       myGLCD.print(" ", 39, 24);
  864.       myGLCD.print(">",39, 24);
  865.     delay(250);}
  866.   if (buttonState55 ==LOW){}
  867. }
  868.  
  869.  
  870.  
  871. if (buttonStatescr ==LOW){
  872. screen+=1;
  873. if (screen == 4){screen=1;}
  874. myGLCD.clrScr();
  875. delay(250);
  876. }
  877.  
  878. }
(#) carlosfly hozzászólása Aug 30, 2014 /
 
Nálunk is alakul a project. Itt is ARDUINO fog dolgozni.

Cessna IFR panel
A hozzászólás módosítva: Aug 30, 2014
(#) htibora válasza arduinoforever hozzászólására (») Aug 31, 2014 /
 
Köszi a választ!

Nekem a rotarykkal gyűlt meg a bajom a robotpilótánál. Vagyis alapban működnek a PMDG-ben nem.
(#) Szabeszvagyok válasza arduinoforever hozzászólására (») Szept 1, 2014 /
 
Köszi SAnyikám! ) Az AtMegát milyen típusú alappanelra raktad fel? Jól érzem, hogy ez így jóval olcsóbb mintha rendelnék még egy arduino-t? Bár az usb átalakító kissé drága... igaz nem vészes. Azt nem gondoltam volna, hogy kb egy ezres csak a mikrovezérlő. És ez jó!
(#) arduinoforever válasza Szabeszvagyok hozzászólására (») Szept 1, 2014 /
 
Az ár attól függ, hogy honnan veszed! Én Kínából rendelek szinte mindent! Az Atmega328-at is kb. 500Ft környékén veszem, igaz 10-esével. Az USB/Soros PL2303-as átalakítót 1USD (230Ft) veszem készre szerelve: Ilyet csak olcsóbban, mert több darabot veszek egyszerre!
A kijelző is 600Ft körül mozog. Forgatható enkóder kb. 500Ft, "kupakkal" együtt.
Nyák nyomógombokat és a Műszerdobozt azt itthonról veszem elektronikából 3000Ft körül.
Más nem is nagyon kell hozzá!
Van egy Sprint Layout-os nyáktervem, Én ezt használom. Csatolom! SMD Atmega8 / Atmega168 / Atmega328 tehető bele. Lényegében egy alap Arduino Mini csak egyoldalas Nyákon SMD-ben. USBASP-t használok a Bootloader beégetésére.

FSMC alap.lay
    
(#) Szabeszvagyok válasza arduinoforever hozzászólására (») Szept 1, 2014 /
 
Remek! Köszönöm!
(#) Perec81 válasza arduinoforever hozzászólására (») Jan 4, 2015 /
 
Ez gyönyörű meló! Nagyon tetszik!
(#) aviator17 hozzászólása Márc 15, 2015 /
 
Sziasztok!

Nem tudom ki milyen mélységekben foglalkozik a témával, illetve milyen szimulátort használ alapul, remélem a kérdésem elektronikai ismeretek birtokában is megválaszolható.

Szóval nem vagyok nagy cockpit építő, igazából kísérletezni szeretnék csak a témában, megtudni, megtanulni mi hogy működik, illetve miért úgy. Sajnos eléggé hiányosak az elektronikai ismereteim, nem volt módom sokat foglalkozni vele az eddigi évek során, de mérnök lévén gyorsan tanulok és minden érdekel.
Jelenleg a kérdésem a szoftver és hardver közötti kommunikációval kapcsolatos, annyit szeretnék megtudni illetve később megvalósítani, hogy pl. én egy rotary switch-el, forgókapcsolóval (nem tudom hogy hívják magyarul, angolul hivatalosan simple circuit twelve positions rotary switch, nem is nagyon láttam még ilyet itthon,) hogyan tudom utasítani a szimulátort (FSX) hogy változtasson meg mondjuk egy magasság beállítást. A másik kérdésem, és inkább ez lenne jelenleg az érdekesebb, hogy a kijelzés hogyan működik, tehát hogyan érem el azt, hogy amit a monitoron látok mondjuk 4 jegyű szám azt négy darab 7 szegmenses kijelzővel ki tudjam hozni a számítógépből az asztalomra.

A szimulátor a külvilággal az FSUIPC modulon keresztül teremt kapcsolatot, ennek vannak bizonyos ofszetjei, ezek felhasználásával oldható meg például a kijelzés, tehát a szimulátor képes kiküldeni bizonyos adatokat a számítógépnek.

Minden érdekelne a témával kapcsolatban: szükséges áramkörök, leírások, működési elv, egyáltalán az, illetve annak a működési elve, hogy egy külső eszköz (pl egy rotary switch vagy egy 7 szegmenses kijelző) hogyan kommunikál a számítógéppel, vagy pl. mi kell ahhoz hogy egy 7 szegmenses kijelző egyáltalán működjön és azt mutassa amit én szeretnék.

Köszönök előre is minden segítséget, elnézést az összevisszaságért, jelenleg még sajnos ez van a fejemben is, de ennek megfelelően nem vágyok olyan nagyon sokra szimulátorépítés téren.

Üdv,
Ádám
Következő: »»   5 / 7
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem