Montage d'une caméra numérique USB




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. 

 Schema electronique de la carte camera :

Clique droit "Afficher l'image" pour voir en taille normal
On retrouve les convertisseurs MAX485 afin de remettre en forme les signaux de communications. Un petit diviseur de tension composé de R3 et R4 est nécessaire afin de faire chuter la tension de sortie du drivers MAX485 de 5 à 3 Volts. La génération des tensions d'alimentation sont effectuées directement sur place afin de pouvoir disposer d'une distance entre le module et la carte mère relativement importante.


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.
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.
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.
                            
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 :

  • 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.
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
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.
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.




Aucun commentaire:

Enregistrer un commentaire