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