Binome2022-11 : Différence entre versions

De Wiki de bureau d'études PeiP
(Différentes étapes du projet avec lien d'accès au photos et vidéo additionnel)
(Différentes étapes du projet avec lien d'accès au photos et vidéo additionnel)
Ligne 71 : Ligne 71 :
 
Concernant la programmation, nous avons d'abord écrit un code test pour leds et nous nous sommes rendu compte que ce test ne fonctionnait pas. Cela était dû au fait que les deux atmega n'ont pas le même nom pour le programmateur alors qu'ils fonctionnent de la même façon. Nous avons donc modifier le code du programmateur en ajoutant "-F" devant certaines indications afin de demander au programmateur de ne pas prendre en compte le nom de l'atmega. Cette solution s'est avérée efficace pour le test des leds et le fonctionnement des micro-contrôlleurs. Cependant, lors du programme pour accéder à la caméra et prendre des photos, nous avons été bloquer à cause des indications que nous avions faites précedement lors du test des leds. Nous n'avons pas eu le temps de résoudre ce problème et notre carte finale fonctionne mais le code n'étant pas finalisé elle ne nous permet pas d'accéder à la caméra alors que nous avions réussi pour la première carte.
 
Concernant la programmation, nous avons d'abord écrit un code test pour leds et nous nous sommes rendu compte que ce test ne fonctionnait pas. Cela était dû au fait que les deux atmega n'ont pas le même nom pour le programmateur alors qu'ils fonctionnent de la même façon. Nous avons donc modifier le code du programmateur en ajoutant "-F" devant certaines indications afin de demander au programmateur de ne pas prendre en compte le nom de l'atmega. Cette solution s'est avérée efficace pour le test des leds et le fonctionnement des micro-contrôlleurs. Cependant, lors du programme pour accéder à la caméra et prendre des photos, nous avons été bloquer à cause des indications que nous avions faites précedement lors du test des leds. Nous n'avons pas eu le temps de résoudre ce problème et notre carte finale fonctionne mais le code n'étant pas finalisé elle ne nous permet pas d'accéder à la caméra alors que nous avions réussi pour la première carte.
  
[[Fichier:test_code_dfu.png]]
+
[[Fichier:test_code_dfu.png|750px]]
  
 
=<div class="mcwiki-header" style="border-radius: 15px; padding: 15px; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 80%; background: #000080; vertical-align: top; width: 98%;"> Rendus  </div>=   
 
=<div class="mcwiki-header" style="border-radius: 15px; padding: 15px; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 80%; background: #000080; vertical-align: top; width: 98%;"> Rendus  </div>=   

Version du 16 mai 2023 à 23:06

Introduction

Pour commencer, le but de ce BE est de découvrir la spécialité systèmes embarqués : pour cela nous avons dû choisir entre réaliser un clavier ou une clé usb avec une caractéristique de notre choix. Nous avons décider de réaliser une clé usb avec une webcam intégrée et des leds pour nous indiquer le fonctionnement de la webcam.

Fonctionnalité supplémentaire

Réalisation d'une webcam :

  • plusieurs led pour indiquer si la cam capte les informations et repérer l'intensité de la lumière ce qui va nous permettre de savoir si elle est fonctionnelle ;
  • envoyer l'image si cela fonctionne (par port série par exemple ) ;
  • stocker l'image et la visionner avec un utilitaire sur le PC.

Liste composants

Pour la première carte :

  • boutons poussoirs EVQ-Q2F01W ;
  • LED CMS d'empreinte 0603 ;
  • Arducam OV2640 (voir https://www.ebay.fr/itm/225123490375, commandé) ;
  • connecteur AMPHENOL FCI F32R-1A7H1-11024 ;
  • ATMega328p CMS, horloge 16Mhz CMS empreinte 11x4mm.

Il existe une bibliothèque IDE Arduino pour Arducam : https://github.com/ArduCAM/Arduino.

Ne pas oublier le connecteur ISP (2x3 broches, espacement 2,54mm) pour programmer l'ATMega328p et le connecteur USB (https://www.sparkfun.com/products/587) pour alimenter la carte.

Vous pouvez commencer à concevoir le schéma du premier circuit.

Différentes étapes du projet avec lien d'accès au photos et vidéo additionnel

Lors des premières séances nous avons pu réaliser la liste de nos composants ainsi que créer le schéma de notre première carte.

Photo shema.png

Puis nous avons commencé à souder les composants sur la carte intermédiaire.

2022 B10 Circuit imprime1.jpg

On a réaliser le meilleur pcb possible de la carte avec le moins de fils possibles en bottom.

Photo pcb carte1.png

Nous avons utilisé un code pour faire fonctionner les leds et avons dû changer 2 leds qui été dans le mauvais sens. Le code est disponible dans la bibliothèque arducam (lien dans la liste des composants).

2022-B11 LedsOK.jpg

Le code permettant d'accéder à la caméra ne marchait pas car il utilise des ports séries donc nous avons soudé 4 fils en plus ( 1 fil sur le GND, le VCC, 1 sur la patte 31 TX et 1 sur la patte 30 RX ) pour pouvoir connecter un câble rasberry sur l'ordinateur et utiliser les codes de la librairie arduino utilisant un port série. La caméra est bien détecté mais on ne peut pas y accéder et prendre une photo car la librairie pour les ports séries n'était pas installé et une fois installé nous avons réussi à prendre des photos.

Camera.jpg Photo carte1 ok.png

Le 07/04 nous commençons la carte finale, 1 semaine avant les vacances de Pâques.

Nous avons commencé par ajouter un second micro-contrôleur: l'atmega16-U2 afin de ne plus avoir du câble rasberry et de permettre une liaison par port série. Des leds sont connectées à cet atmega comme pour le premier atmega dans le but de vérifier s'ils fonctionnent tous les deux. Nous avons également connecté un deuxième ISP pour cet atmega (qui n'était pas nécessaire) et des bornes RX et TX de sorte à ce que le RX de l'atmega 328P-AU soit connecter au TX de l'atmega16-U2 et que le TX de l'atmega 328P-AU soit connecté au RX de l'atmega16-U2. Enfin, nous avons aussi mis un crystal sur l'atmega16-U2.

Shema carte finale.png

Ensuite, nous avons réalisé le routage de notre carte finale avant les vacances afin que la carte puisse être imprimée pour la rentrée. Nous n'avons pas rencontré de difficultés particulières lors du routage. Nous avons choisi de faire deux zones sur le pcb: une zone pour chaque atmega afin de nous simplifier le routage de cette carte.

Pcb carte finale.png

Nous avons pu également visualiser notre pcb finale à l'aide de gerber viewer pour mieux regarder les différentes faces de ce dernier.

Gerberview carte finale.png

Lors de la dernière semaine de BE nous avons profiter des séances facultatives pour souder les composants sur notre carte finale.

Carte finale1.jpg Carte finale2.jpg

Concernant la programmation, nous avons d'abord écrit un code test pour leds et nous nous sommes rendu compte que ce test ne fonctionnait pas. Cela était dû au fait que les deux atmega n'ont pas le même nom pour le programmateur alors qu'ils fonctionnent de la même façon. Nous avons donc modifier le code du programmateur en ajoutant "-F" devant certaines indications afin de demander au programmateur de ne pas prendre en compte le nom de l'atmega. Cette solution s'est avérée efficace pour le test des leds et le fonctionnement des micro-contrôlleurs. Cependant, lors du programme pour accéder à la caméra et prendre des photos, nous avons été bloquer à cause des indications que nous avions faites précedement lors du test des leds. Nous n'avons pas eu le temps de résoudre ce problème et notre carte finale fonctionne mais le code n'étant pas finalisé elle ne nous permet pas d'accéder à la caméra alors que nous avions réussi pour la première carte.

Test code dfu.png

Rendus

media:PEIP_B11.zip : dossier contenant l'intégralité des fichiers de la 1ère carte

Conclusion