89
Université du Québec à Chicoutimi MODULE D’INGÉNIERIE GÉNIE ÉLECTRIQUE 6GIN555 PROJET DE SYNTHÈSE EN INGÉNIERIE Rapport final 2011-256 Système de positionnement GPS pour panneaux solaires Préparé par DUBÉ DANIEL CÔTÉ SHAWN-YANNICK Pour Hung Tien Bui, ing., Ph.D. Université du Québec à Chicoutimi 20 avril 2012 CONSEILLER : Hung Tien Bui, ing., Ph.D. COORDONNATEUR : Jacques Paradis, ing.

Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

Université du Québec à Chicoutimi

MODULE D’INGÉNIERIE

GÉNIE ÉLECTRIQUE

6GIN555 – PROJET DE SYNTHÈSE EN INGÉNIERIE

Rapport final

2011-256

Système de positionnement GPS pour panneaux solaires

Préparé par

DUBÉ DANIEL

CÔTÉ SHAWN-YANNICK

Pour

Hung Tien Bui, ing., Ph.D.

Université du Québec à Chicoutimi

20 avril 2012

CONSEILLER : Hung Tien Bui, ing., Ph.D. COORDONNATEUR : Jacques Paradis, ing.

Page 2: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

Approbation du rapport final pour diffusion

Nom du conseiller

Date

Signature

Page 3: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

Remerciements

L’équipe aimerait tout d’abord remercier Monsieur Hung Tien Bui, professeur en génie électrique au

département des sciences appliquées de l’Université du Québec à Chicoutimi. Étant le conseiller de notre

projet, il a su nous guider et nous livrer des conseils pertinents tout au long de la réalisation de ce projet.

Il nous a accordé beaucoup de son temps et nous en sommes reconnaissants.

Nous souhaitons également remercier Messieurs Francis Deschênes et Richard Martin, techniciens au

département des sciences appliquées de l’Université du Québec à Chicoutimi. Ils nous ont aidés avec des

conseils éclairés ainsi que de bonnes idées.

Nous ne voulons surtout pas oublier les promoteurs de ce projet, Messieurs Jonathan Poirier et Alexandre

Brassard, pour nous avoir permis de travailler sur un beau défi qui a contribué à approfondir nos

connaissances.

Shawn-Yannick Côté

Daniel Dubé

Page 4: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

Résumé

Rés

um

é d

e la

pro

blé

ma

tiq

ue

et

des

ob

ject

ifs

Avec le rendement croissant des panneaux solaires photovoltaïques ainsi que leur prix

continuellement à la baisse, le promoteur du projet désirait utiliser cette source d’énergie

renouvelable pour alimenter en énergie électrique des endroits isolés, tels que des

campements forestiers. Cependant, afin d’augmenter la puissance délivrée et donc le

rendement global d’un tel système, la mise au point d’un prototype permettant le suivi

constant du Soleil est nécessaire.

Il s’agit donc d’utiliser un récepteur GPS pour acquérir les diverses informations de temps et

de lieux requises, puis de les traiter avec un microcontrôleur et des équations

trigonométriques. Ce prototype électronique doit permettre, à terme, de contrôler les deux

axes de positionnement du prototype mécanique prêté par le promoteur.

Rés

um

é d

u t

ravail

réa

lisé

Tout d’abord, une familiarisation avec le sujet a été nécessaire, surtout au niveau des

équations de la position du Soleil et des récepteurs GPS. Puis, un survol des technologies

utilisables a été réalisé avant de commencer les étapes suivantes de conception :

Réalisation d’un simulateur de signal GPS avec Visual Basic;

Recherche des équations de position solaire et validation avec MATLAB;

Calculs des bilans de puissance, des filtres et échauffement des pièces;

Modélisation de la position du panneau en fonction de la rétroaction des vérins;

Programmation en langage C du microcontrôleur 8 bits avec MPLAB IDE;

Sélection des composantes du prototype (GPS, boîtier, alimentation, etc.);

Réalisation du circuit imprimé avec Altium;

Essais finaux de validation.

Rés

um

é d

es c

on

clu

sion

s

Un prototype complet adapté aux besoins du promoteur a été réalisé. En omettant les

limitations mécaniques du support physique, le système est capable de suivre le Soleil à la

trace, peu importe le moment de l’année, de la journée et du lieu sur la planète. Ceci a été

possible avec l’utilisation du système GPS, ainsi que de quelques équations mathématiques

implantées dans le microcontrôleur. Afin d’accompagner cette polyvalence de

fonctionnement, le prototype électronique a été conçu pour résister et fonctionner autant dans

les milieux nordiques que dans les endroits très chauds. Des tests variés, effectués à l’aide

d’un simulateur de signal GPS et du logiciel MATLAB, ont permis de détecter et de corriger

des lacunes et des opérations réalisées de façon incorrecte par le code imaginé par les

concepteurs. Avec ces diverses vérifications, il est possible d’affirmer avec une bonne

certitude que le produit livré est apte à remplir les exigences du promoteur.

Page 5: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

i

Table des matières

I Introduction .......................................................................................................................... 1

I.1 Contexte du projet ..................................................................................................... 1

I.2 Limites et logiques des enchaînements ..................................................................... 1

I.3 Finalité des travaux présentés.................................................................................... 1

II Présentation du projet .......................................................................................................... 2

II.1 Description de l’équipe de travail ............................................................................. 2

II.2 Objectifs généraux et spécifiques du projet............................................................... 3

II.3 Problématique et état de l’art reliés au projet ............................................................ 6

III Aspects techniques et éléments de conception relatifs au projet ......................................... 8

IV Bilan des activités .............................................................................................................. 53

IV.1 Arrimage formation pratique/universitaire .............................................................. 53

IV.2 Travail d’équipe ...................................................................................................... 54

IV.4 Analyse et discussion .............................................................................................. 57

V Conclusion et recommandations ........................................................................................ 59

Bibliographie ............................................................................................................................... 61

Glossaire ...................................................................................................................................... 62

Annexe 1 (Code de simulation MATLAB) .................................................................................... 63

Annexe 2 (Code du microcontrôleur) .......................................................................................... 64

Annexe 3 (Code Visual Basic du simulateur GPS) ........................................................................ 74

Annexe 4 (Éléments abandonnés) .............................................................................................. 75

Annexe 5 (Procédure de fonctionnement) ................................................................................. 80

Annexe 6 (Diagramme de décision) ............................................................................................ 81

Page 6: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

ii

Liste des figures

Figure 1 : Représentation simplifiée du système ........................................................................................... 3 Figure 2 : Montage mécanique (position initiale) ......................................................................................... 4 Figure 3 : Montage mécanique (déploiement maximal en hauteur) .............................................................. 4 Figure 4 : Mécanismes de hauteur et d’azimut (1) ........................................................................................ 5 Figure 5 : Mécanismes de hauteur et d’azimut (2) ........................................................................................ 5 Figure 6 : Plaques de prototypage utilisées pour les essais ........................................................................... 7 Figure 7 : Système de tests ............................................................................................................................ 7 Figure 8 : Organigramme de calcul du numéro du jour de l’année [1] ......................................................... 8 Figure 9 : Organigramme simplifié du diagramme solaire pour une latitude donnée [1] ............................. 9 Figure 10 : Représentation de l’azimut (avec arc sinus) pour le 18 avril (43.6° de latitude) ...................... 12 Figure 11 : Azimut original (avec arc cosinus) pour le 18 avril (43.6° de latitude) .................................... 12 Figure 12 : Azimut modifié (avec arc cosinus) pour le 18 avril (43.6° de latitude) .................................... 13 Figure 13 : Hauteur en fonction de l’azimut pour le 18 avril (latitude=0°) ................................................ 15 Figure 14 : Hauteur en fonction de l’azimut pour le 18 avril (latitude=89.9°) ........................................... 16 Figure 15 : Représentation de l’angle du support selon la hauteur du Soleil .............................................. 17 Figure 16 : Décorticage d’une trame $GPRMC [3] .................................................................................... 18 Figure 17 : Microcontrôleur PIC18F4680 ................................................................................................... 19 Figure 18 : Utilisation finale de la mémoire du microcontrôleur ................................................................ 19 Figure 19 : Récepteur GPS [3] .................................................................................................................... 20 Figure 20 : Convertisseur DC/DC CC3-1205SF-E ..................................................................................... 21 Figure 21 : Régulateur abaisseur SPX1117M3-L-3-3 ................................................................................. 22 Figure 22 : Schéma thermique du Pont en H sans dissipateur thermique ................................................... 23 Figure 23 : Pont en H VNH3SP30TR-E ..................................................................................................... 24 Figure 24 : Connecteur USB avec bouchon protecteur ............................................................................... 24 Figure 25 : Pont USB vers UART CP2102-GM ......................................................................................... 24 Figure 26 : Tampon 74LVC07A ................................................................................................................. 25 Figure 27 : Tableau Tension-Fréquence du microcontrôleur [8] ................................................................ 26 Figure 28 : Cristal ECS-250-18-23A-EN-TR ............................................................................................. 26 Figure 29 : Diodes électroluminescentes .................................................................................................... 27 Figure 30 : Fusibles ..................................................................................................................................... 28 Figure 31 : Boîtier avec joint d’étanchéité .................................................................................................. 28 Figure 32 : Fiches et réceptacles ................................................................................................................. 29 Figure 33 : Représentation générale des interactions .................................................................................. 30 Figure 34 : Approximation par résistances parallèles ................................................................................. 33 Figure 35 : Communication entre le microcontrôleur et le magnétomètre I

2C ........................................... 36

Figure 36 : Communication entre le PIC et le GPS .................................................................................... 36 Figure 37 : Informations en provenance du récepteur GPS ........................................................................ 38 Figure 38 : Asservissement en boucle fermée ............................................................................................. 41 Figure 39 : Valeur de CCPR1L en fonction de l’erreur absolue ................................................................. 42 Figure 40 : Détermination de la hauteur actuelle en fonction de la tension de rétroaction ......................... 44 Figure 41 : Angle de la hauteur en fonction de la tension de rétroaction .................................................... 45 Figure 42 : Détermination de l’azimut actuel en fonction de la tension de rétroaction .............................. 47 Figure 43 : Angle de l’azimut en fonction de la tension de rétroaction (solution non-retenue) .................. 48 Figure 44 : Angle de l’azimut en fonction de la tension de rétroaction (solution retenue) ......................... 49 Figure 45 : Circuit imprimé final ................................................................................................................ 50 Figure 46 : Schématique finale .................................................................................................................... 51 Figure 47 : Branchements internes du prototype......................................................................................... 52 Figure 48 : Système final ............................................................................................................................ 52

Page 7: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

iii

Figure 49 : Coordonnées horizontales d’un astre (azimut a et hauteur h) [1] ............................................. 62 Figure 50 : Simulation du GPS avec Visual Basic ...................................................................................... 74 Figure 51 : Position et utilisation de l’accéléromètre sur 2 axes ................................................................. 75 Figure 52 : Accéléromètre ........................................................................................................................... 75 Figure 53 : Magnétomètre HMC5883L-TR ................................................................................................ 76 Figure 54 : Schéma électrique du PCB de test pour le magnétomètre numérique ...................................... 77 Figure 55 : Schéma électrique du PCB de test pour l’accéléromètre .......................................................... 77 Figure 56 : Plaquette de test du magnétomètre ........................................................................................... 78 Figure 57 : Plaquette de test de l’accéléromètre.......................................................................................... 78 Figure 58 : Plaquette du magnétomètre avant et après le soudage .............................................................. 79 Figure 59 : Plaquette de l’accéléromètre avant et après le soudage ............................................................ 79 Figure 60 : Diagramme de décision, partie 1 .............................................................................................. 81 Figure 61 : Diagramme de décision, partie 2 .............................................................................................. 82

Liste des tableaux

Tableau 1 : Comparaison des valeurs calculées pour le 18 avril à 10:00 (MATLAB vs Code C) .............. 10 Tableau 2 : Comparaison des valeurs calculées (MATLAB vs Université de Nebraska-Lincoln) ............. 11 Tableau 3 : Valeurs pour l’équateur (latitude=0°) le 18 avril ..................................................................... 14 Tableau 4 : Valeurs pour le pôle Nord (latitude=89.9°) le 18 avril ............................................................. 16 Tableau 5 : Tensions de fonctionnement du microcontrôleur et du pont en H ........................................... 25 Tableau 6 : Récapitulatif des caractéristiques principales des pièces ......................................................... 30 Tableau 7 : Prix des pièces du prototype ..................................................................................................... 31 Tableau 8 : Bilan de puissance préliminaire ............................................................................................... 33 Tableau 9 : Tensions d’entrées et de sorties selon la tension d’alimentation du microcontrôleur .............. 35 Tableau 10 : Tensions basses et hautes selon la tension d’alimentation du magnétomètre ........................ 35 Tableau 11 : Tensions d’entrées et de sorties du récepteur GPS ................................................................. 36 Tableau 12 : Justification à droite pour l’ADC ........................................................................................... 40 Tableau 13 : Justification à gauche pour l’ADC ......................................................................................... 40 Tableau 14 : Angles obtenus selon les tensions lues (hauteur) ................................................................... 46 Tableau 15 : Angles obtenus selon les tensions lues (azimut) .................................................................... 47 Tableau 16 : Échéancier final ...................................................................................................................... 56

Page 8: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

1

I Introduction

I.1 Contexte du projet

Comme les camps forestiers ont besoin de générer de l’électricité dans des endroits éloignés et que cette

électricité est produite par des génératrices, on peut s’imaginer que le carburant utilisé provoque bien des

problèmes pour son transport. Heureusement, les cellules solaires photovoltaïques ont des rendements de

plus en plus élevés et comme ils sont maintenant plus abordables, il devient très intéressant de les utiliser.

Ainsi, pour fournir l’énergie électrique généralement produite par d’autres sources d’énergie, telles les

génératrices, l’utilisation de panneaux solaires est tout indiquée. En plus, c’est une méthode bien plus

verte pour l’environnement et elle peut s’inscrire dans un programme de développement durable.

C’est la raison pour laquelle le promoteur du projet a décidé de soumettre sa problématique. Celui-ci

désire alimenter un campement en énergie électrique, tout en se libérant de la nécessité de transporter de

grandes quantités de carburant dans des milieux éloignés. Les panneaux solaires photovoltaïques

devraient donc remplacer, à terme, les génératrices conventionnelles. Cependant, pour augmenter la

puissance délivrée et donc le rendement des panneaux solaires, il est avantageux de les positionner

perpendiculairement au rayonnement solaire. Pour augmenter ce rendement, il faut donc traquer le Soleil

tout au long de la journée et de l’année. Ainsi, il est nécessaire de tenir compte de la date, de la latitude,

ainsi que de l’heure de la journée pour optimiser la position de ces panneaux de façon automatisée.

I.2 Limites et logiques des enchaînements

Pour concrétiser ce projet, il s’agissait donc de commencer par se renseigner sur la science derrière le

déplacement apparent du Soleil et à partir de là, il devenait possible d’imaginer la logique qui permettrait

de réaliser le tout. Les technologies qui s’y prêtaient bien ont été sélectionnées, permettant alors de relier

le matériel et le logiciel ensemble. Afin de confirmer les choix de conception et pour fin d’optimisation,

des tests en milieux réels ont été réalisés.

I.3 Finalité des travaux présentés

Finalement, les objectifs du projet ont été atteints. Plusieurs difficultés de différents types ont évidemment

été rencontrées, que ce soit au niveau de la programmation ou au niveau du matériel électronique qui avait

des principes de fonctionnements inconnus des membres du projet. Des solutions à ces problèmes ont été

trouvées et le présent rapport expose les démarches et les solutions utilisées pour y arriver.

Page 9: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

2

II Présentation du projet

II.1 Description de l’équipe de travail

Les personnes concernées directement par le projet sont les suivantes :

Shawn-Yannick Côté,

Étudiant finissant au baccalauréat en génie électrique,

Université du Québec à Chicoutimi,

2008-2012.

Daniel Dubé,

Étudiant finissant au baccalauréat en génie électrique,

Université du Québec à Chicoutimi,

2008-2012.

Page 10: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

3

II.2 Objectifs généraux et spécifiques du projet

Les objectifs initiaux du projet sont conservés, c’est-à-dire concevoir le prototype d’un système à

microprocesseur qui utilise des données d’espace (latitude) et de temps (date et heure) pour produire un

signal analogique correspondant. Ceci permettra au promoteur de positionner ses panneaux solaires à

90 degrés avec le Soleil tout au long de l’année. Ainsi, le système acquiert des données d’un GPS pour se

situer et pour permettre aux panneaux solaires de suivre le Soleil à la trace tout au long des journées.

Cependant, bien que les objectifs initiaux sont globalement les mêmes, des éléments ont été ajoutés. Au

début du projet, le support mécanique n’avait pas encore été fabriqué et le promoteur ne pouvait pas

spécifier exactement comment son système serait conçu. Suite à des discussions avec lui à propos de la

structure mécanique sur laquelle le prototype électronique agit, le promoteur a alors déclaré que les

deux axes du système de coordonnées horizontales (voir glossaire) seront exploités, plutôt qu’un seul,

dans le but d’optimiser le rendement du système. Un premier vérin électrique de 12 pouces de course

linéaire permet de contrôler le paramètre «hauteur» d’un angle de 0° (parallèle au sol) jusqu’à un angle de

63° (un angle de 90° serait perpendiculaire au sol). Un second vérin, identique au premier, actionne un

mécanisme à chaîne et engrenage pour contrôler le paramètre «azimut» avec un angle total de 268°. La

figure 1 donne une représentation générale du design mécanique, sans toutefois représenter la réalité des

mécanismes utilisés.

Figure 1 : Représentation simplifiée du système

La livraison du panneau solaire et les tests préliminaires de fonctionnement ont été exécutés en

octobre 2011, soit quelques semaines après le début du projet. Une vérification visuelle a alors été

effectuée lors de la livraison et aucune marque de bris n’a été détectée. Quelques photos du système tel

qu’il a été livré sont insérées dans les deux pages suivantes.

Page 11: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

4

Figure 2 : Montage mécanique (position initiale)

Figure 3 : Montage mécanique (déploiement maximal en hauteur)

Page 12: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

5

Figure 4 : Mécanismes de hauteur et d’azimut (1)

Figure 5 : Mécanismes de hauteur et d’azimut (2)

Page 13: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

6

II.3 Problématique et état de l’art reliés au projet

Pour ce projet, le langage C a été retenu comme langage principal pour programmer le microcontrôleur.

Les raisons sont que c’est un langage qui possède plusieurs livres traitant le sujet et plusieurs références

sur Internet. Il est facile à maintenir et à étendre, en plus d’avoir accès à un compilateur performant pour

la famille de microcontrôleur PIC18. Aussi, il peut être reproduit sur d’autres microcontrôleurs avec peu

ou pas de modifications. S’il le faut, du code en assembleur peut aussi être joint au code C dans le logiciel

MPLAB IDE.

Puis, étant donné qu’un récepteur GPS ne fonctionne pas dans un environnement intérieur tel qu’une

université, il faut simuler son signal de sortie. Pour ce faire, un petit utilitaire est programmé avec le

logiciel Microsoft Visual Basic. Cet utilitaire permet de tester rapidement plusieurs valeurs de latitude, de

temps et de date, sans avoir besoin de déclarer des variables en constantes dans le programme du

microcontrôleur. Il est alors aussi possible de tester le code en profondeur, sans avoir besoin d’être à

proximité d’une fenêtre ou à l’extérieur.

Aussi, au début du projet il était question d’utiliser un magnétomètre pour déterminer l’orientation du

panneau ainsi qu’un accéléromètre pour trouver l’inclinaison. Il n’était malheureusement pas possible

d’acheter le magnétomètre numérique et l’accéléromètre dans un format «through-hole» qui aurait rendue

l’utilisation d’une plaquette de prototypage possible. Le seul format disponible est le «surface-mount».

Ainsi, la conception de plaquettes de tests sur mesure a été nécessaire pour pouvoir souder ces

deux pièces et pouvoir les tester convenablement avec le reste du circuit. Le logiciel Altium Designer

Release 10 est utilisé pour cela.

En ce qui a trait au travail effectué par les membres du groupe et à la répartition de la charge de travail, il

en est venu à une séparation naturelle du travail qui permet non seulement d’exploiter les forces de

chacun, mais aussi de paralléliser grandement le projet. Ceci permet de travailler bien plus vite, tout en

ayant quand même accès aux connaissances et opinions du coéquipier.

Comme il n’a pas été possible de travailler avec le circuit imprimé final pour faire des tests tout au long

du projet, les plaquettes de prototypage de l’UQAC ont été d’une grande aide. La figure 6 est une photo

de la presque totalité des composantes utiles au projet. Dans le système final, le bloc d’alimentation est

remplacé par le système de batteries qui sont chargées par les cellules photovoltaïques. Le résultat final

est évidemment bien plus petit et n’a pas l’apparence désordonnée causée par tous ces fils électriques.

Page 14: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

7

Figure 6 : Plaques de prototypage utilisées pour les essais

La figure suivante est un aperçu du système de test qui a été implanté au cours de l’hiver 2012 dans le

laboratoire P2-1030. Il a permis d’accéder à plusieurs équipements, tels multimètres et oscilloscopes, tout

en étant dans un lieu relativement silencieux et peu fréquenté. Il était donc facile de se concentrer.

Figure 7 : Système de tests

Page 15: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

8

III Aspects techniques et éléments de conception relatifs au projet

Détermination de la position du Soleil :

La valeur de la déclinaison δ (voir glossaire) est totalement indépendante de la position sur Terre. Elle ne

dépend que du temps saisonnier, qui ne dépend à son tour que de la position de la Terre par rapport au

Soleil. Ainsi, en connaissant la date, il est possible de déduire la déclinaison. Cependant, l’équation de la

déclinaison requiert que la date soit convertie de telle sorte qu’elle ne représente en fait que le numéro du

jour dans l’année (jour julien). La figure 8 illustre la marche à suivre pour déterminer ce numéro (n) du

jour en connaissant le mois actuel (mm) ainsi que le jour du mois (jj). La fonction «int» signifie de ne

conserver que la partie entière de la valeur du terme entre parenthèse.

Figure 8 : Organigramme de calcul du numéro du jour de l’année [1]

Puis, avec quelques simplifications, la trajectoire elliptique de la Terre autour du Soleil peut être

considérée comme un cercle. La vitesse de la Terre autour de ce cercle est donc d’environ 1° par jour

pendant un an (360°/365 jours). De plus, la Terre tourne sur elle-même selon un angle qui varie de

-23°27’ (23,45°) à +23°27’ selon la date. Dans l’équation de la trajectoire, le nombre 81 représente le jour

81 de l’année, soit le 22 mars, qui est le début de l’année tropique. À ce moment, ainsi qu’au

22 septembre, la déclinaison est donc nulle.

Ensuite, comme le Soleil semble tourner de 360° en 24 heures autour de la Terre, cela représente une

rotation de 15° par heure. Cette position du Soleil peut être définie par le temps solaire vrai (TSV), qui est

en fait le temps donné par les cadrans solaires et qui permet de déterminer l’angle horaire. Ainsi, en

connaissant l’heure, l’angle horaire peut être calculé.

Page 16: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

9

Une fois la déclinaison et l’angle horaire calculés, il ne manque que la latitude du lieu pour calculer la

hauteur du soleil selon le système de coordonnées horizontales.

Ensuite, toujours avec la déclinaison et l’angle horaire mais en ajoutant aussi la hauteur, il est possible de

calculer l’azimut, encore selon le système de coordonnées horizontales.

Afin de mieux visualiser ces étapes à suivre pour déterminer la position du Soleil, l’organigramme de la

figure 9 peut s’avérer utile.

Figure 9 : Organigramme simplifié du diagramme solaire pour une latitude donnée [1]

Pour le microcontrôleur, le code est développé dans le logiciel MPLAB IDE v8.56 avec son compilateur

C18 v3.00. Afin de vérifier ces équations, le logiciel de calculs numériques MATLAB R2009b a été

utilisé. Les résultats obtenus pour les deux types de codes ont par la suite été comparés (tableau 1). Pour

cette simulation, la date a été fixée au 18 avril à 10 heures, pour une latitude de 43,6 degrés. Il est

important de noter que MATLAB peut utiliser aussi bien les degrés que les radians pour ses calculs

trigonométriques, alors que le code C ne peut utiliser que les radians. Des fonctions de conversion ont

donc été codées en langage C afin de simplifier les comparaisons et les manipulations.

Page 17: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

10

Aussi, il est important de savoir que lors de la programmation du simulateur dans MATLAB, les virgules

flottantes et l’espace mémoire n’ont pas besoin d’être pris en compte, étant donné que ce simulateur est

exécuté par un puissant processeur de 32 bits assisté par une grande quantité de mémoire vive. Cependant,

lors de l’écriture d’un code équivalent destiné à être exécuté par un microcontrôleur 8 bits, les choses se

compliquent un peu. En effet, non seulement les points flottants ne sont pas gérés nativement par de tels

microcontrôleurs, mais en plus ils consomment énormément de ressources. Heureusement, l’application

de ce projet ne nécessite pas des temps de calculs extrêmement rapides, ce qui permettra d’utiliser ce type

de microprocesseur plutôt qu’un plus puissant, mais plus coûteux, du style processeur de signal

numérique. Il est possible de voir dans le tableau 1 que, finalement, les résultats donnés par MATLAB et

ceux du simulateur du microprocesseur dans MPLAB IDE sont semblables. Le microcontrôleur PIC

pourra donc être utilisé sans problème.

Tableau 1 : Comparaison des valeurs calculées pour le 18 avril à 10:00 (MATLAB vs Code C)

MATLAB Langage C

Numéro du jour dans l’année : 108 108

Déclinaison (°) : 10,5110 10,51097

Angle horaire (°) : -30 -30,00000

Hauteur (°) : 47,9389 47,93887

Azimut (°) : -47,2085 -47,20850

Une fois qu’il a été déterminé que les valeurs de MATLAB et celles du code du microcontrôleur sont

semblables, une vérification des valeurs pour une journée entière a été effectuée à l’aide d’un petit

programme informatique en ligne réalisé par l’Université de Nebraska-Lincoln [2]. Ce programme utilise

les mêmes variables que ce projet (latitude, date et heure) afin de déterminer la position du Soleil.

L’exercice a été utile à plusieurs égards. D’abord, il a permis de vérifier la validité du code pour une

journée entière, soit le 18 avril, de minuit à minuit le lendemain et pour la latitude de 43.6° N. Ensuite, il a

permis de voir que l’utilisation de l’équation de la hauteur peut être utilisée sans aucune modification.

Cependant, l’équation de l’azimut devra être complétée par un code qui permettra de la porter dans un

système de 0° à 360° plutôt que -90° à 90° comme elle est actuellement. Ceci est causé par l’utilisation de

la fonction trigonométrique inverse arc sinus, qui est limitée par ces bornes. L’exercice a aussi permis de

bien visualiser le résultat des équations. Par exemple, une valeur négative pour l’angle de la hauteur

signifie que le Soleil est sous l’horizon (cellule ombragée du tableau 2). Quant à l’azimut, il faut savoir

que par convention, le Nord est à 0° et le Sud à 180°. Ainsi, selon les résultats du tableau 2, le Soleil est

directement au Nord (mais environ 35° sous l’horizon) à minuit et en plein Sud à midi à une hauteur

d’environ 57° par rapport à l’horizon. Les résultats obtenus concordent donc bien avec la réalité.

Page 18: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

11

Tableau 2 : Comparaison des valeurs calculées (MATLAB vs Université de Nebraska-Lincoln)

Heure Hauteur (°)

MATLAB

Hauteur (°)

U. N.-L.

Azimut (°)

MATLAB

Azimut (°)

U. N.-L.

0:00 -35,8890 -35,5 0 0,2

1:00 -34,1912 -33,7 -17,9175 18,0

2:00 -29,3948 -28,9 -34,3504 34,3

3:00 -22,1895 -21,7 -48,6640 48,5

4:00 -13,3093 -12,9 -61,0493 60,9

5:00 -3,3526 -2,9 -72,0537 71,9

6:00 7,2271 7,7 -82,3475 82,1

7:00 18,0645 18,5 -87,3844 92,4

8:00 28,8039 29,3 -76,3414 103,4

9:00 38,9968 39,5 -63,4531 116,3

10:00 47,9389 48,5 -47,2085 132,6

11:00 54,4454 55,0 -25,9532 154,1

12:00 56,9110 57,4 0 180,3

13:00 54,4454 54,9 25,9532 206,6

14:00 47,9389 48,3 47,2085 227,9

15:00 38,9968 39,3 63,4531 244,1

16:00 28,8039 29,1 76,3416 257,0

17:00 18,0645 18,3 87,3844 268,0

18:00 7,2271 7,5 82,3475 278,3

19:00 -3,3526 -3,0 72,0537 288,5

20:00 -13,3093 -12,9 61,0443 299,6

21:00 -22,1895 -21,7 48,6640 311,9

22:00 -29,3948 -28,8 34,3504 326,2

23:00 -34,1912 -33,5 17,9175 342,5

0:00 (lendemain) -35,5297 -35,1 0 0,3

En regardant de plus près l’azimut pour une journée entière, tel que tracé à la figure 10, il peut être

remarqué qu’il y a trois zones intéressantes. La première se situe entre 0:00 et environ 6:40, la seconde

entre 6:40 et 17:20 alors que la troisième est environ entre 17:20 et 24:00 (minuit le lendemain). De prime

abord, il peut sembler simple de considérer ces zones et ensuite utiliser des boucles de comparaison afin

de convertir l’azimut en un système de 0 à 360°. Cependant, ces zones sont délimitées par des bornes (ici

6:40 et 17:20) qui varient en fonction de la date et de la latitude. Il aurait donc fallu faire calculer ces

bornes à chaque début de journée, ou encore les pré calculer et les conserver dans un tableau. Les deux

méthodes auraient alourdi inutilement le code et la mémoire du microcontrôleur, surtout que la première

méthode fait aussi appel à des fonctions trigonométriques inverses afin de déterminer quand l’azimut vaut

-90° et 90° dans la fonction par-rapport au temps solaire vrai (TSV).

Page 19: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

12

Figure 10 : Représentation de l’azimut (avec arc sinus) pour le 18 avril (43.6° de latitude)

L’équation de l’azimut suggérée par le promoteur a donc été écartée et la recherche s’est poursuivie pour

trouver une équation de l’azimut utilisant une autre fonction que l’arc sinus. Le choix s’est arrêté sur

l’équation suivante [7] :

Afin de vérifier le résultat de cette équation, cette dernière a été simulée dans MATLAB. La figure

suivante représente ces résultats :

Figure 11 : Azimut original (avec arc cosinus) pour le 18 avril (43.6° de latitude)

Page 20: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

13

Selon cette figure 11, il peut être constaté que le résultat est maintenant bien plus près de celui escompté,

car il ne comporte que deux zones, séparées par une valeur critique à midi solaire. En utilisant cette valeur

critique comme borne de condition dans le code du microcontrôleur, il sera tout à fait possible d’obtenir

un azimut qui varie de 0 à 360°. En effet, lorsque l’angle horaire est égal ou inférieur à 0° (avant-midi), la

valeur de l’azimut est inchangée. Lorsque l’angle horaire est supérieur à 0° (après-midi), la valeur de

l’azimut doit être 360° moins l’azimut original. La figure 12 démontre que le résultat est très satisfaisant.

Figure 12 : Azimut modifié (avec arc cosinus) pour le 18 avril (43.6° de latitude)

Afin de ne pas avoir de surprise, deux conditions extrêmes de fonctionnement ont par la suite été

simulées, soit l’équateur et le pôle Nord, respectivement de latitude 0° et 90°. Les valeurs du code

MATLAB ont encore une fois été comparées aux valeurs du programme informatique en ligne de

l’Université de Nebraska-Lincoln [2]. Les résultats de la première simulation, l’Équateur, sont exposés au

tableau 3.

Page 21: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

14

Tableau 3 : Valeurs pour l’équateur (latitude=0°) le 18 avril

Heure Hauteur (°)

MATLAB

Hauteur (°)

U. N.-L.

Erreur (%)

(Hauteur)

Azimut (°)

MATLAB

Azimut (°)

U. N.-L.

Erreur (%)

(Azimut)

0:00 -79,4890 -79,1 0,49 0 0,8 ---

1:00 -71,7534 -71,4 0,49 54,3647 53,6 1,43

2:00 -58,3745 -58,1 0,47 69,6414 69,0 0,93

3:00 -44,0465 -43,8 0,56 75,2976 74,8 0,67

4:00 -29,4465 -29,2 0,84 77,9078 77,4 0,66

5:00 -14,7425 -14,6 0,98 79,1269 78,7 0,54

6:00 0 0,2 --- 79,4890 79,0 0,62

7:00 14,7425 14,9 1,06 79,1269 78,6 0,67

8:00 29,4465 29,6 0,52 77,9078 77,3 0,79

9:00 44,0465 44,1 0,12 75,2976 74,6 0,94

10:00 58,3745 58,4 0,04 69,6414 68,6 1,52

11:00 71,7534 71,6 0,21 54,3647 52,6 3,35

12:00 79,4890 78,9 0,75 360 359,1 0,25

13:00 71,7534 71,3 0,64 305,6353 306,8 0,38

14:00 58,3745 58,0 0,65 290,3586 291,3 0,32

15:00 44,0465 43,8 0,56 284,7024 285,5 0,28

16:00 29,4465 29,2 0,84 282,0922 282,8 0,25

17:00 14,7425 14,5 1,67 280,8731 281,5 0,22

18:00 0 -0,2 --- 280,5110 281,2 0,25

19:00 -14,7425 -14,9 1,06 280,8731 281,6 0,26

20:00 -29,4465 -29,6 0,52 282,0922 282,9 0,29

21:00 -44,0465 -44,1 0,12 284,7024 285,7 0,35

22:00 -58,3745 -58,3 0,13 290,6586 291,7 0,36

23:00 -71,7534 -71,5 0,35 305,6353 307,9 0,74

0:00 (lendemain) -79,1297 -78,8 0,42 0 1,1 ---

= 0,587 = 0,697

Selon les pourcentages d’erreurs obtenus, respectivement de 0.587 % pour la hauteur (erreur maximale de

1.67 %) et de 0.697 % pour l’azimut (erreur maximale de 3.35 %), il peut être déclaré que les équations

utilisées seront totalement appropriées pour ce projet. En effet, ces faibles pourcentages d’erreurs n’auront

qu’une influence très minime sur le rendement global du système photovoltaïque, d’autant plus que la

partie mécanique ajoutera forcément une bien plus grande erreur.

Page 22: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

15

Afin d’avoir une meilleure visualisation de ces valeurs angulaires, la figure 13 démontre la hauteur du

Soleil en fonction de l’azimut. Bien que l’allure de la courbe semble incorrecte, surtout si la comparaison

est effectuée avec celle du pôle Nord (figure 14), elle est tout à fait représentative de la réalité. En effet, il

faut rappeler que les azimuts de 0° et de 360° représentent en fait la même direction, soit le Nord. Ainsi,

le Soleil se lève (point A) à environ 80° d’azimut et donc près de l’Est et atteint une hauteur maximale

d’environ 80° (point B et C) tout en étant totalement au Nord (il est alors midi). Ensuite, en après-midi, il

commence à descendre pour finalement atteindre l’horizon (point D) à 18 heures et à environ

280° d’azimut, soit près de l’Ouest. Il continu sa course sous l’horizon pour atteindre sa hauteur minimale

(point E et F) et finalement recommencer à se rapprocher de l’autre côté du globe (point A) où il répétera

son cycle. La courbe a été tracée pour une journée entière de 24 heures, avec une précision de 100 points

pour chaque heure, portant ainsi la précision à 2400 points. Ceci permet de voir qu’il n’y a pas d’endroit

contenant une valeur qui aurait pu provoquer une discontinuité dans le fonctionnement du système.

Figure 13 : Hauteur en fonction de l’azimut pour le 18 avril (latitude=0°)

Voici maintenant, au tableau 4, le même exercice pour le pôle Nord.. Les mêmes conclusions que pour

l’Équateur peuvent être tirées au niveau de la précision des calculs. Par-contre, il est intéressant de noter

ici que le Soleil ne se couche jamais, celui-ci restant toujours à environ 10 degrés au dessus de l’horizon.

C’est bien ce qui était attendu pour ce lieu nordique à cette période de l’année.

Page 23: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

16

Tableau 4 : Valeurs pour le pôle Nord (latitude=89.9°) le 18 avril

Heure Hauteur (°)

MATLAB

Hauteur (°)

U. N.-L.

Erreur (%)

(Hauteur)

Azimut (°)

MATLAB

Azimut (°)

U. N.-L.

Erreur (%)

(Azimut)

0:00 10,7703 10,8 0,28 0 0,2 ---

1:00 10,7737 10,8 0,24 14,9951 15,2 1,35

2:00 10,7836 10,8 0,15 29,9904 30,1 0,36

3:00 10,7995 10,9 0,92 44,9865 45,1 0,25

4:00 10,8202 10,9 0,73 59,9834 60,1 0,19

5:00 10,8444 10,9 0,51 74,9815 75,1 0,16

6:00 10,8702 11,0 1,18 89,9808 91,1 1,23

7:00 10,8761 11,0 1,13 104,9814 105,2 0,21

8:00 10,9202 11,1 1,62 119,9833 120,2 0,18

9:00 10,9410 11,1 1,43 134,9864 135,2 0,16

10:00 10,9569 11,1 1,29 149,9904 150,2 0,14

11:00 10,9668 11,1 1,20 164,9950 165,2 0,12

12:00 10,9703 11,2 2,05 180 180,2 0,11

13:00 10,9668 11,2 2,08 195,0050 195,2 0,10

14:00 10,9569 11,2 2,17 210,0096 210,2 0,09

15:00 10,9410 11,2 2,31 225,0136 225,2 0,08

16:00 10,9202 11,2 2,50 240,0167 240,2 0,08

17:00 10,8961 11,2 2,71 255,0186 255,2 0,07

18:00 10,8702 11,2 2,94 270,0192 270,2 0,07

19:00 10,8444 11,1 2,30 285,0185 285,2 0,06

20:00 10,8202 11,1 2,52 300,0166 300,2 0,06

21:00 10,7995 11,1 2,71 315,0135 315,2 0,06

22:00 10,7836 11,1 2,85 330,0096 330,2 0,06

23:00 10,7737 11,1 2,94 345,0049 345,2 0,06

0:00 11,1263 11,1 0,24 0 0,2 ---

= 1,64 = 0,23

La figure 14 représente la hauteur du Soleil en fonction de l’azimut. Aucune discontinuité n’est

remarquée, alors les équations et manipulations utilisées peuvent maintenant être déclarées assez fiables

pour poursuivre le projet. Les plus récentes versions des codes utilisés sont visibles en annexe.

Figure 14 : Hauteur en fonction de l’azimut pour le 18 avril (latitude=89.9°)

Page 24: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

17

Fait important à noter, l’angle de la hauteur du Soleil en degrés n’est pas le même angle que doit avoir le

support mécanique. En effet, comme le panneau solaire doit être perpendiculaire à l’étoile, une petite

manipulation mathématique est nécessaire. Par exemple, si le Soleil est à 40° de hauteur, le panneau

solaire devra être à 50° du côté opposé (130°). La figure 15 facilitera la visualisation.

Figure 15 : Représentation de l’angle du support selon la hauteur du Soleil

L’équation mathématique qu’il est nécessaire d’implanter dans le microcontrôleur est donc :

Acquisition du signal du GPS :

En ce qui a trait au signal du GPS, il faut savoir qu’une norme existe pour les communications entre

équipements. C’est la norme NMEA 0183 et elle est établie par la National Marine Electronics

Association. Cette norme utilise une communication série pour transmettre ses informations, sous forme

de caractère ASCII. La norme comprend plusieurs types de trames différentes, mais une seule est utilisée

pour le projet. En effet, il est nécessaire d’avoir une trame qui donne au moins l’heure, la latitude, la

longitude, la date ainsi qu’un indicateur qui permet de déterminer si au moins trois satellites sont fixés. La

trame $GPRMC (Global Positioning Recommended Minimum sentence C) est toute indiquée pour cela.

Un exemple est visible à la figure 16.

Page 25: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

18

Figure 16 : Décorticage d’une trame $GPRMC [3]

Bien que complète, la trame $GPRMC diffuse des données valides à l’échelle de la planète. Cela signifie

que le temps utilisé est l’UTC (temps universel coordonné), autrefois appelé GMT (temps moyen de

Greenwich). Pour avoir le temps local, il faut donc faire une lecture de la longitude à partir du GPS et

déterminer de combien de fuseaux horaires le système est décalé à partir du méridien de Greenwich.

Ainsi, en approximant la Terre par une sphère parfaite et en la divisant par 24 fuseaux horaires, il est

possible de déterminer l’heure locale. De plus, il est important de savoir qu’une longitude à l’Est du

méridien de Greenwich est une longitude positive, alors qu’elle est négative si elle est à l’Ouest de ce

méridien. Il aurait été possible d’implanter une table de correspondance qui aurait contenu les différents

fuseaux horaires en fonction de la longitude, mais cela aurait provoqué une erreur qui aurait atteint

jusqu’à 15 degrés. La raison est que les fuseaux horaires sont normalisés pour ne pas avoir besoin de

changer sans cesse l’heure des montres.

Simulation du signal GPS :

Les GPS reçoivent très peu d’ondes lorsque que ces derniers sont utilisés à l’intérieur. Pour cette raison,

un programme avec Microsoft Visual Basic a été écrit pour simuler la chaîne de caractères (la trame

$GPRMC) normalement envoyée par le GPS. Avec ce programme, il est possible de faire des tests de

communications sans avoir à se déplacer continuellement à l’extérieur. Le port série de l’ordinateur

permet de simuler la transmission de la trame vers le microcontrôleur. Une image de l’interface de test

ainsi que le code Visual Basic sont disponibles en annexe 3.

Page 26: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

19

Inventaires des pièces utilisées :

Le choix des composantes à utiliser est une étape importante dans la réalisation d’un projet. Évidement,

l’aspect économique joue un rôle important dans la prise de décisions, mais cet aspect est parfois moins

important quand l’ampleur du projet est petit et moins coûteux. Voyons l’argumentation pour la sélection

de chacune des pièces, ainsi que les calculs et autres éléments importants.

Le microcontrôleur (PIC18F4680) : C’est le cœur de la gestion des mouvements du panneau solaire

utilisé. Le microcontrôleur de la compagnie Microchip est facilement intégrable et simple d’utilisation. La

programmation de ce dernier est enseignée dans le Baccalauréat en génie électrique et c’est pour cette

raison que l’utilisation de celui-ci est privilégiée dans ce projet. De plus, il est peu coûteux et consomme

aussi très peu d’énergie. Ensuite, pour l’envergure du projet, le PIC possède toutes les caractéristiques

désirées pour sa réalisation. Par exemple, il est autant possible de programmer celui-ci avec différents

langages que de communiquer avec la technologie I2C et SPI. Finalement, le logiciel de programmation

(MPLAB IDE) est gratuit. Un autre microcontrôleur qui a été envisagé est l’Arduino (Atmel AVR), mais

il a été écarté par simple préférence pour celui de Microchip.

Figure 17 : Microcontrôleur PIC18F4680

Un microcontrôleur moins puissant de la même famille que ce PIC18 peut être utilisé sans problème. Par

exemple, l’absence de SPI et de CAN peut faire baisser le prix de quelques dollars. Ce qui est important,

c’est que la mémoire soit suffisante pour contenir toute la programmation. De plus, il faut au moins

deux ports séries (un matériel et un logiciel dans le cas du PIC18F4680).

Figure 18 : Utilisation finale de la mémoire du microcontrôleur

Page 27: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

20

Le récepteur GPS (RXM-GPS-SR) : Le récepteur GPS est la pièce la plus dispendieuse de la partie

électronique du projet, soit environ 50 $. Il a une antenne intégrée et est basé sur le jeu de puce

SIRFstar III. Il possède une grande sensibilité et il peut suivre jusqu’à 20 satellites simultanément. Sa

faible consommation de 46 mW et sa tension d’entrée (3.0 à 4.3 volts) font de lui un candidat idéal pour

ce projet. Cependant, afin de raccourcir le temps requis pour fixer les satellites ainsi que pour son

fonctionnement normal, il doit être absolument être relié à une pile externe.

Figure 19 : Récepteur GPS [3]

Calcul d’un filtre pour le GPS :

Le GPS utilisé est très sensible aux bruits et aux variations rapides de tension. La variation de tension

maximale tolérée par ce dernier est de 20 mV, sinon il risquerait très fortement de ne pas fonctionner

correctement ou encore de ne pas acquérir les satellites. Des tests ont été exécutés et effectivement, il est

vraiment sensible. Pour cette raison, il est important de filtrer la tension à son entrée. Il est à noter que les

pièces composant le filtre RC devront être montées très près du GPS pour être certain qu’aucun bruit ne

se glisse entre le filtre et la patte d’alimentation du GPS.

Valeurs importantes soutirées des fiches techniques du récepteur GPS et du régulateur :

Tension de sortie minimale à la sortie du régulateur 3.3 V (3.235 V en pratique)

Tension d’alimentation minimale requise par le GPS = 3 V

Courant maximum toléré par le GPS = 49 mA

Tension de déviation maximale tolérée par le GPS = 20 mV

Il faut calculer la résistance à utiliser et la chute de tension maximale engendrée par cette dernière afin de

ne pas descendre la tension en-dessous de la tension minimale tolérée pour l’alimentation du GPS.

Page 28: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

21

La valeur qui sera utilisée est de 3.9 Ω, car c’est une valeur existante en pratique et elle est plus petite que

la valeur calculée. De cette manière, il est certain que la chute de tension ne sera pas trop grande. Il faut

ensuite calculer l’atténuation désirée en dB :

Avec Vin = déviation de la tension à l’entrée

Et Vout = déviation de tension désirée maximale

Ensuite avec la fréquence d’oscillation engendrée par le régulateur à découpage DC/DC (12 V→5 V), il

est possible de trouver la valeur minimale du condensateur à utiliser.

Avec R=3.9 Ω et f=250 KHz (cette valeur provient d’un courriel du manufacturier)

(2.5 µF en pratique)

Convertisseur DC/DC CC3-1205SF-E : Le convertisseur 12V/5V est l’un des plus abordables. Il

possède une bonne tolérance aux chocs, soit 100g. La robustesse aux chocs est un bon atout pour un

système portable. Les panneaux solaires peuvent parfois engendrer des variations de tension selon le

niveau d’ensoleillement. Pour cette raison, le convertisseur choisi peut prendre des entrées de tension

variant entre 9V et 18V. Le boîtier est très compact pour conserver une bonne ergonomie au niveau de

l’assemblage. En plus, il n’a pas besoin de composantes externes pour assurer un bon fonctionnement.

Pour l’utilisation présente du convertisseur, la puissance fournie n’est pas critique. Par contre, pour de

futures mises à niveaux, il est possible de faire fonctionner plus de composantes, car il offre une

puissance de sortie allant jusqu’à 3 watts. Selon les spécifications, l’efficacité de la pièce est de 79 %, ce

qui signifie malheureusement que 21 % de la puissance d’entrée sera perdue.

Figure 20 : Convertisseur DC/DC CC3-1205SF-E

Page 29: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

22

Le régulateur abaisseur de tension SPX1117M3-L-3-3 : Le choix d’un régulateur linéaire a été retenu

vu les petits courants consommés par les appareils alimentés sur le 3.3V. Il a fallu faire attention

au «dropout voltage», car pour pouvoir obtenir une tension de 3.3V le «dropout voltage» ne doit pas

dépasser 1,7V (5V-3,3V = 1,7V), car il serait impossible d’obtenir la valeur voulue. Un régulateur de

tension abaisseur n’a pas un très bon rendement. Par contre, la puissance perdue est minime vu la petite

puissance demandée par la charge. La pièce est au prix de 0,20 $, minime comparativement à environ

13 $ pour un convertisseur DC/DC. Le choix s’impose donc de lui-même.

Figure 21 : Régulateur abaisseur SPX1117M3-L-3-3

Le pont en H VHN3SP30TR-E : Cette pièce devra être utilisée afin de pouvoir adapter la partie

mécanique à la partie électronique par l’entremise des deux vérins électriques de la partie mécanique. Ce

pont en H peut laisser passer 30 ampères DC continuellement et peut supporter des crêtes de courant

allant jusqu’à 45 ampères. La tension maximale tolérée est de 36V DC. De plus, ce pont à été choisi grâce

à son bas «drop out voltage maximum» qui se situe à 0,24V.

Ainsi, il sera possible d’avoir constamment 12V aux bornes des vérins en temps voulu. Ce dernier

possède aussi plusieurs caractéristiques intéressantes, comme une protection contre les courts-circuits,

une fonction de détection de mise à la terre, une protection contre la surchauffe et une protection contre

les surcharges. Le pont possède des diodes de roues libres intégrées, ce qui diminue la quantité de pièces

nécessaires sur le circuit imprimé. En effet, les seules pièces qui doivent être ajoutées sont des

condensateurs de couplage, des résistances de rappel (pull-up) et un tampon pour adapter les tensions

hautes et basses échangées entre les pièces principales. De plus, ce pont en H peut fonctionner à des

températures ambiantes descendant à -40°C. Pour ce qui est de la limite de température supérieure, en

regardant les calculs suivants, il est facile de constater qu’il n’est pas nécessaire de monter les ponts en H

d’un dissipateur de chaleur.

Page 30: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

23

(Condition maximale de fonctionnement des vérins)

Les puissances hautes et basses indiquent les MOSFETs d’entrées et de sorties. Chacun des côtés possède

une résistance différente.

D’après la fiche technique, ce pont en H peut dissiper, avec minimum de configuration du PCB,

37°C/Watt, alors :

1,44W*37°C/Watt + 40°C = 93,28°C

La température de jonction maximale tolérée par la pièce est de 150°C, donc il n’est pas nécessaire

d’installer un dissipateur de chaleur sur les ponts en H.

Figure 22 : Schéma thermique du Pont en H sans dissipateur thermique

Voici la température ambiante que le pont pourrait supporter sans nécessiter un dissipateur de chaleur :

Il est important de noter que les calculs sont faits pour que la pièce soit à l’air libre et non montée dans un

boîtier, mais comme la marge de manœuvre est très grande, il ne risque pas d’y avoir de problèmes.

Page 31: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

24

Figure 23 : Pont en H VNH3SP30TR-E

Connecteur USB : Celui-ci permet à l’utilisateur de changer la programmation sans avoir besoin d’un

programmeur coûteux comme l’ICD2 ou l’ICD3, en utilisant un chargeur d’amorçage (bootloader). Il est

connecté au pont USB vers UART (CP2102-GM).

Figure 24 : Connecteur USB avec bouchon protecteur

Pont USB vers UART CP2102-GM : Cette pièce permet de communiquer avec le microcontrôleur en

utilisant le connecteur USB précédent. Il est relié à l’entrée USART matérielle du microprocesseur.

Figure 25 : Pont USB vers UART CP2102-GM

Tampon 74LVC07A : Cette pièce est nécessaire pour permettre une bonne communication entre le

microcontrôleur et les ponts en H. Les niveaux hauts et bas des deux composantes ne concordent pas

ensemble et elles ne pourront donc pas s’échanger les informations. Il est à noter que les données

voyagent de façon unidirectionnelle, du microcontrôleur vers les ponts en H. Voici un tableau explicatif.

Page 32: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

25

Tableau 5 : Tensions de fonctionnement du microcontrôleur et du pont en H

PIC18F4680 Tampon 74LVC07A Tampon 74LVC07A Pont en H VNH3SP30-E

VOL = 0,6V VIL = 0,8V VOL = 0,1V VIL = 1,5V

VOH = VDD-0,7V = 2,6V VIH = 2V VOH = 4,9V VIH = 3,25V

VOL = Tension de sortie basse VIL = Tension d’entrée basse

VIH = Tension d’entrée haute VOH = Tension de sortie haute

Voici une petite explication du principe de fonctionnement. La tension de sortie basse (VOL) du PIC et la

tension d’entrée basse (VIL) du tampon seront utilisées. La tension d’entrée basse (VIL) du tampon est

plus élevée que la tension de sortie basse (VOL) du PIC, alors le tampon détectera assurément un niveau

bas venant du PIC. Sinon, si la tension de sortie basse (VOL) du PIC est plus haute que la tension d’entrée

basse (VIL) du tampon, la tension obtenue se retrouve dans la zone morte, soit entre la tension d’entrée

basse (VIL) et la tension d’entrée haute (VIH) du tampon. L’inverse se produit pour les niveaux hauts. La

tension d’entrée haute (VIH) du tampon doit être plus basse que la tension de sortie haute (VOH) du PIC

pour assurément voir un niveau haut. Il est possible de voir que le problème se situait entre la tension de

sortie haute (VOH) du PIC et la tension d’entrée haute (VIH) du pont en H, car la tension d’entrée haute

(VIH) du pont en H est plus haute que la tension de sortie haute (VOH) du PIC. C’est pour cette raison

qu’un tampon a été utilisé.

Figure 26 : Tampon 74LVC07A

Cristal ECS-250-18-23A-EN-TR : L’utilisation d’un cristal externe est préférable à l’oscillateur interne.

Cela permet d’obtenir des communications séries plus précises à des vitesses supérieures. Aussi, bien que

la vitesse de calcul ne soit pas un problème dans ce projet, une fréquence de fonctionnement plus élevée

permet d’obtenir une plus grande puissance de calcul, au détriment de la consommation électrique. Le

cristal choisi est commandé spécialement avec une option lui permettant de fonctionner jusqu’à -40°C.

Celui-ci oscille à une fréquence de 25 MHz qui a été choisie parce que c’était la fréquence du cristal

utilisé sur la plaque de montage de l’UQAC et elle y avait alors prouvé son bon fonctionnement. Cette

fréquence a été vérifiée à l’aide de la figure suivante, tirée de la fiche technique du microcontrôleur.

Page 33: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

26

Figure 27 : Tableau Tension-Fréquence du microcontrôleur [8]

Pour obtenir le 25 MHz voulu, il est essentiel que la tension d’alimentation du microprocesseur ne soit

pas plus basse que 3,284V.

Figure 28 : Cristal ECS-250-18-23A-EN-TR

Diodes électroluminescentes : Le courant typique pour faire fonctionner les diodes est de 30 mA, selon

le manufacturier. Avec un tel courant, la dissipation de puissance est énorme comparativement au reste

des pièces du circuit et c’est pour cette raison qu’il a été important de faire des tests pour diminuer cette

consommation. Les tests ont été exécutés avec des courants de 30mA, 20mA et 15mA respectivement et

la luminosité était pratiquement la même dans tous les cas. Il a été conclu qu’un fonctionnement à plus

basse intensité serait plus économe en énergie pour un résultat similaire. Voici alors les calculs pour

trouver la bonne résistance afin d’obtenir un courant de fonctionnement de 15mA dans chacun des cas.

Page 34: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

27

Caractéristiques des diodes :

DEL rouge : 2,0V et 15mA (30mA)

DEL jaune : 2,1V et 15mA (30mA)

DEL verte : 2,2V et 15mA (25mA)

Calcul pour la DEL rouge :

Calcul pour la DEL Verte :

Calcul pour la DEL Jaune :

Figure 29 : Diodes électroluminescentes

Les interrupteurs : Trois interrupteurs sont nécessaires au bon fonctionnement du module. Le premier

interrupteur permet de couper l’alimentation principale. Le deuxième permet d’entrer dans un mode

«transport», qui est une demande du promoteur pour que le système soit plus facile à transporter. Ainsi,

lorsque l’interrupteur «transport» est activé, le vérin qui contrôle la hauteur abaisse totalement le panneau

solaire, alors que celui qui contrôle l’azimut oriente le panneau dans l’axe Nord-Sud. Le troisième

interrupteur était initialement prévu pour être utilisé avec le magnétomètre afin d’aligner le système lors

de son installation, mais il est finalement utilisé pour sélectionner un mode de déplacement continu ou

uniquement après un certain délai. Les interrupteurs sont conçus pour pourvoir fonctionner malgré les

intempéries. De plus, ils pourront être utilisés à des températures très basses.

Page 35: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

28

Les fusibles : Deux fusibles sont utilisés. Le premier (1 ampère) permet de protéger le circuit de contrôle

qui comprend le microcontrôleur. Le second (10 ampères) protège le circuit global et comprend donc

l’alimentation 12 volts des vérins qui nécessitent un courant qui atteint les 4 ampères par vérin, en

alternance.

Figure 30 : Fusibles

Le boîtier : Ce boîtier a été choisit en raison de son couvercle transparent qui permet de voir les diodes

électroluminescentes sans avoir besoin de percer de trous supplémentaires, déjà qu’il y aura

deux connecteurs et trois interrupteurs. Le plastique est solide et résistant au rayonnement ultraviolet. De

plus, un joint d’étanchéité entre les deux sections du boîtier assure une certaine protection face aux

éventuelles intempéries.

Figure 31 : Boîtier avec joint d’étanchéité

Page 36: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

29

Les connecteurs : Les fiches et réceptacles choisis sont solides et compacts afin de bien s’adapter au

profil plutôt mince du boîtier. Chacun possède six contacts qui permettent chacun de faire circuler un

courant de cinq ampères. Une longue recherche a été nécessaire pour ces connecteurs, car soit ils sont

très dispendieux, soit ils ne permettent pas un courant suffisamment élevé ou bien ils sont trop gros ou

semblent trop fragiles. Malheureusement, ceux-ci ne sont pas totalement étanches, mais ce sont ceux qui

offraient le plus d’avantages.

Figure 32 : Fiches et réceptacles

Synthèse des choix : Pour résumer le tout, les composantes choisies sont moins dispendieuses que

certaines pièces pré-montées qui auraient pu être utilisées, puisque certaines pièces requièrent des

composantes externes et ne sont pas montées sur PCB. Évidemment, la température est un des éléments

les plus importants. La plupart des pièces sélectionnées ont une température de fonctionnement qui

descend jusqu’à -40°C. Ce sont les vérins utilisés par le promoteur qui limitent le système global, ceux-ci

ne fonctionnant idéalement pas à des températures plus basses que -26°C. Pour ce qui est de la limite

supérieure de température, le promoteur souhaite que le système marche aussi bien en Afrique qu’au

Québec. Les pièces choisies supportent aisément ces chaudes températures.

Page 37: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

30

Tableau 6 : Récapitulatif des caractéristiques principales des pièces

Tension

(V)

Température

(°C) Communication Type

Microcontrôleur

PIC18F4680 2,0 à 5,5 -40 à +125 I2C, SPI, Série

Surface-

mount

Récepteur GPS

RXM-GPS-SR 3,0 à 4,3 -30 à +85 Série

Surface-

mount

Magnétomètre**

HMC5883L-TR 2,16 à 3,6 -30 à +85 I2C

Surface-

mount

Convertisseur

DC/DC

CC3-1205SF-E

9 à 18 -40 à +80 - Through-

hole

Régulateur

de tension

SPX1117M3-L-3-3

4,7 à 10 -40 à +120 - Surface-

mount

Pont en H

VNH3SP30-E <40 -40 à +150 -

Surface-

mount

Tampon

74LVC07A 1,2 à 5,5 -40 à +85 -

Surface-

mount

Cristal

ECS-250-18-23A - -40 à +85 -

Surface-

mount

Pont USB vers UART

CP2102-GM 3,0 à 3,6 -40 à +85 Série

Surface-

mount

**Voir annexe 4

La figure qui suit représente les interactions entre le module qui contient le microprocesseur avec les

pièces principales et les vérins.

Figure 33 : Représentation générale des interactions

Un inventaire de toutes les pièces du projet ainsi que leur prix est disponible au tableau 7.

Page 38: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

31

Tableau 7 : Prix des pièces du prototype

Pièce #Digikey Quantité Prix unitaire ($) Total ($)

Boitîer (172C,BK) SR172-CB-ND 1 11,42 11,42

Bouchon pour port USB (CP-USB-B) RP782-ND 1 0,33 0,33

Bouton-poussoir "Reset" dispo. UQAC (SW405-ND) 1 0,40 0,40

Circuit imprimé Sur mesure 1 16,50 16,50

Condensateur 0,1 uF dispo. UQAC 6 0,10 0,60

Condensateur 0,22 uF dispo. UQAC 1 0,10 0,10

Condensateur 10 uF (low ESR, ceramic) (Y5V) dispo. UQAC 1 0,10 0,10

Condensateur 18 pF 709-1171-1-ND 10 0,047 0,47

Condensateur 220 uF P5139-ND 2 0,26 0,52

Condensateur 4,7 uF (3216) dispo. UQAC 2 0,10 0,20

Condensateur 470 pF dispo. UQAC 2 0,10 0,20

Condensateur 470 uF dispo. UQAC 2 0,10 0,20

Convertisseur (CC3-1205SF-E) 445-2470-N 1 14,24 14,24

Cristal (ECS-250-18-23A-EN-TR) (25 MHz, 18 pF) XC1671CT-ND 1 1,81 1,81

DIP 2x14 connecteurs dispo. UQAC 1 2,00 2,00

Fiche connecteur (RM12BPE-6PH(71)) HR1733-ND 2 12,01 24,02

Fusible 1 A (FUSE SLOW 250VAC 1A RADIAL) 507-1111-ND 1 0,48 0,48

Fusible 10 A (0312010.HXP) dispo. UQAC (F2519-ND) 1 0,36 0,36

Interrupteur (Carling 2M1-SP1-T1-B1-M1QE) dispo. UQAC (432-1143-ND) 3 2,78 8,34

Joint d'étanchéité du boîtier (PS17) SRPS-17-ND 1 5,61 5,61

LED jaune (SSL-LX5093LYD) 67-1111 1 0,43 0,43

LED rouge (SSL-LX5093ID) 67-1105 1 0,41 0,41

LED vert pour GPS (0805) dispo. UQAC 1 0,10 0,10

LED verte (SSL-LX5093PGD) 67-1112 1 0,59 0,59

Magnétomètre (HMC5883L-TR) 342-1082-1-ND 1 4,06 4,06

Microcontrôleur (PIC18LF4680-I/PT) PIC18LF4680-I/PT-ND 1 10,10 10,10

Pile (CR2032) SY189-ND 1 0,44 0,44

Pont en H (VNH3SP30-E) 497-3565-1-ND 2 11,16 22,32

Pont USB vers UART (CP2102-GM) 336-1160-ND 1 3,40 3,40

Connecteur USB femelle (61729-1011BLF) dispo. UQAC (609-3657-ND) 1 1,15 1,15

Porte-fusible (01000058Z) dispo. UQAC (F4186-ND) 2 0,21 0,42

Porte-pile CR2032 (120591-1) A99328-ND 1 2,22 2,22

Protecteur pour interrupteur (AT428M) AT428M-ND 3 3,43 10,29

Réceptacle connecteur (RM12BRB-6S) HR1038-ND 2 8,59 17,18

Récepteur GPS (RXM-GPS-SR) RXM-GPS-SR-B-ND 1 49,59 49,59

Régulateur linéraire (SPX1117M3-L-3-3) 1016-1237-5-ND 1 0,18 0,18

Résistance 100Ω dispo. UQAC 5 0,10 0,50

Résistance 10KΩ dispo. UQAC 8 0,10 0,80

Résistance 1KΩ dispo. UQAC 5 0,10 0,50

Résistance 2,21KΩ dispo. UQAC 2 0,10 0,20

Résistance 20Ω dispo. UQAC 1 0,10 0,10

Résistance 4,7KΩ dispo. UQAC 1 0,10 0,10

SIP 5 connecteurs dispo. UQAC 1 0,40 0,40

Tampon (74LVC07A) 568-2285-1-ND 1 0,57 0,57

TVS Diode (SP0503BAHTG) F2715CT-ND 1 1,07 1,07

Total : 215,02

Les prix soulignés sont des prix approximatifs

Page 39: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

32

Bilan de puissance théorique :

En début de projet, la consommation du microcontrôleur a été analysée avec des calculs, car c’est la

composante qui consomme vraisemblablement le plus vu son utilisation en continu, en excluant les

vérins. Il est ici analysé lorsqu’il est en communication avec le GPS parce que c’est avec celui-ci qu’il

communiquera la plupart du temps. Il est perceptible, par les calculs qui suivent, que la puissance

consommée lors de la communication entre le PIC et le GPS est négligeable par rapport à la puissance

utilisée par les vérins. La puissance dissipée par les pièces secondaires (résistances, condensateurs,

diodes, etc.) est évidemment négligeable elle aussi. Voici un exemple de puissance consommée par le PIC

et les vérins, ainsi que la puissance dissipée par les pièces secondaires.

Puissance consommée par la commutation

Bien que 0.5CV2 soit une équation d’énergie, le calcul se fait ici avec l’énergie consommée pour une

seconde, ce qui donne la puissance.

Avec :

(vitesse du GPS)

Puissance consommée par les vérins

Avec :

Page 40: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

33

Exemple de puissance dissipée

Le calcul est fait avec une approximation de cinq montages identiques au suivant. Ceci représente environ

toutes les autres pièces secondaires du circuit qui servent à faire fonctionner les pièces primaires.

Figure 34 : Approximation par résistances parallèles

23,71mW

Avec :

Tableau 8 : Bilan de puissance préliminaire

Puissance instantanée

(Watt)

Temps d’utilisation par

jour

(seconde)

Énergie consommée par

jour

(Joule=Watt*seconde)

Commutation (PIC) : 52,272x10-6

86400 4,516

Vérins

(x2) : 72 420 30240

Pièces secondaires

(x5) : 23,71x10

-3 86400 2048,54

N,B : 86400 secondes = 1 jour Total : 32293,06

Ici, l’énergie consommée du PIC et des pièces secondaires sont pour un fonctionnement de 24h/24h. Il a

été estimé que les vérins seront utilisés sept minutes par jour. Aussi, une journée d’ensoleillement de 13 h

par jour, pour le mois d’avril, a été utilisée. Il serait donc possible de diminuer le temps de

fonctionnement du PIC et des pièces secondaires à 13h/jour au lieu de 24h/jour.

Page 41: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

34

Avec un fonctionnement de 24 heures pour la partie électronique :

Avec un fonctionnement de 13 heures (46800 secondes) pour la partie électronique :

Il est possible de constater que même si le microcontrôleur fonctionne en permanence, il ne consomme

qu’une faible fraction de l’énergie nécessaire pour faire fonctionner le système entier, soit 6,36 %. Ainsi,

il n’apparaît pas primordial de le mettre en état de veille pour la nuit.

Bilan de puissance pratique :

Avec un ampèremètre, la consommation réelle de courant a été mesurée pour plusieurs situations :

Fonctionnement en continu avec uniquement le circuit de contrôle alimenté, signal GPS non fixé : 96 mA

Fonctionnement en continu avec uniquement le circuit de contrôle alimenté, signal GPS fixé : 96 A

Vérin hauteur en montée (prototype entier) : 4,40 A

Vérin hauteur en descente (prototype entier) : 0,63 A

Vérin azimut horaire (prototype entier) : 2,25 A

Vérin azimut antihoraire (prototype entier) : 1,10 A

Suite à ces mesures, il peut être affirmé que le prototype consomme 96 mA en permanence, avec une

tension de 12 volts soit 1,152 watts. Des recommandations visant à réduire la consommation sont listées à

la fin de ce rapport. Aussi, le courant le plus fort enregistré pendant les tests n’a jamais dépassé les

4,5 ampères, même lorsque le vérin hauteur faisait monter le panneau tout en ayant du poids

supplémentaires par-dessus.

Page 42: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

35

Choix de l’alimentation du microcontrôleur :

Le choix d’une alimentation de 3,3V plutôt que 5V a été imposé par les composantes communiquant avec

le microcontrôleur. Elle a été choisie au début du projet alors qu’il était prévu d’utiliser des pièces avec le

protocole I2C, mais elle a par la suite été conservée.

Il faut d’abord vérifier à quelle tension la commutation 1/0 se fait, en prenant compte du type de tampon

(Schmitt Trigger ou TTL) de la patte d’entrée du microcontrôleur. Il faut donc vérifier à la fois dans la

section 10.0 (I/O Ports) et 27.0 (Electrical Characteristics) de la fiche technique du microcontrôleur [8]

pour acquérir les bonnes informations. Il faut aussi consulter les fiches techniques individuelles des

éléments à raccorder au microcontrôleur (GPS, magnétomètre, etc.). Le tableau 9 expose les tensions

critiques du projet.

Tableau 9 : Tensions d’entrées et de sorties selon la tension d’alimentation du microcontrôleur

Tension d’alimentation du PIC : VDD = 3,3V VDD = 5V

Tension d’entrée basse (VIL) :

(Schmitt Trigger buffer) 0,2 * VDD = 0,66V 0,2 * VDD = 1V

Tension d’entrée basse (VIL) :

(TTL buffer) 0,15 * VDD = 0,495V 0,15 * VDD = 0,75V

Tension basse (VL) :

(I2C)

0,3 * VDD = 0,99V 0,3 * VDD = 1,5V

Tension d’entrée haute (VIH) :

(Schmitt Trigger buffer) 0,8 * VDD = 2,64V 0,8 * VDD = 4V

Tension d’entrée haute (VIH) :

(TTL buffer) 0,25 * VDD + 0,8 = 1,625V 0,25 * VDD + 0,8 = 2,05V

Tension haute (VH) :

(I2C)

0,7 * VDD = 2,31V 0,7 * VDD = 3,5

Tension de sortie basse (VOL) : 0,6V 0,6V

Tension de sortie haute (VOH) : VDD – 0,7V = 2,6V VDD – 0,7V = 4,3V

Le tableau 10 représente les tensions du magnétomètre qui devait être utilisé pour le projet. Il n’y est qu’à

titre indicatif.

Tableau 10 : Tensions basses et hautes selon la tension d’alimentation du magnétomètre

Tension d’alimentation du magnétomètre : VDD = 3,3V

Tension basse (VL) : 0,2 * VDD = 0,66V

Tension haute (VH) : 0,8 * VDD = 2,64V

Page 43: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

36

Puis, le tableau 11 dresse la liste des différents niveaux de tensions du récepteur GPS.

Tableau 11 : Tensions d’entrées et de sorties du récepteur GPS

Tension d’alimentation du GPS : VDD = 3,3V

Tension d’entrée basse (VIL) : ≤ 0,8V

Tension d’entrée haute (VIH) : ≥ 2,1V

Tension de sortie basse (VOL) : ≤ 0,73V

Tension de sortie haute (VOH) : ≥ 2,0V

La figure 35 démontre visuellement les données précédentes pour le magnétomètre I2C couplé au

microcontrôleur.

Figure 35 : Communication entre le microcontrôleur et le magnétomètre I2C

Le module UART du microcontrôleur supporte l’interface RS-232 qu’utilise le GPS. Le niveau de sortie

TTL du GPS est compatible avec le microcontrôleur sans passer par un intermédiaire du style MAX232

ou MAX233 qui permettent la conversion de niveaux de tensions des signaux. Voici donc sur la figure 36

le branchement entre le récepteur GPS et le microcontrôleur.

Figure 36 : Communication entre le PIC et le GPS

Page 44: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

37

Communication série avec le récepteur GPS :

Le microcontrôleur PIC18F4680 utilisé permet d’avoir deux ports série. Le premier est matériel

(hardware USART) et est exposé dans la section suivant celle-ci. Le second est logiciel (software UART)

et c’est celui qui permet ici la communication avec le récepteur GPS. Il faut noter que le terme USART

signifie Universal Synchronous/Asynchronous Receiver/Transmitter.

Pour être utilisé, cet UART logiciel nécessite le calcul de trois délais différents. Comme la fréquence

d’oscillation utilisée est de 25 MHz et que le récepteur GPS doit communiquer à 9600 bps, voici ces

délais :

Les connecteurs utilisés sur le microcontrôleur sont le 4 (TX) et le 5 (RX) du PORTB. Ensuite, comme le

module GPS est configurable, il est très avantageux de le configurer afin que celui-ci ne communique que

la trame $GPRMC plutôt que toutes celles par défaut. Ceci permet de simplifier le code du

microcontrôleur en supprimant les tris qui auraient été nécessaires pour ignorer les trames superflues pour

ce projet. Il s’agit donc d’utiliser la communication série pour envoyer les commandes suivantes au

récepteur GPS :

$PSRF103,00,00,00,01*24\r\n (Désactivation de la trame GGA)

$PSRF103,01,00,00,01*25\r\n (Désactivation de la trame GLL)

$PSRF103,02,00,00,01*26\r\n (Désactivation de la trame GSA)

$PSRF103,03,00,00,01*27\r\n (Désactivation de la trame GSV)

$PSRF103,04,00,01,01*21\r\n (Activation de la trame RMC)

$PSRF103,05,00,00,01*21\r\n (Désactivation de la trame VTG)

Page 45: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

38

Ces informations (NMEA input messages) proviennent indirectement de la fiche technique du récepteur

GPS [3]. Il s’agit de les adapter au résultat souhaité. Voici le résultat obtenu après la désactivation de

quelques trames (partie supérieure de la figure 37) et ensuite après n’avoir gardé que la trame

$GPRMC (partie inférieure de la figure 37) :

Figure 37 : Informations en provenance du récepteur GPS

Page 46: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

39

Utilisation de l’USART :

Initialement, le port USART matériel devait être utilisé pour communiquer avec le GPS. Le code est

toujours présent dans le programme du microcontrôleur, sous forme de commentaires. Les démarches qui

avaient alors été utilisées sont les suivantes. Le TX (RC6) et le RX (RC7) sont sur le PORTC. Il est

important de configurer le registre appelé SPBRG afin d’obtenir la bonne vitesse (baud rate) de

communication entre le microcontrôleur et le GPS. Cette vitesse est dépendante de la fréquence de

l’horloge et est fixée par le GPS. Ainsi, comme le module GPS utilisé ici communique par défaut à

9600 bps, il s’agit d’utiliser la formule qui suit afin de configurer le registre SPBRG correctement [8].

Il est ensuite possible de déterminer le pourcentage d’erreur obtenu selon les formules suivantes :

D’autres éléments sont très importants à savoir afin d’avoir une communication série fructueuse. En

consultant plus en profondeur la fiche technique du module GPS, ces informations peuvent être repérées :

9600 bps, 8 bits de données, aucune parité et 1 bit d’arrêt. Ceci est la structure des données et doit être

prise en compte, ce qui est effectué dans l’instruction OpenUSART (voir code C en annexe 2).

Page 47: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

40

Convertisseur analogique-numérique (ADC) :

Afin de connaître la position actuelle des deux vérins, chacun d’eux est équipé d’un potentiomètre de

rétroaction intégré. Ceux-ci permettent d’avoir une tension de sortie proportionnelle à la position du vérin

dans l’espace. Il a été décidé qu’en position totalement entrée, la tension serait de 0 volt, alors qu’en

position totalement sortie, la tension serait théoriquement de 3,3 volts. Comme ceci est une valeur

analogique et que le microcontrôleur est évidemment un appareil fonctionnant en numérique, la présence

d’un convertisseur est nécessaire. Jusqu’à 11 de ces convertisseurs peuvent être utilisés sur le

microcontrôleur de ce projet. D’une résolution de 10 bits, ils sont donc capables de discerner

1024 (210

) niveaux de tension distincts, ce qui représente ici des étapes aussi petites que 3,22 millivolts.

Cependant, pour obtenir des conversions sensées, quelques réglages doivent être réalisés lors de

l’initialisation. En effet, comme les registres sont limités à 8 bits et que l’ADC fonctionne à 10 bits,

deux registres 8 bits sont utilisés. Ceci requiert ce qui est appelé une justification à droite. La justification

à gauche aurait pu être utilisée en utilisant que le registre ADRESH, au détriment de la précision. La

justification se règle dans le registre ADCON2.

Tableau 12 : Justification à droite pour l’ADC

0 0 0 0 0 0 X X X X X X X X X X

ADRESH ADRESL

Tableau 13 : Justification à gauche pour l’ADC

X X X X X X X X X X 0 0 0 0 0 0

ADRESH ADRESL

Ensuite, les registres ADRESH et ADRESL doivent être fusionnés. Plusieurs techniques peuvent être

utilisées, mais celle retenue pour le projet est la suivante :

Puis, comme le principe de conversion analogique à numérique nécessite un certain temps, certains petits

calculs doivent être réalisés. Premièrement, la période d’oscillation du cristal du microcontrôleur doit être

déterminée.

Puis, selon la section A/D Conversion Requirements de la fiche technique du microcontrôleur [3], la

période d’horloge A/D (TAD) doit être d’au moins 1,4 µs. Bien qu’il ne doive pas être plus petit que

1,4 µs, il doit quand même idéalement être le plus petit possible. Pour atteindre cette valeur, il faut

Page 48: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

41

convertir la fréquence d’oscillation. Ceci est fait en utilisant le registre ADCON2 et en sélectionnant pour

ce cas le diviseur de fréquence par 64. La période d’horloge A/D (TAD) devient donc :

Cette période est plus grande que 1,4 µs tout en étant très petite. Ceci est le temps requis au module A/D

pour convertir 1 bit. Pour convertir les 10 bits il faut donc 10 TAD, en plus d’un certain temps de

stabilisation, pour un total de 12 TAD selon la fiche technique.

Asservissement en position :

Le contrôle des deux vérins se fait en boucle fermée et le signal de rétroaction provient du potentiomètre

de rétroaction intégré dans chacun des deux vérins (sortie mesurée). Les consignes proviennent des

équations du diagramme solaire présentées plus tôt dans ce rapport, soit une consigne en hauteur et une

seconde en azimut. Puis, l’erreur mesurée est obtenue en soustrayant de la consigne la sortie mesurée.

Figure 38 : Asservissement en boucle fermée

En hauteur :

Si l’erreur est inférieure à zéro, la consigne est plus petite que la sortie mesurée, donc le panneau doit

baisser.

Si l’erreur est supérieure à zéro, la consigne est plus grande que la sortie mesurée, donc le panneau doit

monter.

En azimut :

Si l’erreur est inférieure à zéro, la consigne est plus petite que la sortie mesurée, donc le panneau doit

tourner dans le sens anti horaire.

Si l’erreur est supérieure à zéro, la consigne est plus grande que la sortie mesurée, donc le panneau doit

tourner dans le sens horaire.

Ensuite, un calcul de la valeur absolue de l’erreur mesurée est effectué. Le vérin est activé tant que cette

valeur absolue est plus grande que 0,3 degré. Plusieurs expérimentations ont démontré que cette valeur

donne un système qui fonctionne très bien.

Page 49: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

42

Modulation de largeur d’impulsion (PWM) :

Bien que les vérins aient très bien pu fonctionner à pleine tension lors de leur fonctionnement, il a été

décidé d’implémenter de la modulation de largeur d’impulsion afin de limiter la tension qui les alimente.

En effet, ceci permet de limiter les arrêts brusques en introduisant une petite pente descendante dans la

valeur moyenne des tensions de sortie des ponts en H. Ainsi, lorsque l’erreur entre la consigne et la

mesure de la position des vérins se rapproche de zéro, la vitesse devient plus faible, ce qui donne un

moins gros coup lors de l’arrêt. La mise en place de la modulation de largeur d’impulsion dans le

microcontrôleur est assez simple. Il est possible de la programmer d’une manière logicielle en utilisant

des temporisateurs, mais la manière matérielle se révèle bien plus simple, c’est pourquoi c’est elle qui a

été retenue.

L’initialisation se fait en sélectionnant le mode PWM dans le registre CCP1CON. Dans le registre

T2CON, il s’agit d’activer le temporisateur 2 avec aucun post diviseur (postscaler) et 1 pré diviseur

(prescaler). Puis, dans le registre PR2, une période de 255 a été choisie. Ensuite, la vitesse de sortie sera

déterminée par le registre CCPR1L. Par exemple, pour avoir un cycle de 50 %, le registre CCPR1L devra

égaler 127. Une valeur minimale de 170 (duty cycle de 66 %) a par-contre été fixée afin que la tension

aux bornes des vérins ne descende pas sous 8 volts, pour qu’ils puissent délivrer un couple suffisant en

tout temps et peu importe les conditions atmosphériques. Aussi, lorsque l’erreur absolue entre la consigne

d’un vérin et sa position réelle est plus grande que 30 degrés, la pleine tension (duty cycle de 100 %) est

appliquée aux bornes du vérin en question. La courbe obtenue est visible à la figure 39.

Figure 39 : Valeur de CCPR1L en fonction de l’erreur absolue

0

50

100

150

200

250

300

0 10 20 30 40 50 60 70 80 90 100

Val

eu

r d

e C

CP

R1

L (

san

s u

nit

é)

Valeur absolue de l'erreur (degrés)

Page 50: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

43

Ainsi, la logique est la suivante :

Si : erreur absolue ≥ 30° :

Si : 5 ° < Erreur absolue < 30° :

Si : Erreur absolue ≤ 30° :

En d’autres termes, les vérins sont asservis en position selon une logique tout ou rien, mais avec une

vitesse de déplacement modulée selon l’amplitude de l’erreur mesurée. La logique tout ou rien est

pleinement capable de faire le travail souhaité, mais le fait de varier légèrement la vitesse adoucit les

mouvements et préserve les mécanismes.

Page 51: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

44

Détermination des équations d’angles :

En hauteur :

Afin de savoir quels sont les angles du support mécanique selon la tension donnée par chacun des

deux potentiomètres de rétroaction, des tests ont été nécessaires. L’axe de la hauteur a été le premier à

être testé. Pour cela, un rapporteur d’angle d’un diamètre d’environ 30 cm a été utilisé. Avec un plus gros

rapporteur d’angle (diamètre de 100 à 130 cm), la lecture d’angle aurait été plus précise, mais un tel

instrument n’était pas accessible. La méthode se révèle tout de même très efficace.

Figure 40 : Détermination de la hauteur actuelle en fonction de la tension de rétroaction

Pour minimiser l’erreur lors du mouvement du panneau solaire, il a fallu déterminer la courbe du

mouvement mécanique de la rampe de montée et descente du panneau. Pour obtenir la courbe pratique, il

a été nécessaire de prendre plusieurs mesures durant le mouvement complet. Pour prendre des mesures

plus ordonnées, donc moins aléatoires, un potentiomètre contrôlant le cycle d’un module PWM a été

utilisé. Ceci a permis d’obtenir des valeurs plus précises. Ce dernier module était disponible au magasin

des techniciens du département de génie électrique. Il est possible de voir les mesures d’angles obtenues

par rapport à la tension lue aux bornes du potentiomètre de retour du vérin dans le tableau 14. À l’aide du

logiciel Excel, il a été possible d’approximer les résultats obtenus en pratique par des courbes de degré 1 à

4. De plus, le logiciel Excel peut donner l’équation associée à la courbe, équation à être implantée dans le

code du microcontrôleur. Le degré 3 a été choisi en préférence au degré 4, car les erreurs sont moins

grandes. Il est en effet possible de constater, en regardant dans le tableau 14, que l’erreur est presque

toujours plus élevée pour le degré 4 comparativement à celle du degré 3. À partir de 12° jusqu’à 63°,

l’erreur relative est sous 1 %. Aussi, l’erreur en dessous de 12° est élevée, par contre, en dessous de cet

angle le Soleil est très haut (ne pas oublier que le Soleil est perpendiculaire au panneau solaire), donc il

serait possible de placer le panneau solaire à plat et le rendement serait presque le même. Par la suite,

Page 52: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

45

l’équation du troisième degré obtenue a été programmée dans le microcontrôleur pour ainsi acquérir la

tension de retour du vérin, entrer cette valeur dans la formule programmée et finalement, obtenir l’angle

voulu en hauteur tout en tenant compte de la rampe mécanique du système. Il est aussi possible de

visualiser les courbes des degrés 1 à 4 sur la figure 41. La raison pour laquelle un angle a été trouvé en

fonction de la tension et non l’inverse, est que l’angle est déjà utilisé dans la programmation actuelle et il

est donc plus facile de comparer les mêmes unités sans refaire de conversions.

Figure 41 : Angle de la hauteur en fonction de la tension de rétroaction

Finalement, l’équation de conversion qui sera utilisée pour la hauteur dans le code du microcontrôleur est

la suivante :

y (degré 1) = 21,155x + 11,373 y (degré 2) = -8,5318x2 + 45,865x - 0,0496

y (degré 3) = 1,6349x3 - 15,597x2 + 53,799x - 1,6976

y (degré 4) = 0,1915x4 + 0,5241x3 - 13,547x2 + 52,524x - 1,5361 0.00

0.10

0.20

0.30

0.40

0.50

0.60

0.70

0.80

0.00 0.01 0.01 0.02 0.02 0.03 0.03

An

gle

de

la h

aute

ur

(De

gré

s)

Tension de rétroaction (Volts)

Courbe pratique

Linéaire (degré 1)

Courbe degré 2

Courbe degré 3

Courbe degré 4

Page 53: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

46

Tableau 14 : Angles obtenus selon les tensions lues (hauteur)

Tendance degré 1 Tendance degré 2 Tendance degré 3 Tendance degré 4

Tensions

(V)

Angles

(°)

Résultats

(°)

Erreur

absolue

(°)

Erreur

relative

(%)

Résultats

(°)

Erreur

absolue

(°)

Erreur

relative

(%)

Résultats

(°)

Erreur

absolue

(°)

Erreur

relative

(%)

Résultats

(°)

Erreur

absolue

(°)

Erreur

relative

(%)

2,90 63,00 73,31 10,31 14,06 61,21 1,79 2,85 63,02 0,02 0,04 63,18 0,18 0,29

2,80 62,50 71,13 8,63 12,13 61,48 1,02 1,63 62,55 0,05 0,08 62,60 0,10 0,16

2,70 62,00 68,95 6,95 10,08 61,59 0,41 0,66 62,04 0,04 0,06 62,01 0,01 0,02

2,60 61,50 66,77 5,27 7,90 61,52 0,02 0,04 61,48 0,02 0,03 61,41 0,09 0,14

2,50 61,00 64,60 3,60 5,57 61,29 0,29 0,47 60,86 0,14 0,22 60,77 0,23 0,37

2,40 60,50 62,42 1,92 3,08 60,88 0,38 0,63 60,18 0,32 0,53 60,09 0,41 0,68

2,30 59,50 60,24 0,74 1,23 60,31 0,81 1,36 59,42 0,08 0,13 59,34 0,16 0,27

2,20 58,50 58,07 0,43 0,75 59,56 1,06 1,81 58,58 0,08 0,14 58,52 0,02 0,03

2,10 57,50 55,89 1,61 2,88 58,64 1,14 1,99 57,64 0,14 0,24 57,60 0,10 0,17

2,00 56,50 53,71 2,79 5,19 57,55 1,05 1,86 56,59 0,09 0,16 56,58 0,08 0,14

1,90 55,50 51,54 3,96 7,69 56,29 0,79 1,43 55,43 0,07 0,13 55,45 0,05 0,10

1,80 54,00 49,36 4,64 9,40 54,86 0,86 1,60 54,14 0,14 0,26 54,18 0,18 0,34

1,70 52,50 47,18 5,32 11,27 53,26 0,76 1,46 52,72 0,22 0,41 52,78 0,28 0,53

1,60 51,00 45,01 5,99 13,32 51,49 0,49 0,97 51,15 0,15 0,29 51,22 0,22 0,44

1,50 49,00 42,83 6,17 14,41 49,55 0,55 1,13 49,43 0,43 0,87 49,51 0,51 1,04

1,40 47,50 40,65 6,85 16,85 47,44 0,06 0,13 47,54 0,04 0,08 47,62 0,12 0,25

1,30 45,50 38,47 7,03 18,26 45,16 0,34 0,76 45,47 0,03 0,06 45,55 0,05 0,11

1,20 43,50 36,30 7,20 19,84 42,70 0,80 1,83 43,23 0,27 0,63 43,29 0,21 0,49

1,10 41,00 34,12 6,88 20,16 40,08 0,92 2,25 40,78 0,22 0,52 40,83 0,17 0,42

1,00 38,50 31,94 6,56 20,52 37,28 1,22 3,16 38,14 0,36 0,94 38,16 0,34 0,89

0,90 35,50 29,77 5,73 19,26 34,32 1,18 3,33 35,28 0,22 0,62 35,27 0,23 0,65

0,80 32,50 27,59 4,91 17,80 31,18 1,32 4,06 32,20 0,30 0,93 32,16 0,34 1,05

0,70 29,00 25,41 3,59 14,11 27,88 1,12 3,88 28,88 0,12 0,41 28,82 0,18 0,63

0,60 25,50 23,24 2,26 9,74 24,40 1,10 4,32 25,32 0,18 0,71 25,24 0,26 1,02

0,50 21,50 21,06 0,44 2,09 20,75 0,75 3,49 21,51 0,01 0,03 21,42 0,08 0,39

0,40 17,50 18,88 1,38 7,32 16,93 0,57 3,25 17,43 0,07 0,39 17,34 0,16 0,89

0,30 12,75 16,71 3,96 23,68 12,94 0,19 1,51 13,08 0,33 2,61 13,02 0,27 2,10

0,25 10,50 15,62 5,12 32,77 10,88 0,38 3,65 10,80 0,30 2,88 10,76 0,26 2,45

0,20 8,00 14,53 6,53 44,94 8,78 0,78 9,78 8,45 0,45 5,64 8,43 0,43 5,39

0,15 5,00 13,44 8,44 62,80 6,64 1,64 32,76 6,03 1,03 20,54 6,04 1,04 20,79

0,10 3,00 12,35 9,35 75,71 4,45 1,45 48,39 3,53 0,53 17,60 3,58 0,58 19,38

Page 54: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

47

En azimut :

Par la suite, il a été aussi possible de trouver l’équation de rotation (azimut) du panneau solaire pour

s’assurer d’obtenir la plus petite erreur possible. Au départ, il était prédit que la courbe allait être linéaire

puisque la rotation s’effectue sur un engrenage circulaire de vélo. De plus, le vérin n’a aucun angle par

rapport à la chaîne qui entraîne le tout. Il a été nécessaire de confirmer l’hypothèse pour être certain de ne

faire aucune erreur d’interprétation. Puisque le système mécanique est débalancé et qu’un rapporteur

d’angle est difficilement positionnable sur l’axe de rotation, la méthode n’est pas très efficace. En effet, le

système ne réagit pas de la même manière selon l’angle de la hauteur, car l’équilibre du panneau change

en se balançant. En d’autres mots, il se balance. Un rapporteur d’angle placé le plus possible au-dessus de

l’axe de rotation a quand même été utilisé, ainsi qu’un rayon laser emprunté au technicien en bâtiment de

l’UQAC (voir figure 42).

Figure 42 : Détermination de l’azimut actuel en fonction de la tension de rétroaction

Les données obtenues sont visibles sur le tableau qui suit :

Tableau 15 : Angles obtenus selon les tensions lues (azimut)

Tensions (V) Angles (°) Tensions (V) Angles (°) Tensions (V) Angles (°)

2,982 297 1,8555 215,5 0,8362 131,5

2,8498 294 1,7492 206,5 0,7264 123

2,7445 285 1,6476 198,5 0,6314 114

2,6527 283 1,551 188,5 0,5224 104

2,56 275 1,4426 180 0,4362 95

2,4529 267 1,3467 177,5 0,3322 85

2,3543 259 1,2363 164,5 0,2911 76

2,2467 250 1,135 155,5 0,2271 67

2,1421 242 1,0327 148 0,1412 56,5

2,0473 232,5 0,9258 139,5 0,09824 41

1,9532 225

Page 55: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

48

Les résultats obtenus sont très concluants pour prouver que le système est linéaire et il est possible de le

constater sur la figure 43. Par contre, l’orientation exacte n’a pas été très bien déterminée étant donné que

le panneau se balance trop.

Figure 43 : Angle de l’azimut en fonction de la tension de rétroaction (solution non-retenue)

Une autre méthode a alors été utilisée, soit de placer le panneau à l’extrémité totalement horaire et de

marquer sa position au sol, puis de le placer à l’autre extrémité totalement antihoraire et encore une fois

de marquer sa position au sol. En sachant que le système est linéaire, il est alors possible, en mesurant les

angles de ces deux points par rapport à l’axe Nord-Sud (0° vers 180° en ligne droite), d’obtenir une

équation du premier degré.

Premier point : 0,10 volt = 56 degrés Second point : 2,99 volts = 224 degrés

Les paramètres de l’équation de la droite se calculent donc ainsi :

y (degré 1) = 86,124x + 54,45

0.00

0.50

1.00

1.50

2.00

2.50

3.00

3.50

0.00 0.01 0.01 0.02 0.02 0.03 0.03

An

gle

de

l'az

imu

t (D

egr

és)

Tension de rétroaction (Volts)

Données pratique

Linéaire (degré 1)

Page 56: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

49

Visuellement, l’équation peut être aperçue sur la figure qui suit.

Figure 44 : Angle de l’azimut en fonction de la tension de rétroaction (solution retenue)

L’équation de cette courbe est relativement près de celle donnée par Excel qui a calculé la tendance au

premier degré lors du premier test effectué (voir figure 43). Finalement, l’équation de conversion qui sera

utilisée pour l’azimut dans le code du microcontrôleur est la suivante :

y = 92,734x + 46,727

0.00

0.50

1.00

1.50

2.00

2.50

3.00

3.50

0.00 0.01 0.01 0.02 0.02 0.03 0.03

An

gle

de

l'az

imu

t (D

egr

és)

Tension de rétroaction (Volts)

Page 57: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

50

Aperçu du prototype :

Dans le but d’accommoder la totalité des pièces nécessaires, un circuit imprimé était pratiquement

indispensable. Bien qu’il aurait été possible de le faire plus petit et même d’utiliser les deux côtés pour

déposer des pièces, il a été décidé de le faire assez gros pour bien séparer les divers types d’éléments,

comme par exemple, éloigner le récepteur GPS des ponts en H pour limiter d’éventuelles perturbations

électromagnétiques indésirables. La figure 45 illustre le travail réalisé.

Figure 45 : Circuit imprimé final

Ensuite, la schématique de la page suivante illustre tous les liens qui raccordent les pièces entre elles.

C’est un élément essentiel à consulter pour tenter de trouver d’éventuels problèmes ou pour bien

comprendre le fonctionnement en profondeur du système.

Page 58: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

51

Figure 46 : Schématique finale

Page 59: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

52

La figure qui suit est la représentation des fils conducteurs qui relient les interrupteurs, les connecteurs et

le circuit imprimé ensemble.

Figure 47 : Branchements internes du prototype

Ensuite, la figure 48 est une photo du prototype électrique dans sa forme finale, avec les connecteurs en

acier inoxydable qui font le pont entre le système électrique de contrôle et le système mécanique sur

lequel se situent les cellules photovoltaïques.

Figure 48 : Système final

Page 60: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

53

IV Bilan des activités

IV.1 Arrimage formation pratique/universitaire

Étant donné la nature de ce projet qui est un amalgame d’électronique, d’informatique et, à un certain

niveau, d’astronomie, il est certain que différents types de connaissances ont été nécessaires. Tout

d’abord, le cours Systèmes à micro-processeurs a été celui qui s’est avéré le plus utile, car le cœur du

prototype repose sur ce genre de système. Ensuite, le cours Introduction aux ordinateurs a permis de

s’initier aux bases de la programmation en langage C et C++. Il s’avère que le langage choisi pour

programmer le microcontrôleur PIC est le C. Ce cours a aussi montré comment utiliser et convertir les

différentes bases des systèmes de numération. Le cours Systèmes digitaux a contribué à faire comprendre

les bases des portes logiques, les bits de départs, bits d’arrivées et bits de parité. Les cours Électronique I

et Électronique II ont, quant à eux, permis de comprendre et d’utiliser les diodes, diodes

électroluminescentes, transistors et autres dispositifs électroniques. Le cours Signaux et systèmes a montré

la théorie sur les filtres passifs qui ont été utilisés à quelques reprises dans le projet, en plus d’être le

premier cours dans lequel le logiciel MATLAB a été employé. D’une façon plus générale, les nombreux

cours de mathématiques du programme universitaire ont permis de faciliter énormément l’utilisation du

calcul trigonométrique et logarithmique, pour ne nommer que ceux-ci. La compréhension des formules de

la position du Soleil aurait été bien plus ardue sans cet important bagage mathématique.

Cependant, suite à ce projet, il apparaît plusieurs lacunes à la formation en génie électrique. La première

concerne le logiciel Altium. Ce logiciel très important devrait absolument être intégré dans tous les cours

qui s’y prêtent. La seconde lacune est relative à la lecture des fiches techniques des différents types de

pièces retrouvées en électronique. Bien que chaque pièce et chaque fiche technique soit différente l’une

de l’autre, il apparaît souvent une certaine constance dans les termes qui s’y retrouvent.

Malheureusement, il y a plusieurs utilisations de ces fiches qui s’avèrent contre-intuitives et un petit cours

serait le bienvenu pour apprendre les bases.

Page 61: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

54

IV.2 Travail d’équipe

En tant que futur ingénieur, il est évident que le travail d’équipe est primordial pour réussir à mener à

terme des projets de plus ou moins grande envergure. Pour le présent projet, le travail d’équipe n’a pas

fait exception; il a été la clef du succès pour son accomplissement. Bien certainement, comme dans tous

les projets, les membres de l’équipe ont dû faire des sacrifices à un moment ou à un autre durant la

conception du projet. Par exemple, puisque les deux coéquipiers n’ont pas la même situation familiale, il

leur était parfois difficile de se fixer des plages horaires fixes qui convenaient aux deux parties. Lorsque

le travail est exécuté en entreprise, plusieurs personnes appartiennent à la même famille et ont plusieurs

enfants, alors il arrive souvent que des parents doivent s’absenter pour une raison ou une autre afin de

subvenir aux besoins de leur famille. Pour ce genre de raisons, la communication a joué un rôle important

durant la durée du projet. Il suffisait d’en aviser son coéquipier lorsque la situation se présentait. Tous les

membres de l’équipe étaient et sont toujours des personnes sérieuses, travaillantes et intéressées, ce qui a

permis un avancement constant de la conception. Pour ce qui est de la charge de travail effectué par les

membres de l’équipe, la répartition s’est faite de façon naturelle. En d’autres mots, les forces de chacun

ont dirigé les membres à exploiter leurs forces pour faire le travail en parallèle. Cette façon de faire a

permis d’augmenter la vitesse de conception, tout en bénéficiant des conseils et des connaissances du

coéquipier respectif. Le travail ardu de chacun a permis de surmonter les obstacles. Finalement, nous

pouvons faire ressortir plusieurs points positifs de ce travail d’équipe. Par exemple, il a permis de mieux

connaître les collaborateurs. Aussi, ce projet a obligé les participants à faire des concessions les uns par

rapport aux autres et à prendre les moyens pour assister à des rencontres hebdomadaires.

La coopération du promoteur a été très bonne. Lorsque certains matériaux et équipements étaient

nécessaires pour l’avancement du projet, il était toujours à l’écoute pour subvenir aux besoins. De plus,

avec une bonne communication, il a été possible de modifier le projet afin qu’il réponde le mieux possible

aux besoins. En cours de route, il a été possible de constater que certaines pièces n’étaient pas nécessaires,

l’accéléromètre par exemple, car en regardant le bilan énergétique sommaire, ces composantes n’étaient

pas rentables ou tout simplement superflues. De l’autre côté, durant le temps de conception, le promoteur

a demandé l’ajout de certaines autres fonctionnalités. Tout au long du projet, la communication constante

avec le promoteur a permis à toutes les parties de connaître l’avancement et les modifications apportées

au projet.

Pour ce qui est des relations avec le conseiller, celui-ci était présent à tout moment pour discuter des

modifications et des nouvelles idées apportées au projet. Ainsi, les deux parties ont pu acquérir des

connaissances à travers ce projet de conception.

Page 62: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

55

IV.3 Respect de l’échéancier

Le projet s’est majoritairement déroulé selon l’échéancier qui avait été présenté dans le plan de travail. En

effet, la sélection des diverses composantes nécessaires, les discussions concernant le principe de

fonctionnement et la programmation principale du microcontrôleur se sont bien déroulées et ont suivi

l’échéancier. Là où les choses se sont corsées, c’est pour le circuit imprimé. Sa conception s’est avérée

beaucoup plus longue que prévue, afin d’être certain d’éliminer le plus d’erreurs possibles. Aussi, il fallait

se coordonner avec les autres équipes de projet en génie électrique et informatique pour acheminer tous

les circuits imprimés en même temps.

Page 63: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

56

Tableau 16 : Échéancier final

Page 64: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

57

IV.4 Analyse et discussion

Une des premières étapes du projet a été de fixer un échéancier sur une durée de deux sessions. Ce dernier

a pratiquement été suivi à la lettre tout au long du projet, à l’exception de la fin, soit le circuit imprimé et

les tests finaux. Il fallait en effet être en mesure de synchroniser trois équipes pour l’envoi des circuits

imprimés à la fabrication. Il a toutefois été possible de rattraper une partie du temps perdu lors de cette

synchronisation pour parvenir aux résultats attendus. Comme la session d’automne était moins chargée, le

gros du travail a été réalisé durant cette période. De plus, la période des fêtes a permis de prendre une

certaine avance, en prévision d’une session d’hiver vraiment chargée. Au départ le projet semblait simple,

mais avec l’avancement plusieurs troubles sont survenus et il a fallu user d’ingéniosité pour les résoudre.

Ensuite, plusieurs idées ont été présentées par toutes les parties (promoteur, conseiller et concepteurs) afin

de rendre le projet plus performant et plus complet. Pour obtenir un meilleur rendement, il était clair au

départ que l’équipe voulait que le système fonctionne sur deux axes au lieu d’un seul. Ceci a complexifié

légèrement le projet. Ensuite, l’utilisation d’un accéléromètre a été envisagée. Par contre, l’erreur du

modèle acheté pour lequel une plaque d’essais a été fabriquée était trop importante. Pour ce qui est du

magnétomètre, des tests ont été effectués et ce dernier était trop sensible aux champs magnétiques

variables. Il pourrait être utilisé pour l’orientation initiale du panneau solaire, mais il devrait être situé

bien loin de toutes perturbations électromagnétiques trop puissantes. Afin de parvenir aux objectifs, la

force de chacun des coéquipiers a dû être employée pour réaliser des travaux distincts. Il y avait beaucoup

de manques de connaissances causées par certaines lacunes à l’intérieur du baccalauréat pour la

réalisation du projet. Ceci a eu comme conséquence de prendre beaucoup plus de temps que prévu pour la

réalisation de certaines parties. L’utilisation de plusieurs logiciels inconnus est un exemple de ce manque

de connaissances; Altium et Visual Basic, par exemple. Les étapes qui ont été suivies lors de la réalisation

du projet étaient les bonnes, car la compréhension de l’objectif et l’aspect technique étaient bien compris.

Un gros problème rencontré, c’est le fait de ne pas avoir une grande quantité de pièces différentes en

mains. Il est important d’expérimenter afin de valider des choix de conception comme c’est parfois le cas

lorsque les ingénieurs travaillent en entreprise.

Page 65: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

58

Points forts :

L’échéancier a été suivi;

Le projet est fonctionnel;

Des ajouts sont inclus pour un meilleur fonctionnement;

La communication entre les parties a été très bonne;

La relation avec le promoteur était bonne;

Pratiquement aucune aide n’a été nécessaire de la part du conseiller;

Il y a eu une bonne compréhension du travail à exécuter;

Une bonne analyse technique a été portée sur le travail à réaliser;

Aucune erreur coûteuse en temps ou en matériel.

Points faibles

Un grand manque de connaissances dans certains domaines (demande plus de temps);

Session chargée (temps);

Optimisation du PCB à parfaire au niveau de la proximité des connecteurs (headers);

Optimisation possible du code.

Résultats obtenus

Le temps investi dans ce projet a permis d’obtenir un prototype fonctionnel et testé, dans les délais

prévus. Pour un montant de 215 $, soit moins que les 280 $ initialement prévus dans le plan de travail, il a

été possible de concevoir et d’assembler un système qui respecte les fonctionnalités demandées par le

promoteur. Il est contenu en totalité à l’intérieur d’une boîte compacte, résistante et de belle apparence.

De plus, il possède les caractéristiques nécessaires pour être utilisé dans la très grande majorité des

endroits de la planète. Les deux axes sont fonctionnels et sont capables de suivre le Soleil à la trace,

jusqu’aux limites du support mécanique. Le prototype a été en mesure de fonctionner en permanence,

sans erreur d’opération et sans surchauffe, comme il a été prévu. Au cours du projet, plusieurs

technologies testées ont été rejetées, retenues ou encore gardées en considération pour les

recommandations. Ainsi, le prototype réalisé pendant ce projet ainsi que le présent rapport devraient

satisfaire le promoteur.

Page 66: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

59

V Conclusion et recommandations

Suite à ce rapport, il est possible de constater que le projet s’est déroulé comme prévu, selon les

échéanciers élaborés lors du plan de travail. Quelques pièces ont été changées en cours de route. C’est le

cas du récepteur GPS. Le premier modèle sélectionné (EM-406A) avait été choisi étant donné la

disponibilité de deux exemplaires dans le bureau des techniciens de l’UQAC. Ces récepteurs se sont

avérés défectueux et ont donc été abandonnés au profit d’un récepteur de bien meilleure qualité (RXM-

GPS-SR). Les ponts en H ont aussi dû être changés. Il s’est avéré que le premier modèle choisi (TLE-

5206-2) n’était plus disponible à la vente. La conception avait malheureusement été commencée avec ce

modèle. Cependant, le modèle (VNH3SP30-E) par lequel ces pièces ont été remplacées est bien plus

puissant et possède des caractéristiques de loin supérieures.

Puis, lors du choix des pièces initiales, il a été impossible de trouver des composantes fonctionnant toutes

avec une tension de 3.3V, comme c’est le cas du GPS. Il aurait peut-être été possible de trouver des

composantes fonctionnant toutes avec 5V, mais ce n’est pas un facteur critique. Ceci explique en partie

pourquoi une tension de 5 volts est présente sur le prototype.

Ensuite, en faisant exception des vérins qui ont une plage de températures d’opération n’allant pas sous

les -26°C, les pièces choisies sont toutes certifiées pour fonctionner à des températures atteignant au

minimum -30°C. C’est le récepteur GPS qui limite le tout à -30°C, sinon le reste du projet peut atteindre

des températures de fonctionnement de -40°C selon les fiches techniques des divers fabricants.

Il sera possible pour le promoteur de programmer la communication I2C du magnétomètre s’il veut

l’utiliser, car la partie électronique de celui-ci est déjà implémentée sur le circuit imprimé. Il suffit

simplement de faire la programmation pour faire fonctionner la communication I2C. De plus, comme pour

une boussole standard, le magnétomètre ne doit pas être placé près de matériaux métalliques. Par contre,

si le champ magnétique indésirable est constant, il est possible de faire la calibration du magnétomètre

pour éliminer ce champ jusqu’à un certain point.

Afin de conserver les composantes électroniques, il est préférable de retirer le boîtier du module solaire

lors du transport. Idéalement le module ne devrait pas être laissé sans être attaché dans un gros contenant,

car la plupart des pièces sont montées en surface et sont donc relativement sensibles aux chocs. La plupart

des composantes utilisées peuvent supporter une grande accélération, mais certaines sont plus sensibles.

Par exemple, le module GPS est une pièce plutôt sensible et primordiale pour le bon fonctionnement du

système.

Page 67: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

60

Pour le futur, si l’installation solaire demande l’utilisation de plus gros vérins ou moteurs demandant plus

de puissance, les ponts en H auront peut-être besoin d’un dissipateur de chaleur. La dissipation par le

cuivre du circuit imprimé peut supporter un courant continu de 6.85A maximum. Pour obtenir le courant

continu maximum, il faut utiliser les mêmes calculs que dans la section des ponts en H.

Suite à des tests réalisés avec le circuit imprimé présenté dans ce rapport, il est important de préciser que

des modifications mineures devront être opérées si le promoteur veut le reproduire. L’interrupteur

principal n’inclut présentement pas la partie puissance des deux ponts en H. Bien qu’ils soient tout de

même protégés par fusible, ils sont en permanence alimentés, ce qui veut dire que le circuit consomme

près de 13 mA s’il est connecté, mais que l’interrupteur principal n’est pas activé. Ensuite, le

convertisseur DC/DC CC3-1205SF-E doit avoir sa patte TRM (6) flottante (5 volts) plutôt que mise à la

terre (6 volts). Le porte-pile doit être corrigé afin qu’il ne connecte pas avec la terre des deux côtés mais

bien d’un seul. Finalement, le dessin des trois diodes (DL1, DL2 et DL3) sur le schéma est inversé.

Pour rendre le fonctionnement plus visuel et pour mieux savoir ce que le système fait réellement à chaque

instant, des diodes électroluminescentes ont été utilisées. Bien qu’elles soient très pratiques pour trouver

des problèmes, elles consomment beaucoup de puissance par rapport au système complet. Ainsi, pour

limiter la consommation d’énergie, il pourrait être judicieux de les éliminer.

Afin d’améliorer l’étanchéité du boîtier, si le projet était à reconstruire il serait bien de laisser le

connecteur USB à l’intérieur de ce boîtier et de le diriger vers le haut pour faciliter son utilisation

éventuelle. C’est en effet la plus grande source possible d’infiltration d’eau. De plus, les connecteurs

pourraient être remplacés par des modèles plus étanches, mais aussi beaucoup plus dispendieux.

Pour des campements plus permanents, un système qui utilise un clavier pour entrer les coordonnées

géographiques, couplé à une horloge temps réel, pourrait remplacer avantageusement un récepteur GPS

en éliminant la dépendance avec le signal GPS.

Finalement, une autre recommandation serait d’utiliser un mécanisme différent pour l’azimut. Le

prototype mécanique actuel est très instable et représente la plus grande source d’imprécision. Pour

couvrir un hémisphère complet et donc améliorer le rendement, le prototype mécanique devrait pourvoir

couvrir l’azimut sur les 360 degrés et la hauteur sur 90 degrés. Idéalement, un système mécanique qui

peut atteindre des angles plus grands serait mieux. Des mouvements pourraient alors être épargnés, ce qui

conserverait l’énergie et contribuerait donc à l’augmentation du rendement, but ultime de ce projet.

Page 68: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

61

Bibliographie

1. Bernard, Jacques (2004). Énergie solaire : Calculs et optimisation. Paris : Ellipses Marketing,

252 p.

2. Astronomy Education at the University of Nebraska-Lincoln. Motions of the Sun Simulator.

[En ligne]. [http://astro.unl.edu/naap/motion3/animations/sunmotions.html]. Consulté le

12 octobre 2011.

3. Linx Technologies. SR series GPS receiver module data guide. [En ligne].

[http://www.linxtechnologies.com/resources/data-guides/rxm-gps-sr.pdf]. Consulté le

6 février 2012.

4. Ali Mazidi, Muhammad; D.Mckinlay Rolin; Causey, Danny (2008). PIC Microcontroller and

Embedded systems : Using Assembly and C for PIC18. New Jersey : Pearson Prentice Hall, 816 p.

5. L.Jones, Bradley; Aitken, Peter (2005). Le langage C. Paris : CampusPress, 705 p.

6. Microchip (2005). MPLAB C18 C Compiler : Getting Started. Microchip Technology Inc.,

124 p.

7. Wikipedia. The Free Encyclopedia. Solar azimuth angle. [En ligne].

[http://en.wikipedia.org/wiki/Solar_azimuth_angle]. Consulté le 16 novembre 2011.

8. Microchip. PIC18F2585/2680/4585/4680 Data Sheet. [En ligne].

[http://ww1.microchip.com/downloads/en/DeviceDoc/39625c.pdf]. Consulté le 6 février 2012.

9. Microchip (2005). MPLAB C18 C Compiler : Libraries. Microchip Technology Inc., 180 p.

Page 69: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

62

Glossaire

Figure 49 : Coordonnées horizontales d’un astre (azimut a et hauteur h) [1]

Azimut (a) : Angle que fait, en un lieu donné, la direction nord-sud avec la projection dans le plan

horizontal de la direction Terre-Soleil. [1]

Cellule photovoltaïque : Système transformant le rayonnement solaire en énergie électrique. [1]

Hauteur (h) : Angle que fait, en un lieu donné, le plan horizontal avec la droite tracée entre ce lieu et le

Soleil. [1]

Latitude (φ) : Une des deux coordonnées terrestres d’un point de notre planète (cf. Longitude). C’est

l’angle que fait le plan de l’équateur avec la direction reliant le centre de la Terre au point considéré. Sa

valeur est positive dans l’hémisphère nord, négative dans l’hémisphère sud. [1]

Longitude (L) : Une des deux coordonnées terrestres d’un point de notre planète (cf. Latitude). C’est

l’angle que fait le méridien local passant par le point considéré avec le méridien origine passant par la

ville de Greenwich. Sa valeur est positive à l’ouest et négative à l’est du méridien origine. [1]

Méridien : Demi grand cercle passant par l’axe des pôles terrestres et le point considéré sur notre planète

(méridien terrestre) ou bien passant par l’axe des pôles célestes et l’astre considéré (méridien céleste). [1]

Rendement d’un capteur (η) : Rapport de l’énergie utile récupérée sur l’énergie solaire totale tombant sur

le capteur. [1]

Temps solaire vrai (TSV) : Système de mesure de l’heure en un point donné, pour lequel il est midi quand

le Soleil se trouve dans le plan du méridien local. [1]

Page 70: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

63

Annexe 1 (Code de simulation MATLAB)

%% Détermination de la position du Soleil clc;clear all;close all

jour=21; % jour=Numéro du jour du mois mois=06; % mois=Numéro du mois de l'année Latitude=45; % Latitude (degré)

% Détermination du numéro du jour dans l'année n=jour+31*(mois-1); if mois<3 n=n; end if mois>2 n=n-floor(0.4*mois+2.3); end % Équation déterminant la déclinaison (degré) delta=23.45*sind((360/365)*(n-81));

hold precision=0.01; for i=1:24/precision TSV=(i-1)*precision; % TSV=Temps solaire vrai (heure)

%TSV=0:precision:24 % TSV=Temps solaire vrai (heure) % Équation déterminant l'angle horaire (degré) w=(TSV-12)*15; % Équation déterminant la hauteur du Soleil (degré) hauteur(i)=asind(sind(Latitude)*sind(delta)+cosd(Latitude)*cosd(delta)*cosd(w)

); % Équation déterminant l'azimut du Soleil (degré) azimut(i)=acosd((sind(delta)-

sind(hauteur(i))*sind(Latitude))/(cosd(hauteur(i))*cosd(Latitude))); % Conversion de l'azimut en système 0 à 360 degrés if w<0 azimut(i)=azimut(i); end if w>=0 azimut(i)=360-azimut(i); end % Traçage de la hauteur du Soleil en fonction de l’azimut

end figure (1) plot(azimut,hauteur),grid minor xlabel('Azimut (degré)'),ylabel('Hauteur (degré)') title ('Hauteur du Soleil en fonction de l''azimut')

Page 71: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

64

Annexe 2 (Code du microcontrôleur)

/*Ce programme permet le positionnement selon l'axe Hauteur et Azimutal d'un panneau solaire à l'aide d'un récepteur GPS. Il a été réalisé par : Shawn-Yannick Côté ([email protected]) Canada (Québec) 2012

Date de la dernière modification : 15 avril 2012

-----------------------------------------------------------------------------------------------------

INITIALISATION

----------------------------------------------------------------------------------------------------*/

//Fichiers d'en-tête du programme

#include <p18cxxx.h> //Fichier de définition des registres internes du PIC #include <math.h> //Bibliothèque de mathématiques (sin, asin, cos, acos, fabs)

#include <usart.h> //Bibliothèque de l'USART (hardware)

#include <sw_uart.h> //Bibliothèque de l'UART (software) #include <stdlib.h> //Bibliothèque de fonctions générales (atoi, atof)

#include <delays.h> //Bibliothèque de fonctions de temporisation

#include <i2c.h> //Bibliothèque de fonctions I2C #pragma config OSC=HS //Utilisation du cristal externe (Fosc=25 MHz, Tosc=40 ns)

#pragma config WDT=OFF //Désactivation du WatchDog Timer #pragma config LVP=OFF //Désactivation Low Voltage Programming

#pragma config MCLRE=ON

//Définition des sorties et des entrées

#define hauteur_verin_ENABLE PORTBbits.RB0 //Entrées ENa et ENb du pont en H (hauteur)

#define azimut_verin_ENABLE PORTBbits.RB1 //Entrées ENa et ENb du pont en H (azimut) #define verin_INa PORTBbits.RB2 //Entrées INa des ponts en H

#define verin_INb PORTBbits.RB3 //Entrées INb des ponts en H

#define DEL_inutilisee PORTDbits.RD4 //DEL inutilisée #define DEL_transport PORTDbits.RD5 //DEL d'indication du mode transport

#define selecteur_transport PORTDbits.RD6 //Interrupteur du mode Transport

#define selecteur_periodique PORTDbits.RD7 //Interrupteur du mode Périodique

//Définition des variables du programme

char position_virgule,i,j; char mode_nuit; //mode_nuit=1 -> Soleil sous horizon mode_nuit=0 -> Soleil dessus horizon

char correctif_jour_GMT;

char temps_ecoule; //Déplacement uniquement aux heures char GGA_OFF[]="$PSRF103,00,00,00,01*24\r\n"; //Code de fermeture de la trame GGA \r=retour du chariot (Carriage Return)

char GLL_OFF[]="$PSRF103,01,00,00,01*25\r\n"; //Code de fermeture de la trame GLL \n=nouvelle ligne (Line Feed)

char GSA_OFF[]="$PSRF103,02,00,00,01*26\r\n"; //Code de fermeture de la trame GSA char GSV_OFF[]="$PSRF103,03,00,00,01*27\r\n"; //Code de fermeture de la trame GSV

char RMC_ON[]="$PSRF103,04,00,01,01*21\r\n"; //Code d'ouverture de la trame RMC

char VTG_OFF[]="$PSRF103,05,00,00,01*21\r\n"; //Code de fermeture de la trame VTG float latitude_rad,delta_deg,delta_rad,angle_hor_deg,angle_hor_rad;

float hauteur_deg,hauteur_rad,azimut_deg,azimut_rad,azimut_deg_limitee;

float latitude_deg=0; float latitude_min=0;

float longitude_deg=0;

float longitude_min=0; float TSV=0;

float UTC=0;

float minute=0; float consigne_hauteur,erreur_hauteur,erreur_hauteur_abs,position_hauteur,position_hauteur_volt;

float consigne_azimut,erreur_azimut,erreur_azimut_abs,position_azimut,position_azimut_volt;

int numero_jour; int k;

int jour=0;

int mois=0; int heure=0;

int annee=0;

int latitude_degre=0; int longitude_degre=0;

int position_azimut_adc,position_hauteur_adc;

unsigned char gps[100]; //Tableau tampon pour la trame GPRMC unsigned char heure_gps[3]; //Temps GMT (heure)

unsigned char minute_gps[3]; //Temps GMT (minute)

unsigned char valide_gps; //valide_gps=A -> Signal valide valide_gps=V -> Signal invalide

unsigned char latitude_deg_gps[3]; //latitude (degré)

unsigned char latitude_min_gps[3]; //latitude (minute)

Page 72: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

65

unsigned char longitude_deg_gps[4]; //longitude (degré)

unsigned char longitude_min_gps[3]; //longitude (minute)

unsigned char hemisphere_gps; //hemisphere_gps='N' -> Hemisphère Nord hemisphere_gps='S' -> Hemisphère Sud

unsigned char meridien_gps; //meridien_gps='E' -> Est de Greenwich meridien_gps='W' -> Ouest de Greenwich

unsigned char jour_gps[3]; //Date (jour)

unsigned char mois_gps[3]; //Date (mois) unsigned char annee_gps[3]; //Date (an)

unsigned char saut_gps; //Utilisé pour le triage de la trame $GPRMC

//Déclaration des fonctions du programme

float deg_to_rad(float); //Conversion des degrés en radian

float rad_to_deg(float); //Conversion des radians en degrés float lecture_pot_azimut(void); //Lecture du potentiomètre azimut et conversion en degrés

float lecture_pot_hauteur(void); //Lecture du potentiomètre hauteur et conversion en degrés

int numero_du_jour(int,int); //Détermination du numéro du jour dans l'année void PWM(float); //Détermination du duty cycle à utiliser pour le PWM

void DelayTXBitUART(void); //Fonction de délais nécessaire au TX (UART logiciel)

void DelayRXHalfBitUART(void); //Fonction de délais nécessaire au RX (UART logiciel) void DelayRXBitUART(void); //Fonction de délais nécessaire au RX (UART logiciel)

void Delay(int); //Fonction de délais longs

/*----------------------------------------------------------------------------------------------------

PARTIE PRINCIPALE

----------------------------------------------------------------------------------------------------*/

void main (void)

//Délai permettant au système de s'initialiser correctement (GPS surtout) avant de débuter

// Delay(15);

//Configuration initiale du port B

TRISB=0b00110000; //Le port B est un port de sortie

hauteur_verin_ENABLE=0; //Désactivation du pont en H hauteur azimut_verin_ENABLE=0; //Désactivation du pont en H azimut

verin_INa=0; //Désactivation de la sortie INa des ponts en H

verin_INb=0; //Désactivation de la sortie INb des ponts en H

//Configuration initiale du port D TRISD=0b11001111; //Port D : 0=sortie (output) 1=entrée (input)

DEL_transport=0; //Extinction de la DEL du mode transport

DEL_inutilisee=0;

//Configuration initiale de l'ADC (potentiomètres de rétroaction)

TRISAbits.TRISA0=0; //RA0=INPUT pour entrée analogique ADCON1=0b00001100; //AN0 et AN1 et AN2=analogique, Vref du PIC

ADCON2=0b10101110; //Fosc/64, 12 TAD, Right justified

//Configuration initiale du PWM (modulation de largeur d'impulsion)

TRISCbits.TRISC2=0; //La pin PWM est une sortie

CCP1CON=0b00001100; //PWM mode T2CON=0b00001100; //Timer2 ON, aucun postscaler, 1 prescale

PR2=255; //Détermine la période

// //Utilisation de l'USART hardware pour initialiser le GPS

// TRISC = 0x00; //Ouverture du Port C

// OpenUSART(USART_TX_INT_OFF //Transmit interrupts=off // &USART_RX_INT_OFF //Receive interrupts=off

// &USART_ASYNCH_MODE //Asynchronous mode=on

// &USART_EIGHT_BIT //8 bits // &USART_CONT_RX //Continuous receive=on

// &USART_BRGH_LOW,40); //Pour 9600 kbps et 25 MHz, SPBRG=40 (erreur=0.76%)

// putrsUSART("$PSRF103,00,00,00,01*24\r\n"); //Écriture dans l'USART : GGA OFF // putrsUSART("$PSRF103,01,00,00,01*25\r\n"); //Écriture dans l'USART : GLL OFF

// putrsUSART("$PSRF103,02,00,00,01*26\r\n"); //Écriture dans l'USART : GSA OFF

// putrsUSART("$PSRF103,03,00,00,01*27\r\n"); //Écriture dans l'USART : GSV OFF // putrsUSART("$PSRF103,04,00,01,01*21\r\n"); //Écriture dans l'USART : RMC ON

// putrsUSART("$PSRF103,05,00,00,01*21\r\n"); //Écriture dans l'USART : VTG OFF

// CloseUSART(); //Fermeture du USART

Page 73: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

66

//Utilisation de l'UART software pour initialiser le GPS

OpenUART(); //Ouverture du UART software

putsUART(GGA_OFF); //Écriture dans l'UART : GGA OFF

putsUART(GLL_OFF); //Écriture dans l'UART : GLL OFF

putsUART(GSA_OFF); //Écriture dans l'UART : GSA OFF

putsUART(GSV_OFF); //Écriture dans l'UART : GSV OFF putsUART(RMC_ON); //Écriture dans l'UART : RMC ON

putsUART(VTG_OFF); //Écriture dans l'UART : VTG OFF

//Fonctionnement continu (boucle infinie)

while (1)

if (selecteur_transport==1) //Sélecteur activé ? -> mode transport

DEL_transport=1; //Allumage de la DEL du mode transport

//Abaissement complet du panneau dans l'axe hauteur (mise à 0 degré)

hauteur_verin_ENABLE=1; //Activation du pont en H hauteur azimut_verin_ENABLE=0; //Désactivation du pont en H azimut

position_hauteur=lecture_pot_hauteur();

while (position_hauteur>0.3) //Boucle de correction de la position (hauteur)

CCPR1L=255; //Valeur du PWM = 255 (12 volts au vérin)

position_hauteur=lecture_pot_hauteur(); verin_INa=1; //Activation de la sortie INa des ponts en H

verin_INb=0; //Désactivation de la sortie INb des ponts en H

//Rotation du panneau plein Sud (mise à 180 degrés)

consigne_azimut=180; //Orientation dans l'axe Nord-Sud (180 degrés) hauteur_verin_ENABLE=0; //Désactivation du pont en H hauteur

azimut_verin_ENABLE=1; //Activation du pont en H azimut

position_azimut=lecture_pot_azimut(); erreur_azimut=consigne_azimut-position_azimut; //Calcul de l'erreur

erreur_azimut_abs=fabs(erreur_azimut); //Valeur absolue de l'erreur

while (erreur_azimut_abs>0.3) //Boucle de correction de la position (azimut)

position_azimut=lecture_pot_azimut(); erreur_azimut=consigne_azimut-position_azimut; //Calcul de l'erreur

if (erreur_azimut<0) //Consigne < mesure -> Panneau doit tourner antihoraire

erreur_azimut_abs=-erreur_azimut;

verin_INa=1;

verin_INb=0;

if (erreur_azimut>=0) //Consigne > mesure -> Panneau doit tourner horaire

erreur_azimut_abs=erreur_azimut;

verin_INa=0;

verin_INb=1;

PWM(erreur_azimut_abs); //Appel de la fonction PWM pour déterminer le duty cycle

hauteur_verin_ENABLE=0; //Désactivation du pont en H hauteur

azimut_verin_ENABLE=0; //Désactivation du pont en H azimut

verin_INa=0; //Désactivation de la sortie INa des ponts en H verin_INb=0; //Désactivation de la sortie INb des ponts en H

DEL_transport=0; //Extinction de la DEL du mode transport

while (selecteur_transport==1); //Demeure ici tant que le sélecteur est activé

else

// //Utilisation de l'USART hardware pour la réception des données GPS

// OpenUSART(USART_TX_INT_OFF //Transmit interrupts=off // &USART_RX_INT_OFF //Receive interrupts=off

// &USART_ASYNCH_MODE //Asynchronous mode=on

// &USART_EIGHT_BIT //8 bits // &USART_CONT_RX //Continuous receive=on

// &USART_BRGH_LOW,40); //Pour 9600 kbps et 25 MHz, SPBRG=40 (erreur=0.76%)

// getsUSART(gps,69); //Copie de la trame entrante dans un tableau tampon de 69 cases

// CloseUSART(); //Fermeture du USART

Page 74: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

67

//Utilisation de l'UART software pour la réception des données GPS

//OpenUART(); //Ouverture du UART software

getsUART(gps,69); //Copie de la trame entrante dans un tableau tampon de 69 cases

//Parsing (triage) des données GPS qui permet un bon tri même si des champs sont libres if (gps[0]=='$'&&gps[1]=='G'&&gps[2]=='P'&&gps[3]=='R'&&gps[4]=='M'&&gps[5]=='C'&&gps[6]==',')

//Début trame GPRMC ?

position_virgule=1;

saut_gps=0;

for(i=7;i<69;i++)

if (gps[i]==',') //Si le caractère est une virgule, on incrémente la position

position_virgule++;

if (position_virgule==1 && gps[i]!=',') //Champ1 : heure dans la journée

heure_gps[0]=gps[i];

heure_gps[1]=gps[i+1]; minute_gps[0]=gps[i+2];

minute_gps[1]=gps[i+3];

saut_gps=1;

if (position_virgule==2 && gps[i]!=',') //Champ2 : validité (A) ou non (V) du signal

valide_gps=gps[i];

saut_gps=2;

if (position_virgule==3 && gps[i]!=',') //Champ3 : latitude

latitude_deg_gps[0]=gps[i]; latitude_deg_gps[1]=gps[i+1];

latitude_min_gps[0]=gps[i+2];

latitude_min_gps[1]=gps[i+3]; saut_gps=3;

if (position_virgule==4 && gps[i]!=',') //Champ4 : position par rapport à l'équateur

hemisphere_gps=gps[i]; saut_gps=4;

if (position_virgule==5 && gps[i]!=',') //Champ5 : longitude

longitude_deg_gps[0]=gps[i];

longitude_deg_gps[1]=gps[i+1]; longitude_deg_gps[2]=gps[i+2];

longitude_min_gps[0]=gps[i+3];

longitude_min_gps[1]=gps[i+4]; saut_gps=5;

if (position_virgule==6 && gps[i]!=',') //Champ6 : position par rapport à Greenwich

meridien_gps=gps[i];

saut_gps=6;

if (position_virgule==7 && gps[i]!=',') //Champ7 : (Speed over ground) inutilisé

saut_gps=7;

if (position_virgule==8 && gps[i]!=',') //Champ8 : (Course over ground) inutilisé

saut_gps=8;

if (position_virgule==9 && gps[i]!=',') //Champ9 : date

jour_gps[0]=gps[i]; jour_gps[1]=gps[i+1];

mois_gps[0]=gps[i+2];

mois_gps[1]=gps[i+3];

annee_gps[0]=gps[i+4];

Page 75: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

68

annee_gps[1]=gps[i+5];

saut_gps=9;

if (position_virgule==10)

break;//Sortie de la boucle For si on a atteint la dernière virgule importante

if (gps[i]!=',') //Si le caractère n'est pas une virgule, on incrémente la position

position_virgule++;

if (saut_gps==1 && gps[i]!=',')

i=i+10; //Déplacement 10 positions (longueur du champs Heure)

if (saut_gps==2 && gps[i]!=',')

i=i+1; //Déplacement 1 positions (longueur du champs Validité)

if (saut_gps==3 && gps[i]!=',')

i=i+9; //Déplacement 9 positions (longueur du champs Latitude)

if (saut_gps==4 && gps[i]!=',')

i=i+1; //Déplacement 1 position (longueur du champs Hémisphère)

if (saut_gps==5 && gps[i]!=',')

i=i+10; //Déplacement 10 positions (longueur du champs Longitude)

if (saut_gps==6 && gps[i]!=',')

i=i+1; //Déplacement 1 position (longueur du champs Méridien)

if (saut_gps==7 && gps[i]!=',')

i=i+4; //Déplacement 4 positions (longueur du champs SOG)

if (saut_gps==8 && gps[i]!=',')

i=i+5; //Déplacement 5 positions (longueur du champs COG)

if (saut_gps==9 && gps[i]!=',')

i=i+6; //Déplacement 5 positions (longueur du champs Date)

//Si le signal s'avère valide, démarrer le calcul de la position du Soleil

if (valide_gps=='A') //Est-ce que le signal du GPS est valide (A) ?

//Conversions des tableaux (arrays) en nombres (flottants ou entiers)

heure_gps[2]=','; //L'ajout d'un caractère non-numérique...

minute_gps[2]=','; //...à la fin des tableaux permet de... latitude_deg_gps[2]=','; //...régler un problème avec les...

latitude_min_gps[2]=','; //...fonctions atoi et atof.

longitude_deg_gps[3]=','; longitude_min_gps[2]=',';

jour_gps[2]=',';

mois_gps[2]=','; annee_gps[2]=',';

heure=atoi(heure_gps); //array "heure_gps" -> entier "heure"

minute=atof(minute_gps); //array "minute_gps" -> flottant "minute" latitude_degre=atoi(latitude_deg_gps); //array "latitude_deg_gps" -> entier "latitude_deg"

latitude_min=atof(latitude_min_gps); //array "latitude_min_gps" -> flottant "latitude_min"

longitude_degre=atoi(longitude_deg_gps); //array "longitude_deg_gps" -> entier "longitude_deg" longitude_min=atof(longitude_min_gps); //array "longitude_min_gps"-> flottant "longitude_min"

jour=atoi(jour_gps); //array "jour_gps" -> entier "jour"

mois=atoi(mois_gps); //array "mois_gps" -> entier "mois"

annee=atoi(annee_gps); //array "annee_gps" -> entier "annee"

Page 76: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

69

//Augmentation de la précision des heures et degrés en ajoutant les minutes en décimales

UTC=(heure+(minute/60)); //Fusion des heures et des minutes (temps)

latitude_deg=(latitude_degre+(latitude_min/60)); //Fusion des degrés et des minutes (latitude)

longitude_deg=(longitude_degre+(longitude_min/60)); //Fusion des degrés et des minutes (longi.)

//Prise en compte de la position par rapport au méridien de Greenwich pour le signe de la longitude if (meridien_gps=='E') //Est du méridien de Greenwich

longitude_deg=longitude_deg; //Est de Greenwich -> Longitude positive

if (meridien_gps=='W') //Ouest du méridien de Greenwich

longitude_deg=-longitude_deg; //Ouest de Greenwich -> Longitude négative

//Conversion et correction du temps UTC (GMT) en TSV

TSV=UTC+(longitude_deg/15);

if (TSV>=0 && TSV<=24)

correctif_jour_GMT=0; //Nous sommes le même jour qu'à Greenwich

if (TSV<0) //Si l'heure est plus petite que 0

TSV=TSV+24; //Correction de l'heure locale correctif_jour_GMT=-1; //Nous sommes 1 jour avant Greenwich

if (TSV>24) //Si l'heure est plus grande que 24, nous sommes 1 après avant Greenwich

TSV=TSV-24; //Correction de l'heure locale

correctif_jour_GMT=1; //Nous sommes 1 jour après Greenwich

//Altérations mineures aux endroits critiques pouvant produire des bugs (NaN, division par zéro, etc) if (TSV==0) //Minuit exactement

TSV=0.0167; //S'il est minuit (00h00), mettre le temps à minuit et 1 minute (00h01)

if (TSV==12) //Midi exactement

TSV=12.0167; //S'il est midi (12h00), mettre le temps à midi et 1 minute (12h01)

if (latitude_deg==0) //Équateur exactement

latitude_deg=0.0167; //Si Équateur (00d00'), mettre la latitude à (00d01')

if (latitude_deg==90) //Pôle exactement

latitude_deg=89.983; //Si Pôle (90d00'), mettre la latitude à (89d59')

//Prise en compte de l'hémisphère pour le signe de la latitude

if (hemisphere_gps=='N') //Hémisphère Nord

latitude_deg=latitude_deg; //Hémisphère Nord -> Latitude positive

if (hemisphere_gps=='S') //Hémisphère Sud

latitude_deg=-latitude_deg; //Hémisphère Sud -> Latitude négative

//Conversion de l'angle : Degré->Radian

latitude_rad=deg_to_rad(latitude_deg); //Appel de la fonction de conversion

//Détermination du numéro du jour dans l'année

numero_jour=numero_du_jour(jour,mois); //Appel de la fonction du numéro du jour numero_jour=numero_jour+correctif_jour_GMT; //Application du correctif pour l'heure GMT

if (numero_jour==0) //Le jour précédent le 1 janvier est le 31 décembre

numero_jour=365; //Jour 365 = 31 décembre

if (numero_jour==366) //Le jour après le 31 décembre est le 1 janvier

Page 77: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

70

numero_jour=1; //Jour 1 = 1 janvier

//Détermination de la déclinaison (delta) (Le résultat est en degré et doit donc être converti)

delta_deg=23.45*sin(2*3.14159/365*(numero_jour-81));

delta_rad=deg_to_rad(delta_deg);

//Détermination de l'angle horaire

angle_hor_deg=(TSV-12)*15; angle_hor_rad=deg_to_rad(angle_hor_deg); //Appel de la fonction de conversion

//Détermination de la hauteur du Soleil hauteur_rad=asin(sin(latitude_rad)*sin(delta_rad)+cos(latitude_rad)*cos(delta_rad)*cos(angle_hor_rad));

hauteur_deg=rad_to_deg(hauteur_rad); //Appel de la fonction de conversion

//Détermination du jour ou de la nuit

if (hauteur_deg<0) //Soleil sous l'horizon

mode_nuit=1; //Si le Soleil est sous l'horizon, c'est la nuit

else //Soleil au dessus de l'horizon

mode_nuit=0; //Si le Soleil est au dessus de l'horizon, c'est le jour

//Détermination de l'angle que doit avoir le panneau en hauteur (perpendiculaire au Soleil)

consigne_hauteur=90-hauteur_deg;

//Élimination des zones impossibles à atteindre en hauteur (limite du support mécanique)

if (consigne_hauteur<=0)

consigne_hauteur=0;

if (consigne_hauteur>=63)

consigne_hauteur=63;

//Détermination de l'azimut du Soleil

azimut_rad=acos((sin(delta_rad)-sin(hauteur_rad)*sin(latitude_rad))/(cos(hauteur_rad)*cos(latitude_rad)));

azimut_deg=rad_to_deg(azimut_rad);//Appel de la fonction de conversion if (angle_hor_deg<=0)

azimut_deg=azimut_deg;

if (angle_hor_deg>0)

azimut_deg=360-azimut_deg;

//Élimination des zones impossibles à atteindre en azimut (limite du support mécanique)

consigne_azimut=azimut_deg;

if (consigne_azimut<=58)

consigne_azimut=58;

if (consigne_azimut>=322)

consigne_azimut=322;

//Contrôle du vérin hauteur (asservissement en position) hauteur_verin_ENABLE=1; //Activation du pont en H hauteur

azimut_verin_ENABLE=0; //Désactivation du pont en H azimut

position_hauteur=lecture_pot_hauteur(); erreur_hauteur=consigne_hauteur-position_hauteur; //Calcul de l'erreur

erreur_hauteur_abs=fabs(erreur_hauteur); //Valeur absolue de l'erreur

while (erreur_hauteur_abs>0.3) //Boucle de correction de la position (hauteur)

PWM(erreur_hauteur_abs); //Appel de la fonction PWM pour fixer le duty cycle

position_hauteur=lecture_pot_hauteur();

erreur_hauteur=consigne_hauteur-position_hauteur; //Calcul de l'erreur

Page 78: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

71

if (erreur_hauteur<0) //Consigne < mesure -> Panneau doit baisser

erreur_hauteur_abs=-erreur_hauteur;

verin_INa=1;

verin_INb=0;

if (erreur_hauteur>=0) //Consigne > mesure -> Panneau doit monter

erreur_hauteur_abs=erreur_hauteur; verin_INa=0;

verin_INb=1;

hauteur_verin_ENABLE=0; //Désactivation du pont en H hauteur

azimut_verin_ENABLE=0; //Désactivation du pont en H azimut verin_INa=0; //Désactivation de la sortie INa des ponts en H

verin_INb=0; //Désactivation de la sortie INb des ponts en H

//Contrôle du vérin azimut (asservissement en position)

consigne_azimut=consigne_azimut;

hauteur_verin_ENABLE=0; //Désactivation du pont en H hauteur azimut_verin_ENABLE=1; //Activation du pont en H azimut

position_azimut=lecture_pot_azimut();

erreur_azimut=consigne_azimut-position_azimut; //Calcul de l'erreur erreur_azimut_abs=fabs(erreur_azimut); //Valeur absolue de l'erreur

while (erreur_azimut_abs>0.3) //Boucle de correction de la position (hauteur)

PWM(erreur_azimut_abs);//Appel de la fonction PWM pour déterminer le duty cycle

position_azimut=lecture_pot_azimut();

erreur_azimut=consigne_azimut-position_azimut; //Calcul de l'erreur if (erreur_azimut<0) //Consigne < mesure -> Panneau doit tourner antihoraire

erreur_azimut_abs=-erreur_azimut; verin_INa=1;

verin_INb=0;

if (erreur_azimut>=0) //Consigne > mesure -> Panneau doit tourner horaire

erreur_azimut_abs=erreur_azimut;

verin_INa=0;

verin_INb=1;

hauteur_verin_ENABLE=0; //Désactivation du pont en H hauteur azimut_verin_ENABLE=0; //Désactivation du pont en H azimut

verin_INa=0; //Désactivation de la sortie INa des ponts en H

verin_INb=0; //Désactivation de la sortie INb des ponts en H

//Gestion du mode Périodique

if (selecteur_periodique==1) //Si on est en mode Périodique plutôt que Continu

DEL_inutilisee=1;

temps_ecoule=0; //Mise à zéro de l'indicateur de temps écoulé while (temps_ecoule==0 && selecteur_periodique==1) //Temps pas écoulé -> boucle

for(k=0;k<147;k++)

if (selecteur_periodique==0)

DEL_inutilisee=0;

break; //Switch en Continu, on quitte la boucle

Delay10KTCYx (255);//iteration x 255 x 10 000 cycles

temps_ecoule=1; //Le temps est écoulé, on quitte DEL_inutilisee=0;

Page 79: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

72

/*----------------------------------------------------------------------------------------------------

DÉFINITION DES FONCTIONS

----------------------------------------------------------------------------------------------------*/

//Définition de la fonction de conversion des radians en degrés float rad_to_deg(float radian)

float degre; degre=radian*57.29577;

return degre;

//Définition de la fonction de conversion des degrés en radian

float deg_to_rad(float degre)

float radian;

radian=degre/57.29577; return radian;

//Définition de la fonction de détermination du numéro du jour dans l'année

int numero_du_jour(int jour,int mois)

int numero;

numero=jour+31*(mois-1);

if (mois<3) numero=numero;

else

numero=numero-(4*mois+23)/10; return numero;

//Définition de la fonction de la vitesse (duty cycle) du PWM

void PWM (float erreur_absolue)

if (erreur_absolue>=30)

CCPR1L=255; //Valeur du PWM = 255 (12 volts au vérin)

if (erreur_absolue<30 && erreur_absolue>5)

CCPR1L=3.4*erreur_absolue+153; //Valeur du PWM = pente (12 à 8 volts au vérin)

if (erreur_absolue<=5)

CCPR1L=170; //Valeur du PWM = 170 (8 volts au vérin)

TMR2=0; //Reset le timer2

PIR1bits.TMR2IF=0; //Reset le flag du timer2 T2CONbits.TMR2ON=1; //Start le timer2

while(PIR1bits.TMR2IF==0); //Attente de la fin de la période

//Définition de la fonction de lecture du potentiomètre hauteur

float lecture_pot_hauteur ()

float position_h,volt_h;

ADCON0=0b00000101; //Sélection de AN1, start du module A/D ADCON0bits.GO=1; //Début de la conversion analogique->numérique

while(ADCON0bits.DONE==1); //Attente de la fin de la conversion

position_hauteur_adc=(ADRESH*256+ADRESL); //Fusion des 2 registres 8 bits en une donnée 10 bits volt_h=position_hauteur_adc*3.28/1023; //Conversion de l'ADC en tension équivalente

position_h=((1.6349)*volt_h*volt_h*volt_h)-((15.597)*volt_h*volt_h)+

((53.799)*volt_h)-1.6976; //Conversion de la tension en degrés return position_h; //Retour d'une position en degrés

//Définition de la fonction de lecture du potentiomètre azimut

float lecture_pot_azimut ()

float position_a,volt_a;

Page 80: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

73

ADCON0=0b00001001; //Sélection de AN2, start du module A/D

ADCON0bits.GO=1; //Début de la conversion analogique->numérique

while(ADCON0bits.DONE==1); //Attente de la fin de la conversion

position_azimut_adc=(ADRESH*256+ADRESL); //Fusion des 2 registres 8 bits en une donnée 10 bits

volt_a=position_azimut_adc*3.28/1023; //Conversion de l'ADC en tension équivalente

position_a=92.73*volt_a+46.73; //Conversion de la tension en degrés return position_a; //Retour d'une position en degrés

//Définition de la fonction de délais nécessaire au TX (UART logiciel)

void DelayTXBitUART(void)

char delay_time=63; //delay_time=((((2*CLK)/(4*BAUD))+1)/2)-12;

Delay10TCYx (delay_time); //Pour 9600 kbps et 25 MHz : 639.54 cycles

return;

//Définition de la fonction de délais nécessaire au RX (UART logiciel) void DelayRXHalfBitUART(void)

char delay_time=30; //delay_time=((((2*CLK)/(8*BAUD))+1)/2)-9; Delay10TCYx (delay_time); //Pour 9600 kbps et 25 MHz : 317.02 cycles

return;

//Définition de la fonction de délais nécessaire au RX (UART logiciel)

void DelayRXBitUART(void)

char delay_time=61; //delay_time=((((2*CLK)/(4*BAUD))+1)/2)-14;

Delay10TCYx (delay_time); //Pour 9600 kbps et 25 MHz : 637.54 cycles return;

//Définition de la fonction de délais longs

void Delay(int iteration)

char j;

for(j=0;j<iteration;j++)

Delay10KTCYx (255); //iteration x 250 x 10 000 cycles = iteration x 0.408 seconde (@25 MHz)

return;

Page 81: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

74

Annexe 3 (Code Visual Basic du simulateur GPS)

Interface de la simulation du GPS :

Figure 50 : Simulation du GPS avec Visual Basic

Code de la simulation du GPS : Private Sub cmdSend_Click()

MSComm.Output = txtString.Text

MSComm.Output = "," MSComm.Output = txtTime.Text

MSComm.Output = ","

MSComm.Output = txtStatus.Text

MSComm.Output = ","

MSComm.Output = txtLat.Text

MSComm.Output = "," MSComm.Output = txtNSInd.Text

MSComm.Output = ","

MSComm.Output = txtLong.Text MSComm.Output = ","

MSComm.Output = txtEWInd.Text

MSComm.Output = "," MSComm.Output = txtSOG.Text

MSComm.Output = ","

MSComm.Output = txtCOG.Text MSComm.Output = ","

MSComm.Output = txtDate.Text

MSComm.Output = "," MSComm.Output = txtMVar.Text

MSComm.Output = ","

MSComm.Output = txtCheckS.Text

End Sub

Private Sub Form_Load()

If MSComm.PortOpen = False Then

MSComm.PortOpen = True End If

End Sub

Private Sub Form_Unload(Cancel As Integer)

If MSComm.PortOpen = True Then

MSComm.PortOpen = False End If

End Sub

Initialisation de Visual Basic :

Ce programme nécessite une petite manipulation

afin de fonctionner sur un logiciel Visual Basic

nouvellement installé :

- Dans le menu Project, sélectionner Components… (CTRL-T).

- Cocher Microsoft Comm Control 6.0 - La réouverture du logiciel peut être

requise afin de simplifier l’utilisation. - Par la suite, le bon port COM doit être

sélectionné.

Autres informations :

Il ne faut pas oublier que le temps donné par un

récepteur GPS est le temps UTC. De plus, pour

avoir un véritable simulateur, il faudrait que ce

programme envoie automatiquement la trame

$GPRMC à chaque seconde. Cependant, pour ce

projet, l’envoi de commande manuelle est ce qui

convient le plus.

Page 82: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

75

Annexe 4 (Éléments abandonnés)

Cette section contient les éléments qui ont été abandonnés au cours du projet.

L’accéléromètre MMA7660FCT : Il y a plusieurs raisons qui ont mené au choix de l’accéléromètre.

Dans un premier temps, l’accéléromètre utilise la technologie I2C pour la communication. Il a une

consommation de courant très basse et il opère avec de basses tensions. Le système entier devra être

facilement transportable sur des chemins forestiers, alors la robustesse des pièces est un atout important.

L’accéléromètre choisi résiste à 10000g de choc. Pour ce qui est du prix, il est d’environ 4 $. La pièce est

conçue pour fonctionner sur trois axes, mais seuls deux axes auraient été utilisés dans ce projet vu

l’absence de la partie mécanique sur le troisième axe. En effet, comme cet accéléromètre n’aurait été

utilisé que pour le paramètre hauteur du système de coordonnées horizontales, seuls deux des trois axes

sont nécessaires afin de déterminer l’inclinaison du panneau (figure 51). L’accéléromètre a été abandonné

en cours de projet, car la rétroaction par potentiomètre du vérin de la hauteur lui a été préférée étant donné

sa simplicité et sa robustesse, en plus de la nécessité d’avoir une certaine longueur de câble que la

technologie I2C n’aurait peut-être pas été capable d’apporter.

Figure 51 : Position et utilisation de l’accéléromètre sur 2 axes

Il est possible de constater la très petite taille de la pièce sur la figure qui suit.

Figure 52 : Accéléromètre

Page 83: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

76

Le magnétomètre HMC5883L-TR : Comme pour l’accéléromètre, le magnétomètre numérique

trois axes communique avec l’interface numérique I2C pour ainsi uniformiser la façon de communiquer.

Celui-ci fonctionne aussi avec de basses tensions et consomme très peu de courant. Malheureusement,

tout comme les boussoles magnétiques manuelles utilisées pour le plein-air sont affectées par les champs

magnétiques extérieurs ainsi que par les métaux porteurs de flux magnétiques, le magnétomètre y est

sensible. Il peut, par contre, être utilisé dans des champs magnétiques assez importants en gardant une

précision de 1 à 2 degrés. Comme la monture mécanique et l’endroit où le système risque d’être installé

seront en grande majorité composés essentiellement de métaux, cette dernière caractéristique est très

importante. Le prix de la pièce est d’environ 4 $. Bien qu’il ait été implanté matériellement sur le circuit

imprimé, le magnétomètre n’a pas été ajouté au code du microcontrôleur. Si le promoteur veut ajouter

cette section, il devra donc déplacer la boîte assez loin d’une grosse structure de métal, tout en s’assurant

qu’elle a la même direction que le support mécanique.

Figure 53 : Magnétomètre HMC5883L-TR

Schématiques pour les plaquettes de test

Pour être capable de tester la communication (I2C et réglages de la puce) du magnétomètre avec le

microcontrôleur, il faut faire un montage préliminaire de tests. Quelques composantes sont ajoutées pour

le bon fonctionnement de la puce. Les condensateurs de découplage sont insérés pour enlever les

oscillations engendrées par la commutation. Les valeurs des condensateurs sont calculées par le

manufacturier pour filtrer les pointes causées par la commutation. La plaquette de test est conçue pour

être adaptée aux plaquettes de prototypage rapide fabriquées à l’UQAC. Les bornes J1, J2 et J3

concordent donc avec celles présentes sur les plaquettes de prototypage.

Page 84: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

77

Figure 54 : Schéma électrique du PCB de test pour le magnétomètre numérique

Pour l’accéléromètre, le principe est le même que pour le magnétomètre.

Figure 55 : Schéma électrique du PCB de test pour l’accéléromètre

Page 85: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

78

Plaquettes de test (PCB) :

Une fois les schémas électriques réalisés, il faut utiliser le logiciel Altium Designer Release 10 afin de

pouvoir créer un fichier qui permettra d’obtenir une version physique du circuit imprimé. Ces derniers

sont tels que les deux figures suivantes, soit un pour le magnétomètre et un pour l’accéléromètre.

Figure 56 : Plaquette de test du magnétomètre

Figure 57 : Plaquette de test de l’accéléromètre

Page 86: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

79

Les circuits imprimés ont été reçus et les composantes soudées. Voici des images des circuits réalisés

pour faire les tests de communications.

Figure 58 : Plaquette du magnétomètre avant et après le soudage

Figure 59 : Plaquette de l’accéléromètre avant et après le soudage

Page 87: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

80

Annexe 5 (Procédure de fonctionnement)

Afin d’utiliser correctement le prototype réalisé dans ce projet, voici les éléments à considérer :

Le prototype électrique doit être alimenté par une tension continue de 12 volts.

Il est important de remettre les deux connecteurs circulaires au bon endroit après qu’ils aient dû être

déconnectés.

L’interrupteur #1 (SW1, On/Off) permet de mettre le circuit sous tension en appliquant la tension 12 volts

à l’ensemble du système. Une diode électroluminescente verte (DL1) doit alors allumer pour indiquer que

le système est sous tension.

L’interrupteur #2 (SW2, Transport) permet d’activer le mode «Transport». Lorsque ce mode est activé

(1), le panneau se positionne afin qu’il soit le plus compact possible. En effet, l’axe de la hauteur devient

complètement à plat (0°), alors que l’axe de l’azimut s’oriente plein Sud (180°). Une diode

électroluminescente rouge (DL3) doit alors allumer. Lorsque la position est atteinte, l’alimentation du

système peut être coupée. Pour retourner en mode régulier, il s’agit uniquement de remettre l’interrupteur

en position normale (0).

L’interrupteur #3 (SW3, Mode) permet d’activer le mode «Périodique». Lorsque cet interrupteur est

activé (1), un délai est inséré entre chaque déplacement. Ceci permet de déplacer le système seulement

après une certaine période de temps, plutôt que continuellement. Il faut noter que la fermeture de

l’interrupteur (0) permettra à tout instant de retourner en déplacement continu. Une diode

électroluminescente jaune (DL2) allume lorsque le système est en attente.

Une diode électroluminescente verte (DL4), située près du récepteur GPS, clignote lorsque ce dernier

dispose d’un signal valide. L’absence d’un clignotement signifie que le récepteur n’a pas encore acquis

suffisamment de données pour fixer une position ou que le signal des satellites GPS ne parvient pas au

récepteur. Jusqu’à 15 minutes peuvent être nécessaires si le prototype n’a pas été utilisé dans les derniers

180 jours ou si la pile a été enlevée temporairement. Finalement, la présence de cette pile est absolument

nécessaire au bon fonctionnement du récepteur GPS.

Page 88: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

81

Annexe 6 (Diagramme de décision)

Figure 60 : Diagramme de décision, partie 1

Page 89: Université du Québec à Chicoutimi · Shawn-Yannick Côté Daniel Dubé . Résumé s rendement global d’un tel système, la mise au point d’un prototype permettant Avec le rendement

82

Figure 61 : Diagramme de décision, partie 2