#include "Wire.h"
#include "LiquidCrystal_I2C.h"
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
String donne = "";
int nb = 0;
boolean mode = true;
const int led_verte = 3;
const int bouton = 2;
int etatbouton;
void setup()
{
//prepparation du bouton + led
pinMode(led_verte, OUTPUT);
pinMode(bouton, INPUT);
digitalWrite(bouton, HIGH);
digitalWrite(led_verte, HIGH);
//demarrage du port série
Serial.begin(9600);
//mise en place de l'affichae main
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print("Main : ");
//mise en place de l'affichage RCS
lcd.setCursor(0,1);
lcd.print("RCS : ");
}
void loop()
{
etatbouton = digitalRead(bouton);
if (etatbouton == HIGH) {
digitalWrite(led_verte, HIGH);
Serial.print("0");
}
else
{
//bouton appuyé
digitalWrite(led_verte, LOW);
Serial.print("1");
}
}
//fonction qui transforme certain caractères dec en ascii
String ascii(int arg_dec) {
if (arg_dec == 48) return "0";
if (arg_dec == 49) return "1";
if (arg_dec == 50) return "2";
if (arg_dec == 51) return "3";
if (arg_dec == 52) return "4";
if (arg_dec == 53) return "5";
if (arg_dec == 54) return "6";
if (arg_dec == 55) return "7";
if (arg_dec == 56) return "8";
if (arg_dec == 57) return "9";
if (arg_dec == 97) return "a";
if (arg_dec == 98) return "b";
if (arg_dec == 99) return "c";
if (arg_dec == 100) return "d";
if (arg_dec == 109) return "m";
if (arg_dec == 114) return "r";
}
void serialEvent() //se déclenche quand le port série reçois une données
{
donne = "";
nb = 0;
//mose main, la données atterit d'abord sur le compteurs du réservoir principal
if (mode == true) {
while (Serial.available() > 0)
{
lcd.setCursor(8,0);
donne = donne + ascii(Serial.read());
nb = nb + 1;
}
if (nb == 1) donne = "0000" + donne;
if (nb == 2) donne = "000" + donne;
if (nb == 3) donne = "00" + donne;
if (nb == 4) donne = "0" + donne;
lcd.print(donne);
mode = false;
}
else
{
//mose rcs, la données atterit ensuite sur le compteurs du RCS puis on repart au main
while (Serial.available() > 0)
{
lcd.setCursor(8,1);
donne = donne + ascii(Serial.read());
nb = nb + 1;
}
if (nb == 1) donne = "0000" + donne;
if (nb == 2) donne = "000" + donne;
if (nb == 3) donne = "00" + donne;
if (nb == 4) donne = "0" + donne;
lcd.print(donne);
mode = true;
}
}
-- Mise en place des constances
v = vessel.get_interface('GL-01')
h1 = v:get_propellanthandle(0) --réservoir principal
h2 = v:get_propellanthandle(1) --réservoir RCS
-- Mise en place du SQL
require "luasql.odbc"
mysql = luasql.odbc()
sql = mysql:connect("BDD","root","5pcr12v6")
sql:setautocommit(true)
local boucle = true
repeat
-- récupération de la masse des jauges de carburant
masse0 = v:get_propellantmass(h1)
masse1 = v:get_propellantmass(h2)
--envois de l'information à la BDD
sql:execute("UPDATE orbiter SET carburant0 = "..masse0..", carburant1 = "..masse1.." where id =1")
--récupération de la commande de ravitaillement des réservoirs
cursor = sql:execute("SELECT ordre FROM commande WHERE id = 1")
cmd = cursor:fetch("commande")
cursor:close()
--si la commande est sur 1 alors on remplie
if cmd == true then
--remplissage si le réservoir est inférieur a sont max
if v:get_propellantmass(h1) < 12900 then
v:set_propellantmass(h1, v:get_propellantmass(h1) + 20)
end
if v:get_propellantmass(h1) < 600 then
v:set_propellantmass(h2, v:get_propellantmass(h2) + 10)
end
--réquilibrage des taux max au cas ou que sa dépasse
if v:get_propellantmass(h1) > 12900 then
v:set_propellantmass(h1, 12900)
end
if v:get_propellantmass(h1) > 600 then
v:set_propellantmass(h2, 600)
end
end
--message
--oapi.dbg_out("Main : "..masse0.." RCS : "..masse1)
proc.wait_simdt(0.5)
until boucle == false
eh ben, c'est très interessant comme projet :wor:
j'adore quand il a plein de boutons
juste comme ça, il y a un moyens d'afficher les réserve de carbu sous forme de graphique sur l'écran LCD ?
je ne vous raconte pas le casse tête que sa va êtreEh bien... :trucdeouf: bon courage...
Used to identify keyboard events for panels and MFDs.
OAPI_KEY.ESCAPE "Esc"
OAPI_KEY.1 "1"
OAPI_KEY.2 "2"
OAPI_KEY.3 "3"
OAPI_KEY.4 "4"
OAPI_KEY.5 "5"
OAPI_KEY.6 "6"
OAPI_KEY.7 "7"
OAPI_KEY.8 "8"
OAPI_KEY.9 "9"
OAPI_KEY.0 "0"
OAPI_KEY.MINUS "-" on main keypad
OAPI_KEY.EQUALS "=" on main keypad
OAPI_KEY.BACK Backspace
OAPI_KEY.TAB Tab key
OAPI_KEY.Q "Q"
OAPI_KEY.W "W"
OAPI_KEY.E "E"
OAPI_KEY.R "R"
OAPI_KEY.T "T"
OAPI_KEY.Y "Y"
OAPI_KEY.U "U"
OAPI_KEY.I "I"
OAPI_KEY.O "O"
OAPI_KEY.P "P"
OAPI_KEY.LBRACKET "["
OAPI_KEY.RBRACKET "]"
OAPI_KEY.RETURN Enter key on main keypad
OAPI_KEY.LCONTROL Left control key
OAPI_KEY.A "A"
OAPI_KEY.S "S"
OAPI_KEY.D "D"
OAPI_KEY.F "F"
OAPI_KEY.G "G"
OAPI_KEY.H "H"
OAPI_KEY.J "J"
OAPI_KEY.K "K"
OAPI_KEY.L "L"
OAPI_KEY.SEMICOLON ";"
OAPI_KEY.APOSTROPHE "'"
OAPI_KEY.GRAVE "`"
OAPI_KEY.LSHIFT Left Shift key
OAPI_KEY.BACKSLASH "\"
OAPI_KEY.Z "Z"
OAPI_KEY.X "X"
OAPI_KEY.C "C"
OAPI_KEY.V "V"
OAPI_KEY.B "B"
OAPI_KEY.N "N"
OAPI_KEY.M "M"
OAPI_KEY.COMMA ","
OAPI_KEY.PERIOD "."
OAPI_KEY.SLASH "/"
OAPI_KEY.RSHIFT Right shift key
OAPI_KEY.MULTIPLY "*" on numeric keypad
OAPI_KEY.LALT Left Alt key
OAPI_KEY.SPACE Space bar
OAPI_KEY.CAPITAL Caps lock key
OAPI_KEY.F1 F1 function key
OAPI_KEY.F2 F2 function key
OAPI_KEY.F3 F3 function key
OAPI_KEY.F4 F4 function key
OAPI_KEY.F5 F5 function key
OAPI_KEY.F6 F6 function key
OAPI_KEY.F7 F7 function key
OAPI_KEY.F8 F8 function key
OAPI_KEY.F9 F9 function key
OAPI_KEY.F10 F10 function key
OAPI_KEY.NUMLOCK Num lock key
OAPI_KEY.SCROLL Scroll lock key
OAPI_KEY.NUMPAD7 "7" on numeric keypad
OAPI_KEY.NUMPAD8 "8" on numeric keypad
OAPI_KEY.NUMPAD9 "9" on numeric keypad
OAPI_KEY.SUBTRACT "-" on numeric keypad
OAPI_KEY.NUMPAD4 "4" on numeric keypad
OAPI_KEY.NUMPAD5 "5" on numeric keypad
OAPI_KEY.NUMPAD6 "6" on numeric keypad
OAPI_KEY.ADD "+" on numeric keypad
OAPI_KEY.NUMPAD1 "1" on numeric keypad
OAPI_KEY.NUMPAD2 "2" on numeric keypad
OAPI_KEY.NUMPAD3 "3" on numeric keypad
OAPI_KEY.NUMPAD0 "0" on numeric keypad
OAPI_KEY.DECIMAL "." on numeric keypad
OAPI_KEY.OEM_102 "|", "<", ">" on UK/German keyboards
OAPI_KEY.F11 F11 function key
OAPI_KEY.F12 F12 function key
OAPI_KEY.NUMPADENTER Enter key on numeric keypad
OAPI_KEY.RCONTROL Right Control key
OAPI_KEY.DIVIDE "/" on numeric keypad
OAPI_KEY.RALT Right Alt key
OAPI_KEY.HOME Home key on cursor keypad
OAPI_KEY.UP Up-arrow on cursor keypad
OAPI_KEY.PRIOR PgUp on cursor keypad
OAPI_KEY.LEFT Left-arrow on cursor keypad
OAPI_KEY.RIGHT Right-arrow on cursor keypad
OAPI_KEY.END End key on cursor keypad
OAPI_KEY.DOWN Down-arrow on cursor keypad
OAPI_KEY.NEXT PgDn on cursor keypad
OAPI_KEY.INSERT Insert key on cursor keypad
OAPI_KEY.DELETE Delete key on cursor keypad
Nulentout:
Entre autre vous pouvez voir mon T.B. sur le lien :
http://orbiter.dansteph.com/forum/index.php?topic=2469.0
Wa!! C'est bô!
Est-ce que ça commence à "vivre"?
Bravo, ça avance bien!
Mais je ne comprends pas bien. Je croyais que PIGOU était implanté dans les cartes Arduino,
mais s'il est en Java, je ne vois pas.
Joli site web ! Avec du code en plus :turning:
Merci à tous vos commentaires me touchent :eek:, c'est un plaisir de voir que mon projet suscite de l'intérêt .voui voui voui... :applause: