Traceur solaire

pdevisme1

Senior Member
Bonjour, tout d'abord veuillez m'excuser si la question a déjà été posée et/ou si les termes employés ne sont pas assez les bons je débute en picaxe...

Je projette pour mes classes de 4° ( je suis prof de techno au collège ) de réaliser un traceur solaire avec comme capteur une LDR ( peu coûteuse ) associée à une des cartes programmables de chez a4 ( power prog ? ou autre je ne sais pas laquelle choisir ), deux servos moteurs ( un pour le réglage "en horizontal" et un autre pour le réglage "en vertical ) le tout programmé avec le logiciel Programming Editor.

Pour ce qui est de la réalisation "mécanique" ça ne pose pas de soucis particulier... par contre pour ce qui est du programme alors là je ne sais pas du tout coment faire ! Est-ce que quelqu'un aurait une idée ? J'ai vu chez Technologie services qu'ils avaient un robot qui suivait la lumière mais ils n'utilisent pas le même logiciel. Donc ça doit être réalisable je pense.

Enfin, est-ce que la LDR se branche directement sur une entrée analogique de la carte ? et quid de la "transformation en numérique ? si non quel dispositif faut-il fabriquer ?

Merci d'avance.
 

fuse

Senior Member
Bonjour cher collègue,

Je vais tenter de répondre à quelques interrogations, cependant, sans maquette de test, il y aura surement quelques ajustements à affectuer. En tout cas, cela permettra de commencer les essais...
Concernant une LDR, elle doit être montée avec une résistance de 10K (voir schéma). Il s'agit d'un montage classique de pont diviseur permettant d'obtenir une tension analogique d'environ 1V à 4,5V (dans la lumière, la LDR fait une centaine d'ohms donc tension ~ 4,5V, dans le noir la LDR fait plusieurs centaines de Kohms donc la tension ~ 1V).
Bien sur ces tensions analogiques doivent être branchées sur les entrées analogiques du Picaxe (AN0 et AN1 dans mon exemple). Le Picaxe converti la tension analogique de 0V à 5V sur un octet (dans le mode simple) soit de 0 à 255 en décimal.
Pour pouvoir suivre la lumière, il faut effectuer 2 mesures avec 2 LDR décalées de quelques degrés (voir schéma), ainsi si la mesure est identique sur les 2 LDR cela indique une position idéale du plateau...
Pour un suivi en site et azimuth, il faudra donc 4 LDR judicieusement disposées...
Concernant le programme, après la mesure des valeurs analogiques AN0 et AN1, il faut diviser le résultat par une constante (que l'on appelle facteur d'échelle et qui permet de calmer l'ensemble donc d'éviter un battement de la
plaque suiveuse), les valeurs obtenues sont soustraient afin d'obtenir une
valeur représentative de la différence d'éclairement des 2 LDR. En fonction de
cette valeur et du signe il faudra agir sur la commande des servomoteurs.
Je proposerais un programme dans un prochain post.
Cordialement
suiveur.jpg
 

AndreBernot

Senior Member
J’ai eu l’occasion de relever des valeurs issues de LDR différentes en les pointant manuellement vers le soleil (avec le montage indiqué par fuse) et je me suis rendu compte qu’il peut y avoir de variations conséquentes d’une LDR à l’autre.
Un moyen simple de faire des relevés pour étudier le comportement des LDR est d’utiliser la commande Debug.
Par exemple :

Debug b13
Readadc 0, b0
Retour au début du programme

Observation de l’évolution de b0 à l’écran (le câble de programmation étant connecté en permanence).

La technique proposée par fuse est intéressante mais je pense qu’elle réserve des surprises qui risquent d’être compliquées à résoudre par programmation ?

Autre idée avec une seule LDR :
La LDR est solidaire de la cellule, la cellule est « motorisée » en azimuth et en altitude par 2 servomoteurs.
A un instant donné, on scrute en azimuth et par le biais des variables on mémorise la valeur maximale de lumière reçue par la LDR ainsi que la position de la cellule (servomoteur 1) à cet instant.
On procède de même en altitude (servomoteur 2).
On fait alors revenir la cellule à la position (azimuth / altitude) ou la lumière maximale a été détectée.
On scrute de nouveau après un certain temps pour repositionner la cellule.

Sur le même principe, au lieu d’utiliser une LDR, on peut aussi imaginer de relever directement la tension de sortie de la cellule ?

Sujet bien intéressant !
 

Jean-Yves

New Member
Bonjour pdevisme1 et fuse,

Le topo de fuse dégrossit fort bien la question sur le plan électronique.
J'apporte ici des éléments de réflexion sur ce type de projet.
Si la maquette est un pointeur asservi sur le soleil la course apparente de ce dernier dans le ciel, tant en azimut qu'en site, est une courbe très régulière, dont la variation est lente sur une semaine et parcourue toujours dans le même sens Le graphe cartésien de cette courbe donne l'azimut en abcisse et le site en ordonnée. On peut considérer le passage du soleil au zénith comme axe de symétrie de cette courbe. C'est le Sud. Ne jouons pas les astronomes, restons petits.

S'il pleut, si le ciel s'obcurcit, les infos recueillies par les LDR risquent de n'être plus valides. L'idéal, lorsque le soleil est de retour est que les servomoteurs aient continué leur travail de poursuite asservie... en souplesse. Donc pour cela il faut ajouter une routine au programme tenant compte de l'heure de la montre et de la date qui positionnerait de manière dégrossie le "plateau" de façon automatique. Les infos apportées par le groupe des LDR ne venant que confirmer que tout est OK et recalant le système. Le mouvement du plateau sera toujours en azimut d'est en ouest face au soleil.
Une solution (parmi d'autres sans doute) l'utilisation d'un tableau de datas préenregistrées dans une mémoire externe qui contiendrait les valeurs des angles souhaités de travail des servos. La mémoire étant sollicitée au rythme de l'horloge.
Ces datas seraient le résultat d'un travail d'étalonnage effectué manuellement pour établir la courbe que l'on qualifierait d'universelle valable sur une semaine voire deux.
Les microcontrôleurs Picaxe ne demandent qu'à être exploités à fond de leurs ressources de programmation.
Votre avis bien sûr.
Cordialement. Jean-Yves
 

AndreBernot

Senior Member
traceur solaire

Bien d’accord avec Jean-Yves que la solution idéale serait sans doute de mettre en équation la course du soleil, de disposer de la date, de la position géographique, d’une table de données, d’un GPS!
Si le but de pdevisme1 est de trouver un principe simple et explicable à des élèves de collège je pense qu’il faut essayer de s’orienter vers un principe plus rudimentaire et économique !
 

pdevisme1

Senior Member
Ok merci pour toutes ces infos. Si j'ai bien compris il y a deux solutions : la première avec ldr ( mais soucis avec les nuages ou autre source d'assombrissement ) et une autre avec des données de position du soleil qui dépendraient donc de la localisation géographique du panneau ( en gros quoi... ).

L'idée d'utiliser la tension ( ou l'intensité ) de sortie directe du panneau c'est pas mal non plus, ce panneau réagissant il est vrai "comme une ldr" et reflétant la luminosité.

Maintenant, déjà je sais ce que je peux entrer comme tension sur les entrées analogiques. A ce propos pouvez-vous me dire quelle tension maximale peut-on entrer dans le picaxe ? Et après la conversion analogique/numérique se fait-elle toute seule ou faut-il "programmer" quelque chose dans le picaxe ?

Effectivement je souhaiterais un système simple ( à défaut d'être super efficace ) explicable à des élèves de collège. Un truc du genre je fais un tour complet en "enregistrant" les valeurs tous les X degrés et revenant à la valeur maximale me conviendrait bien. Après pour le suivi c'est autre chose mais si quelqu'un a la solution je suis preneur.

Petit rappel : je suis super débutant.

J'attends le programme de fuse avec impatience !

En tous cas vachement rapide, encore merci.
 

Jean-Yves

New Member
Bonjour à tous,
Le projet est sur les rails. Ne pas laisser refroidir.
Puisque l'on est au stade de la réponse d'un capteur obtenue sous forme de tension analogique, fuse va apporter les infos pratiques. Précautions à prendre: ne jamais travailler (ou faire circuler) avec des tensions supérieures à 5 V dans l'environnement immédiat du Picaxe.
Se débrouiller pour interfacer. Ampli OP suiveur sous 5V par exemple.

La manip' avec des LDR est intéressante. La mener en test isolé pour bien assimiller la conversion analogique digitale. Utiliser le mode Terminal de PBE pour contrôle.
Source lumineuse: le soleil. Placer le montage supportant la cellule LDR derrière un store vénétien. Simuler les variations de luminosité et établir une pseudo courbe d'étalonnage.
Un voltmètre numérique sur l'entrée AN choisie nous assure que la plage 0-5 V est respectée. Le mode terminal du logiciel PB editor affiche la conversion.
A partir de ce moment: se mettre au clavier pour taper du code et faire vivre le microcontrôleur: allumage de Leds piloté par tensions de seuil, transistors tampons, et actionneurs type servos bien sûr. etc,etc..
Un jeu d'enfant? Non. Mais tout partira de là pour l'avancement du projet.
A suivre...
 

fuse

Senior Member
Bonjour à tous,
Voici donc le programme commenté. Attention, celui ci est élaboré pour travaillé avec ma maquette : un robot basé sur des moteurs classiques. L'ensemble fonctionne quand la lumière est conséquente (avec un spot), cependant si la lumière est faible, le robot oscille de droite à gauche...
Pour commander les servomoteurs, il faudra bien sur adapter le programme avec des commandes SERVO, si le temps me le permet j'essaierai de vous envoyer un exemple.
Cordialement
View attachment suiveur.cad
 

AndreBernot

Senior Member
Merci fuse pour l’exemple !
Jean-Yves, il faut installer Programming Editor et ouvrir le fichier .cad de fuse à partir de Programming Editor (fichier de type diagramme et non basic en bas de la fenêtre d’ouverture fichier).

Je crois comprendre que fuse veut en quelque sorte intégrer l’écart de lumière entre les 2 LDR directement dans la consigne de position du servo. Le servo se repositionne jusqu’à temps que l’écart de lumière tende ver 0, c.a.d lorsque les 2 LDR sont face au soleil. Je fais le pari que les valeurs des LDR vont valser, que l’écart mesuré ne tendra jamais vers 0 et que le servo partira dans tous les sens, bon courage pour les essais !

Ci-joint une autre approche avec une seule LDR et un servo. Le servo scrute sur 0 à 180 deg et revient à la position où la lumière maxi a été détectée. Il reste à cette position pendant 5 s et scrute de nouveau. Je vous tiens au courant dès que j’ai fait l’essai !
 

Attachments

fuse

Senior Member
Je ne dispose pas de maquette spécifique, cependant le test est concluant sur un montage disposant de 2 LDR et d'un servomoteur.
Le montage est même beaucoup moins instable que le robot suiveur de lumière.
Des valeurs seront peut-être à ajuster comme par exemple StopServo ou la facteur d'échelle.
Une autre solution pour la mesure de lumière avec les LDR serait de les mettre en série : une tension de 2,5V indiquant le point neutre, cela ne monopolise qu'une entrée analogique et limiterait peut-être les mises en oscillation...
2LDR.jpg

Cordialement
 

fuse

Senior Member
Bonjour AndreBernot,
Le test de votre programme n'est pas concluant, le servomoteur est pratiquement toujours en mouvement. L'idée est judicieuse et je pense même qu'elle pourrait être intégré à la mise en route du système de suivi, dans ce cas j'effectuerai une mesure de tension sur les cellules solaires elles mêmes. Ensuite, je reste confiant sur l'efficacité de ma proposition basée sur 2 LDR par axe.
Très important : la tension analogique à mesurer ne doit pas dépasser la tension d'alimentation du Picaxe. Pour les LDR c'est simple il suffit de les alimenter avec l'alimentation du Picaxe. Pour les cellules solaires, il faut s'arranger pour ne jamais dépasser les 5V en limitant cette entrée avec un pont de résistance et une zener de 5V (normalisée à 5V1). Sans précaution l'entrée analogique pourra être détruite.
Je me doutais que cela ne serait pas aussi facile que cela, en tout cas c'est un bel exercice.
;)
Cordialement
 

AndreBernot

Senior Member
Bonjour fuse, je viens de tester mon programme par cette belle journée sans nuage avec une LDR embarquée sur un servo. Sur le principe cela fonctionne globalement comme prévu. La LDR protégée par un tube noir se recale cycliquement face au soleil. Je dis globalement car effectivement dans 10% des cas elle ne s’immobilise pas à l’endroit souhaité ! En tous cas, sur le principe ca fonctionne, mais cela n’est pas fiable à 100%. Je n’ai pas cherché plus loin pour l’instant, j’ai fait un montage à « l’arrache » et je pense que ma LDR n’était pas correctement occultée contre les rayons incidents qui peuvent perturber les mesure. J’essaierai de nouveau dehors avec un PC portable et debug pour surveiller de plus près ce qui se passe.

Je suis d’accord que votre principe présente l’avantage d’avoir un recalage permanent (sans temps mort comme dans le mien). Avez-vous pu tester votre montage en réel ? Est il fiable ?

Autre précisions pour ceux qui se lancent dans les conversions analogique / numérique :
Le convertisseur analogique numérique (8bits 0 à 255) fournit une valeur décimale comprise entre 0 et 255. 0Volt sur l’entrée analogique est convertit en 0 décimal, Valim Volts est convertit en 255 décimal. La résolution est de 255/Valim.
Voir Section 1 p65 de http://www.picaxeforum.co.uk/docs/datasheets/picaxe_manual1.pdf

L’exercice continue mais il n’est pas aussi simple qu’il en a l’air ! ;)
 

fuse

Senior Member
Bonjour à tous,
J'ai essayé le montage sans asservir les LDR sur le servomoteur, je vérifie donc le mouvement du servomoteur en fonction de la position des LDR ce qui change tout...Seul un test réel valide une solution ou non.
Je fait mon possible pour réaliser une plateforme asservie.
Cordialement
 

launay

New Member
Suiveur solaire

salut,

je vous propose un exemple de programme avec vidéo du système en fonctionnement.
Le panneau se positionne automatiquement sur la luminosité max.
Le programme permet le pilotage sur un axe, le pilotage du deuxième axe peut se faire sur la même base.

http://collegetech.free.fr/index.php?option=com_content&view=article&id=29:suiveur-solaire&catid=7:realisation-4eme&Itemid=4

Pour ceux que cela intéresse, j'ai mis en ligne un calcul pour l'optimisation de la résistance de pont de la LDR pour des conditions données. Cela permet d'obtenir le maximum de sensibilité sur le capteur LDR
http://collegetech.free.fr/index.php?option=com_content&view=article&id=31:capteur-resistif&catid=12:communication-et-gestion-de-linformation&Itemid=4

Julien
 

fuse

Senior Member
Bonjour à tous,
Les essais sur table étaient pourtant encourageants, cependant, en installant l'ensemble sur une plateforme asservie, j'obtiens une instabilité conséquente...La plateforme oscille autour du point zéro...En modifiant le facteur d'échelle et divers autres calcul, impossible de réguler l'ensemble....
Je reprend mon idée de mesure de point milieu :
2LDR.jpg
le programme est plus simple, la plateforme est stable et poursuit un spot de façon efficace. En positionnant un ajustable sur le détecteur, la position idéale de la plateforme est très facile à ajuster.
En pleine lumière solaire, l'ensemble est cependant perturbé, en effet la valeur des LDR est un peu faible, un tube de lumière efficace devrait résoudre ce problème ?
View attachment suiveur_V2.cad
Cordialement
 

icharda

New Member
suiveur solaire

bonjour
j'utilise une carte motoprog(prix) les 2 entrees pt1 et pt2 lisent un capteur fin de course et une ldr.mouvement si pas eclaire et fin de journee fin de course renvoie au depart en terminant le tour.la question: sur motoprog 2 sorties mot1 et mot2 .en branchant les 2 sorties sur le meme moteur je pensais avec les commandes high1 ou high2 obtenir les 2 sens ? ca n'a pas l'air de fonctionner alors que pilotage de 2 mot separes c'est ok.merci d'avance
 

fuse

Senior Member
Bonjour Icharda,
Impossible de changer le sens de rotation d'un moteur en branchant les 2 sorties de motoprog sur un seul moteur... Cela pourrait même provoquer la destruction des transistors de sortie du darlington selon le branchement...
L'étude du schéma de motoprog devrait vous être utile :
motoprog.jpg

Pour changer le sens de rotation, il faut utiliser un circuit spécialisé comme le L293 ou bien réaliser un inverseur avec 2 relais. Le schéma suivant répond au cahier des charges désiré :
pas de commande le moteur est à l'arrêt,
une commande sur Out1 fait tourner le moteur dans un sens,
une commande sur out2 fait tourner le moteur dans l'autre sens,
remarque : une commande sur out1 et out2 en même temps arrête le moteur.
Je conseille de prévoir une alimentation propre au moteur (pile de 4,5V) cela évite de parasiter l'alimentation du pic, en effet, les petits moteurs sont extrêmement générateur de signaux perturbant le pic... :D
motoprog_rel.jpg
 

Lio

Member
Bonjour à tous,

Je suis en retard sur ce post... Je viens de terminer mon "sun tracker" sans avoir vu votre post... dommage.
Picaxe 08M
2 x 2 ldr montées en pont diviseur sur 2 entrées analogiques
2 servomoteurs

Cordialement,
Lio

ps : j'ai dû passer le fichier .cad en .bas à cause du poids excessif du .cad.. le .zip n'est pas accepté...;
 

Attachments

Top