Videosurveillance_files/Pilotage monture Orion

Transcription

Videosurveillance_files/Pilotage monture Orion
TP " VID EO SURV EI LLANC E"
Pilotage de la monture azimutale Orion
Moyens :
un serveur web VIVOTEK VS1700 configuré, sauf la commande de la caméra
un switch ou un hub Ethernet (au moins 2 embases RJ45)
deux câbles Ethernet courts non croisés
une caméra analogique PAL
une monture motorisée Orion "TeleTrack"
un câble vidéo à terminaisons CINCH
un adaptateur BNC mâle / CINCH femelle
le module d'interface "VS7100/TeleTrack"
un émulateur/programmateur pour microcontrôleurs PIC24 (PICkit2 ou PICkit3)
l'instrumentation du laboratoire, dont un analyseur logique disposant de fonctions de décodage du
format série asynchrone
Logiciels :
Internet Explorer
"Plug In" pour Internet Explorer installé
"MPLAB"
Le serveur VS7100 dispose de fonctions de pilotage d'une caméra motorisée. Les protocoles standards
"Pelco D" et "Pelco P" sont supportés, ainsi que quelques caméras motorisés disponibles sur le marché.
Les commandes sont transmises sur un bus RS485 sous forme de trames au format asynchrone. La liaison
est du type "simplex".
Malheureusement, la monture "TeleTrack" utilisée n'est pas directement compatible :
- la liaison est bien du type asynchrone, mais ne respecte pas la recommandation RS485
- le protocole "Orion/TeleTrack" n'est pas géré par le serveur VS7100.
Il est donc nécessaire d'utiliser une interface de connexion entre le serveur VS7100 et la monture Orion
"TeleTrack". Cette passerelle réalise la traduction des trames RS485 "Pelco D" du serveur VS7100 en
trames conformes au protocole "Orion/TeleTrack".
L'objet de ce TP est de contrôler le bon fonctionnement de cette passerelle, sur les aspects matériel et
logiciel.
1. Mise en œuvre du serveur VS7100 et configuration de base
1.1 Câblage
Attention à ne pas confondre les différents adaptateurs secteurs.
Déconnecter le PC du réseau Ethernet du lycée et connecter le câble sur le switch/hub
Connecter le PC et le serveur vidéo sur le switch/hub
Fixer la caméra sur la monture Orion
Connecter la sortie vidéo de la caméra sur le serveur
Insérer l'interface "VS7100/TeleTrack" entre le bornier du VS7100 et l'une des embases RJ11 (elles
sont connectées en parallèle à l'intérieur de la monture). Déconnecter la télécommande à fil le cas
échéant.
1.2
Connexion au serveur
Utiliser Internet Explorer pour se connecter au serveur web VS7100
Vérifier la transmission de l'image captée par la caméra
Vidéosurveillance – Pilotage de la monture azimutale Orion-TeleTrack
1.3 Configuration simple de la commande de la caméra
Aucune fonction n'est activée au départ :
Sélectionner "Caméra PTZ"
Choisir alors les paramètres suivants :
- Identificateur : 1
- Pilote : protocole "Pelco D"
- Format série : 9600,8,1 sans parité
SET HOME : à compléter
1.4 Contrôle du format sur la sortie RS485
Le document RS485 résume les spécifications de ce bus.
Positionner les cavaliers JP1 et JP2 de l'interface "VS7100/TeleTrack" pour charger le bus RS485
avec son impédance nominale et le déconnecter de toute autre structure en aval.
Revenir à la page d'accueil du serveur et cliquer sur le bouton de déplacement vers la droite (PAN
RIGHT)
Relever à l'oscilloscope les signaux nommés "RS485_A" et "RS485_B" par rapport à GND. Régler
l'oscilloscope pour capturer la trame entière et le retour à l'état de repos.
En déduire la durée d'activation du "driver" RS485 du serveur, et les niveaux VOH et VOL en mode
commun et différentiel.
Relever les 2 premiers octets de la trame.
Identifier les bits "Start", "Stop" et "Datas" de chaque octet.
En déduire les valeurs des 2 octets.
Proposer un mode opératoire pour contrôler la vitesse de transmission avec la meilleure précision
possible.
Mesurer la durée du bit "Stop"
1.5 Contrôle de quelques trames "Pelco D"
Il s'agit d'analyser quelques trames typiques émises par le serveur et de contrôler leur conformité au
protocole "Pelco D" (voir document "Protocole Pelco D.pdf").
Configurer l'analyseur logique "Digiview" ou "ZeroPlus" pour capturer et décoder les trames émises
par le serveur.
Déclencher un mouvement vers la droite. Le serveur VS7100 produit 2 trames espacées de 500mS au
relâchement du bouton de la souris.
Régler l'analyseur logique pour observer au mieux ces 2 trames
Identifier les 3 zones caractéristiques du signal série asynchrone : "break" (signal longtemps à "0"),
trames, état de repos.
Réaliser un zoom sur la première trame pour identifier chaque octet
Contrôler le respect du protocole.
Opérer de même sur la 2° trame.
Quelle est son action d'après le protocole "Pelco D" ?
Note : cette 2ième trame est ignorée par l'interface étudiée.
Capturer et analyser la 1° trame produite au déclenchement d'un mouvement TILT avec une vitesse
"-5".
Même question avec un mouvement PAN à gauche à vitesse max.
CREMMEL Marcel
Page 2/5
08/11/10
Vidéosurveillance – Pilotage de la monture azimutale Orion-TeleTrack
2. Interface avec la monture Orion TeleTrack
La monture "TeleTrack" n'est pas directement compatible avec le protocole "Pelco D" :
- La liaison est bien du type asynchrone, mais n'utilise pas le bus RS485
- Le protocole de cette monture n'est pas géré par le serveur.
Il est donc nécessaire d'utiliser une interface de connexion réalisant la passerelle entre le serveur VS7100 et
la monture Orion "TeleTrack". Elle utilise un microcontrôleur de la famille PIC24 qui réalise l'essentiel des
fonctions.
2.1 Schéma fonctionnel
Dans la mesure du possible, les identificateurs utilisés se retrouvent dans le schéma structurel et dans le
source du programme.
Le schéma fonctionnel se divise en 2 parties :
- réception et décodage des trames "Pelco D" transmises par le serveur VS7100
- codage des trames de commande et transmission vers la monture Orion/Teletrack, conformément à
son protocole
RS485
Première partie :
FP1
Mise en forme
RS485 vers
signal série
asynchrone
"0V/3,3V"
Deuxième partie :
BufferPelcoD[]
RX2
FP2
Réception des
octets
FP3
Accumulation
des trames
Pelco D
Module UART du PIC24
getsUART()
ParsePelcoD()
ControlOrion()
PAN RIGHT
FP5
FP7
PAN LEFT
Codage de la Cmde
Pilotage
de la
TILT UP
trame de
monture Orion
TILT DOWN
commande
/ Teletrack
SET PRESET
(protocole
GOTO PRESET
Orion/
SET HOME
TeleTrack)
GOTO HOME
ReponseOrion
HomeOrion[]
PositionsOrion[][]
FP6
Mémoire des
positions
FP4
Décodage des
trames Pelco D
PAN RIGHT
PAN LEFT
TILT UP
TILT DOWN
SET PRESET
GOTO PRESET
SET HOME
GOTO HOME
ParsePelcoD()
putsUART()
FP8
Transmission
des octets
FP9
Réception des
octets
TX1
RX1
ORION
Monture Orion
Teletrack
getsUART()
Note : les noms des structures matérielles ou
logicielles sont indiqués à proximité des fonctions.
2.2 Fonction FP1
Le signal RS485_A fourni par le serveur VS7100 est presque conforme au signal série asynchrone attendu
par le module UART (FP2) du microcontrôleur. L'anomalie est le retour au niveau L après la transmission de
la trame.
Ce changement d'état est dû à la mise en "haute impédance" du driver RS485 du VS7100 pour libérer le bus.
L'anomalie est facilement éliminée par une résistance de tirage vers l'alimentation : R14.
La charge R15=120Ω ne doit plus être utilisée.
Proposer les positions des cavaliers JP1 et JP2.
Relever un chronogramme de validation de cette fonction.
CREMMEL Marcel
Page 3/5
08/11/10
Vidéosurveillance – Pilotage de la monture azimutale Orion-TeleTrack
2.3 Fonctions FP2 et FP3
Il s'agit de contrôler l'affectation de la variable "BufferPelcoD[]" (sortie de FP3) à la réception d'une
trame en provenance du serveur VS7100.
Positionner correctement les interrupteurs de SW1 et le cavalier JP3.
Lancer MPLAB et ouvrir le projet "PTZ Conversion" et chargeant le workspace "PTZ Conversion".
Vérifier le choix du Debugger (Pickit2 ou Pickit3) et la configuration de la compilation (Debug)
Compiler le programme et programmer le PIC24
Placer un point d'arrêt à l'instruction de test de la variable N dans la boucle principale.
Lancer le programme et déclencher un déplacement à droite de la monture
Pourquoi la monture ne tourne pas ?
En analysant la boucle sans fin principale, quels évènements doivent se produire pour que le
programme atteigne le point d'arrêt.
Vérifier l'affectation de la variable "BufferPelcoD[]"
Supprimer le point d'arrêt.
2.4 Fonction FP4 : décodage des trames "Pelco D"
Le décodage des trames Pelco D est réalisé par la fonction C "ParsePelcoD()".
Parmi les commandes traitées, on contrôle ici la détection des 4 commandes de mouvement : PAN droit et
gauche et TILT droit et gauche.
Placer un point d'arrêt à l'instruction de test multiple de la variable "BufferPelcoD[2]" (octet
"Command 2" de la trame) dans la fonction "ParsePelcoD()".
Faire un "reset" et relancer le programme puis déclencher un déplacement à droite de la monture
Quels évènements doivent se produire pour que le programme atteigne le point d'arrêt.
Exécuter le programme en mode "pas à pas" pour contrôler la détection de la commande de
déplacement.
Valider de la même façon la détection des 3 autres mouvements.
2.5 Fonction FP5 et FP7 à FP9
Il s'agit de contrôler la bonne exécution de ces fonctions dans le cas de la commande PAN vers la droite.
Ces fonctions sont réalisées par la fonction C "ControlOrion()". Elle comporte 3 arguments, dans
l'ordre :
- "Cmde" : pointeur (ou adresse) vers la chaîne de caractère de la commande transmise à la monture.
Les commandes prises en compte sont décrites dans le document "Protocole Orion TeleTrack"
- "Reponse" : pointeur vers une variable tableau qui contiendra la réponse de la monture. Chaque
commande comporte une réponse, même s'il ne s'agit que d'un acquittement
- "NbCharRep" : nombre de caractères maximum attendus pour la réponse. Cet argument permet de
limiter la durée du "Timeout" si la monture n'est pas connectée et ne renvoie jamais de réponse.
Placer un point d'arrêt au premier appel de la fonction "ControlOrion()" correspondant à cette
commande.
Faire un "reset" et relancer le programme puis déclencher un déplacement à droite de la monture.
Noter les valeurs des variables "VitessePAN" et "String" au point d'arrêt. Sont-elles conformes aux 2
instructions d'affectation qui précèdent ?
La séquence de commandes transmise à la monture est-elle conforme au protocole ?
Retirer le point d'arrêt, faire un "reset" et relancer le programme puis
- relever à l'oscilloscope et à l'analyseur logique les trames sur les signaux RX2 (réception
commande VS7100) et ORION (RX1=TX1) au déclenchement d'un mouvement à droite de la
monture.
- veiller à arrêter le mouvement avant de poursuivre !
- expliquer les écarts de niveaux constatés sur le signal ORION. Justifier le rôle de R2 et D1.
- vérifier la conformité des niveaux H et L avec la TTL
- identifier sur le chronogramme de l'analyseur logique les commandes et les réponses
échangées avec la monture Orion/TeleTrack
CREMMEL Marcel
Page 4/5
08/11/10
Vidéosurveillance – Pilotage de la monture azimutale Orion-TeleTrack
Interrompre le programme pour replacer le point d'arrêt et relancer le programme.
Déclencher un mouvement à droite de la monture.
Exécuter alors le programme en mode "pas à pas" pour entrer dans la fonction "ControlOrion()"
à son premier appel.
Note : le PIC24 utilisé permet d'aiguiller les E/S des modules internes vers pratiquement n'importe quel port
du microcontrôleur. Les équivalences suivantes déterminent ces multiplexages :
- MappingRX1 : l'entrée RX1 du module UART1 est "mappée" sur RB10 (broche 21). Il s'agit de la
configuration par défaut.
- UnMappRX1 : l'entrée RX1 du module UART1 est déconnectée de toute broche du µC.
- MappingTX1 : la sortie TX1 du module UART1 est "mappée" sur RB9 (broche 18).
- UnMappTX1 : la sortie TX1 du module UART1 est déconnectée de toute broche du µC. Le port
RB9 passe en "haute impédance". Il s'agit de la configuration par défaut.
La fonction commence par déconnecter l'entrée RX1 du module UART1 du port RB10 (broche 21)
avant de transmettre la commande sur TX1. Pour quelle raison ?
La fonction "putsUART1()" déclenche la transmission de la commande donnée en argument et la
fonction "BusyUART1()" renvoie une valeur vraie dès que le module de transmission est à nouveau
disponible.
Pourquoi la sortie TX1 n'est-elle mappée sur RB9 que durant la transmission de la commande ?
Relancer le programme et contrôler l'affectation de la variable "ReponseOrion".
2.6 Fonction FP6
Cette fonction doit permettre la prise en compte des commandes étendues du protocole "Pelco D" (voir
document "Protocole Pelco D").
2.6.1 Commandes "Set Home"
Placer deux points d'arrêt sur les lignes d'affectation de la variable "HomeOrion[]"
Relancer le programme, puis déplacer la monture vers sa position initiale (en PAN et TILT)
Cliquer sur le bouton "Set Home" et noter l'état des variables "ReponseOrion" et "HomeOrion" au
premier point d'arrêt.
Relancer le programme jusqu'au 2° point d'arrêt et opérer de même.
2.6.2 Commande "Home"
Cette commande doit permettre le retour de la monture à sa position initiale en un seul clic.
Retirer les 2 points d'arrêt précédents et en placer un sur le premier appel de la fonction
"ControlOrion()" dans le traitement de cette commande.
Relancer le programme sans faire de "reset"
Déplacer la monture en PAN et TILT à volonté, puis cliquer sur le bouton "Home"
Vérifier au point d'arrêt que la variable "String" est bien affectée avec la commande permettant le
déplacement vers la position initiale en PAN
Placer un point d'arrêt au premier appel de la fonction "ControlOrion()" du déplacement
TILT vers la position initiale et relancer le programme
Contrôler le bon retour de la tête à sa position initiale en PAN à la vitesse max
Vérifier au point d'arrêt que la variable "String" est bien affectée avec la commande permettant le
déplacement vers la position initiale en TILT
Contrôler le bon retour de la tête à sa position initiale en TILT à la vitesse max
CREMMEL Marcel
Page 5/5
08/11/10