Schema electronique de la carte mere:
Clique droit "Afficher l'image" pour voir en taille normal |
Avant toutes choses, il faut savoir que les schémas et PCB sont disponibles à la fin du dossier en téléchargement.
On distingue de suite les périphériques connectés autour de l'ATMEGA 32 :
- Les drivers RS485 qui relieront la caméra à la carte mère par le biais d'un connecteur mini DIN. La sortie de IC8 arrive sur PB3 et l'émission de données se fait par IC9 avec l'entrée DI connectée sur PB4. La gestion du protocole et identique à une liaison RS232, il sera donc géré de manière logicielle.
- L'horloge I2C en temps réel est pilotée par un quartz de 32.768 Khz. Le bus I2C est mis au rappel à l'aide des résistances R10 et R11 de valeurs 3.3k. Vous serez peut être étonner que le dispositif ne se serve pas du périphérique I2C intégré à l'ATMEGA; raison de routage et d'implantation on obligé à recourir à une gestion de bus entierement logiciel. C19 sera un condensateur non ajustable contrairement aux habitudes : la place occupé par celui ci m'aurait posé quelques problemes, n'oublions pas que le circuit imprimé est du type simple face.
- Tout les ports A,C ainsi qu'une bonne partie de D et un peu de B pilote le disque dur.
- Le module USB est connecté de manière à tirer son alimentation du bus informatique.
- le relais KA1 sert à alimenter le module caméra et dans le même temps d'effectuer un RESET de celui ci. En effet le module caméra ne dispose pas de broche de reset et surtout son protocole de communication est multi vitesse. Que ce passerait-il si pendant la configuration de la vitesse d'échange venait s'intercaler une erreur, et bien il n'y aurait aucun moyen de reconfigurer le module : un seul moyen le hard reset !
Le schéma de l'alimentation n'est pas représenter ici, il n'a rien de particulier. A noter la présence d'un régulateur de forte intensité affin de diminuer la dissipation du régulateur mis en place sur un dissipateur classique. L'alimentation générale s'effectue par un
bloc secteur 9 V, 1A.
bloc secteur 9 V, 1A.
Schema electronique de la carte camera :
Clique droit "Afficher l'image" pour voir en taille normal |
Liste des composants
R1,R2,R7,R8 : 120 ohms R3 : 5K1 R4 : 8k2 R5 : 10 K R6,R9,R12,R13 : 330 ohms R10,R11 : 3k3 C1,C3,C4,C5,C7,C9,C10,C12,C13,C14,C15,C18 : 100 nf C2 : 10 uF / 16V C6,C8 : 2,2 uF / 16 V C11 : 470 uF / 16V C16,C17 : 22 pF C19 : 15 pF C20 : 4.7 uF /16 V D1,10 : Led 3mm verte D2 : 1N4007 D3 : diode transil SA5.0A D4,D9 : Led 3mm Rouge D5,D7,D8 : 1N4148 D6 : Led 3mm Orange KM1 : Relais miniature TQ5V BAT1 : pile lithium 3V (DL2025) + support pour CI | IC1 : Régulateur 78L05 IC2 : Régulateur LE33CZ IC3,IC4,IC8,IC9 : MAX485 IC5 : Module caméra CJPEG (ref. lextronic : CJPG380) IC6 : régulateur MC7805CT IC7 : ATMEGA32 16 Mhz IC10 : PCF8583 IC11 : Module Ravar USBMOD3 X1 : Quartz 16 Mhz X2 : Quartz 32768 Khz CON1 : Connecteur male HE10 40 broches Autres : Barrette male secable Supports pour cicuits intégrés Embase circuit imprimé midi-DIN femelle 6 broches Fiche male mini-DIN 6 broches Boitier Velleman G416 boîtier DIPTAL P643 Nappe ide 40 broches Support/pieds pour caméra Disque dur pour PC portable 2"1/2 Adaptateur pour bus ide 3"1/2 --> 2"1/2 Cable 3 paires torsadésKM1 |
Circuits imprimés :
Les circuits imprimés sont du type simple face. Attention à l'écartement entre les pastilles à l'emplacement de la caméra : vérifier les cours circuits éventuels.
Les typons au format PDF sont téléchargeable en fin de dossier. les schémas présentés ci dessous ne sont pas à l'échelle.
Circuit imprimé et implantatiopn des composants de la carte mère:
Cercuit impimé et implantation des composants du module camera :
La programmation de l'ATMEGA32 pourra se faire sur une platine de dvellopement externe ou in-situ à condition de réaliser un adaptateur de programmation. Remarquez que sur le circuit imprimé les princiapales bornes de programmations sont accéssible par le biais de barette secable.
Concerant les fusibles de programmation, respectez la configuration suivante :
Copie d'ecran fusible Pony prog
La vitesse d'horloge est paramétrée sur une source à quartz externe de 16 MHZ, d'ou le bit CKOPT = 0
il faut aussi mettre le port JTAG en mode disable.
La circuiterie de reset interne sera aussi piloté par le BOD interne à un seuil de 4 V.
il faut aussi mettre le port JTAG en mode disable.
La circuiterie de reset interne sera aussi piloté par le BOD interne à un seuil de 4 V.
Ensuite effectuez comme d'habitude la compilation du fichier source sous AVR STUDIO et flasher avec le fichier .HEX obtenu.
Montage et mise en boitier:
Nous commencerons par la carte mère. Après avoir bien dégraisser le circuit imprimé avec de l'alcool, vérifiez que le circuit entre bien dans la base du boîtier.
Commencez par la mise en place des straps. Vous vous apercevrez que l'un des straps passe au dessus des autres, il faudrat donc l'isoler avec de la gaine thermo-rétractable ou encore souder un morceau de fil de cablage. | Implantez de suite les consensateurs C16,C17 et C13 en les disposant comme ci dessous avant de mettre en place le support de circuit intégré. |
Laissez de coté KA1 et le régulateur puis soudez le reste des composants en commencant du plus petit au plus gros. Pensez à laisser les LED à 2 cm de hauteur pour celle qui sont proches du module USB afin de pouvoir les courbées et de les faires apparaitre sur la face avant du boitier.
Pour la mise en place du régulateur, commencez par effectuer la découpe sur la flasque du boitier pour le débordement de l'embase DIN. Juste à coté, prevoyer le percement des trous pour la fixation du dissipateur et découpez une fente afin de laisser passer les 3 fils du régulateur |
Fixez l'ensemble disipateur + régulateur en courbant les broches de manière à pouvoir les récupérer de l'autre coté de la flasque. Soudez les 3 fils au régulateur, isolez à l'aide gaine thermo et raccorder electriquement sur le cicuit imprimé via les barettes sécables. Isolez de nouveaux avec la gaine thermo-rétractable. Profitez-en pour passer et raccorder le cable d'alimentation du bloc secteur. |
La mise en place de KA1 est un peu particulière étant donné le peu de place restante sur la platine, mais n'est d'aucune difficulté majeure :
Coupez la broche du relais TQ comme indiqué sur la photo. !!! attention au sens du relais ,aidez vous à l'aide du détrompeur | Soudez le relais à 90° sur le circuit imprimé, reliez la borne 1 du relais à l'emplacement libre à coté de la diode de roue libre avec un strap | Pour terminer, préparez 2 morceaux de fils à cabler comme dans l'exemple ci dessous : |
Maintenant, on peut metre sous tension, sans avoir mis en place les différents circuits intégrés, et vérifier qu'il n'y ai aucun cours circuit et que la polarité de l'alimentation est respecté à l'aide de la diode de signalisation D1.
On peut maintenant mettre en place les circuits intégrés et le microcontroleur ATMEGA32 après l'avoir programmé (voir plus loin les explications pour le réglage des fusibles). Pour terminer l'implantation des composants, soudez les 2 bornes d'alimentation sortant de l'adaptateur disque dur 2"1/2 - 3" 1/2 à l'emplacement prévu à cet effet puis connectez le disque dur avec la nappe IDE que vous aurez préalablement coupée au plus court.
Vue générale de l'ensemble carte mere et disque dur
La mise en place du disque dur dans le boitier demande un dernier effort : il faut absolument trancher le passage supérieur des vis de fixations afin que le blocage dur disque soit parfait. Le plus facile étant de chauffer une lame de cuter et de découper les entretoises, ensuite un coup de lime viendra parfaire la finition. Terminer la face avant en perçant 3 trous diamètres 3 mm pour le passage des LED et une découpe carré pour le module USB.
Découpe des entretoises de fixation
Le boîtier carte mère et maintenant terminé, passons au module caméra.
Limez les 4 coins du circuit imprimé afin qu'il prenne bien place dans le logement du boîtier. Commencez par mettre en place les straps.
Laissez de coté R3,R4,C2, le module JPEG et continuez l'implantation des composants en plaquant contre le circuit imprimé les condensateurs C6 et C8 comme montré ci dessous. La barrette sécable est soudée à l'envers, c'est à dire picots les plus long coté cuivre.
Laissez de coté R3,R4,C2, le module JPEG et continuez l'implantation des composants en plaquant contre le circuit imprimé les condensateurs C6 et C8 comme montré ci dessous. La barrette sécable est soudée à l'envers, c'est à dire picots les plus long coté cuivre.
Coté cuivre, le condensateur C2 sera plaqué de la même manière que procèdement. soudez maintenant R3 et R4.
Avant de souder le module caméra, nous allons réaliser la prise mini DIN afin de relier et tester la platine caméra. Mais avant de commencer la fiche, percez un trou à l'arrière du boîtier pour laisser passer le câble mutipaires torsadé. Par la même fixer le trépied de caméra.Pour le câblage de la prise DIN, respectez la liaison aux borniers de la caméra à l'aide de la photo :
La platine est prête à être mise sous tension; Raccordez la mini-DIN au boîtier carte mère et mettez le tout en service. Le relais KM1 doit coller de manière cyclique. Vérifier avec un voltmètre la tension d'alimentation des circuits intégrés MAX485 et le 3,3 volt qui arrive au module caméra.
Une fois les tension de services vérifiées, éteignez le montage et préparons la mise en place du module caméra. Une petite modification est à effectué afin de pouvoir souder correctement le module : à l'aide d'un cuter ou d'une pince d'électronicien, coupez le pourtour du connecteur àfin de libérer au mieux les broches du module.
Une fois les tension de services vérifiées, éteignez le montage et préparons la mise en place du module caméra. Une petite modification est à effectué afin de pouvoir souder correctement le module : à l'aide d'un cuter ou d'une pince d'électronicien, coupez le pourtour du connecteur àfin de libérer au mieux les broches du module.
Soudez le module caméra en le placant le pres possible du circuit imprimé. Percez le trou de dégagement pour l'objectif, refermez le boitier : le montage et terminé.
Le module camera :
La caméra utilisée et un module miniature qui à la particularité d'encoder directement les captures réalisées sous un format JPEG. Caractéristiques : - Alimentation: + 3,3 VCC - Sortie série (TX / RX / GND) 115.2 K/bps - Restitution d'images au format JPEG - Restitution d'images basse résolution (160 x 128 @ 8 bpp avec 0,75 à 6 fps) - CODEG JPEG avec résolution et réglage de qualité variable - Conversion de couleur: 4 / 16 / 256 niveaux de gris - 12 / 16 bits RGB - Capteur "VGA" - Utilisation simple via commande externe - Dimensions : 20 x 28 mm Téléchargement du datasheet de la caméra CJPEG |
La caméra CJPG 380 est disponible chez Lextronic sous la même référence. Sont brochage est le suivant
- Le jeu d'instructions de la caméra
Le module et pilotable à l'aide d'un jeu de 11 instructions résumées ci après. Les commandes respectent le protocole série RS232 dont voici un exemple de trame :
Le jeu d'instructions du module :
Pour plus d'informations concernant l'utilisation du jeu d'instructions, merci de bien vouloir consulter le datasheet constructeur.
- Initialisation
A la mise sous tension la vitesse de communication par défaut du module est de 9600 Bds. C'est à cette vitesse que nous effectuerons sont initialisation. La phase d'initialisation consiste à envoyer la commande SYNC (AA 0E 0D xx 00 00) jusqu'a ce que le module réponde par un acquittement (ACK) et une synchronisation (SYNC). Cette opération est à effectué 60 fois au maximum, imparti ce nombre d'essaie, il est préférable de réaliser un hard reset. Généralement le module répond au bout de la 25 ème tentatives. Une fois la réponse reçue, il faut impérativement la validé par un nouvelle commande SYNC
Ci dessous l'organigramme de la procédure de reset :
Ci dessous l'organigramme de la procédure de reset :
- Réalisation d'une capture
Dans le projet Camrecorder, nous utiliserons la caméra à sa vitesse de communication maximale, soit 115200 Bps.
Aussitôt après la phase de reset et d'établissement de la communication avec le module, le microcontrôleur enverra la commande
SET BAUDRATE suivante : AA 07 0F 01 00 00, vérifiable à l'aide du tableau d'instructions.
Aussitôt après la phase de reset et d'établissement de la communication avec le module, le microcontrôleur enverra la commande
SET BAUDRATE suivante : AA 07 0F 01 00 00, vérifiable à l'aide du tableau d'instructions.
Ensuite et dans l'ordre il faut envoyer les commandes suivantes afin de récupérer un snap JPEG de dimension 320 x 480 :
- INITIAL : AA 01 00 07 05 05 (réglage du type de couleur et format image)
- SET PACKAGE SIZE : AA 06 08 00 02 00 (parametrage de la taille des paquets contenant l'information)
- GET PICTURE : AA 04 05 00 00 00 (prévisualisation JPEG)
Bien entendu, la prise en compte de chaque commande est validée du coté module par un ACK.
Interessons nous maintenant à la structure des paquets retournés aussitôt envoyé la commande GET PICTURE; Ils contiennent l'image compressée sous format JPEG.
Tous les fichiers JPEG comprennent un entête contenant les informations de taille, palette de couleur et type de compression. La suite du fichier JPEG est constituée de l'image par elle même. Cette image et bien sur inexploitable sans le Codec correspondant.
Ce qui nous interresse n'est pas de décoder l'image en temps réel, bien que cela reste possible, mais de récupérer les paquets que l'on va coller les uns à la suite des autres pour parvenir à la construction du fichier totale. Je rappelle au passage que la caméra peut très bien être utilisée sans Codec : noir et blanc ou couleur... mais la taille de l'image récupérée et bien évidement supérieure au JPEG
Tous les fichiers JPEG comprennent un entête contenant les informations de taille, palette de couleur et type de compression. La suite du fichier JPEG est constituée de l'image par elle même. Cette image et bien sur inexploitable sans le Codec correspondant.
Ce qui nous interresse n'est pas de décoder l'image en temps réel, bien que cela reste possible, mais de récupérer les paquets que l'on va coller les uns à la suite des autres pour parvenir à la construction du fichier totale. Je rappelle au passage que la caméra peut très bien être utilisée sans Codec : noir et blanc ou couleur... mais la taille de l'image récupérée et bien évidement supérieure au JPEG
Pour revenir sur la structure des paquets, nous avions décidé de fixer leurs taille à 512 octet, on récupérera dans un paquet les informations suivantes visualisées à l'aide de winhex :
Comme le datasheet nous l'indique, les 2 premiers octets nous donne le numéro de paquet, par conséquent comme il s'agit du premier, il est identifié 00 00 , le deuxième lui sera 01 00, il faut effectivement inverser les octets.
Les 2 octets suivants renseigne sur la taille utile occupée pas les informations du fichiers JPEG par lui même sans celles spécifiques au module JPEG; comme expliqué précedement , nous avons la valeur FA 01, qui une fois inversé donne $01FA soit en décimale : 506.
Les 2 derniers octets sont un code de vérification, un genre de checksums, bien que je n'ai aucune information à ce sujet.
Les 2 octets suivants renseigne sur la taille utile occupée pas les informations du fichiers JPEG par lui même sans celles spécifiques au module JPEG; comme expliqué précedement , nous avons la valeur FA 01, qui une fois inversé donne $01FA soit en décimale : 506.
Les 2 derniers octets sont un code de vérification, un genre de checksums, bien que je n'ai aucune information à ce sujet.
Maintenant, il reste donc à enlever les octets ne faisant pas partis de l'image elle même, puis de créer un fichier dans lequel sera mis suite à suite les prochains paquets en effectuant le même type d'ablations d'informations. En le nommant monfichier.jpg, il pourra être visualisé dans toute sorte de logiciels photos ou navigateurs.
Une dernière précision : aussitôt envoyé la commande GET PICTURE, le module retourne 12 octets , les 6 premiers étant l'ACK normale et les 6 autres contenants la taille du snap.
Le programme assembleur: | |
Le Fichier principal se nomme Camrecorder.asm, il est accompagné de 4 fichiers de bibliothèques :
Pensez à mettre ses fichiers ainsi que celui de définition "M32def.inc" dans le même répertoire. Créez un nouveau projet sous AVR studio et flashez avec le fichier .Hex obtenu. La programmation des fusibles de l'ATMEGA32 est présentée dans la section correspondante. Il serait beaucoup trop long et fastidieux de développer totalement le fonctionnement point par point du programme. Cependant voici quelques explications :
Après la mise sous tension, le programme effectue la classique initialisation des périphériques du microcontrôleur ainsi que celle des variables système. Dans le même temps le module caméra est paramétrée pour fonctionner à 115200 Bps Ensuite le programme va vérifié si le disque dur connecté est vierge ou à déjà fonctionné au paravent. Un disque déjà utilisé comporte la trame de caractère "Camrecorder V1.0" en tout début de secteur 1. - Si le disque est nouveau ou ne contiens pas la chaîne de caractères mentionnée au paravent, le programme le formate suivant une architecture bien précise; Tout d'abord il crée dans différents secteurs les informations "par défaut" pour le fonctionnement de Camrecorder. . Le secteur de boot contiens une sauvegarde des informations inhérentes au disque dur et se termine par la même chaîne de caractères qui compose son début. Le second est constitué de la chaîne d'exclusions horaire : une journée représente une successions de bit représentant chacun une tranche d'un quart d'heure Dans le cas ou le média est reconnu valide et prêt à fonctionner, le logiciel charge en mémoire RAM toutes les informations contenues dans les secteurs de boot en respectant l'architecture suivante : Ensuite une vérification du secteur courant, sauvegardé dans la ram de l'horloge I2C à lieu. Un système de doublon augmente la fiabilité du système en cas de coupure de courant au moment même de l'inscription de ces informations. Dans le pire des cas Camrecorder ne restera pas en sommeil : une nouvelle configuration sera crée avec comme mode par défaut : magnétoscope.
Le logiciel effectue en permanence un contrôle du mode d'enregistrement choisi. En mode magnétoscope des snapshoot sont réalisés en un laps de temps le plus court possible. Le mode externe est composé de 2 sous menu : - algorithmique : le déclenchement de l'enregistrement prends effet si une différence de taille d'image à lieu d'une capture à une autre. - mode externe : un niveau bas sur PB7 déclenche immédiatement une succession de snapshoot. Les informations JPEG sont inscrites les unes apres les autres. L'image se termine par un enregistrement spécifique qui marque la fin d'une capture et permet au programme de les reconnaître sans avoir besoin de lire toutes les informations : On retrouve la chaîne de caractères "snap" puis le numéro de secteur auquel débute l'image, un numéro de loop et enfin la date et l'heure de la capture. Si vous souhaitez avoir plus de renseignements sur une partie précise du programme, merci de poser vos questions sur le forum. |
Le logiciel d'exploitation: | |
Après avoir télécharger le fichier programme et le framwork.net si vous ne l'avez jamais installé, cliquez sur setup.exe et suivez les recommandations. Je vous conseille de laisser les options par défaut. N'oubliez pas non plus d'installer les drivers pour le module USB (voir si nécessaire la réalisation de l'analyseur logique) Le logiciel place automatiquement un raccourci sur le bureau et dans le menu programme de l'utilisateur. Après lancement du logiciel, la fenêtre principale apparaît : on trouve en haut le menu principal, au centre la zone d'affichage des captures avec en dessous des boutons de lecture. La zone de droite et consacré au téléchargement des alarmes. La première chose à faire et de configurer le port de communication en cliquant sur "Logiciel" dans le menu. A ce moment choisissez le numéro de port ou est connecté Camrecorder.
- Ouvrir : comme son nom l'indique, il sert visualiser un snap précèdement enregistré. - Sauver : permet de sauvegarder l'image affichée dans la fenêtre de visualisation - Imprimer : imprime l'image affichée dans la fenêtre de visualisation - Logiciel : ouvre la fenêtre de configuration du logiciel - Caméra : ouvre la fenêtre de configuration de Camrecorder - infos : informations sur la version du programme - Quitter : comme son nom l'indique !
Vous remarquerez sans doute que l'ouverture de cette fenêtre peut prendre un certain temps : en effet le logiciel attends que Camrecorder finisse l'enregistrement courant avant de charger toutes les informations à afficher. C'est ici que les réglages principaux sont accessible. Pour le moment n'appuyer pas sur le bouton sauvegarde avant d'avoir sélectionné tout les paramètres de fonctionnement. Tout d'abord choisissez le mode d'enregistrement : - Magnétoscope : Enregistre en permanence les images issues de la caméra - Externe : le choix de ce mode permet l'acces à 2 autres :
On remarque aussi le bouton "Synchroniser" qui permet de mettre à l'heure Camrecorder. Le bouton "Vider le cache" sert à effacer l'historique des alarmes téléchargées : en effet quand on visualise une alarme, le logiciel garde le fichier sur disque dur à l'emplacement "Program Files/Camrecorder/Buffer". Cet endroit est à conservé en tête puisqu'il permet de faire une sauvegarde de plusieurs snap à l'aide des commandes classiques windows ou bien encore de faire un aperçu miniature. Passons sur l'onglet "Exclusions Horaire" Les exclusions horaire permettent de mettre en veille le dispositif : il s'agit de plage horaire durant laquelle Camrecorder n'enregistre pas. Cela permet de filtrer des événements répétitifs dont vous connaissez les causes. Les exclusions sont programmables par tranche d'un quart d'heure. Double cliquez sur une tranche horaire pour faire changer sa couleur. La couleur rouge signifie que le dispositif est en veille. L'onglet " Réglage Algorithme" permet, si vous utilisez ce mode, de faire des essais de sensibilité :L'idéal étant de positionner de manière définitive la caméra, d'ajuster au mieux le focus puis de demander une personne de servir de test pour les déplacements. Démarrer le réglage en appuyant sur le bouton "START" Le réglage est à effectuer à gauche. Les images capturées sont visualisées en temps réel et le petit patch vert passe au rouge pour signaler une alarme par détection de mouvement. Noter que la taille d'image varie en fonctions de l'eclairement et de la couleur principale du paysage se situant devant l'objectif. Arreter le test en appuyant sur le bouton "Stop" Le dernier onglet donne des informations concernant le disque dur. Le bouton "Formater la configuration" incrémente le numéro de loop et redéfini le secteur de début. La fonction du numéro de loop est de permettre d'identifier si les alarmes téléchargées font bien partie du jeu d'enregistrement courant. Confirmez la configurations en appuyant sur "Sauvegarder". Vous pourrez à tout moment revenir dans ce menu par curiosité, à ce moment faite "Retour" afin d"éviter un redémarrage de Camrecorder.
La liste "Saut secteur" permet de sauter, de manière configurable, des informations se suivant. Si vous souhaitez avoir plus de recul, choisisser un nombre de saut secteur important. Terminez l'opération en appuyant sur "Télécharger" Une fois que vous aurez trouver la plage horaire susceptible de vous interresser, sélectionner l'alarme avec un simple click, puis redéfinissez vos paramètres "nombre d'alarme à charger" et "saut secteur" qui forcément devrait finir par 1 pour avoir un maximum de détail. Pour effacer la liste des alarmes cliquez sur "Effacer" Une fois la liste des alarmes que vous souhaitez visualiser et chargée dans le publicateur, plusieurs solutions s'offre à vous : - Vous décidez de visualiser quelques capture; double cliquer sur l'alarme correspondante et elle s'affichera rapidement dans la fenêtre de visualisation - Vous souhaiter tout regarder; cliquez alors sur le bouton "retour rapide" en bas de la fenêtre de visualisation qui à pour effet de rendre active la dernière alarme de la liste, puis cliquez sur lecture. Les snap sont alors télécharger un par un et s'affiche consécutivement dans la zone de visualisation. Si une image à déjà été télécharger, le logiciel l'affichera sans avoir besoin de se connecter à Camrecorder. C'est pour cela que sont stockée toutes les images sur le disque dur et ainsi gagné du temps de chargement. Une fois arrivé en début de liste, vous pouvez recommencer l'opération de retour/lecture, cette fois ci aucun temps de chargement n'est à prévoir. La présentation du logiciel est terminée. Son utilisation est complémenté par des bulles d'aides qui s'affichent sur chaque bouton. |
Aucun commentaire:
Enregistrer un commentaire