SIV TechnologiePourquoi avoir réalisé SIV alors qu'il en existe déjà plusieurs sur le marché ? C'est suite à trois longues années d'études et de prospection à travers le monde que nous avons décidé de réaliser ce projet. .: SIV a pour but de satisfaire les plus expérimentés, avec des sources autonomes et ouvertes, jusqu'au novice voulant simplement programmer les multiples fonctions disponibles, via un Soft simple d'utilisation. NB : Un logiciel est en cours de réalisation pour que toutes les démarches qui suivent deviennent un jeu d'enfant. ;-) Voici un petit descriptif et mode d'emploi d'une partie de ses fonctions ( Pour les professionnels uniquement ) :
Manuel d'utilisation
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MENU |
Annexes |
Annexe A – Caractéristiques |
L’utilisation de SIV se fait en deux étapes :
Exemple de script à utiliser pour calibrer la carte (attention, après chaque commande de formatage, ces paramètres sont réinitialisés) . A partir des paramètres par défaut (offset 800,70, resolution 200,150), ajuster par petit palier ces paramètres.
mode : MIRE ;
offset: 400,38;
resolution: 336,268;
Voir en annexe le script utilisé pour définir l’affichage de la première page.
Envoie de valeurs pour affichage.
Exemple de script pour initialiser le timer à 3 minutes (03:00).
siv: 9,16E,180; timer à 180 secondes
[ Haut ]
Dans les cadres en couleur, la première ligne indique la syntaxe pour l’interpréteur « PC_SIV.EXE » et la seconde ligne donne le code hexadécimal à transmettre par la liaison série.
La trame d’octets envoyée à SIV a le format suivant : « type, nombre, somme, détail de la commande »
type = |
0x1E pour les commandes systèmes 0x4B pour les commandes de configuration 0x87 pour les commandes opérationnelles |
|
nombre = |
nombre d’octets du détail de la commande | |
somme = |
somme sur 8 bits des octets du détail de la commande |
| Attente avant l’exécution de la commande suivante |
| attente : temps ; |
| temps = nombre de millisecondes |
| Cette commande doit être utilisée après une commande système afin de laisser du temps à SIV pour s’initialiser (~500mS) ou formater l’EEPROM (~2500ms). |
| Formate l’EEPROM |
| format ; 1E, 02, ss, 08, F7 |
| Pendant le formatage, la Led de SIV clignote. |
| Cette commande rétablit les réglages usines. |
| Reset du système |
| reset : type ; 1E, 02, ss, 01, tt |
| type = FROID (tt=01) ou CHAUD (tt=02) |
| Mode d’affichage |
| mode : mode ; 1E, 02, ss, 02, mm |
| mode = NORMAL (mm=01) ou MIRE (mm=02) |
| Le mode mire est à utiliser pour déterminer les paramètres optimums d’offset et de résolution. |
| Offset de l’affichage |
| offset : x, y ; 1E, 05, ss, 11, xx, xx, yy, yy |
| x = à partir de 1 (xx,xx) y = à partir de 1 (yy,yy) |
| ATTENTION, x et y ne sont pas exprimés en pixels. Après un formatage de l’EEPROM, les valeurs par défaut sont x=800 et y=70. |
| Résolution de l’affichage |
| resolution : x, y ; 1E, 05, ss, 12, xx, xx, yy, yy |
| x = à partir de 1 (xx,xx) y = à partir de 1 (yy,yy) |
| Après un formatage de l’EEPROM, les valeurs par défaut sont x=200 et y=150. |
| Définition d’une zone |
| zone : zone, couleur, x, y, largeur, hauteur ; 4B, 0B, ss, 02, zz, cc, xx, xx, yy, yy, ll, ll, hh, hh |
| zone = 1 à 8 (zz) couleur = TRANSPARENT (cc=00), NOIR (cc=01), BLANC(cc=03) x = à partir de 1 (xx,xx) Y = à partir de 1 (yy,yy) largeur = à partir de 1 (ll,ll) hauteur = à partir de 1 (hh,hh) |
| Note : la somme des tailles des zones (largeur x hauteur) ne doit pas dépasser 56000 pixels. |
| Définition d’une variable |
| variable : numéro, format ; 4B, 03, ss, 01, nn, ff |
| numéro = 1 à 64 (nn) format = 08E (ff=01), 16E (ff=02), 16R (ff=03), 24R (ff=04), 32R (ff=05) (voir annexe Format des variables) |
| Affichage d’une ligne horizontale |
| elt.ligne_h : zone, x, y, couleur, longueur ; 4B, 10, ss, 04, zz, 01, xx, xx, yy, yy, ll, ll, 00, 00, 00, 00, cc, 00, 00 |
| zone = 1 à 8 (zz) x = à partir de 1 (xx,xx) Y = à partir de 1 (yy,yy) couleur = TRANSPARENT (cc=00), NOIR (cc=01), BLANC (cc=03) longueur = à partir de 1 (ll,ll) |
| Affichage d’une ligne verticale |
| elt.ligne_v : zone, x, y, couleur, longueur ; 4B, 10, ss, 04, zz, 02, xx, xx, yy, yy, 00, 00, hh, hh, 00, 00, cc, 00, 00 |
| zone = 1 à 8 (zz) x = à partir de 1 (xx,xx) Y = à partir de 1 (yy,yy) couleur = TRANSPARENT (cc=00), NOIR (cc=01), BLANC (cc=03) longueur = à partir de 1 (hh,hh) |
| Affichage d’un rectangle |
| elt.rectangle : zone, x, y, couleur, largeur, longueur ; 4B, 10, ss, 04, zz, 03, xx, xx, yy, yy, ll, ll, hh, hh, 00, 00, cc, 00, 00 |
| zone = 1 à 8 (zz) x = à partir de 1 (xx,xx) Y = à partir de 1 (yy,yy) couleur = TRANSPARENT (cc=00), NOIR (cc=01), BLANC (cc=03) largeur = à partir de 1 (ll,ll) longueur = à partir de 1 (hh,hh) |
| Affichage d’un texte |
| elt.texte : zone, x, y, couleur, police, texte ; 4B, nn, ss, 04, zz, 04, xx, xx, yy, yy, 00, 00, 00, 00, 00, 00, cc, pp, ll, chaine |
| zone = 1 à 8 (zz) x = à partir de 1 (xx,xx) y = à partir de 1 (yy,yy) couleur = TRANSPARENT (cc=00), NOIR (cc=01), BLANC (cc=03) police = 1, 2, 3 (pp) (voir annexe Table de caractères-Police) texte = chaine de caractères (ll=longueur de la chaîne, chaîne=liste des codes caractères)(voir annexe Table de caractères-Police) |
| Note : la longueur d’une chaîne est limitée à 48 caractères. |
| Affichage d’un voyant |
| elt.voyant : zone, x, y, variable, couleur 1, couleur 2 ; 4B, 10, ss, 04, zz, 05, xx, xx, yy, yy, 00, 00, 00, 00, vv, 00, c1, c2, 00 |
|
| zone = 1 à 8 (zz) x = à partir de 1 (xx,xx) Y = à partir de 1 (yy,yy) variable = numéro de la variable associée (vv) couleur 1 = TRANSPARENT (c1=00), NOIR (c1=01), BLANC (c1=03) couleur 2 = TRANSPARENT (c2=00), NOIR (c2=01), BLANC (c2=03) |
|
![]() 15 x 15 pixels |
En vert : couleur de la zone Le voyant est allumé (partie bleu) lorsque la valeur de la variable associée est différente de 0. |
| Affichage d’une alerte |
| elt.alerte : zone, x, y, variable, couleur, police, texte ; 4B, nn, ss, 04, zz, 06, xx, xx, yy, yy, 00, 00, 00, 00, vv, 00, cc, pp, ll, chaine |
| zone = 1 à 8 (zz) x = à partir de 1 (xx,xx) y = à partir de 1 (yy,yy) variable = numéro de la variable associée (vv) Couleur = TRANSPARENT (cc=00), NOIR (cc=01), BLANC (cc=03) police = 1, 2, 3 (pp) (voir annexe Table de caractères-Police) texte = chaîne de caractères (ll=longueur de la chaîne, chaîne=liste des codes caractères)(voir annexe Table de caractères-Police) |
| Note : la longueur d’une chaîne est limitée à 48 caractères. Le texte est affiché lorsque la valeur de la variable associée est différente de 0. |
| Affichage d’une valeur |
| elt.valeur : zone, x, y, variable, couleur, police, signe, entier, décimal ; 4B, 13, ss, 04, zz, 07, xx, xx, yy, yy, 00, 00, 00, 00, vv, 00, cc, 00, pp, sg, ne, nd |
| zone = 1 à 8 (zz) x = à partir de 1 (xx,xx) y = à partir de 1 (yy,yy) variable = numéro de la variable associée (vv) couleur = TRANSPARENT (cc=00), NOIR (cc=01), BLANC (cc=03) police = 1, 2, 3 (pp) (voir annexe Table de caractères-Police) signe = O (sg=01), N (sg=00), affichage du signe Oui/Non entier = 1..5 (ne), nombre de chiffre pour la partie entière décimal = 0..2 (nd), nombre de chiffre pour la partie décimale |
| Affichage d’un temps |
| elt.temps : zone, x, y, variable, couleur, police ; 4B, 10, ss, 04, zz, 08, xx, xx, yy, yy, 00, 00, 00, 00, vv, 00, cc, 00, pp |
| zone = 1 à 8 (zz) x = à partir de 1 (xx,xx) Y = à partir de 1 (yy,yy) variable = numéro de la variable associée (vv) couleur = TRANSPARENT (cc=00), NOIR (cc=01), BLANC (cc=03) police = 1, 2, 3 (pp) (voir annexe Table de caractères-Police) |
| La variable contient un temps en secondes ou en minutes, l’affichage est alors respectivement au format MM:SS et HH:MM. |
| Affichage d’un curseur horizontal |
| elt.curseur_h : zone, x, y, variable, couleur 1, couleur 2, largeur ; 4B, 10, ss, 04, zz, 09, xx, xx, yy, yy, ll, ll, 00, 00, vv, 00, c1, c2, 00 |
|
| zone = 1 à 8 (zz) x = à partir de 1 (xx,xx) Y = à partir de 1 (yy,yy) variable = numéro de la variable associée (vv) couleur 1 = TRANSPARENT (c1=00), NOIR (c1=01), BLANC (c1=03) couleur 2 = TRANSPARENT (c2=00), NOIR (c2=01), BLANC (c2=03) largeur = à partir de 1 (ll,ll) |
|
largeur x 10 pixels En vert : couleur de la zone |
Position du curseur en fonction de la valeur de la variable : gauche pour –1024, Note : pour encadrer cet élément avec une marge de 1 pixel, utiliser un élément cadre avec les valeurs : x_cadre = x_curseur – 2 |
| Affichage d ’un curseur vertical |
| elt.curseur_v : zone, x, y, variable, couleur 1, couleur 2, hauteur ; 4B, 10, ss, 04, zz, 0A, xx, xx, yy, yy, 00, 00, hh, hh, vv, 00, c1, c2, 00 |
|
| Zone = 1 à 8 (zz) x = à partir de 1 (xx,xx) Y = à partir de 1 (yy,yy) variable = numéro de la variable associée (vv) couleur 1 = TRANSPARENT (c1=00), NOIR (c1=01), BLANC (c1=03) couleur 2 = TRANSPARENT (c2=00), NOIR (c2=01), BLANC (c2=03) hauteur = à partir de 1 (hh,hh) |
|
Taille de l’élément : 10 x hauteur pixels En vert : couleur de la zone Position du curseur en fonction de la valeur de la variable : haut pour +1024, Note : pour encadrer cet élément avec une marge de 1 pixel, utiliser un élément cadre avec les valeurs : x_cadre = x_curseur – 2 |
|
| Affichage d’un niveau horizontal |
| elt.niveau_h : zone, x, y, variable, couleur , largeur, hauteur ; 4B, 10, ss, 04, zz, 0B, xx, xx, yy, yy, ll, ll, hh, hh, vv, 00, cc, 00, 00 |
|
| zone = 1 à 8 (zz) x = à partir de 1 (xx,xx) Y = à partir de 1 (yy,yy) variable = numéro de la variable associée (vv) Couleur = TRANSPARENT (c1=00), NOIR (c1=01), BLANC (c1=03) largeur = à partir de 1 (ll,ll) hauteur = à partir de 1 (hh,hh) |
|
![]() largeur x hauteur pixels |
En vert : couleur de la zone Position du niveau en fonction de la valeur de la variable : vide (image en haut) pour 0, Note : pour encadrer cet élément avec une marge de 1 pixel, utiliser un élément cadre avec les valeurs : x_cadre = x_curseur – 2 |
| Affichage d’un niveau vertical |
| elt.niveau_v : zone, x, y, variable, couleur , largeur, hauteur ; 4B, 10, ss, 04, zz, 0C, xx, xx, yy, yy, ll, ll, hh, hh, vv, 00, cc, 00, 00 |
|
| zone = 1 à 8 (zz) x = à partir de 1 (xx,xx) Y = à partir de 1 (yy,yy) variable = numéro de la variable associée (vv) Couleur = TRANSPARENT (c1=00), NOIR (c1=01), BLANC (c1=03) largeur = à partir de 1 (ll,ll) hauteur = à partir de 1 (hh,hh) |
|
![]() largeur x hauteur pixels |
En vert : couleur de la zone Position du niveau en fonction de la valeur de la variable : vide (image en haut) pour 0, Note : pour encadrer cet élément avec une marge de 1 pixel, utiliser un élément cadre avec les valeurs : x_cadre = x_curseur – 2 |
| Affichage d’un horizon artificiel |
| elt.horizon : zone, x, y, variable T, variable R, couleur 1, couleur 2 ; 4B, 10, ss, 04, zz, 0D, xx, xx, yy, yy, 00, 00, 00, 00, vt, vr, c1, c2, 00 |
|
| zone = 1 à 8 (zz) x = à partir de 1 (xx,xx) Y = à partir de 1 (yy,yy) variable T = numéro de la variable associée pour le tangage (v1) variable R = numéro de la variable associée pour le roulis (v2) couleur 1 = TRANSPARENT (c1=00), NOIR (c1=01), BLANC (c1=03) couleur 2 = TRANSPARENT (c2=00), NOIR (c2=01), BLANC (c2=03) |
|
![]() |
Taille de l’élément : 91 x 165 pixels En vert : couleur de la zone Valeur de la variable de tangage : de –179 à +180 à +180°, l’horizon est au niveau de l’index supérieur Valeur de la variable de roulis : de –179 à +180
Note : l’affichage de cet élément n’est réalisé que lors de la commande siv correspondant à la mise à jour de la variable de tangage. |
| Affichage d’un cadran |
| elt.cadran : zone, x, y, variable, couleur 1, couleur 2 ; 4B, 10, ss, 04, zz, 0E, xx, xx, yy, yy, 00, 00, 00, 00, vv, 00, c1, c2, 00 |
|
| zone = 1 à 8 (zz) x = à partir de 1 (xx,xx) Y = à partir de 1 (yy,yy) variable = numéro de la variable associée (vv) couleur 1 = TRANSPARENT (c1=00), NOIR (c1=01), BLANC (c1=03) couleur 2 = TRANSPARENT (c2=00), NOIR (c2=01), BLANC (c2=03) |
|
![]() |
Taille de l’élément : 29 x 29 pixels En vert : couleur de la zone La valeur de la variable doit être compris entre 0 (°) et +359 (°). La flèche tourne dans le sens horaire. |
| Transmission d’une valeur de variable |
| siv : variable, format, valeur ; 87, nb, ss, nn, vv , ... |
| variable = 1 à 64 (nn) format = 08E, 16E, 16R, 24R, 32R (voir annexe Format des variables) valeur = valeur de la variable (vv,…) |
Alimentation (V) : |
6 à 12 | ||
Courant (mA) : |
100 | ||
Divers : |
protection contre les inversions de polarité, protection contre les surtensions des entrées séries. |
Physique :
Dimension (Lxlxh en mm) : |
35 x 50 x 9 | ||
Poids carte seule (g) : |
10 | ||
Poids total (g) : |
11 |
Vitesse port (bauds) : |
9600 | ||
Format : |
8 bits, 1 bit stop, pas de parité |
Vidéo : |
PAL |
Les connecteurs sont de la marque JST, série PHR.
| Entrée vidéo | Sortie vidéo | Commande | |||||
| 1 | Masse | 1 | Masse | 1 | Masse | ||
| 2 | Vidéo | 2 | Vidéo | 2 | Rx (entrée) | ||
| 3 | Tx (sortie) | ||||||
| 4 | +Batterie | ||||||
Annexe B – Table des caractères - Polices
Codification des caractères :
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
| 0 | ! | “ | # | $ | % | £ | ‘ | ( | ) | * | + | , | - | . | / | |
| 1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
| 2 | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
| 3 | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ |
| 4 | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
| 5 | p | q | r | s | t | u | v | w | x | y | z | { | | | } | ~ |
Exemple : le caractère ‘A’ est codé 0x21 en hexadécimal
| Numéro | Code | Taille en pixels (largeur x hauteur) |
| 1 | 01 | 7 x 9 |
| 2 | 02 | 10 x 13 |
| 3 | 03 | 12 x 16 |
| Code | Nom | Taille | Format | Valeurs approximatives |
| 08E | Entier 8 bits | 1 octet | eeeeeeee | ± 100 |
| 16E | Entier 16 bits | 2 octets | eeeeeeee eeeeeeee | ± 32 000 |
| 16R | Réel 16 bits | 2 octets | eeeeeeee eeeedddd | ± 2 000 |
| 24R | Réel 24 bits | 3 octets | eeeeeeee eeeeeeee dddddddd | ± 32 000 |
| 32R | Réel 32 bits | 4 octets | eeeeeeee eeeeeeee eeeeeeee dddddddd | ± 8 300 000 |
| e = partie entière signée d = partie décimale |
||||
Annexe D – Convertisseur RS232 – Série 3.3V
Schéma utilisé pour commander SIV à partir de la sortie série d’un PC.

Annexe E – Liste des codes erreurs
Après chaque commande, SIV renvoie un octet pour indiquer le résultat de la commande :
0x00 pas d’erreur
0xFF erreur transmission
0xFE erreur intégrité code commande
0xFD erreur somme code commande
0xFC erreur type commande inconnue
0xFB erreur type instruction inconnue
0xFA erreur élément inconnu
0xF9 erreur nombre de paramètres
0xF8 plus de place pour élément
0xEF erreur paramètre zone ou variable
0xEE erreur paramètre x
0xED erreur paramètre y
0xEC erreur paramètre l
0xEB erreur paramètre h
0xEA erreur type variable ou élément
0xE9 erreur police
0xE8 erreur variable
0xE7 pas d'élément associé à la variable
0xE6 erreur format
Annexe F – Exemple de script de définition
; formatage de l'EEPROM
format;
attente: 2500;
; modification des paramètres d'affichage pour utiliser au maximum l'espace
offset: 400,38;
resolution: 336,268;
; zone 1 : l'horizon artificiel
zone: 1,TRANSPARENT,122,44,96,168;
variable: 1,16E;
variable: 2,16E;
elt.horizon: 1,2,1,1,2,NOIR,NOIR;
; zone 2 : titre (altitude et chronomètre)
zone: 2,NOIR,100,1,136,32;
elt.cadre: 2,1,1,BLANC,135,31;
variable: 8,16E;
elt.texte: 2,5,3,GRIS,1,Altitude;
elt.valeur: 2,10,15,8,BLANC,3,N,4,0;
variable: 9,16E;
elt.texte: 2,78,3,BLANC,1,Chrono;
elt.temps: 2,75,17,9,BLANC,2;
; zone 3 : barre du bas avec indicateurs
zone: 3,TRANSPARENT,1,240,240,28;
elt.texte: 3,1,1,BLANC,1,cadi-rc;
elt.texte: 3,15,14,BLANC,2,TD;
elt.texte: 3,75,1,BLANC,1,Rec.;
variable: 3,16E;
elt.voyant: 3,80,14,3,BLANC,BLANC;
elt.texte: 3,105,1,BLANC,1,Bat.;
variable: 4,16E;
elt.voyant: 3,110,14,4,BLANC,BLANC;
elt.texte: 3,150,1,BLANC,1,Carburant;
variable: 5,16E;
elt.cadre: 3,148,13,BLANC,84,14;
elt.niveau_h: 3,150,15,5,BLANC,80,10;
; zone 4 : alerte
zone: 4,TRANSPARENT,68,216,200,15;
variable: 10,16E;
elt.alerte: 4,25,1,10,BLANC,2,Batterie faible;
variable: 11,16E;
elt.alerte: 4,45,1,11,BLANC,2,Perte radio;
; zone 5 : orientation de la caméra
zone: 5,TRANSPARENT,285,215,50,50;
elt.texte: 5,5,15,BLANC,1,cam.;
variable: 6,16E;
elt.curseur_h: 5,1,40,6,BLANC,BLANC,40;
variable: 7,16E;
elt.curseur_v: 5,38,1,7,BLANC,BLANC,40;
;zone 6 : gestion du modèle par rapport au pilote
zone: 6,TRANSPARENT,286,1,48,65;
elt.texte: 6,3,1,BLANC,1,Modele;
variable: 12,16E;
elt.valeur: 6,6,12,12,BLANC,3,N,3,0;
variable: 13,16E;
elt.cadran: 6,9,32,13,BLANC,BLANC;
; zone 7 : informations diverses sur la gauche
zone: 7,TRANSPARENT,1,30,48,160;
elt.texte: 7,9,1,BLANC,2,RPM;
elt.texte: 7,6,17,BLANC,1,x1000;
elt.cadre: 7,2,27,BLANC,45,18;
variable: 14,16E;
elt.valeur: 7,5,30,14,BLANC,2,N,2,1;
elt.texte: 7,15,50,BLANC,2,X;
elt.cadre: 7,8,68,BLANC,32,84;
variable: 15,16E;
elt.curseur_v: 7,12,70,15,BLANC,BLANC,80;
variable: 16,16E;
elt.curseur_v: 7,26,70,16,BLANC,BLANC,80;
; initialisation des variables
reset:CHAUD;
attente:100;
siv: 2,16E,0; roulis
siv: 1,16E,0; tangage
siv: 3,16E,0; réception
siv: 4,16E,0; batterie
siv: 5,16E,0; carburant
siv: 6,16E,0; camera h
siv: 7,16E,0; camera v
siv: 8,16E,0; altitude
siv: 9,16E,0; timer
siv: 10,16E,0; alerte batterie
siv: 11,16E,0; alerte réception
siv: 12,16E,0; distance
siv: 13,16E,0; orientation
siv: 14,16E,0; vitesse
siv: 15,16E,0; curseur 1
siv: 16,16E,0; curseur 2
[ Haut ]