PAE 2021 Vol de ruche 2

De Learning Lab Environnements Connectés
Sauter à la navigation Sauter à la recherche
Drone déguisé en abeille

Les apiculteurs doivent faire face à beaucoup de problèmes pour maintenir une production de miel durable.
Entre les attaques de frelons et les produits nocifs utilisés à proximité des ruches, les abeilles sont exposées à
une surmortalité grandissante. Pour remédier à ce problème, certains apiculteurs n'hésitent pas à voler
les ruches à proximité. Ces attaques entre apiculteurs ne cessent d'augmenter, rendant les conditions de
travail et de vie très difficiles pour les apiculteurs victimes de ces vols.
Dans ce qui suit nous vous présentons nos solutions pour remédier à ce problème.


Travail de réflexion préparatoire

Notre travail est de détecter une perturbation puis d'en informer l'utilisateur. Pour détecter le mouvement de la ruche nous allons utiliser un accéléromètre. Nous comptons tout d'abord effectuer un échantillonnage afin de faciliter le traitement et l'analyse du signal. Avant de réaliser un récupération d'information, il faut calibrer les axes afin que les données reçues correspondent à celles attendues. Pour déterminer si il y a présence ou non de mouvement nous allons réaliser un seuillage, afin de ne pas prendre en compte les petites variations de mouvement. Cette étape de seuillage nous permettrait de récupérer un bit d'état renvoyant 1 si il y a détection de mouvement, ou 0 sinon. Pour réaliser ce projet, nous comptons utiliser une carte PSoC étant donné que nous avions quelques connaissances suite à l'APP2 et aux TP.

Séance 1 : 15/03

Travail effectué

ADXL335

Déterminations des blocs à utiliser :

  1. Gain, pour récupérer un signal analogique
  2. CAN, pour numériser le signal


Réflexion sur les solutions qui vont être développées. (travail de réflexion préparatoire)

Documentation sur l'accéléromètre ADXL335.
Datasheet ADXL335 :
https://www.mouser.fr/Analog-Devices-Inc/Sensors/Motion-Position-Sensors/Accelerometers/Datasheets/_/N-axgd7?Keyword=adxl335&FS=True&P=1yyh4l4&gclid=EAIaIQobChMIubyKhP-x7wIVkMLtCh3opwiyEAAYASAAEgISmfD_BwE


Travail à faire
Echantillonner les valeurs et les afficher pour observer la cohérence des valeurs récupérées.

Séance 2 : 22/03

Travail effectué
Durant cette séance nous nous sommes penchées sur la partie logicielle et code de notre projet. Nous voulions dans un premier temps afficher la valeur échantillonnée et la valeur en volt pour vérifier le bon fonctionnement de notre système.
Nous nous sommes d'abord préoccupées que d'un seul axe, l'axe z.
Voici le code permettant l'affichage des bits et des volts sur l'écran LCD.

Description de la boucle while :


Whilecode.JPG


Travail à faire
Conversion des valeurs en sortie du CAN en g.

Séance 3 : 01/04

Travail effectué
L'objet de cette séance était d'établir la formule reliant l'accélération à la tension en sortie de l'accéléromètre. Cette phase est nécessaire pour pouvoir calibrer notre système et déterminer nos seuils permettant de signaler si il y a un mouvement ou non. Pour ce faire nous avons mesuré la valeur en volt en sortie de l'accéléromètre en positionnant l'accéléromètre de manière précise.

Positionsadxl.JPG

En suivant la datasheet avec les informations ci-dessus nous avons pu déterminer la valeur en volt pour -1,0 et 1 g. Après avoir placé ces valeurs dans un tableur, on a la confirmation que l'accélération est linéaire et de pente -0.33.

Tableur1.JPG


Travail à faire
Maintenant que nous avons obtenu la relation liant la tension à l'accélération, nous pourrons établir le seuillage des valeurs.

Séance 4 : 08/04

Travail effectué
Nous avons affiché les valeurs en sortie de l'accéléromètre :

  1. La valeur échantillonnée, en niveau de bits (en haut à gauche de l'écran)
  2. La valeur convertie en Volt (en haut à droite de l'écran)
  3. La valeur convertie en g (en bas à gauche de l'écran)


App3elec.jpg

Durant cette séance nous avons également déterminé les seuils qui allait nous permettre de déterminer si la ruche est en mouvement ou non.
Voici le code relatif au seuillage :
CodeSeuillage.JPG

Pour déterminer les valeurs choisies, nous avons relevé la valeur échantillonnée à l'arrêt et nous avons estimé à vue d'œil son incertitude.

Travail à faire
Reprendre le projet en prenant en compte un mouvement sur les 3 axes.

Séance 5 : 29/04

Travail effectué
Documentation sur le multiplexeur à utiliser pour prendre en compte les 3 axes. Nous comptons utiliser un AMUX4 ainsi qu'un RefMux.

Travail à faire
Mise en place logicielle et codage de ces différents blocs.

Séance 6 : 04/05

Travail effectué
Restauration du projet suite à la réduction de l'espace de stockage.

Travail à faire
Identique au travail prévu à la séance précédente.

Séance 7 : 18/05

Travail effectué
Durant cette séance nous avons rédigé le code pour la mise en marche du multiplexeur. Ci dessous un extrait des codes modifiés.
Assignation des port :
Codere0f.JPG


Affichage de la valeur en g pour les 3 axes:

Coderef.JPG

Cependant, on remarque que seul le nom des axes s'affiche sur l'écran.

Travail à faire :
Affichage de la valeur en sortie en g des 3 axes.

Séance Finale : 25/05

Travail effectué

  1. Tentative d'affichage des valeurs en sortie en g des 3 axes
  2. Evaluation par les professeurs
  3. Tentative d'application des solution proposées par les professeurs (affichage du message d'alerte pendant 2 secondes)

Conclusion


Pour conclure notre projet s'arrête au stade de la réception d'un mouvement sur l'axe z et l'envoi d'un message sur l'écran LCD du PSoC.
Ci dessous les photos réalisé lors de nos tests :

Ici nous ne détectons aucun mouvements majeur, tout va bien.
Toutvabien.jpg

Ici nous réalisons un mouvement, le message adéquat s'affiche sur l'écran.
Auvoleur.jpg

Objectivement, cette solution n'est pas suffisante pour résoudre le problème de vol de ruches. En effet, si le voleur ne réalise aucun mouvements par rapport à l'axe z, mais le voleur pousse ou tire la ruche uniquement selon l'axe x ou y, le vol ne serait pas détecté. Nous donc avons commencé la réception de l'information du mouvement sur les 3 axes mais nous n'avons pas réussi à bien les récupérer et les afficher sur l'écran LCD.
Nous n'avons également pas eu le temps de nous occuper de la partie de l'envoi du message d'alerte.